使用验证数据优化机器学习模型,以防止过拟合,调整超参数,并确保稳健的实际性能。
验证数据是从训练过程中保留的一部分数据样本,用于在调整模型超参数时,对模型的拟合度进行公正的评估。验证集的主要作用是通过频繁、独立地评估机器学习模型的性能,来指导模型的开发。这种反馈循环对于构建不仅在已见过的数据上表现良好,而且还能有效地泛化到新的、未见过的数据的模型至关重要,这是创建稳健的人工智能系统的核心概念。
验证数据的主要目的是防止过度拟合。当模型过于精细地学习训练数据时,就会发生过度拟合,从而捕获不适用于新数据的噪声和细节,从而损害其性能。通过定期(例如,在每个 epoch 之后)针对验证集测试模型,开发人员可以监控其 泛化误差。如果训练数据的性能持续提高,而验证数据的性能停滞或下降,则明显表明存在过度拟合。
此评估过程对于超参数调整至关重要。超参数是模型外部的配置设置,例如学习率或批量大小,这些设置不是从数据中学习的。验证集允许试验不同的超参数组合,以找到产生最佳性能的集合。此迭代过程是模型选择和优化的核心部分。
在一个典型的 ML 项目中,数据集被分成三个子集,理解它们的不同作用至关重要。一种常见的数据分割方法是分配 70% 用于训练,15% 用于验证,15% 用于测试。
保持严格的分离,尤其是在验证集和测试集之间,对于准确评估模型的能力和避免偏差-方差权衡至关重要。
当可用数据量有限时,通常采用一种称为交叉验证(特别是 K 折交叉验证)的技术。 在这里,训练数据被分成“K”个子集(折叠)。 模型训练 K 次,每次使用 K-1 个折叠进行训练,并将剩余的折叠作为验证集。 然后对所有 K 次运行的性能进行平均。 这提供了对模型性能的更可靠的估计,并更好地利用了有限的数据,如scikit-learn 文档和Ultralytics K 折交叉验证指南等资源中所述。
总而言之,验证数据是使用 PyTorch 和 TensorFlow 等框架构建可靠且高性能 AI 模型的基石。它可以有效地进行超参数调整、模型选择和过拟合预防,从而确保模型能够很好地泛化到训练数据之外。诸如 Ultralytics HUB 之类的平台提供了用于有效管理这些数据集的集成工具。