
01
引言
在深度学习领域中,损失函数定义了模型的预测与目标值之间的距离。因此我们必须正确地选择它,只有这样所有的参数才会根据其值进行更新。损失函数的选择取决于模型的设计。
02
MSE损失
Mean Square Error (MSE) 是回归任务中最通用的损失函数,MSE是目标值与预测值之间差值平方和的均值,MSE的公式定义如下:
优点:
易导
存在解析解
预测值越接近真值梯度越小
缺点:
对异常值不鲁棒
MSE简单的可导性使它成为一种非常流行的损失函数,我们可以在一些回归问题中找到它。
03
MAE损失
Mean Absolute Error (MAE) 是目标值与预测值差的绝对值之和的均值。MAE的公式定义如下:
优点:
对异常值鲁棒
缺点:
无解析解
所有预测错误的梯度幅度值相同
MAE 是目标和预测值之间差异的绝对值。这个函数的主要问题是它实际上没有解析解。

如上述公式所示,对于预测错误时,反传的梯度值为 1 或 -1。这意味着无论误差有多大,我们都会用相同的值更新权重。
MSE损失函数的明显用途是回归问题,但它也用于其他领域 比如在CycleGAN论文中,它用作一致性损失主要是用来计算原始图像和重新生成的图像之间的差异性。
04
Pseudo-Huber损失
Pseudo-Huber Loss损失函数的定义如下:

优点:
对异常值鲁棒
存在解析解
缺点:
需要对delta参数进行微调
Pseudo-Huber损失函数是MAE函数的鲁棒性和 MSE的实际现有解的结合体。该损失函数还有一个附加参数 delta,主要用于控制函数从二次到线性切换的位置。此外该参数还用于剪裁梯度值,从而可以限制异常值的影响。
由于具有裁剪梯度的能力,Pseudo-Huber损失函数被用于Fast R-CNN模型中,以防止梯度爆炸。
05
三种损失对比
在了解了一些理论之后,我们来具体举个栗子,对上述几个函数做个对比。
下图中,蓝线上的采样点为我们的真值,红色x为我们的预测值。

接着,我们来看下不同损失函数的计算值:
如上所示,Pseudo-Huber损失函数显示具备MAE LOSS对异常值的鲁棒性以及MSE LOSS对预测值越接近真值梯度越小的特性。
06
总结
损失函数是深度学习相关问题的核心组成部分,主要用于评估模型的性能并相应地更新权重。
您学废了吗?
点击上方小卡片关注我
万水千山总关情,点个在看行不行。

