【Deep Learning】L1 Loss、L2 Loss、Smooth L1 Loss

发布时间 2023-04-04 20:06:17作者: AirCL

L1 Loss、L2 Loss、Smooth L1 Loss

L1 Loss

  1. L1 Loss别称:L1 范数损失、最小绝对值偏差(LAD)、最小绝对值误差(LAE)。最常看到的MAE也是指L1 Loss。它是把目标值与模型输出(估计值)做绝对值得到的误差。
  2. 什么时候使用?
    回归任务简单的模型由于神经网络通常是解决复杂问题,所以很少使用。

L2 Loss

  1. L2 Loss别称:L2 范数损失、最小均方值偏差(LSD)、最小均方值误差(LSE)。最常看到的MSE也是指L2 Loss,PyTorch中也将其命名
    torch.nn.MSELoss。它是把目标值与模型输出(估计值)做差然后平方得到的误差。
  2. 什么时候使用?
    回归任务数值特征不大问题维度不高。

Smooth L1 Loss


平滑版的L1 Loss。仔细观察可以看到,当预测值和ground truth差别较小的时候(绝对值差小于1),其实使用的是L2 Loss;而当差别大的时候,是L1 Loss的平移。Smoooth L1 Loss其实是L2 Loss和L1 Loss的结合,它同时拥有L2 Loss和L1 Loss的部分优点。

  1. 当预测值和ground truth差别较小的时候(绝对值差小于1),梯度不至于太大。(损失函数相较L1 Loss比较圆滑)
  2. 当差别大的时候,梯度值足够小(较稳定,不容易梯度爆炸)。

什么时候使用?

  1. 回归
  2. 当特征中有较大的数值
  3. 适合大多数问题