0


一文理解多标签分类损失函数ASL(Asymmetric Loss)

文章目录

Asymmetric Loss翻译过来是不对称损失,也就是正样本、负样本不对称损失,是专门针对正负样本不均衡设计的,而多标签分类的典型问题就是正负样本不对称的问题,因此ASL在多标签分类中应用广泛。

一、二元交叉熵

先从分类传统的损失函数——二元交叉熵开始着手。

二元交叉熵(Binary Cross-Entropy,BCE)是一种常用于二分类问题中的损失函数,尤其是在深度学习和机器学习模型中。它衡量的是模型的预测概率与实际标签之间的差异。

1.1 二元交叉熵的定义

假设我们有一组数据,其中每个样本

      x 
     
    
      i 
     
    
   
  
    x_i 
   
  
xi​的真实标签  
 
  
   
    
    
      y 
     
    
      i 
     
    
   
  
    y_i 
   
  
yi​是 0 或 1(表示负类或正类)。模型输出的预测概率为 
 
  
   
    
     
     
       y 
      
     
       ^ 
      
     
    
      i 
     
    
   
  
    \hat{y}_i 
   
  
y^​i​ ,表示样本属于正类的概率。二元交叉熵的损失函数可以表示为:

  
   
    
    
      L 
     
    
      = 
     
    
      − 
     
     
     
       1 
      
     
       N 
      
     
     
     
       ∑ 
      
      
      
        i 
       
      
        = 
       
      
        1 
       
      
     
       N 
      
     
     
     
       [ 
      
      
      
        y 
       
      
        i 
       
      
     
       ⋅ 
      
     
       log 
      
     
       ⁡ 
      
     
       ( 
      
      
       
       
         y 
        
       
         ^ 
        
       
      
        i 
       
      
     
       ) 
      
     
       + 
      
     
       ( 
      
     
       1 
      
     
       − 
      
      
      
        y 
       
      
        i 
       
      
     
       ) 
      
     
       ⋅ 
      
     
       log 
      
     
       ⁡ 
      
     
       ( 
      
     
       1 
      
     
       − 
      
      
       
       
         y 
        
       
         ^ 
        
       
      
        i 
       
      
     
       ) 
      
     
       ] 
      
     
    
   
     L = -\frac{1}{N} \sum_{i=1}^{N} \left[ y_i \cdot \log(\hat{y}_i) + (1 - y_i) \cdot \log(1 - \hat{y}_i) \right] 
    
   
 L=−N1​i=1∑N​[yi​⋅log(y^​i​)+(1−yi​)⋅log(1−y^​i​)]

其中:

  •                                     N                                  N                     N是样本数量。
    
  •                                                y                               i                                            y_i                     yi​是真实标签(0 或 1)。
    
  •                                                            y                                  ^                                          i                                            \hat{y}_i                     y^​i​是模型预测的概率值(在 0 和 1 之间)。
    

解释:

  • 如果 y i = 1 y_i = 1 yi​=1(即样本属于正类),损失函数就会简化为 − log ⁡ ( y ^ i ) -\log(\hat{y}_i) −log(y^​i​)。当模型的预测概率 y ^ i \hat{y}_i y^​i​越接近 1(即正确预测的概率高),损失就越小;如果预测概率接近 0(即错误预测),损失会非常大。
  • 如果 y i = 0 y_i = 0 yi​=0(即样本属于负类),损失函数就会简化为 − log ⁡ ( 1 − y ^ i ) -\log(1 - \hat{y}_i) −log(1−y^​i​)。当模型预测的 y ^ i \hat{y}_i y^​i​越接近 0(即正确预测的概率高),损失越小;如果预测概率接近 1(即错误预测),损失会很大。

log(x)的图像:
在这里插入图片描述

1.2 应用

二元交叉熵常用于处理二分类问题,如垃圾邮件检测、二元图像分类、信用卡欺诈检测等。在深度学习中,它通常与 sigmoid 激活函数结合使用,也就是sigmoid+bce,以确保模型输出的概率值在 0 和 1 之间。

1.3 二元交叉熵的特点

  • 对极端错误预测的惩罚较大:当模型的预测结果与真实标签相差较大时,损失值会急剧增加。这促使模型在训练过程中尽量减少错误预测的概率。
  • 对数运算:二元交叉熵使用对数函数来计算损失,因此它能够在概率值接近边界(0 或 1)时放大错误,帮助模型更好地学习。

1.4 总结

二元交叉熵是二分类问题中的重要损失函数,通过衡量模型预测与实际标签之间的差异,它指导模型参数的优化,从而提高模型的预测准确性。

