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