损失函数

回归损失

均方误差/平方损失/L2 损失

\[M S E = \frac { \sum _ { i = 1 } ^ { n } \left( y _ { i } - \hat { y } _ { i } \right) ^ { 2 } } { n }\]

均方误差(MSE)度量的是预测值和实际观测值间差的平方的均值。它只考虑误差的平均大小,不考虑其方向。但由于经过平方,与真实值偏离较多的预测值会比偏离较少的预测值受到更为严重的惩罚。再加上 MSE 的数学特性很好,这使得计算梯度变得更容易。

平均绝对误差/L1 损失

\[M A E = \frac { \sum _ { i = 1 } ^ { n } \left| y _ { i } - \hat { y } _ { i } \right| } { n }\]

平均绝对误差(MAE)度量的是预测值和实际观测值之间绝对差之和的平均值。和 MSE 一样,这种度量方法也是在不考虑方向的情况下衡量误差大小。但和 MSE 的不同之处在于,MAE 需要像线性规划这样更复杂的工具来计算梯度。此外,MAE 对异常值更加稳健,因为它不使用平方。

平均偏差误差(mean bias error)

与其它损失函数相比,这个函数在机器学习领域没有那么常见。它与 MAE 相似,唯一的区别是这个函数没有用绝对值。用这个函数需要注意的一点是,正负误差可以互相抵消。尽管在实际应用中没那么准确,但它可以确定模型存在正偏差还是负偏差。

\[M B E = \frac { \sum _ { i = 1 } ^ { n } \left( y _ { i } - \hat { y } _ { i } \right) } { n }\]

分类损失

Hinge Loss/多分类 SVM 损失

简言之,在一定的安全间隔内(通常是 1),正确类别的分数应高于所有错误类别的分数之和。因此 hinge loss 常用于最大间隔分类(maximum-margin classification),最常用的是支持向量机。尽管不可微,但它是一个凸函数,因此可以轻而易举地使用机器学习领域中常用的凸优化器。

\[S V M L o s s = \sum _ { j \neq y _ { i } } \max \left( 0 , s _ { j } - s _ { y _ { i } } + 1 \right)\]

交叉熵损失/负对数似然

这是分类问题中最常见的设置。随着预测概率偏离实际标签,交叉熵损失会逐渐增加。

\[CrossEntropyLoss = - \left( y _ { i } \log \left( \hat { y } _ { i } \right) + \left( 1 - y _ { i } \right) \log \left( 1 - \hat { y } _ { i } \right) \right)\]

注意,当实际标签为 1(y(i)=1) 时,函数的后半部分消失,而当实际标签是为 0(y(i=0)) 时,函数的前半部分消失。简言之,我们只是把对真实值类别的实际预测概率的对数相乘。还有重要的一点是,交叉熵损失会重重惩罚那些置信度高但是错误的预测值。

Table of Contents