CE、NCE、InfoNCE的演变过程及数学推导和关系
在机器学习和深度学习中,交叉熵(CECECE)、噪声对比估计(NCENCENCE)和信息噪声对比估计(InfoNCEInfoNCEInfoNCE)是三个紧密相关的损失函数,逐步演变以解决不同场景下的问题。以下是它们的演变过程、数学推导及关系分析。
1. 交叉熵(Cross-Entropy, CE)
背景
CECECE是分类任务的基础损失函数,衡量模型预测分布qqq与真实分布ppp的差异。
数学形式
对于真实标签的独热编码分布ppp和模型预测分布qqq,交叉熵定义为:
CE(p,q)=−∑ipilogqi
\text{CE}(p, q) = -\sum_{i} p_i \log q_i
CE(p,q)=−i∑pilogqi
在分类任务中(ppp是单点分布),简化为:
CE=−logqy
\text{CE} = -\log q_y
CE=−logqy
其中qyq_yqy是模型对真实类别yyy的预测概率。
应用
用于监督学习,直接优化模型输出与标签的匹配度。
2. 噪声对比估计(Noise-Contrastive Estimation, NCE)
背景
当模型输出未归一化(如语言模型中的logits)时,计算softmax的分母(配分函数)代价高昂。NCENCENCE通过将概率密度估计转化为二分类问题,避免显式计算归一化项。
核心思想
- 将真实数据样本(分布pd(x)p_d(x)pd(x))与噪声样本(分布pn(x)p_n(x)pn(x))对比
- 模型学习密度比pd(x)pn(x)\frac{p_d(x)}{p_n(x)}pn(x)pd(x)
数学推导
定义样本来自数据分布的概率:
p(data=1∣x)=pd(x)pd(x)+kpn(x)
p(\text{data}=1 | x) = \frac{p_d(x)}{p_d(x) + k p_n(x)}
p(data=1∣x)=pd(x)+kpn(x)pd(x)
其中kkk是噪声样本比例。损失函数为二元交叉熵:
LNCE=−Ex∼pd[logpd(x)pd(x)+kpn(x)]−kEx∼pn[logkpn(x)pd(x)+kpn(x)]
\mathcal{L}_{\text{NCE}} = -\mathbb{E}_{x \sim p_d} \left[ \log \frac{p_d(x)}{p_d(x) + k p_n(x)} \right] - k \mathbb{E}_{x \sim p_n} \left[ \log \frac{k p_n(x)}{p_d(x) + k p_n(x)} \right]
LNCE=−Ex∼pd[logpd(x)+kpn(x)pd(x)]−kEx∼pn[logpd(x)+kpn(x)kpn(x)]
应用
用于无监督学习(如语言模型),避免计算softmax分母。
3. 信息噪声对比估计(InfoNCE)
背景
在对比学习中,需要最大化同一数据不同视角的互信息I(q;k+)I(q; k^+)I(q;k+)。InfoNCEInfoNCEInfoNCE将NCENCENCE扩展到多负样本场景。
核心思想
- 对查询qqq,构造正样本k+k^+k+和负样本{k−}\{k^-\}{k−}
- 目标:最大化exp(q⋅k+/τ)∑exp(q⋅k/τ)\frac{\exp(q \cdot k^+/ \tau)}{\sum \exp(q \cdot k/ \tau)}∑exp(q⋅k/τ)exp(q⋅k+/τ)
数学推导
损失函数形式:
LInfoNCE=−E[logexp(q⋅k+/τ)exp(q⋅k+/τ)+∑k−exp(q⋅k−/τ)]
\mathcal{L}_{\text{InfoNCE}} = -\mathbb{E} \left[ \log \frac{\exp(q \cdot k^+ / \tau)}{\exp(q \cdot k^+ / \tau) + \sum_{k^-} \exp(q \cdot k^- / \tau)} \right]
LInfoNCE=−E[logexp(q⋅k+/τ)+∑k−exp(q⋅k−/τ)exp(q⋅k+/τ)]
其中τ\tauτ是温度系数。
理论意义
InfoNCEInfoNCEInfoNCE是互信息的下界:
I(q;k+)≥logN−LInfoNCE
I(q; k^+) \geq \log N - \mathcal{L}_{\text{InfoNCE}}
I(q;k+)≥logN−LInfoNCE
NNN为负样本数+1。
三者关系总结
| 方法 | 目标 | 数学形式 | 关键改进 |
|---|---|---|---|
| CECECE | 监督分类 | −logexp(sy)∑iexp(si)-\log \frac{\exp(s_y)}{\sum_{i} \exp(s_i)}−log∑iexp(si)exp(sy) | 直接概率匹配 |
| NCENCENCE | 无监督密度估计 | −logpd(x)pd(x)+kpn(x)−klogkpn(x)pd(x)+kpn(x)-\log \frac{p_d(x)}{p_d(x)+k p_n(x)} - k \log \frac{k p_n(x)}{p_d(x)+k p_n(x)}−logpd(x)+kpn(x)pd(x)−klogpd(x)+kpn(x)kpn(x) | 二分类替代配分函数计算 |
| InfoNCEInfoNCEInfoNCE | 对比学习/互信息最大化 | −logexp(q⋅k+/τ)∑exp(q⋅k/τ)-\log \frac{\exp(q \cdot k^+/ \tau)}{\sum \exp(q \cdot k/ \tau)}−log∑exp(q⋅k/τ)exp(q⋅k+/τ) | 多负样本扩展 |
演变逻辑
-
CECECE → NCENCENCE的演进:
针对高维输出空间中softmax归一化分母计算复杂度O(∣V∣)O(|V|)O(∣V∣)过高的问题(其中∣V∣|V|∣V∣为类别数),NCENCENCE通过引入噪声对比的范式转变,将原始的多类概率估计问题重构为判别二分类问题。具体而言:- 构建噪声分布pn(x)p_n(x)pn(x)与数据分布pd(x)p_d(x)pd(x)的对抗框架
- 通过调节噪声样本比例kkk控制计算复杂度,实现计算效率从O(∣V∣)O(|V|)O(∣V∣)到O(k)O(k)O(k)的优化
- 保持概率密度比pd(x)pn(x)\frac{p_d(x)}{p_n(x)}pn(x)pd(x)的渐进一致性
-
NCENCENCE → InfoNCEInfoNCEInfoNCE的演进:
基于表示学习的需求,InfoNCEInfoNCEInfoNCE在NCENCENCE的基础上进行了三个关键改进:- 样本构造:从显式噪声分布采样转为隐式负样本挖掘(N−1N-1N−1个负例)
- 目标函数:从二元logistic损失扩展为基于温度系数τ\tauτ的多类softmax交叉熵
- 理论保障:建立与互信息I(q;k+)I(q;k^+)I(q;k+)的显式关联,满足limN→∞I(q;k+)≥logN−LInfoNCE\lim_{N \to \infty} I(q;k^+) \geq \log N - \mathcal{L}_{\text{InfoNCE}}limN→∞I(q;k+)≥logN−LInfoNCE
总结
- CECECE:监督学习的基础损失
- NCENCENCE:通过噪声对比避免配分函数计算
- InfoNCEInfoNCEInfoNCE:成为对比学习的核心损失函数
三者的演变体现了从直接概率匹配到隐式表示学习的范式转变,核心是通过设计更高效的损失函数解决实际计算难题。

1万+

被折叠的 条评论
为什么被折叠?



