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

相关推荐
罗西的思考19 小时前
AI Agent框架探秘:拆解 OpenHands(10)--- Runtime
人工智能·算法·机器学习
冬奇Lab19 小时前
OpenClaw 源码精读(2):Channel & Routing——一条消息如何找到它的 Agent?
人工智能·开源·源码阅读
冬奇Lab19 小时前
一天一个开源项目(第38篇):Claude Code Telegram - 用 Telegram 远程用 Claude Code,随时随地聊项目
人工智能·开源·资讯
格砸21 小时前
从入门到辞职|从ChatGPT到OpenClaw,跟上智能时代的进化
前端·人工智能·后端
可观测性用观测云21 小时前
可观测性 4.0:教系统如何思考
人工智能
sunny86521 小时前
Claude Code 跨会话上下文恢复:从 8 次纠正到 0 次的工程实践
人工智能·开源·github
小笼包包仔21 小时前
OpenClaw 多Agent软件开发最佳实践指南
人工智能
smallyoung1 天前
AgenticRAG:智能体驱动的检索增强生成
人工智能
_skyming_1 天前
OpenCode 如何做到结果不做自动质量评估,为什么结果还不错?
人工智能
南山安1 天前
手写 Cursor 核心原理:从 Node.js 进程到智能 Agent
人工智能·agent·设计