从b站视频区看到的一篇论文,来自阿里。据他所说,他的多标签分类数据长尾最大到100:1,再做增广也没用,用了这篇论文的loss直接起飞。
链接在此
首先,常规的loss
既然是多标签分类,那么最基础的方法肯定是多个2分类问题。如下所示,yk是真实label,σ是sigmoid,zk是标量的预测logits分数。
L最简单也就是两项之差的平方,K是总标签数量。再难点,就上focal loss和binary cross-entropy
γ可以控制我们对难样本的态度。如果1>γ>0,p=0~1图像自己想象一下,就知道这是加大了简单样本的loss权重。如果γ>1,就是加大了对难样本的权重。
Asymmetric Focusing
如果对正负例使用不同的γ呢?不就能控制对正负例的态度了吗?
在论文里,作者面对的是图片分类,其中负例一大堆,正例很少。那么显然要增大正例的重要性,也就是要减小负样本前面系数的值,前面的系数是个0~1的小数啊,那就得γ- > γ+ 且γ- > 1,极端点,γ-=10000,直接就把负例的权重干没了,只训练正例了。
Asymmetric Probability Shifting
这个做的更绝。虽然负例是被γ-打压得死死的,但是拦不住负例多啊,loss一堆起来也不少。就寻思着,负例训得差不多就得了,如果个个负例概率都<0.2,负例量又那么大,说明训得很不错了,不用再训了。
因此有了个想法,设一个类似0.2的阈值m,负例量大,就把它的概率变成p_m=max(p-m,0),让这玩意代替负例的L-里所有p的位置。
这其实有个问题。我们当然希望不要对所有负例都很严苛,但是我们也希望负例的概率p至少降到0.5以下。p_m肯定是降低了p=0.6到0.4,也就降低了此时负例的loss,我反正感觉至少得过了0.5这条线再谈m的事儿。
结合
上面俩方法的结合就是ASL。第一个γ相关的叫软阈值,第二个设m的叫硬阈值。
loss曲线
图里CE+PS是交叉熵+概率偏移,也就是交叉熵+硬阈值。
此时ASL的m=0.2,γ-=2, γ+是多少就不知道了。其他方法用的γ和m都在图里写了。
可见,对负例,也就是p小的梯度很小,而对正例,也就是p大的梯度很大,然后靠近0和1梯度都小。