术语表

验证数据

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

验证数据是训练过程中保留下来的数据样本,用于在调整模型超参数时对模型的拟合度进行无偏评估。验证集的主要作用是通过对机器学习(ML)模型的性能进行频繁、独立的评估来指导模型的开发。这种反馈循环对于建立模型至关重要,因为模型不仅能在其所见过的数据上表现良好,还能有效地泛化到新的、未见过的数据上,这是创建强大的人工智能(AI)系统的核心概念。

验证数据的作用

验证数据的主要目的是防止过度拟合。当模型对训练数据的学习效果太好,捕捉到了不适用于新数据的噪声和细节,从而影响了模型的性能时,就会出现过拟合。通过定期针对验证集测试模型(例如在每个历时之后),开发人员可以监控模型的泛化误差。如果在训练数据上的性能不断提高,而在验证数据上的性能却停滞不前或下降,这显然是过度拟合的迹象。

这一评估过程对于超参数的调整至关重要。超参数是模型外部的配置设置,如学习率批量大小,它们不是从数据中学习的。通过验证集可以尝试不同的超参数组合,从而找到性能最佳的超参数集。这种迭代过程是模型选择和优化的核心部分。

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

在一个典型的人工智能项目中,数据集被分成三个子集,了解它们的不同作用至关重要。一种常见的数据分割方法是将 70% 的数据用于训练,15% 用于验证,15% 用于测试。

  • 训练数据这是数据中最大的一部分,用于教授模型。模型通过调整其内部模型权重,从该数据集中反复学习模式、特征和关系。
  • 验证数据:这个独立的子集用于在训练过程中提供无偏见的评估。它有助于调整超参数并做出关键决策,例如何时执行早期停止以防止过度拟合。在 Ultralytics 生态系统中,这种评估是在验证模式下进行的。
  • 测试数据该数据集在模型完全训练和调整完成之前一直保留。它只使用一次,以便对模型的性能进行最终的、无偏见的评估。测试集的性能表明了模型在实际部署场景中的预期表现。

保持严格的分离,尤其是验证集和测试集之间的分离,对于准确评估模型能力和避免偏差-方差权衡至关重要。

真实案例

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

交叉验证

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

总之,验证数据是利用PyTorchTensorFlow 等框架构建可靠、高性能人工智能模型的基石。它可以有效地进行超参数调整、模型选择和防止过拟合,确保模型的泛化能力远远超出它们所训练的数据。Ultralytics HUB等平台提供了有效管理这些数据集的集成工具。

加入 Ultralytics 社区

加入人工智能的未来。与全球创新者联系、合作和成长

立即加入
链接复制到剪贴板