loss function

https://borgwang.github.io/ml/2019/08/12/loss-functions-in-ml.html
均方差损失Mean Squared Error Loss

在模型输出与真实值的误差服从高斯分布的假设下,最小化损失函数与极大似然估计本质上是一致的,因此在这个假设能被满足的场景中(比如回归),均方差损失是一个很好的损失函数选择;当这个假设没能被满足的场景中(比如分类),均方差损失不是一个好的选择。

平均绝对误差损失 Mean Absolute Error Loss:


模型预测与真实值之间的误差服从拉普拉斯分布 Laplace distribution

  • MSE 通常比 MAE 可以更快地收敛。当使用梯度下降算法时,MSE 损失的梯度为 ,而 MAE 损失的梯度为 −1 ,即 MSE 的梯度会随误差大小变化,而 MAE 的梯度则一直保持不变,即便在绝对误差 很小的时候 MAE 的梯度也同样为 1,这实际上是非常不利于模型的训练的。当然你可以通过在训练过程中动态调整学习率缓解这个问题,但是总的来说,损失函数梯度之间的差异导致了 MSE 在大部分时候比 MAE 收敛地更快。这个也是 MSE 更为流行的原因。
  • MAE 对于 outlier 更加 robust

MSE 损失收敛快但容易受 outlier 影响,MAE 对 outlier 更加健壮但是收敛慢

Huber Loss:

Huber Loss 结合了 MSE 和 MAE 损失,在误差接近 0 时使用 MSE,使损失函数可导并且梯度更加稳定;在误差较大时使用 MAE 可以降低 outlier 的影响,使训练对 outlier 更加健壮。缺点是需要额外地设置一个
δ 超参数。

分位数损失 Quantile Loss:
常的回归算法是拟合目标值的期望或者中位数,而分位数回归可以通过给定不同的分位点,拟合目标值的不同分位数。例如我们可以分别拟合出多个分位点,得到一个置信区间

损失函数是一个分段的函数 ,将 (高估) 和 (低估) 两种情况分开来,并分别给予不同的系数。当 r>0.5 时,低估的损失要比高估的损失更大,反过来当 r<0.5 时,高估的损失比低估的损失大;分位数损失实现了分别用不同的系数控制高估和低估的损失,进而实现分位数回归.

当 r=0.5 时,分位数损失退化为 MAE 损失,从这里可以看出 MAE 损失实际上是分位数损失的一个特例 — 中位数回归


交叉熵损失 Cross Entropy Loss:
二分类:

多分类:

多分类的交叉熵损失函数也被称为 Softmax Loss 或者 Categorical Cross Entropy Loss。

合页损失 Hinge Loss:
合页损失 Hinge Loss 是另外一种二分类损失函数,适用于 maximum-margin 的分类,支持向量机 Support Vector Machine (SVM) 模型的损失函数本质上就是 Hinge Loss + L2 正则化

y为正类, 即 sgn(yi)=1 时hinge loss

合页损失不仅惩罚预测错的,并且对于预测对了但是置信度不高的也会给一个惩罚,只有置信度高的才会有零损失。使用合页损失直觉上理解是要找到一个决策边界,使得所有数据点被这个边界正确地、高置信地被分类。

你可能感兴趣的:(loss function)