深度学习之L1 loss和L2 loss的区别

L1 loss和L2 loss的区别?

深度学习之L1 loss和L2 loss的区别_第1张图片
L1 loss:在这里插入图片描述
L2 loss: 在这里插入图片描述
smooth L1 loss: 在这里插入图片描述

L1 loss

l1 loss在零点不平滑,用的较少。一般来说,l1正则会制造稀疏的特征,大部分无用的特征的权重会被置为0。

(适合回归任务,简单的模型,由于神经网络通常解决复杂问题,很少使用。)

l2 loss

l2 loss:对离群点比较敏感,如果feature是unbounded的话,需要好好调整学习率,防止出现梯度爆炸的情况。l2正则会让特征的权重不过大,使得特征的权重比较平均。

(适合回归任务,数值特征不大,问题维度不高)

l1和l2

smooth l1 loss

smooth l1 loss修改零点不平滑问题,L1-smooth比l2 loss对异常值的鲁棒性更强。具有l1和l2的优点,当绝对差值小于1,梯度不至于太大,损失函数较平滑,当差别大的时候,梯度值足够小,较稳定,不容易梯度爆炸。

(回归,当特征中有较大的数值,适合大多数问题)
img
img

L2 损失函数 L1 损失函数 L2正则化 L1正则化
不是非常的鲁棒 鲁棒 计算效率高(有解析解) 在非稀疏情形下计算效率低
稳定解 不稳定解 非稀疏输出 稀疏输出
总是一个解 可能多个解 无特征选择 内置特征选择

L1不可导的时候该怎么办

当损失函数不可导,梯度下降不再有效,可以使用坐标轴下降法。
梯度下降是沿着当前点的负梯度方向进行参数更新;
而坐标轴下降法是沿着坐标轴的方向;
假设有m个特征个数,坐标轴下降法进行参数更新的时候,先固定m-1个值,然后再求另外一个的局部最优解,从而避免损失函数不可导问题。

使用Proximal Algorithm对L1进行求解,此方法是去优化损失函数上界结果。

你可能感兴趣的:(机器学习,深度学习,机器学习)