人工智能导论 第 4 章 · 第二节
课程 › 第 4 章 › 第二节 InfoNCE温度参数三个不足自蒸馏
第 4 章 深度学习新方法 · 第二节

InfoNCE 损失函数

把“拉近同伴、推远别人”变成一个能算的数
本 节 知 识 点
  1. 10InfoNCE:一道选择题
  2. 11温度参数:差距放大多少
  3. 14InfoNCE 的三个不足
  4. 15新进展:学生向老师看齐
10
第 4 章 · 第二节

InfoNCE:一道选择题

在所有候选里,正样本占的份额越大,损失越小。

第 10 页 InfoNCE 损失函数

锚点是一张猫的照片,从四个候选里认出同伴

① 算相似度锚点和每个候选
有多像
→
② 换成票数相似度除以温度,
再换成正数
→
③ 算份额每个候选的票数
占总数多少
→
④ 算损失正样本份额越大,
损失越小
候选相似度票数份额
同一张图裁剪后0.854.689.4%
狗 A0.34.57.3%
狗 B0.11.62.7%
一只杯子−0.20.40.6%
正样本拿到 89.4% 的份额,损失约为 0.11。份额到 100%,损失降到 0。训练就是不断调整模型,让每一张锚点图都把最大的份额留给自己的同伴。
温度是事先定好的一个正数,下一页细讲,表中取 0.2。票数用 e 的乘方来算,比如 0.8 ÷ 0.2 = 4,票数就是 e⁴ ≈ 54.6,其中 e ≈ 2.718。损失等于份额取自然对数后再取相反数。

关键术语

InfoNCEInformation Noise-Contrastive Estimation
信息噪声对比估计,对比学习最常用的损失函数。
相似度Similarity
衡量两组特征有多像,常用余弦相似度,最大是 1,最小是 −1。

重 点它和分类是同一种题

分类题要从几个类别里选一个:先给每个类别打分,换成份额,正确类别的份额越大,损失越小。InfoNCE 把类别换成 1 个正样本和 K 个负样本,把分数换成相似度,算法一样。

随堂练习

训练顺利时,正样本的份额和损失会怎样变化?

  1. 份额变小,损失变小
  2. 份额变大,损失变小
  3. 份额变大,损失变大
  4. 两者都不变
查看答案
答案 B。损失按正样本的份额来算,份额越接近 100%,损失越接近 0。
11
第 4 章 · 第二节

温度参数:差距放大多少

温度越小,相似度上的一点差距会被放得越大。

第 11 页 相似性度量与温度参数

同样四个候选,只把温度换一换

正样本:同一张图裁剪后其余三个候选温度 140.5%温度 0.557.1%温度 0.289.4%温度 0.199.2%
四个候选的相似度始终是 0.8、0.3、0.1、−0.2。温度取 1 时,前两个的份额是 40.5% 和 24.5%,差距不算大。温度取 0.1 时,变成 99.2% 和 0.7%,差距被拉得非常大。
温度太小,模型会对很细小的差别过分较真。温度太大,正负样本又拉不开。实际训练中温度常取 0.1 左右的小数。

关键术语

温度Temperature
相似度要先除以它再换成票数,常写作 τ。
余弦相似度Cosine Similarity
把两组特征看成两个箭头,方向越一致值越大,完全同向是 1。

打个比方

温度像老师打分的松紧。严格的老师把 89 分和 90 分看成两个档次,宽松的老师觉得八十几分都差不多。太严,学生会为一两分反复较劲。太松,好坏又分不出来。

随堂练习

相似度都不变,把温度从 0.5 调到 0.1,正样本的份额会怎样?

  1. 变大
  2. 变小
  3. 不变
  4. 变成 0
查看答案
答案 A。温度越小,相似度之间的差距被放得越大。正样本本来就最像,它的份额从 57.1% 涨到 99.2%。
14
第 4 章 · 第二节

InfoNCE 的三个不足

要很多负样本撑着,温度难调,特征还可能被压扁。

第 14 页 InfoNCE 损失函数的不足

三个麻烦

问题是怎么回事
显存开销大负样本越多,效果往往越好,可每个负样本都要放进显卡的显存。负样本常要几千个,比如 8192 个,甚至更多。
温度难调换一个数据集,最合适的温度往往就变了,要重新一个个试。
维度崩溃模型为了让损失变小走了捷径,把所有特征都挤到很少的几个方向上,很多信息就丢了。
正常:各类分得开崩溃:挤到一条线上两个方向都用上了只剩一个方向,三类混在一起
为了绕开这些麻烦,后来出现了不需要负样本的自蒸馏方法,DINO 系列模型是代表。

关键术语

显存GPU Memory
显卡上的内存。训练时模型、数据和中间结果都要放在里面。
维度崩溃Dimensional Collapse
特征本来有很多个方向可用,结果只用上了其中很少几个。

打个比方

维度崩溃像只按身高一项给全班同学建档案。一米七的同学有好几个,只看身高就分不清谁是谁。档案上的项目越少,能区分开的人就越少。

15
第 4 章 · 第二节

新进展:学生向老师看齐

不再依赖大量负样本,让学生网络向教师网络看齐。

第 15 页 InfoNCE 损失函数的新进展

自蒸馏:同一个模型分成学生和教师

一张图小块、调色大块裁剪学生网络教师网络学生的答案教师的答案向它看齐学生过去参数的平均
  • 学生网络 看同一张图的小块或调过色的版本,给出答案。
  • 教师网络 看一块较大的裁剪(盖住大半张图),给出答案。学生要让自己的答案和教师的一致。
  • 教师从哪来 教师不单独训练,它的参数是学生过去一段时间参数的平均,所以变化更平稳。
这样训练不需要成千上万的负样本。2025 年发布的视觉模型 DINOv3 就用了这个办法,最大的版本约有 70 亿个参数。它的参数不用再改,后面接一个小模块,就能做图片检索、估计远近、追踪视频里的物体。

关键术语

自蒸馏Self-Distillation
同一个模型分出学生和教师两份,学生学着给出和教师一样的答案。
DINOself-DIstillation with NO labels
不用标注的自蒸馏,也是一系列视觉模型的名字,DINOv3 是第三代。

打个比方

今天的自己向最近一周的自己看齐。一周的平均水平比较稳,不会因为某一天发挥失常就跟着乱。今天一点点进步,一周的平均水平也跟着慢慢提高。

保山学院·人工智能教研室·曹鼎鼎