smooth L1损失函数主要用来回归2D or 3D 的BBOX。
smooth L1 loss能从两个方面限制梯度:
当预测框与 ground truth 差别过大时,梯度值不至于过大;
当预测框与 ground truth 差别很小时,梯度值足够小。
如下:
对x进行求导
可以看到x比较小的时候,smooth L1的梯度也很小。然而,x比较大的时候,对x的梯度的绝对值上限就是1,很好控制了网络参数,避免梯度爆炸。
参考
faster RCNN 和 SSD 中为什么用smooth L1 loss,和L2有什么区别?