二、焦点损失函数

Focal Loss (焦点损失函数)是一种专门设计用于处理类别不平衡问题的损失函数。它是对标准二元交叉熵(Binary Cross-Entropy, BCE)损失的扩展,常用于目标检测等任务中,特别是当大多数样本属于背景类或易分类的类时。

2.1 背景与动机

在许多分类任务中,特别是物体检测中,正负样本之间往往存在显著的不平衡。通常,绝大多数样本属于背景类(即负类),而少量样本属于目标类(即正类)。这种不平衡会导致模型更关注那些占多数的负类样本,忽略少数的正类样本,从而影响模型的性能。

2.2 Focal Loss 的定义

Focal Loss 通过为难以分类的样本分配更大的权重,从而让模型更加关注这些样本。其公式如下:

      F 
     
    
      L 
     
    
      ( 
     
     
     
       p 
      
     
       t 
      
     
    
      ) 
     
    
      = 
     
    
      − 
     
     
     
       α 
      
     
       t 
      
     
    
      ( 
     
    
      1 
     
    
      − 
     
     
     
       p 
      
     
       t 
      
     
     
     
       ) 
      
     
       γ 
      
     
    
      log 
     
    
      ⁡ 
     
    
      ( 
     
     
     
       p 
      
     
       t 
      
     
    
      ) 
     
    
   
     FL(p_t) = - \alpha_t (1 - p_t)^\gamma \log(p_t) 
    
   
 FL(pt​)=−αt​(1−pt​)γlog(pt​)

其中:

  • $p_t 是模型对样本 是模型对样本 是模型对样本t 的预测概率,如果样本是正类,则 的预测概率,如果样本是正类,则 的预测概率,如果样本是正类,则p_t = \hat{y}_i $;如果是负类,则 p t = 1 − y ^ i p_t=1 -\hat{y}_i pt​=1−y^​i​
  •                                                α                               t                                            \alpha_t                     αt​是一个平衡因子,用于平衡正负样本的重要性,常设置为常数,或者通过实验调整。
    
  •                                     γ                                  \gamma                     γ是调节因子,用于调整难易样本的权重,通常取值范围在 0 到 5 之间。
    

**可以看到,其实focal loss比bce就多了两个参数,

       α 
      
     
       t 
      
     
    
   
     \alpha_t 
    
   
 αt​用来平衡正负样本,以及 
  
   
    
    
      γ 
     
    
   
     \gamma 
    
   
 γ用来调整难例样本的权重。通过调节 
  
   
    
    
      γ 
     
    
   
     \gamma 
    
   
 γ使得可以把预测值低的样本的loss比预测值高的样本的loss的差距拉的更远,而预测值低的样本就是所谓的难例。**

在这里插入图片描述

2.3 Focal Loss 的特点

  1. 减小易分类样本的权重:当 p t p_t pt​较大(即容易分类的样本), ( 1 − p t ) γ (1 - p_t)^\gamma (1−pt​)γ的值会很小,从而降低了该样本对总损失的贡献。这使得模型更专注于那些难以分类的样本。
  2. 增强难分类样本的权重:当 p t p_t pt​较小(即难以分类的样本), ( 1 − p t ) γ (1 - p_t)^\gamma (1−pt​)γ的值较大,导致该样本的损失被放大。这样可以让模型在训练过程中更多地关注这些难以分类的样本。
  3. 解决类别不平衡问题:通过调节因子 γ \gamma γ和 α t \alpha_t αt​,Focal Loss 能够有效应对类别不平衡问题。 α t \alpha_t αt​帮助平衡正负样本的总体贡献,而 γ \gamma γ则帮助模型更好地处理困难样本。

2.4 与二元交叉熵的关系

     γ 
    
   
     = 
    
   
     0 
    
   
  
    \gamma = 0 
   
  
γ=0时,Focal Loss 退化为标准的二元交叉熵损失。因此,Focal Loss 可以看作是对二元交叉熵的一个加权版本,通过调节参数来应对类别不平衡的问题。

2.5 应用

Focal Loss 广泛应用于目标检测任务,如 RetinaNet 中。它在处理类别不平衡、样本难度不均的情况下非常有效,尤其是在那些大多数样本属于背景类而少数样本属于目标类的任务中。

2.6 总结

Focal Loss 是一种强大的损失函数,特别适合于处理类别不平衡和难以分类的样本。它通过对不同样本施加不同的权重,帮助模型更好地学习少数类或困难样本,从而提高整体分类性能。

三、不对称损失

