L1 loss

L1 loss常用别称:

  • L1范数损失
  • 最小绝对偏差(LAD)
  • 平均绝对值误差(MAE)
    在这里插入图片描述
    其中,yi是真实值,f(xi)是预测值,n是样本点个数

优缺点?

  • 优点:无论对于什么样的输入值,都有着稳定的梯度,不会导致梯度爆炸问题,具有较为稳健性的解
  • 缺点:在中心点是折点,不能求导,梯度下降时要是恰好学习到w=0就没法接着进行了

什么时候使用?

  1. 回归任务
  2. 简单模型
  3. 神经网络通常比较复杂,直接使用L1 loss作为损失函数的非常少

L2 loss

L2 loss常用别称:

  • L2范数损失
  • 最小均方误差(LSE)
  • 均方误差(MSE)
    在这里插入图片描述
    其中,yi是真实值,f(xi)是预测值,n是样本点个数

优缺点?

  • 优点:各点都连续光滑,方便求导,具有较为稳定的解
  • 缺点:不是特别的稳健,因为当函数的输入值距离真实值较远的时候,对应loss值很大在两侧,则使用梯度下降法求解的时候梯度很大,可能导致梯度爆炸

什么时候使用?

  1. 回归任务
  2. 数值特征不大(防止loss太大,继而引起梯度大,梯度爆炸)
  3. 问题维度不高(loss本身比较简单,高纬度的还是得要更复杂的loss支撑)

Smooth L1 loss

平滑版的L1 loss
在这里插入图片描述
分析一下,当预测值f(xi)和真实值yi差别较小的时候(绝对值差小于1),其实使用的是L2 loss;差别大的时候,使用的是L1 loss的平移。因此,Smooth L1 loss其实是L1 loss 和L2 loss的结合,同时拥有两者的部分优点:

  1. 真实值和预测值差别较小时(绝对值差小于1),梯度也会比较小(损失函数比普通L1 loss在此处更圆滑)
  2. 真实值和预测值差别较大时,梯度值足够小(普通L2 loss在这种位置梯度值就很大,容易梯度爆炸)
    在这里插入图片描述

什么时候使用?

  1. 回归任务
  2. 特征中有较大数值
  3. 适合大多数问题(用的最多!)

三者区别

(1)L1 loss在零点不平滑,此处不可导,所以在w=0时没法接着梯度下降了,用的少
(2)L2 loss对离群点比较敏感,离群点处的梯度很大,容易梯度爆炸
(3)smooth L1 loss结合了L1和L2的优点,修改了零点不平滑问题,且比L2 loss对异常值的鲁棒性更强


常见问题解释

一、L1 loss、L1正则、L1范数有何区别?

L1范数:
在这里插入图片描述
L1 loss和L1 正则都使用了L1范数,L1 loss是指对预测值和真实值的差值使用L1范数计算生成的一个损失函数;L1正则是指损失函数之后单独加了一项,这一项是对所有的权重参数w进行L1范数的运算。

两者只是使用了同一种运算方式,但并不是同一个东西,L2同理(注意,L2正则项是L2范数的平方)。

二、L1正则为何会引起特征稀疏?

因为L1正则会使得大部分无用特征的权重被置0,这源于公式特性,解释如下:

(1)这是一个L2 loss加上一个L1正则或L2正则
在这里插入图片描述

(2)梯度下降法优化时,会这样更新参数
在这里插入图片描述
(3)对参数w求导
在这里插入图片描述
(4)下面是L1正则、L2正则的原函数图像和求导之后的函数图像
在这里插入图片描述
在这里插入图片描述
(5)先看L1的,在梯度更新时,无论L1的大小是多少,梯度都是1或者-1,所以每次更新时,它都是固定步长向0前进
在这里插入图片描述
(6)再看L2,梯度越靠近0,就会越小
在这里插入图片描述
(7)也就是说加了L1正则后,经过一定学习步数后w是有可能变为0的,而L2不可能,因为w = w - αw,每次都是减去的原始w的一个比例,永远不会减到0。L1正则中由于很多无用的w可能变为0,则乘上对应位置特征后,对应位置特征也变成0。

因此说L1会造成特征稀疏!

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