4.4 InfoNCE 损失与温度系数


文档摘要

4.4 InfoNCE 损失与温度系数 本节深入 InfoNCE 损失的数学细节,特别是温度系数 $\tau$ 的物理意义与梯度行为,以及 SigLIP 如何用 sigmoid 形式替代 softmax 解决大 batch 难题。 一、InfoNCE 的完整形式回顾 回顾 4.1 节给出的 InfoNCE: $$ \mathcal{L}\text{InfoNCE} = -\log \frac{\exp(\text{sim}(x, x^+)/\tau)}{\exp(\text{sim}(x, x^+)/\tau) + \sum{k=1}^{K} \exp(\text{sim}(x, x^-k)/\tau)} $$ 把它写成更紧凑的形式。

4.4 InfoNCE 损失与温度系数

本节深入 InfoNCE 损失的数学细节,特别是温度系数 \tau 的物理意义与梯度行为,以及 SigLIP 如何用 sigmoid 形式替代 softmax 解决大 batch 难题。

一、InfoNCE 的完整形式回顾

回顾 4.1 节给出的 InfoNCE:

\mathcal{L}_\text{InfoNCE} = -\log \frac{\exp(\text{sim}(x, x^+)/\tau)}{\exp(\text{sim}(x, x^+)/\tau) + \sum_{k=1}^{K} \exp(\text{sim}(x, x^-_k)/\tau)}

把它写成更紧凑的形式。令 s^+ = \text{sim}(x, x^+)s^-_k = \text{sim}(x, x^-_k)

\mathcal{L} = -\log \frac{e^{s^+/\tau}}{e^{s^+/\tau} + \sum_k e^{s^-_k/\tau}} = -\frac{s^+}{\tau} + \log\left(e^{s^+/\tau} + \sum_k e^{s^-_k/\tau}\right)

这就是 CLIP 训练时实际计算的损失。

二、温度系数 \tau 的物理意义

温度系数 \tau 出现在指数的除法里 s/\tau,它调节相似度被「放大」的程度。

直觉一:分布的尖锐度

考虑 softmax 输出 \frac{e^{s/\tau}}{\sum e^{s_i/\tau}}

  • \tau \to 0:分布退化为 one-hot,最大相似度的样本独占所有概率
  • \tau \to \infty:分布退化为均匀分布,所有样本概率相同
  • \tau 中等:分布有合理的「软度」,正样本概率最大但其他负样本也有非零概率

直觉二:熵正则化

从信息论角度看,温度系数相当于一个熵正则项。最小化 InfoNCE 等价于最大化:

\mathcal{J} = \frac{s^+}{\tau} - \log\sum_i e^{s_i/\tau}

可以证明,这与最大化互信息下界 - \tau \cdot H(p) 形式等价,其中 H(p) 是 softmax 分布的熵。也就是说:

  • \tau 大:模型被鼓励保持高熵(分布平滑),鼓励探索
  • \tau 小:模型被鼓励低熵(分布尖锐),鼓励利用

直觉三:相似度尺度的归一化

相似度 s = I \cdot T 的数值范围依赖于隐藏维度 d。维度越大,点积可能越大。除以 \tau 相当于把相似度重新缩放到一个统一的尺度,使训练稳定。

实践中可学习 \tau 通常稳定在 0.01-0.05 之间,对应一个合理的尖锐程度。

三、温度系数的梯度行为

温度系数对训练动态有微妙影响。看 InfoNCE 对正样本相似度 s^+ 的梯度:

\frac{\partial \mathcal{L}}{\partial s^+} = \frac{1}{\tau}\left(\frac{e^{s^+/\tau}}{\sum_i e^{s_i/\tau}} - 1\right) = \frac{1}{\tau}(p^+ - 1)

其中 p^+ 是模型给正样本的概率。

  • p^+ < 1(模型没把所有概率给正样本),梯度为负,推动 s^+ 增大
  • \tau 越小,梯度幅度越大,训练越激进

类似地,对负样本相似度 s^-_k 的梯度:

\frac{\partial \mathcal{L}}{\partial s^-_k} = \frac{1}{\tau} p^-_k
  • 梯度为正,推动 s^-_k 减小
  • 概率 p^-_k 越大(硬负样本),梯度越大——InfoNCE 自动聚焦难样本

这种「难样本自动加权」特性是 InfoNCE 比朴素对比损失更有效的关键。

四、InfoNCE 的 batch size 依赖

InfoNCE 的一个核心特性:负样本越多,互信息下界越紧,模型学到越好

数学上,可以证明:

\mathcal{L}_\text{InfoNCE} \geq \log(K+1) - I(x; x^+)

其中 I(x; x^+) 是互信息,K 是负样本数。

  • K = 0(无负样本),下界为 -I(x; x^+),很松
  • K \to \infty,下界趋近真实互信息,估计精确

这就是为什么 CLIP 把 batch size 推到 32768——负样本越多,模型对互信息的估计越准,学到的表示越好。

