均方误差(Mean Square Error,MSE)和平均绝对误差(Mean Absolute Error,MAE) 是回归中最常用的两个损失函数,但是其各有优缺点。为了避免MAE和MSE各自的优缺点,在Faster R-CNN和SSD中使用SmoothL1SmoothL1损失函数,当误差在[−1,1][−1,1] 之间时,SmoothL1SmoothL1损失函数近似于MSE,能够快速的收敛;在其他的区间则近似于MAE,其导数为±1±1,不会对离群值敏感。
本文再介绍几种回归常用的损失函数
- Huber Loss
- Log-Cosh Loss
- Quantile Loss
Huber Loss
Huber损失函数(SmoothL1SmoothL1损失函数是其的一个特例)整合了MAE和MSE各自的优点,并避免其缺点
Lδ(y,f(x))={12(y−f(x))2δ∣y−f(x)∣−12δ2∣y−f(x)∣≤δotherwiseLδ(y,f(x))={12(y−f(x))2∣y−f(x)∣≤δδ∣y−f(x)∣−12δ2otherwise
δδ 是Huber的一个超参数,当真实值和预测值的差值∣y−f(x)∣≤δ∣y−f(x)∣≤δ 时,Huber就是MSE;当差值在(−∞,δ)(−∞,δ)或者 (δ,+∞)(δ,+∞) 时,Huber就是MAE。这样,当误差较大时,使用MAE对离群点不那么敏感;在误差较小时使用MSE,能够快速的收敛;
这里超参数δδ的值的设定就较为重要,和真实值的差值超过该值的样本为异常值。误差的绝对值小于δδ 时,使用MSE;当误差大于