Asymmetric Loss(不对称损失函数,ASL)是一种专门设计用于解决类别不平衡问题的损失函数,特别适用于多标签分类任务。在这类任务中,不同标签之间往往存在显著的不平衡:某些标签可能频繁出现,而另一些标签则非常罕见。ASL 通过对正负样本分别进行不同处理,从而提高模型在处理不平衡数据时的表现。

3.1 ASL 的动机与背景

在多标签分类问题中,标签的不平衡性会导致模型在训练时更关注那些频繁出现的标签,而忽略那些稀有的标签。这种情况下,标准的损失函数(如二元交叉熵)可能不足以帮助模型有效地学习稀有标签的特征,从而影响模型的整体性能。

3.2 ASL 的定义

Asymmetric Loss(ASL)是一种专门为解决多标签分类任务中的类别不平衡问题而设计的损失函数。它通过引入不对称的处理方式和可调的超参数来分别处理正样本和负样本,从而使模型能够更好地识别那些少见或难以分类的类别。
ASL 由两部分组成:正样本的损失和负样本的损失。两者的计算方式不同,体现了对正负样本的不同处理策略。

3.2.1 正样本的损失

       L 
      
     
       pos 
      
     
    
      = 
     
    
      − 
     
     
     
       y 
      
     
       i 
      
     
    
      ⋅ 
     
    
      ( 
     
    
      1 
     
    
      − 
     
     
     
       p 
      
     
       i 
      
     
     
     
       ) 
      
      
      
        γ 
       
      
        + 
       
      
     
    
      ⋅ 
     
    
      log 
     
    
      ⁡ 
     
    
      ( 
     
     
     
       p 
      
     
       i 
      
     
    
      ) 
     
    
   
     L_{\text{pos}} = - y_i \cdot (1 - p_i)^{\gamma_+} \cdot \log(p_i) 
    
   
 Lpos​=−yi​⋅(1−pi​)γ+​⋅log(pi​)
  •                                                y                               i                                            y_i                     yi​:样本                                        i                                  i                     i的真实标签。正样本时                                                   y                               i                                      =                            1                                  y_i = 1                     yi​=1。
    
  •                                                p                               i                                            p_i                     pi​:模型预测样本                                        i                                  i                     i属于正类的概率。
    
  •                                                γ                               +                                            \gamma_+                     γ+​:正样本的调节因子,用于控制模型对容易分类的正样本的权重。正样本的预测概率越接近 1,损失越小。 这部分损失通过                                        (                            1                            −                                       p                               i                                                 )                                           γ                                  +                                                       (1 - p_i)^{\gamma_+}                     (1−pi​)γ+​对正样本的损失进行加权,减少模型对那些容易分类的正样本的关注,从而将更多注意力集中在更具挑战性的正样本上。
    

3.2.2 负样本的损失

       L 
      
     
       neg 
      
     
    
      = 
     
    
      − 
     
    
      ( 
     
    
      1 
     
    
      − 
     
     
     
       y 
      
     
       i 
      
     
    
      ) 
     
    
      ⋅ 
     
     
     
       p 
      
     
       m 
      
      
      
        γ 
       
      
        − 
       
      
     
    
      ⋅ 
     
    
      log 
     
    
      ⁡ 
     
    
      ( 
     
    
      1 
     
    
      − 
     
     
     
       p 
      
     
       m 
      
     
    
      ) 
     
    
   
     L_{\text{neg}} = - (1 - y_i) \cdot p_m^{\gamma_-} \cdot \log(1 - p_m) 
    
   
 Lneg​=−(1−yi​)⋅pmγ−​​⋅log(1−pm​)
  •                                     (                            1                            −                                       y                               i                                      )                                  (1 - y_i)                     (1−yi​):负样本的标签,负样本时$ y_i = 0$。
    
  •                                                p                               m                                            p_m                     pm​:经过修正的概率,定义为                                                   p                               m                                      =                            max                            ⁡                            (                                       p                               i                                      −                            m                            ,                            0                            )                                  p_m = \max(p_i - m, 0)                     pm​=max(pi​−m,0)。
    
  •                                     m                                  m                     m:概率边界,控制负样本的修正概率。它是一个可调超参数,                                        m                            ≥                            0                                  m \geq 0                     m≥0。
    
  •                                                γ                               −                                            \gamma_-                     γ−​:负样本的调节因子,用于加大模型对难以分类的负样本的惩罚力度。 在负样本的损失中,首先对预测概率$ p_i                                        进行了修正,通过减去一个概率边界                                  进行了修正,通过减去一个概率边界                     进行了修正,通过减去一个概率边界m                                        来过滤掉预测概率低于                                  来过滤掉预测概率低于                     来过滤掉预测概率低于m$的负样本。这种处理方式让模型将注意力集中在那些具有较高误分类风险的负样本上。
    

