M A E = ∑ i = 1 n ∣ y i − y i p 1 ∣ n M A E=\frac{\sum_{i=1}^{n} \mid y_{i}-y_{i}^{p_{1}} \mid}{n} MAE=n∑i=1n∣yi−yip1∣
以分类问题举例。
对于上式中, y i y_{i} yi代表真实值, y i p y_{i}^{p} yip代表预测值。
下面是一个MAE函数的图,其中真实目标值为100,预测值在-10,000至10,000之间。预测值(X轴)= 100时,MSE损失(Y轴)达到其最小值。损失范围为0至∞。
优点 :无论对于什么样的输入值,都有着稳定的梯度,不会导致梯度爆炸问题,具有较为稳健性的解
缺点 :在中心点是折点,不能求导,不方便求解,且由于稳定的梯度,在接近解的附近会发生持续的震荡
M S E = ∑ i = 1 n ( y i − y i p ) 2 n M S E=\frac{\sum_{i=1}^{n}\left(y_{i}-y_{i}^{p}\right)^{2}}{n} MSE=n∑i=1n(yi−yip)2
以分类问题举例。
对于上式中, y i y_{i} yi代表真实值, y i p y_{i}^{p} yip代表预测值。
下面是一个MSE函数的图,其中真实目标值为100,预测值在-10,000至10,000之间。预测值(X轴)= 100时,MSE损失(Y轴)达到其最小值。损失范围为0至∞。
缺点:不是特别的稳健,为什么?因为当函数的输入值距离中心值较远的时候,使用梯度下降法求解的时候梯度很大,可能导致梯度爆炸(想象一下这个曲线继续往上走);在接近于真实值的时候,曲线却变得十分的平缓,甚至可能会出现梯度趋向于0的情况,这就造成训练速度变慢。
备注:上面的两种损失函数也被很多资料或者是教材称之为
L
损失和
L2损失,但是本文还是将它们跟下面的
L1损失和L2损失`进行区分了的。
L1范数损失函数,也被称为最小绝对值偏差(LAD),最小绝对值误差(LAE)。
总的说来,它是把目标值(Yi)与估计值(f(xi))的绝对差值的总和(S)最小化
:
M A E = ∑ i = 1 n ∣ y i − y i p 1 ∣ M A E={\sum_{i=1}^{n} \mid y_{i}-y_{i}^{p_{1}} \mid} MAE=i=1∑n∣yi−yip1∣
L2范数损失函数,也被称为最小平方误差(LSE)。
总的来说,它是把目标值(Yi)与估计值(f(xi))的差值的平方和(S)最小化
:
M S E = ∑ i = 1 n ( y i − y i p ) 2 M S E={\sum_{i=1}^{n}\left(y_{i}-y_{i}^{p}\right)^{2}} MSE=i=1∑n(yi−yip)2
可以看到L1跟MAE,L2跟MSE 差别就是少除了n,在很多参考资料上,这两者也没啥区别。相对应的优缺点也大致相同。
由上述的函数图像我们可以得出如下总结:
L1损失函数 | L2损失函数 |
---|---|
稳定的梯度 | 不稳定的梯度导 |
可以求得最优解(唯一) | 可以求得次优解(多个) |
相对鲁棒 | 相对不鲁棒 |
因为与最小平方相比,最小绝对值偏差方法的鲁棒性更好。
L1损失对于那些异常(离群)值没有那么敏感,而L2(用的是平方)异常值会被放大
(真实-预测大于1的情况下)。因此模型对于L2损失,想要去优化使得L2损失函数最小,就会过分的关注异常值,确牺牲了很多正常的样本
,因为正常的样本误差较小。
从损失函数的曲线可以看出,L1的斜率是确定的,梯度也就是确定的。L2的斜率离中心点(真实值)越远越大,越接近越小。这在越远离或越接近时都会带来一定的问题。
L1因为在最低点是不可导的,所以势必不会收敛到最低点,可能会在最优解附近震荡,而L2则是可以缓慢收敛至最优解的。
顾名思义,smooth L1说的是光滑之后的L1,前面说过了L1损失的缺点就是有折点。
Smooth L 1 = 0.5 x 2 , ∣ x ∣ < 1 ∣ x ∣ − 0.5 , x < − 1 or x > 1 \text { Smooth } \quad L_{1}=\begin{array}{l}0.5 x^{2}, \quad|x|<1 \\|x|-0.5, \quad x<-1 \text { or } x>1\end{array} Smooth L1=0.5x2,∣x∣<1∣x∣−0.5,x<−1 or x>1
上式中 x = y i − y i p x =y_{i}-y_{i}^{p} x=yi−yip
Smooth L1 Loss 结合了 L1 和 L2 的优点:早期使用 L1,梯度稳定,快速收敛,后期使用 L2,逐渐收敛到最优解。
Smooth L1能从两个方面限制梯度:
优点:
总结:
smooth L1,结合了L1与L2的优点,可以堪称他俩的合体