Asymmetric Loss For Multi-Label Classification

从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梯度都小。

相关推荐
禁默4 分钟前
第六届机器人、智能控制与人工智能国际学术会议(RICAI 2024)
人工智能·机器人·智能控制
Robot25112 分钟前
浅谈,华为切入具身智能赛道
人工智能
只怕自己不够好17 分钟前
OpenCV 图像运算全解析:加法、位运算(与、异或)在图像处理中的奇妙应用
图像处理·人工智能·opencv
果冻人工智能1 小时前
2025 年将颠覆商业的 8 大 AI 应用场景
人工智能·ai员工
代码不行的搬运工1 小时前
神经网络12-Time-Series Transformer (TST)模型
人工智能·神经网络·transformer
石小石Orz1 小时前
Three.js + AI:AI 算法生成 3D 萤火虫飞舞效果~
javascript·人工智能·算法
孤独且没人爱的纸鹤2 小时前
【深度学习】:从人工神经网络的基础原理到循环神经网络的先进技术,跨越智能算法的关键发展阶段及其未来趋势,探索技术进步与应用挑战
人工智能·python·深度学习·机器学习·ai
阿_旭2 小时前
TensorFlow构建CNN卷积神经网络模型的基本步骤:数据处理、模型构建、模型训练
人工智能·深度学习·cnn·tensorflow
羊小猪~~2 小时前
tensorflow案例7--数据增强与测试集, 训练集, 验证集的构建
人工智能·python·深度学习·机器学习·cnn·tensorflow·neo4j
极客代码2 小时前
【Python TensorFlow】进阶指南(续篇三)
开发语言·人工智能·python·深度学习·tensorflow