深度学习中常见的loss函数汇总

本文详细介绍了深度学习中常见的损失函数,包括回归损失(如MAE、MSE、Smooth L1、Huber loss)和分类损失(如0-1 loss、logistic loss、hinge loss、exponential loss),以及在识别、检测和分割任务中使用的损失函数。回归损失中,L1和L2损失各有优缺点,Smooth L1结合两者优点。分类损失中,0-1损失不便于优化,logistic loss常用于逻辑回归,hinge loss应用于SVM。此外,文章还讨论了Softmax Cross-Entropy、Focal loss、OHEM、Triplet loss、Contrastive loss和Center loss等,并介绍了IOU系列损失在目标检测中的应用,以及Dice loss在医学影像分割中的作用。
摘要由CSDN通过智能技术生成

  损失函数(Loss Function)分为经验风险损失函数结构风险损失函数,经验风险损失函数反映的是预测结果和实际结果之间的差别,结构风险损失函数则是经验风险损失函数加上正则项(L1或L2)。深度学习中的损失函数被用于模型参数的估计,通常作为学习准则与优化问题相联系,即通过最小化损失函数求解和评估模型。
  机器学习任务中的损失函数可以大体分为两种类型:回归损失分类损失。在此基础上,在深度学习任务中又发展了很多不同的损失函数,由于在网络训练过程中损失函数指导着网络的学习,因此选择合适的损失函数也很重要。常见的有下面几种:

  • 回归损失:平均绝对误差(MAE/L1损失),平均平方误差(MSE/L2损失),smooth L1 loss,Huber损失,log cosh loss,quantile loss;
  • 分类损失:0-1损失,logistic loss(对数损失),hinge loss(铰链损失),exponential loss(指数损失),KL散度;
  • 识别、检测和分割常用的损失:softmax cross-entropy loss,weighted cross-entropy loss,focal loss,OHEM,center loss,triplet loss,contrastive loss,L-softmax,LMCL,IOU loss,GIOU loss,DIOU loss,CIOU loss,dice loss。

回归损失

  1. MAE/L1 loss
    M A E = 1 n ∑ i = 1 n ∣ f ( x i ) − y i ∣ MAE = \frac1n\sum \limits_{i=1}^{n}|f(x_i)-y_i| MAE=n1i=1nf(xi)yi
    平均绝对误差(Mean Absolute Error,MAE)是对估计值和真实值之差取绝对值的平均值。由上图可以看出,(1)MAE曲线连续,但是在 f ( x i ) − y i = 0 f(x_i)-y_i=0 f(xi)yi=0 处不可导,求解效率低;(2)梯度较为稳定,但是即使损失很小梯度仍然保持不变,不利于模型的收敛;(3)对异常值更鲁棒(相比于L2 loss)。由于神经网络的问题较为复杂,因此很少使用,但是可以利用L1进行正则化,即将L1损失(权重1范数的和)加在其他损失的后面,作为正则项。正规化是防止过拟合的一种重要技巧,L1正则项的好处是能保持解的稀疏性,即为了使损失最小化,一些影响小的权重参数经过学习设置为0,可以用于特征选择。
  2. MSE/L2 loss
    M S E = 1 n ∑ i = 1 n ( f ( x i ) − y i ) 2 MSE = \frac1n\sum \limits_{i=1}^{n}(f(x_i)-y_i)^2 MSE=n1i=1n(f(xi)yi)2
    均方误差(Mean Square Error,MSE)是对估计值和真实值之差取平方和的平均值。由上图可以看出,(1)MSE是平滑函数、处处可导,因此在求解优化问题时有利于误差梯度的计算;(2)随着误差的减小,梯度也在减小,因此使用固定的学习速率,也能较快的收敛到最小值;(3)通过平方计算放大了估计值和真实值的距离,因此对于异常值带来很大的惩罚,从而降低正常值的预测效果;(4)误差很大时梯度也很大,在训练初期不稳定,容易梯度爆炸。L2进行正则化可以防止过拟合,在正则化后的梯度下降迭代公式中,会给权重参数乘以一个小于1的因子 1 − α λ m 1-\alpha\frac{\lambda}m 1αmλ,其中 λ \lambda λ为正则化参数,因此权重值减小,从而得到的模型越平滑。
  3. Smooth L1 loss
    S m o o t h   L 1 = 1 n ∑ i = 1 n { 0.5 ( f ( x i ) − y i ) 2 i f   ∣ f ( x i ) − y i ∣ < 1 ∣ f ( x i ) − y i ∣ − 0.5 o t h e r w i s e Smooth\space L1 = \frac1n\sum \limits_{i=1}^{n}\left\{ \begin{array}{rcl} 0.5(f(x_i)-y_i)^2 & &if \space {|f(x_i)-y_i| <1}\\ |f(x_i)-y_i|-0.5 & & {otherwise}\\ \end{array} \right. Smooth L1=n1i=1n{ 0.5(f(xi)yi)2f(xi)yi0.5if f(xi)yi<1otherwise
    Smooth L1 是L1和L2两种损失的结合,目前多用于目标检测中(例如Faster RCNN)的边框回归损失,能从两个方面限制梯度:(1)当预测框与 ground truth 差别过大时,梯度值不至于过大;(2)当预测框与 ground truth 差别很小时,梯度值足够小。
  4. Huber loss
    H u b e r   l o s s = 1 n ∑ i = 1 n { 1 2 ( f ( x i ) − y i ) 2 i f   ∣ f ( x i ) − y i ∣ ≤ δ δ ∣ f ( x i ) − y i ∣ − 1 2 δ 2 o t h e r w i s e Huber \space loss = \frac1n\sum \limits_{i=1}^{n}\left\{ \begin{array}{rcl} \frac12(f(x_i)-y_i)^2 & &if \space {|f(x_i)-y_i| \leq \delta}\\ \delta|f(x_i)-y_i|- \frac12\delta^2 & & {otherwise}\\ \end{array} \right. Huber loss=n1i=1n{ 21(f(xi)yi)2δf(xi)yi21δ2
  • 16
    点赞
  • 149
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值