目标函数(Objective Function)、损失函数(Loss Function)与代价函数(Cost Function)

目标函数(Objective Function)、损失函数(Loss Function)、代价函数(Cost Function)在某些情况下可以互换使用,本文将详细说明它们之间有什么区别。


Loss Function

损失函数(Loss Function)衡量了模型 f f f 对样本 x x x 的预测结果 y ^ = f ( x ) \hat y = f(x) y^=f(x) 与真实标签 y ≡ y ( x ) y \equiv y(x) yy(x) 的距离。注意,损失函数的计算目标是单个样本 x x x。因此,大部分距离度量函数都能够作为损失函数,而选择不同的损失函数也有各自的优缺点。比如:

Square Loss:
L s q u a r e ( y ^ , y ) = ( y ^ − y ) 2 L_{square}(\hat y, y) = (\hat y - y)^2 Lsquare(y^,y)=(y^y)2

Absolute Loss:
L a b s ( y ^ , y ) = ∣ y ^ − y ∣ L_{abs}(\hat y, y) = |\hat y - y| Labs(y^,y)=y^y

Cost Function

代价函数(Cost Function)和损失函数(Loss Function)通常是一个意思,但有些作者对两者做出了明显的区分:损失函数的计算目标是单个样本 x x x,而代价函数的计算目标是一组样本。

假设 L L L 为损失函数,计算样本 x x x 上的损失。那么代价函数则可以表示为整个训练/验证/测试集 D = { ( x i , y i ) } i = 1 n \mathcal{D} = \{ (x_i, y_i) \}_{i=1}^{n} D={(xi,yi)}i=1n 上所有样本的损失之和的平均值(Cost = mean Loss):
C o s t ( f , D ) = 1 n ∑ i = 1 n L ( y ^ i , y i ) Cost(f, \mathcal{D}) = \frac{1}{n} \sum_{i=1}^{n} L(\hat y_i, y_i) Cost(f,D)=n1i=1nL(y^i,yi)

Mean Squared Error:
M S E = 1 n ∑ i = 1 n L s q u a r e d ( y ^ i , y i ) = 1 n ∑ i = 1 n ( y ^ i − y i ) 2 MSE = \frac{1}{n} \sum_{i=1}^{n} L_{squared}(\hat y_i, y_i) = \frac{1}{n} \sum_{i=1}^{n} (\hat y_i - y_i)^2 MSE=n1i=1nLsquared(y^i,yi)=n1i=1n(y^iyi)2

Root-Mean-Square Error (RMSE):
R M S E = 1 n ∑ i = 1 n ( y ^ i − y i ) 2 RMSE = \sqrt{\frac{1}{n} \sum_{i=1}^{n} (\hat y_i - y_i)^2} RMSE=n1i=1n(y^iyi)2

Objective Function

在模型训练过程中,我们想要 Loss(Cost)值尽可能低,但是在训练集上的 low loss (cost) 不是唯一追求的目标。我们更关心的是模型的泛化能力,也就是在验证/测试集上的表现。为了避免模型对训练集的过拟合,我们通常会加一个正则化项(regularization term)来惩罚模型的复杂度,此时我们想要最小化的函数就变成了:
E = C o s t ( f , D ) + R e g u l a r i z e r ( f ) \mathbb{E} = Cost(f, \mathcal{D}) + Regularizer(f) E=Cost(f,D)+Regularizer(f)
此时 E \mathbb{E} E 就是目标函数(Objective Function),是我们最终想要最小化/最大化的目标。这时代价函数作为目标函数中的一项,不一定能达到最小值(因为有正则化项约束)。当然,若不添加正则化项,则目标函数就等于代价函数。

Conclusion

损失函数(Loss Function)指在单个样本上的损失,代价函数(Cost Function)指在整个集合上所有样本损失的平均值,目标函数(Objective Function)指整体优化目标,可能包含额外的正则化项。

一种比较通用的说法是,最小化在整个集合上的损失函数,等价于最小化代价函数:

minimizing the cross-entropy loss over a training set { ( x i , y i ) } i = 1 n \{ (x_i, y_i) \}_{i=1}^{n} {(xi,yi)}i=1n


参考资料:
[1] Difference Between the Cost, Loss, and the Objective Function
[2] Objective function, cost function, loss function: are they the same thing?

猜你喜欢

转载自blog.csdn.net/qq_31347869/article/details/131322084