Multi Label Classification with Missing Labels(MLML)的几种loss设计

多标签学习这个方向问题比较多,可以参考多标签学习的新趋势(2021 Survey TPAMI) 和 部分标签学习和缺失标签学习到底什么异同? 这两篇偏综述性质的解释。本文重点解释下面几个重点问题:

Multi Label Classification with Missing Labels(MLML)和Partial Multi-Label Learning(PML)的区别

  • MLML重点在Missing Labels,一张图标注员一般只打标少量实体,大量的实体miss掉了,产生了大量的False Negative cases。
  • PML重点在很多信息不明确,很难标。例如下面图,诸如Tree、Lavender这些标签相对是比较简单的。但是有些标签到底有没有,是比较难以确定的,对于某些标注者,可能出现:“这张图片看起来是在法国拍的,好像也可能是意大利?”,这种情况称之为Ambiguous。PML希望把所有的ambiguous都标出来,所以PML选择的是让标注者提供所有可能的标签,当然加了一个较强的假设:所有的标签都应该被包含在候选标签集中

MLML的loss设计

刚提到MLML的问题在于大量正例标签miss掉了,有不少False Positive,从loss推导角度来分析下这个问题

Preliminary

MLML问题一般理解为针对每一个label进行one-vs.-rest的二分类:

  • 对于多分类,假设存在n类,那么对于每个样本经过神经网络会出n个logits,这n个logits过softmax得到和为1的值再过NLL的loss,就是CrossEntropy,详细可以参考信息熵 条件熵 交叉熵 联合熵 相对熵 KL散度 SCE MAE 互信息(信息增益)里的推导,所以 C E ( P , Q ) = − ∑ i ∈ [ 0 , n − 1 ] p i l o g q i CE(P,Q)=-\sum_{i \in [0,n-1]}p_ilogq_i CE(P,Q)=i[0,n1]pilogqi,一般 p i p_i pi是label, q i q_i qi是经过softmax后的结果。

  • 对于二分类,对于每个样本经过神经网络可以只出一个logit,那么这个logit只过sigmoid得到p就可以了,都没softmax啥事。但算CE loss需要另外一个logit归一化的结果,也就是1-p,也需要另外一个label就是1-y。所以到二分类里 C E ( P , Q ) = − ∑ i ∈ [ 0 , 1 ] p i l o g q i = − y l o g p − ( 1 − y ) l o g ( 1 − p ) CE(P,Q)=-\sum_{i \in [0,1]}p_ilogq_i=-ylogp-(1-y)log(1-p) CE(P,Q)=i[0,1]pilogqi=ylogp(1y)log(1p),y是label,p是经过sigmoid后的结果。

在Simple and Robust Loss Design for Multi-Label Learning with Missing Labels一文中,Loss被一般化地定义为下面表达式,值得注意的是K是表示有K个二分类,而不是K=2, y i y_i yi的取值是0或者1
L = − ∑ i = 1 K ( y i L i + + ( 1 − y i ) L i − ) L= -\sum_{i=1}^K(y_iL_i^++(1-y_i)L_i^-) L=i=1K(yiLi++(1yi)Li)
如果是BCE就是下面表达式, p i p_i pi表示的是第i个二分类经过sigmoid后只出了一个值 p i = σ ( x i ) = 1 1 + e − x i p_i=\sigma(x_i)=\frac{1}{1+e^{-x_i}} pi=σ(xi)=1+exi1,其中 x i x_i xi就是经过神经网络后第i个二分类只出了一个值
L = − ∑ i = 1 K ( y i L i + + ( 1 − y i ) L i − ) L i + = l o g p i L i − = l o g ( 1 − p i ) L= -\sum_{i=1}^K(y_iL_i^++(1-y_i)L_i^-) \\ L_i^+=logp_i \\ L_i^-=log(1-p_i) L=i=1K(yiLi++(1yi)Li)Li+=logpiLi=log(1pi)
有了这个表达式可以推导一下导数结果,因为 σ ′ ( x i ) = σ ( x i ) ( 1 − σ ( x i ) ) = p i ∗ ( 1 − p i ) \sigma^{'}(x_i)=\sigma(x_i)(1-\sigma(x_i))=p_i*(1-p_i) σ(xi)=σ(xi)(1σ(xi))=pi(1pi)
∂ L i − ∂ x i = 1 p i − 1 ∗ p i ∗ ( 1 − p i ) = − p i \frac{\partial L_i^-}{\partial x_i} = \frac{1}{p_i-1}*p_i*(1-p_i)=-p_i xiLi=pi11pi(1pi)=pi
所以Simple and Robust Loss Design for Multi-Label Learning with Missing Labels一文中Fig 3对应的BCE是一条直线,注意横轴是p,纵轴是 − ∂ L i − ∂ x i -\frac{\partial L_i^-}{\partial x_i} xiLi
Multi Label Classification with Missing Labels(MLML)的几种loss设计_第1张图片

如果是Focal Loss就是下面表达式, γ \gamma γ is a focus parameter, and α + \alpha_+ α+ and α − \alpha_- α are utilized to balance positives and negative
L = − ∑ i = 1 K ( y i L i + + ( 1 − y i ) L i − ) L i + = α + ( 1 − p i ) γ l o g p i L i − = α − p i γ l o g ( 1 − p i ) L= -\sum_{i=1}^K(y_iL_i^++(1-y_i)L_i^-) \\ L_i^+=\alpha_+(1-p_i)^\gamma logp_i \\ L_i^-=\alpha_-p_i^\gamma log(1-p_i) L=i=1K(yiLi++(1yi)Li)Li+=α+(1pi)γlogpiLi=αpiγlog(1pi)

ASL(Asymmetric Loss For Multi-Label Classification)

ASL Loss是一种对Focal Loss的修正,其中 p m = m a x ( p − m , 0 ) p_m=max(p-m,0) pm=max(pm,0), The
probability margin m ≥ 0 is a tunable hyper-parameter。 The ASL loss reduces the weight of easy negatives via using γ + < γ − \gamma+<\gamma- γ+<γ, and discards negatives with low predicted probability via
the m shifted probability
L = − ∑ i = 1 K ( y i L i + + ( 1 − y i ) L i − ) L i + = ( 1 − p m ) γ + l o g p m L i − = p m γ − l o g ( 1 − p m ) L= -\sum_{i=1}^K(y_iL_i^++(1-y_i)L_i^-) \\ L_i^+=(1-p_m)^{\gamma+} logp_m \\ L_i^-=p_m^{\gamma-} log(1-p_m) L=i=1K(yiLi++(1yi)Li)Li+=(1pm)γ+logpmLi=pmγlog(1pm)

Hill Loss和SPLC Loss

来自Simple and Robust Loss Design for Multi-Label Learning with Missing Labels,简单来说就是把上述BCE收到missing labels影响做了一些修正,详细看原文较好
Multi Label Classification with Missing Labels(MLML)的几种loss设计_第2张图片
部分摘录自:

  1. https://www.zhihu.com/question/418818026/answer/1454922545
  2. https://zhuanlan.zhihu.com/p/266749365
  3. Asymmetric Loss For Multi-Label Classification
  4. Simple and Robust Loss Design for Multi-Label Learning with Missing Labels

你可能感兴趣的:(深度学习,机器学习,人工智能)