多标签学习这个方向问题比较多,可以参考多标签学习的新趋势(2021 Survey TPAMI) 和 部分标签学习和缺失标签学习到底什么异同? 这两篇偏综述性质的解释。本文重点解释下面几个重点问题:
刚提到MLML的问题在于大量正例标签miss掉了,有不少False Positive,从loss推导角度来分析下这个问题
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,n−1]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−(1−y)log(1−p),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=1∑K(yiLi++(1−yi)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+e−xi1,其中
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=1∑K(yiLi++(1−yi)Li−)Li+=logpiLi−=log(1−pi)
有了这个表达式可以推导一下导数结果,因为
σ
′
(
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∗(1−pi):
∂
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
∂xi∂Li−=pi−11∗pi∗(1−pi)=−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}
−∂xi∂Li−
如果是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=1∑K(yiLi++(1−yi)Li−)Li+=α+(1−pi)γlogpiLi−=α−piγlog(1−pi)
ASL Loss是一种对Focal Loss的修正,其中
p
m
=
m
a
x
(
p
−
m
,
0
)
p_m=max(p-m,0)
pm=max(p−m,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=1∑K(yiLi++(1−yi)Li−)Li+=(1−pm)γ+logpmLi−=pmγ−log(1−pm)
来自Simple and Robust Loss Design for Multi-Label Learning with Missing Labels,简单来说就是把上述BCE收到missing labels影响做了一些修正,详细看原文较好
部分摘录自: