使用验证数据优化机器学习模型,以防止过拟合,调整超参数,并确保稳健的实际性能。
验证数据是机器学习开发生命周期中的一个关键中间步骤,在模型训练过程中充当了 模型训练过程中未见数据的代理。它是数据集的一个独特子集,用于在调整模型配置时对模型的拟合度进行无偏见的评估。 它是一个独特的数据集子集,用于在调整模型配置时对模型的拟合度进行无偏见的评估。通过定期根据 验证数据,开发人员可以评估系统在学习 对新信息的概括能力,而不是简单地 记忆训练示例。这种反馈循环对于及早发现问题并优化模型以获得稳健的实际性能至关重要。 这种反馈循环对于及早发现问题并优化模型以获得稳健的实际性能至关重要。
验证数据的主要功能是促进 超参数调整。与内部 模型权重等内部参数是直接从训练过程中学习的,而超参数 直接从训练过程中学习的内部参数不同,超参数(如 学习率或 批量大小--必须手动设置或通过实验优化。 实验进行优化。验证集允许工程师比较不同的模型架构和配置,以选择性能最佳的模型。 选择性能最佳的模型,而无需接触最终测试集。
此外,监测验证数据的性能有助于防止 过度拟合。当模型学习了训练数据中的噪音和特定细节,却忽略了其在新数据上的性能时,就会出现过拟合现象。 噪声和训练数据的具体细节,从而影响其在新数据上的性能。如果训练误差 减少,但验证误差却增加,则表明模型正在失去泛化能力,这意味着 这就意味着需要采用干预技术,比如提前停止。
为确保评估的可靠性,一个完整的数据集通常分为三个不同的部分。了解 每一部分的具体目的对于有效 数据管理至关重要。
在Ultralytics 生态系统中,验证被无缝集成到工作流程中。在定义数据集 YAML 配置时,用户可以指定训练和验证图像的路径。验证模式 然后就可以调用Ultralytics 验证模式来计算 指标,例如 验证集上的平均精度 (mAP) 验证集的平均精度(mAP)等指标。
以下是如何使用 Python
from ultralytics import YOLO
# Load a pre-trained YOLO11 model
model = YOLO("yolo11n.pt")
# Validate the model on the 'coco8.yaml' dataset
# The 'data' argument specifies the dataset configuration containing the validation split
metrics = model.val(data="coco8.yaml")
# Display the Mean Average Precision (mAP) at IoU 50-95
print(f"Validation mAP50-95: {metrics.box.map}")
验证数据使开发人员能够针对精度至关重要的特定行业对模型进行微调。
在数据稀缺的情况下,静态验证分割可能会删除太多宝贵的训练数据。在这种 情况下,实践者通常会采用 交叉验证,特别是 K 折 交叉验证。这种技术是将数据划分为 "K "个子集,然后轮流将哪个子集作为验证数据。 作为验证数据。这可以确保每个数据点都用于训练和验证,从而提供 中的详细说明。 scikit-learn 交叉验证文档中有详细说明。
正确使用验证数据是机器学习操作(MLOps)的基石。 机器学习操作 (MLOps) 的基石。通过将验证示例与训练过程严格分开,开发人员可以确保他们的模型不仅仅是 记忆事实,而是真正学会解释视觉世界。

