目标函数(Objective Function)、损失函数(Loss Function)、代价函数(Cost Function)在某些情况下可以互换使用,本文将详细说明它们之间有什么区别。
Loss Function
损失函数(Loss Function)衡量了模型 f ff 对样本 x xx 的预测结果 与真实标签
的距离。注意,损失函数的计算目标是单个样本 x。因此,大部分距离度量函数都能够作为损失函数,而选择不同的损失函数也有各自的优缺点。比如:
Square Loss:
Absolute Loss:
Cost Function
代价函数(Cost Function)和损失函数(Loss Function)通常是一个意思,但有些作者对两者做出了明显的区分:损失函数的计算目标是单个样本 x,而代价函数的计算目标是一组样本。
假设 L 为损失函数,计算样本 x上的损失。那么代价函数则可以表示为整个训练/验证/测试集 上所有样本的损失之和的平均值(Cost = mean Loss):
Mean Squared Error:
Root-Mean-Square Error (RMSE):
Objective Function
在模型训练过程中,我们想要 Loss(Cost)值尽可能低,但是在训练集上的 low loss (cost) 不是唯一追求的目标。我们更关心的是模型的泛化能力,也就是在验证/测试集上的表现。为了避免模型对训练集的过拟合,我们通常会加一个正则化项(regularization term)来惩罚模型的复杂度,此时我们想要最小化的函数就变成了:
此时 就是目标函数(Objective Function),是我们最终想要最小化/最大化的目标。这时代价函数作为目标函数中的一项,不一定能达到最小值(因为有正则化项约束)。当然,若不添加正则化项,则目标函数就等于代价函数。
Conclusion
损失函数(Loss Function)指在单个样本上的损失,代价函数(Cost Function)指在整个集合上所有样本损失的平均值,目标函数(Objective Function)指整体优化目标,可能包含额外的正则化项。
一种比较通用的说法是,最小化在整个集合上的损失函数,等价于最小化代价函数:
minimizing the cross-entropy loss over a training set
原文链接:https://blog.csdn.net/qq_31347869/article/details/131322084