前情提要—— 网上关于目标检测框架——faster r_cnn有太多太好的博文,这是我在组会讲述faster r_cnn这一框架时被人问到的一个点,当时没答上来,因而会下好好百度和搜索一下研究了一下这个问题。框架
先看faster r_cnn的对bounding_box的回归损失函数:函数
百度百科的解释是:对于边框的预测是一个回归问题。一般能够选择平方损失函数(L2损失):f(x)=x^2。但这个损失对于比较大的偏差的惩罚很高。咱们能够采用稍微缓和一点绝对损失函数(L1损失):f(x)=|x|,它是随着偏差线性增加,而不是平方增加。但这个函数在0点处导数不惟一(这里应该是0点两边的导数,由于0点处导数不存在),所以可能会影响收敛。一个一般的解决办法是在0点附近使用平方函数使得它更加平滑。它被称之为平滑L1损失函数,它经过一个参数sigma来控制平滑的区域。spa
牛客网的解释:是当预测值与目标值相差很大时,L2 Loss的梯度为(x-t),容易产生梯度爆炸,L1 Loss的梯度为常数,经过使用Smooth L1 Loss,在预测值与目标值相差较大时,由L2 Loss转为L1 Loss能够防止梯度爆炸。blog