机器学习

Smooth L1 Loss

2021-08-20  本文已影响0人  西北小生_

1. L1 Loss:

L1(y,f(x))=\frac{1}{n} \sum_{i=1}^{n}|f(x_i)-y_i| \tag{1}
x=f(x_i)-y_i,忽略求和及系数,则有L1(x)=|x|,其导数为
\frac{\partial L1}{\partial x}=\pm 1, x \ne 0 \tag{2}
随机梯度下降法更新权重为:
\begin{aligned} w&=w-\lambda \frac{\partial L}{\partial x} \\ &=w \pm \lambda \end{aligned} \tag{3}
其中\lambda是学习率。由此可知,不管预测值f(x)和真实值y的差值大小x如何变化,反向传播时其梯度不变。除非调整学习率大小,不然每次权重更新的幅度不变。

理想中的梯度变化应该是:训练初期x值较大,则梯度也大,可以加快模型收敛;训练后期x值较小,梯度也应小,使模型收敛到全局(或局部)极小值。

L1 Loss 优点:梯度值稳定,使得训练平稳;不易受离群点(脏数据)影响,所有数据一视同仁。
L1 Loss 缺点x=0处不可导,可能影响收敛;x值小时梯度大,很难收敛到极小值(除非在x值小时调小学习率,以较小更新幅度)。

图1 LI Loss

2. L2 Loss

L2(y,f(x))=\frac{1}{n}\sum_{i=1}^{n}(f(x_i)-y_i)^2 \tag{4}
x=f(x_i)-y_i,忽略求和及系数,则有L1(x)=x^2,其导数为
\frac{\partial L2}{\partial x}=2x \tag{5}
可知,对于L2 Loss来说,预测值和真实值的差值x越大,梯度越大;x越小,则梯度值越小。

L2 Loss 优点:平滑可导;x较大时梯度大,收敛快;x较小时梯度小,容易收敛至极值点。
L2 Loss 缺点:训练初期x较大导致梯度大,更新幅度太大使得训练不稳定,容易出现梯度爆炸现象;受离群点(脏数据)影响大,容易在离群点的干扰下大幅更新,使拟合函数偏向离群点而导致准确率低。

图2 L2 Loss

3. Smooth L1 Loss

SL1(x)= \begin{cases} 0.5x^2 & if \quad |x|<1\\ |x|-0.5 & otherwise \end{cases} \tag{6}
从上式可知Smooth L1 Loss 是一个分段函数,它综合了 L1 Loss 和 L2 Loss 两个损失函数的优点,即在x较小时采用平滑地 L2 Loss,在x较大时采用稳定的 L1 Loss。

公式(6)衡量x的较大和较小的分界线是x=1,当然也可以采用其它值来做这个临界点。设\delta作为衡量预测值和真实值的差值x的阈值,则公式(6)变为更一般的形式:
SL1(x)= \begin{cases} 0.5(\delta x)^2 & if\quad |x|<\frac{1}{\delta^2} \\ |x|-\frac{0.5}{\delta^2} & otherwise \end{cases}

图 3 Smooth L1 Loss
上一篇 下一篇

猜你喜欢

热点阅读