验证损失#
术语解释#
验证损失(Validation Loss)是指模型在验证集(Validation Set)上产生的误差或损失值。在深度学习和机器学习的训练过程中,验证损失用于衡量模型对未见过的(未参与参数更新)数据的泛化能力。 更多关于训练集、验证集和测试集的相关内容,可参见 「4.5 偏差和方差:交叉验证、过拟合与模型泛化」 。
出现动机#
-
规避过拟合风险:单纯依靠训练误差(Training Error)具有欺骗性,因为模型可能为了追求极低的训练误差而拟合了数据中的随机噪声,产生过拟合现象,导致在实际使用中效果糟糕。
-
保护测试集的公正性:如果直接利用测试集来调整模型结构或超参数(如学习率、网络层数等),测试集实际上也变相参与了训练,失去了评估泛化误差的“公正性”。因此需要划分出一个中间地带——验证集,用于模型选择。
-
科学的模型选择:当存在多个备选模型(如不同的多项式次数或正则化系数组合)时,需要一个指标来确定哪组超参数能使模型在处理未知数据时表现最佳。
为了避免训练出来的模型产生过拟合现象,在模型训练之前一般会将获得的数据集划分成两部分,即训练集与测试集,且两者一般为7∶3的比例。其中训练集用来训练模型(降低模型在训练集上的误差),然后用测试集来测试模型在未知数据上的泛化误差,观察是否产生了过拟合现象。相关内容可以参见 「第4.3.3节 过拟合怎么解决:常见原因、表现与处理方法」 内容。
优点缺点#
-
优点:
-
反映真实的泛化水平:验证损失能够提供模型在训练期间对新数据处理能力的实时反馈,帮助判断模型是处于欠拟合、恰拟合还是过拟合状态。
-
支持早停(Early Stopping)策略:通过监控验证损失的变化,当训练损失持续下降而验证损失开始上升时(典型的过拟合信号),可以及时停止训练,从而保留泛化性能最好的模型参数。
-
充分利用数据(配合交叉验证):在K折交叉验证中,每个样本都有机会作为验证数据,从而在数据有限的情况下也能获得相对稳健的验证损失评估。
-
-
缺点
-
减少训练样本量:划分验证集(通常按 7:2:1 或 7:3 比例)会占用一部分原始数据,在数据集规模较小时,这可能导致训练集样本不足,进而影响模型的拟合效果。
-
结果具有偶然性:如果数据集划分不当,选出的验证集包含较为怪异或不具代表性的数据,计算出的验证损失可能会误导模型选择的方向。此时可以采取 K 折交叉验证。
-
计算开销增加:在每一个训练周期(Epoch)或若干次迭代后计算验证损失,会消耗额外的计算资源并显著延长模型的整体训练时间。
-
相关术语#
-
训练误差
-
泛化误差
-
测试误差