Supervised Contrastive Learning:把"无监督对比学习"的标签换成真的,结果强到离谱

  • 关联论文:2004.11362
  • 作者:Stephen(基于 work-guard 清单)
  • 更新:2026-10-19

科普正文

过去十年,深度学习分类任务有个"金标准"——交叉熵损失(cross-entropy)。所有教科书都这么写,所有框架都这么默认。但 2020 年 Google Research 的 Prannay Khosla 团队说:这套"金标准"其实浪费了数据里一半的信息。

怎么回事?交叉熵只关心"这张图属于哪个类",却不关心"同类之间应该长得多像"。好比一个老师只管给学生打分,却不告诉学生"你和你同桌其实差不多,应该互相学习"。Supervised Contrastive Learning(SupCon)做的事,就是把"同类应该聚拢"这个朴素直觉写进损失函数。

技术细节并不复杂。2020 年前的 SimCLR/MoCo 已经证明:在没有标签的情况下,让"同一张图的两个增广版本"在 embedding 空间里靠近、"不同图"互相远离,就能学到超强的视觉表征。SupCon 的关键观察是:有标签干嘛不用? 把"正样本"从"自己的另一个增广"扩成"同类的所有样本 + 自己的增广",损失函数立刻吃下了监督信号。

伪代码逻辑清晰:给定一批样本,每个样本做两次增广得到 2N 个;遍历每个样本 i,找到 batch 内所有同类样本 P(i),让 z_i(i 的 embedding)与 P(i) 的相似度尽量高、与所有其它样本的相似度尽量低。这一改带来了惊人的几何效应——同类在 embedding 空间里真的聚成一团,异类被等角推开,整个表征空间变得更"均匀"。

成绩摆在那:ResNet-200 backbone 上,ImageNet top-1 准确率从原最佳推到 81.4%(+0.8%)。听起来涨得不多,但真正的杀手锏是鲁棒性——换 Adam/SGD 优化器、调 batch size、改变增广强度,准确率波动远小于交叉熵;ImageNet-C 自然扰动集上平均高 1~3 个百分点;不加 label smoothing 也不易过拟合。对工业落地来说,这种"不挑食"的特性比单纯涨 0.5% 更有价值。

但论文也承认几个局限:batch size 太小(<256)时正样本不够,效果下降明显;batch 内某类只有 1 个样本时(极端长尾),监督信号被稀释;论文没和 MoCo v3/BYOL 等去负样本方案在同一协议下系统比较;80% 量级的 ImageNet top-1 在 ViT-L/EVA-02 面前已成旧基准。

工程落地层面,SupCon 是"指标稳+落地稳"的代表。代码改动只有几十行(把 cross-entropy 换成 SupCon loss),pipeline 几乎不变;与 mixup、CutMix、AutoAugment、label smoothing 全部兼容;可叠加出更强 baseline。检索/人脸/Re-ID 等 metric learning 任务可以直接当 first baseline,文本方向 Supervised SimCSE 就是它的 NLP 移植版。

适合给自家分类任务换 loss 的算法工程师(数据量 ≥10k、类均衡的场景几乎零成本受益)、做检索/推荐/人脸/Re-ID 的同学、做 sentence embedding 的 NLP 工程师。不适合只追 SOTA 的读者——SupCon 的真正价值是"工业落地友好"和"教学范式",而非新基准。


三个标题变体

  1. 交叉熵损失其实浪费了一半数据?这个改动让分类准确率又涨了
  2. 把"同类聚拢、异类推开"写进损失函数——SupCon 凭什么又稳又强?
  3. 从 SimCLR 到 SupCon:为什么"对比学习"成了分类任务的隐藏神器?

小红书卡片文案

📊 交叉熵损失用了这么多年,居然是错的?!

Google Research 2020 年一篇论文说:别再用交叉熵了,换成"对比损失",又稳又准。

🤔 怎么回事? 交叉熵只关心"这张图属于哪类",却忽略"同类应该长得多像"——浪费了数据里一半的几何信息。

💡 SupCon 怎么做? 把"正样本"从 1 个扩成 N 个(同类的所有样本 + 自己的增广),让同类在 embedding 空间里聚成一团、异类等角推开。

📈 成绩有多硬? - ResNet-200 + ImageNet:top-1 推到 81.4%(+0.8%) - 换优化器/调 batch/改增广,准确率几乎不抖 - ImageNet-C 自然扰动集上高 1~3 个百分点

✨ 工程友好度拉满:代码改几十行,与 mixup/CutMix/label smoothing 全兼容,人脸/检索/Re-ID 都能直接套用。

⚠️ 别无脑冲:batch <256 效果掉;长尾场景要均衡采样;温度 τ 必须固定在 [0.07, 0.1]。

一句话:SupCon 是 2020 年最值得换的 loss,没有之一 🚀

AI科普 #深度学习 #对比学习 #图像分类


总字数约 1150 字(含附文)