机器学习常用loss:L1 loss、L2 loss、smothL1 loss、huber loss

常用机器学习损失函数解析
本文深入探讨了机器学习中常见的损失函数,包括L1、L2、Smooth L1和Huber Loss,详细分析了各自的数学公式、导数及特性。通过对比不同损失函数的特点,帮助读者理解它们在处理异常值和回归问题时的表现。

常用loss:

L1:
  • 公式:L1=∑i=1n∣yi−f(xi)∣L1=\sum_{i=1}^{n}\left|y_{i}-f\left(x_{i}\right)\right|L1=i=1nyif(xi)
  • 导数:dL1(x)dx={1 if x>0−1 otherwise \frac{\mathrm{d} L_{1}(x)}{\mathrm{d} x}=\left\{\begin{array}{ll}{1} & {\text { if } x > 0} \\ {-1} & {\text { otherwise }}\end{array}\right.dxdL1(x)={11 if x>0 otherwise 

L1 loss在x=0的时候不可导,但实际使用中一般将其导数定义为0

L2:
  • 公式:L2=∑i=1n(yi−f(xi))2L2=\sum_{i=1}^{n}\left(y_{i}-f\left(x_{i}\right)\right)^{2}L2=i=1n(yif(xi))2
  • 导数:dL2(x)dx=2x\frac{\mathrm{d} L_{2}(x)}{\mathrm{d} x}=2 xdxdL2(x)=2x
  • 特性:对离群点比较敏感,需要自习调整学习率,防止出现梯度爆炸的情况(因为两端值很大);
smooth L1:
  • 公式:smooth⁡L1(x)={0.5x2 if ∣x∣<1∣x∣−0.5 otherwise \operatorname{smooth}_{L_{1}}(x)=\left\{\begin{array}{ll}{0.5 x^{2}} & {\text { if }|x|<1} \\ {|x|-0.5} & {\text { otherwise }}\end{array}\right.smoothL1(x)={0.5x2x0.5 if x<1 otherwise 
  • 导数:dsmooth⁡L1dx={x if ∣x∣<1±1 otherwise \frac{\mathrm{d} \operatorname{smooth}_{L_{1}}}{\mathrm{d} x}=\left\{\begin{array}{ll}{x} & {\text { if }|x|<1} \\ { \pm 1} & {\text { otherwise }}\end{array}\right.dxdsmoothL1={x±1 if x<1 otherwise 
Huber loss:
  • 公式:Lδ(y,f(x))={12(y−f(x))2, for ∣y−f(x)∣≤δδ⋅(∣y−f(x)∣−12δ), otherwise L_{\delta}(y, f(x))=\left\{\begin{array}{ll}{\frac{1}{2}(y-f(x))^{2},} & {\text { for }|y-f(x)| \leq \delta} \\ {\delta \cdot\left(|y-f(x)|-\frac{1}{2} \delta\right),} & {\text { otherwise }}\end{array}\right.Lδ(y,f(x))={21(yf(x))2,δ(yf(x)21δ), for yf(x)δ otherwise 
  • 优点是能增强平方误差损失函数(MSE)对离群点的鲁棒性,用于回归问题。δ是一个可以自己设置的参数。
    当预测偏差小于 δ 时,它采用平方误差,
    当预测偏差大于 δ 时,采用的线性误差。
    [外链图片转存失败(img-TExue3Iw-1568215766580)(./1567858938658.png)]
    如上图绿色部分为huber loss。
    [外链图片转存失败(img-kAJeSxmv-1568215766580)(./1567846985700.png)]
说明

L1loss在零点不平滑,学习慢;
L2loss学习快,因为是平方增长,但是当预测值太大的时候,会在loss中占据主导位置(如真实值为1,预测多次,有一次预测值为100,其余预测为2);
Smooth L1 Loss 相比L1修改零点不平滑问题,而且在x较大的时候不像L2对异常值敏感,是一个缓慢变化的loss;
Huber loss增强L2对离群点的鲁棒性,因为偏差大的时候变成线性增长;
在这里插入图片描述
上图绿色部分为huber loss,紫色部分为L2loss;
在这里插入图片描述
上图为smooth L1 loss和L2 loss的导数对比,在两端smooth L1 导数恒定为1,而L2 loss会一直上升;

另外L1和L2范数常用于正则化项:

L1正则会制造稀疏的特征,大部分无用特征的权重会被置为0,有特征选择作用;
L2正则会让特征的权重不过大,使得特征的权重比较平均。
[外链图片转存失败(img-0k6CEv0q-1568215766580)(./1567866846428.png)]
上图为1范数和2范数的图像,可以看出L1正则倾向于选择坐标轴上的参数(即出现0为稀疏解),L2正则倾向于选择均匀参数;

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值