3.2.3 概率边界m

概率边界

     m 
    
   
  
    m 
   
  
m是一个关键的超参数,它用于调整模型对负样本的关注度。具体来说,只有当模型预测的概率 
 
  
   
    
    
      p 
     
    
      i 
     
    
   
  
    p_i 
   
  
pi​超过  
 
  
   
   
     m 
    
   
  
    m 
   
  
m时,负样本的损失才会被计算;否则,负样本的损失将为零。通过调整 
 
  
   
   
     m 
    
   
  
    m 
   
  
m,可以控制模型对不同类别负样本的敏感度。

**所以,asl的升级一方面是把

      γ 
     
    
   
     \gamma 
    
   
 γ分为正样本和负样本,区分开了,可以分别调节正负样本的难例程度, 
  
   
    
    
      γ 
     
    
   
     \gamma 
    
   
 γ越大说明难例程度越强,也就是你认为样本中有更多的难例;另一方面是负样本的修正概率机制,把概率较小的负样本直接清零了,也就是说容易的负样本忽略了,专注于难分的负样本。**

在这里插入图片描述

3.3 ASL 的特点

  1. 不对称处理:ASL 通过不对称的方式分别处理正负样本,使得模型能够针对类别不平衡问题进行优化。正样本和负样本的不同调节因子 γ + \gamma_+ γ+​ 和 γ − \gamma_- γ−​可以根据具体任务进行调整,从而提高模型在多标签分类任务中的性能。
  2. 处理类别不平衡:ASL 特别适用于处理类别不平衡问题。通过引入概率边界 m m m,模型可以忽略一些容易分类的负样本,而专注于那些难以分类的正样本和负样本,从而有效应对类别不平衡的挑战。
  3. 超参数可调:ASL 中的 γ + \gamma_+ γ+​、 γ − \gamma_- γ−​ 和 m m m都是可调的超参数,允许用户根据具体的任务需求进行优化调整,从而使得 ASL 能够适应不同的多标签分类场景。

3.4 应用场景

ASL 广泛应用于需要处理多标签分类和类别不平衡问题的场景,如:

  • 医学图像分析:用于检测稀有疾病或病灶。
  • 自动驾驶:用于检测少见但关键的物体或事件。
  • 自然语言处理:在情感分析或多标签分类任务中识别少见的情感或主题。

3.5 总结

Asymmetric Loss 是一种强大且灵活的损失函数,特别适合处理多标签分类任务中的类别不平衡问题。通过不对称地处理正负样本损失,并引入概率边界

     m 
    
   
  
    m 
   
  
m等超参数,ASL 能够帮助模型更好地学习和识别稀有或难以分类的样本,从而提升分类任务的整体性能。


  
   
    
     
     
       ∼ 
      
      
      
        O 
       
      
        n 
       
      
        e 
       
      
          
       
      
        p 
       
      
        e 
       
      
        r 
       
      
        s 
       
      
        o 
       
      
        n 
       
      
          
       
      
        g 
       
      
        o 
       
      
          
       
      
        f 
       
      
        a 
       
      
        s 
       
      
        t 
       
      
        e 
       
      
        r 
       
      
        , 
       
      
          
       
      
        a 
       
      
          
       
      
        g 
       
      
        r 
       
      
        o 
       
      
        u 
       
      
        p 
       
      
          
       
      
        o 
       
      
        f 
       
      
          
       
      
        p 
       
      
        e 
       
      
        o 
       
      
        p 
       
      
        l 
       
      
        e 
       
      
          
       
      
        c 
       
      
        a 
       
      
        n 
       
      
          
       
      
        g 
       
      
        o 
       
      
          
       
      
        f 
       
      
        u 
       
      
        r 
       
      
        t 
       
      
        h 
       
      
        e 
       
      
        r 
       
      
     
    
      ∼ 
     
    
   
     \sim_{One\ person\ go\ faster,\ a\ group\ of\ people\ can\ go\ further}\sim 
    
   
 ∼One person go faster, a group of people can go further​∼

本文转载自: https://blog.csdn.net/ThomasCai001/article/details/141123223
版权归原作者 Thomas_Cai 所有, 如有侵权,请联系我们删除。

“一文理解多标签分类损失函数ASL(Asymmetric Loss)”的评论:

还没有评论