术语表

验证数据

利用验证数据优化机器学习模型,以防止过度拟合、调整超参数并确保强大的实际性能。

使用Ultralytics HUB 对YOLO 模型进行简单培训

了解更多

验证数据是机器学习(ML)开发周期中的重要组成部分。它是原始数据集的一个独立子集,有别于用于拟合模型的训练数据和用于最终评估的测试数据。验证数据的主要目的是在调整模型超参数和决定模型架构时,对训练数据集上拟合的模型进行无偏见的评估。这一过程有助于选择最佳模型配置,然后再评估其在未见数据上的最终性能。

验证数据的作用

模型训练过程中,ML 模型会从训练数据中学习模式。然而,仅仅根据这些数据来评估模型可能会产生误导,因为模型可能只是记住了训练示例,这种现象被称为过拟合。验证数据起到了检查点的作用。通过在训练过程中定期评估模型在这一单独集合上的性能,开发人员可以: 1:

  1. 调整超参数:根据在验证集上计算的性能指标(准确率mAP 等),调整学习率批量大小或模型复杂度等设置。这通常需要使用超参数调整指南中讨论的技术。
  2. 选择模型:根据验证性能比较不同的模型架构或版本(例如,比较Ultralytics YOLOv8 和 YOLOv10)。
  3. 防止过度拟合:监控验证指标,以检测模型在验证集上的表现何时开始变差,即使训练表现有所改善,这表明模型已过度拟合。提前停止等技术依赖于验证性能。

验证数据与训练和测试数据

了解训练数据集、验证数据集和测试数据集之间的区别,是稳健开发模型的基础:

  • 训练数据数据集的最大部分,直接用于学习算法学习模式和调整模型权重。在训练循环(epochs)中,模型会经常 "看到 "这些数据。
  • 验证数据:在训练过程中间接使用的一小部分数据。模型并不直接从这些数据中学习,但在这组数据上的表现会指导有关超参数和模型结构的决策。它可以反馈模型开发阶段对新数据的泛化程度。
  • 测试数据模型在训练或验证过程中从未见过的完全独立的数据部分。在完成所有训练和调整后,测试数据只使用一次,以便对模型在未见过的真实世界数据上的泛化能力进行最终的、无偏见的估计。

适当的分离(通常使用Ultralytics HUB等工具进行数据集版本管理)可确保测试集的信息不会 "泄漏 "到训练或模型选择过程中,从而导致过于乐观的性能估计。

超参数调整和模型选择

验证数据是调整超参数所不可或缺的。超参数是模型本身外部的配置设置,在学习过程开始前设定。例如学习率、神经网络的层数或使用的优化算法类型。开发人员使用不同的超参数组合训练多个模型版本,在验证集上对每个模型进行评估,然后选择性能最佳的组合。这种系统化搜索可以通过网格搜索或贝叶斯优化等方法实现自动化,集成有MLOps 工具的平台通常可以提供便利。

真实案例

  1. 计算机视觉物体检测当训练一个 Ultralytics YOLO模型时(例如,使用VisDrone 数据集),会留出一部分标注图像作为验证数据。在训练过程中,模型的mAP(平均精度)将在每次历时后根据验证集进行计算。在对测试集进行最终性能检查之前,验证 mAP 有助于决定何时停止训练(提前停止)或哪套数据增强技术最有效。有效的模型评估策略在很大程度上依赖于这种分割。
  2. 自然语言处理文本分类:在开发将客户评论分类为正面或负面(情感分析)的模型时,会使用验证集来选择最佳架构(如LSTMTransformer)或调整超参数(如辍学率)。在验证集上获得最高F1 分数或准确率的模型将被选中进行最终测试。资源,如 Hugging Face等资源通常会为此提供预先分割的数据集。

交叉验证

当可用数据量有限时,通常会采用一种名为交叉验证(特别是 K 折交叉验证)的技术。在这里,训练数据被分成 "K "个子集(折叠)。模型被训练 K 次,每次使用 K-1 个折叠进行训练,剩余的折叠作为验证集。然后对所有 K 次运行的性能进行平均。正如Ultralytics K 折交叉验证指南中所解释的那样,这可以提供更可靠的模型性能估计,并更好地利用有限的数据。

总之,验证数据是构建可靠、高性能人工智能(AI)模型的基石。它能有效地进行超参数调整、模型选择和防止过拟合,确保模型的泛化能力远远超出其训练数据的范围。

阅读全部