利用验证数据优化机器学习模型,以防止过度拟合、调整超参数并确保强大的实际性能。
验证数据是机器学习(ML)开发周期中的重要组成部分。它是原始数据集的一个独立子集,有别于用于拟合模型的训练数据和用于最终评估的测试数据。验证数据的主要目的是在调整模型超参数和决定模型架构时,对训练数据集上拟合的模型进行无偏见的评估。这一过程有助于选择最佳模型配置,然后再评估其在未见数据上的最终性能。
在模型训练过程中,ML 模型会从训练数据中学习模式。然而,仅仅根据这些数据来评估模型可能会产生误导,因为模型可能只是记住了训练示例,这种现象被称为过拟合。验证数据起到了检查点的作用。通过在训练过程中定期评估模型在这一单独集合上的性能,开发人员可以: 1:
了解训练数据集、验证数据集和测试数据集之间的区别,是稳健开发模型的基础:
适当的分离(通常使用Ultralytics HUB等工具进行数据集版本管理)可确保测试集的信息不会 "泄漏 "到训练或模型选择过程中,从而导致过于乐观的性能估计。
验证数据是调整超参数所不可或缺的。超参数是模型本身外部的配置设置,在学习过程开始前设定。例如学习率、神经网络的层数或使用的优化算法类型。开发人员使用不同的超参数组合训练多个模型版本,在验证集上对每个模型进行评估,然后选择性能最佳的组合。这种系统化搜索可以通过网格搜索或贝叶斯优化等方法实现自动化,集成有MLOps 工具的平台通常可以提供便利。
当可用数据量有限时,通常会采用一种名为交叉验证(特别是 K 折交叉验证)的技术。在这里,训练数据被分成 "K "个子集(折叠)。模型被训练 K 次,每次使用 K-1 个折叠进行训练,剩余的折叠作为验证集。然后对所有 K 次运行的性能进行平均。正如Ultralytics K 折交叉验证指南中所解释的那样,这可以提供更可靠的模型性能估计,并更好地利用有限的数据。
总之,验证数据是构建可靠、高性能人工智能(AI)模型的基石。它能有效地进行超参数调整、模型选择和防止过拟合,确保模型的泛化能力远远超出其训练数据的范围。