但这也带来一个工程瓶颈

  • 大 batch 需要巨大显存
  • 跨卡通信成本高
  • 中小实验室难以复现

SigLIP 的 sigmoid 形式就是为解决这个瓶颈而生。

五、SigLIP:从 softmax 到 sigmoid

Google 在 2023 年提出的 SigLIP 把 InfoNCE 的 softmax 形式换成 sigmoid 二分类

\mathcal{L}_\text{SigLIP} = -\frac{1}{NK}\sum_{i,j} \log \sigma\left(z_{ij} \cdot (s_{ij}/\tau + b)\right)

其中:

  • s_{ij} = I_i \cdot T_j 是第 i 张图与第 j 段文本的相似度
  • z_{ij} \in \{+1, -1\} 是标签(匹配为 +1,不匹配为 -1)
  • \sigma 是 sigmoid 函数
  • b 是可学习偏置

与 InfoNCE 的关键差异

维度 InfoNCE (softmax) SigLIP (sigmoid)
归一化 沿行/列 softmax 无(每对独立)
对 batch 依赖 强(分母含所有样本) 弱(每对独立计算)
负样本数 batch 内其他样本 batch 内其他样本(但不参与归一化)
batch size 敏感

SigLIP 的工程价值

sigmoid 形式带来三个工程优势:

优势一:小 batch 也能训

InfoNCE 在小 batch(如 256)下负样本太少,性能下降明显。SigLIP 在同样 batch 下性能基本不变,因为每对样本独立计算,不依赖归一化。

优势二:可用更大负样本池

SigLIP 可以维护一个独立的负样本队列(如 MoCo 风格),不受 batch size 限制。CLIP 这种 softmax 形式做不到(因为分母要包含所有候选)。

优势三:训练更稳定

softmax 容易因某个相似度爆炸导致整个分布塌缩。sigmoid 每对独立,鲁棒性更强。

SigLIP 的实证效果

在相同算力下,SigLIP 在 ImageNet 零样本分类、跨模态检索等任务上显著优于 CLIP。它已成为 LLaVA-NeXT、PaliGemma、Idefics2 等新一代多模态大模型的首选视觉编码器。

六、InfoNCE 与 SigLIP 的几何对比

七、温度系数在 SigLIP 中的角色

SigLIP 仍然保留温度系数 \tau,作用与 InfoNCE 类似——控制 sigmoid 输入的尺度:

  • \tau 小:sigmoid 输入大,输出更接近 0/1,梯度集中在边界样本
  • \tau 大:sigmoid 输入小,输出更平滑,所有样本都有梯度

SigLIP 还多了一个可学习偏置 b,让模型可以平移决策边界。这是因为 sigmoid 不像 softmax 自动归一化,需要偏置来补偿相似度的整体偏移。

八、其他对比损失变体

除了 InfoNCE 与 SigLIP,对比学习家族还有几个变体:

Triplet Loss

最古典的对比损失:

\mathcal{L} = \max(0, \text{sim}(x, x^-) - \text{sim}(x, x^+) + m)

要求正样本相似度比负样本高出至少 margin m。缺点:每次只用一个负样本,信号弱。

Margin-based Loss

Triplet Loss 的扩展,用多个负样本:

\mathcal{L} = \sum_k \max(0, \text{sim}(x, x^-_k) - \text{sim}(x, x^+) + m)

Barlow Twins / VICReg

不用对比,而是约束向量空间的统计性质(如协方差对角化),避免了大 batch 依赖。

这些变体在纯视觉自监督里更常见,多模态对齐仍以 InfoNCE/SigLIP 为主。

九、选哪种损失:经验总结

场景 推荐损失
大算力、大 batch InfoNCE(CLIP 路线)
中小算力、希望训练稳定 SigLIP
需要细粒度区域对齐 InfoNCE + ITM 联合(ALBEF 风格)
自监督纯视觉 DINO/iBOT(非对比类)

十、温度系数调参经验

如果你在训练自己的对比模型,关于 \tau 的几个经验:

  1. 固定 \tau = 0.07 起步——SimCLR、MoCo 等都用过这个值
  2. 改成可学习——初始化 0.01-0.07,让模型自适应
  3. 观察训练曲线——如果损失很快平稳但下游任务差,可能 \tau 太大;如果训练不稳,可能 \tau 太小
  4. 不同模态对可能需要不同 \tau——视觉-语言、视觉-视觉、音频-语言的合适尺度不同

小结

InfoNCE 的温度系数 \tau 控制相似度分布的尖锐度,对应一个熵正则项;它在 InfoNCE 中还起到「难样本自动加权」的作用。softmax 形式对 batch size 极敏感,SigLIP 用 sigmoid 解决了这一瓶颈,在中小 batch 下也能稳定训练。理解 InfoNCE 与 SigLIP 的差异,能帮你为自己的多模态任务选合适的对比损失。

下一节(4.5)速览 SigLIP、EVA-CLIP、OpenCLIP 等当代对比学习模型 SOTA。


发布者: 作者: 渗透测试失败者的小龙虾 转发
评论区 (0)
U