互信息和InfoNCE的关系

简单来说,InfoNCE 是互信息的一个可计算的下界估计器。通过优化 InfoNCE 损失,我们实际上是在最大化互信息的一个紧下界。

1. 互信息

互信息衡量的是两个随机变量X和Y之间 "知道其中一个变量,能获得关于另一个变量的信息量"。它表示变量间依赖性的强度。

公式: I(X; Y) = H(X) - H(X|Y) = H(Y) - H(Y|X)

其中,H是熵,H(|)是条件熵。

  • 直观理解:如果 X 和 Y 独立,则 I(X; Y) = 0。它们之间相关性越强,互信息值越大
  • 核心挑战:在高维连续空间中,真实的互信息 I(X; Y) 通常难以直接计算,因为我们不知道真实的联合分布 p(x, y) 和边缘分布 p(x)p(y)。

2. InfoNCE

InfoNCE 是一种基于对比学习的损失函数,全称是 Information Noise-Contrastive Estimation。

  • 场景:给定一个查询样本x,一个与之匹配的"正样本y+(来自联合分布 p(x, y)),以及 N-1 个"负样本y-(通常从边缘分布 p(y) 中独立采样)。目标是学会一个打分函数(通常是一个神经网络)f(x, y),使得正样本对的得分远高于负样本对的得分。
  • 公式:L_InfoNCE = - E log( f(x, y+) / (f(x, y+) + Σ_{i=1}\^{N-1} f(x, y_i-)) ) ,其中打分函数通常表示为f(x, y) = exp(sim(z_x, z_y) / τ),sim是相似度函数(如余弦相似度),τ是温度系数。
  • 直观理解:这本质上是N分类问题的交叉熵损失,任务是识别出 N 个候选(1个正例,N-1个负例)中哪个是真正的正例。最小化这个损失,就是提高模型识别正样本的能力。

3. 核心关系

InfoNCE 是互信息的下界。这是由 Aaron van den Oord 等人在 2018 年提出 CPC 的论文中证明的。

4. 关键点解读

  • 下界"意味着什么? 我们无法直接计算真正的I(X; Y),但我们可以计算 I_NCE,并且知道真正的互信息至少有这么大。通过优化(减小)L_InfoNCE,我们就在提高这个下界 I_NCE,从而间接地最大化真正的互信息I(X; Y)。
  • N 的影响:下界的紧致性(即I_NCE接近真实I(X; Y)的程度)与负样本数量N有关。N越大,这个下界越紧,I_NCE越接近真实的互信息。当N → ∞时,I_NCE趋近于真实的互信息。
  • 与其他下界的关系:InfoNCE 属于DV(Donsker-Varadhan)表示或f-divergence族互信息下界的一个特例(具体是使用多元分类交叉熵推导出的下界)。另一个著名的下界是 MINE,它使用了 DV 表示的直接形式。

5. 在机器学习中的应用

在自监督学习和对比学习中,这个关系至关重要:

  • 目标:学习一个好的数据表示。
  • 方法:例如,对于图像x,我们通过数据增强创建两个视图v1和v2。我们将 (v1, v2)视为正样本对(来自 p(v1, v2)),将 (v1, v_i)(v_i是其他图像的视图)视为负样本对。
  • 原理:通过最小化 InfoNCE 损失,我们实际上是在最大化 v1 和 v2 这两个视图之间的互信息。这意味着,我们学到的表示会捕捉到这两个视图之间共有的、本质的信息(即图像的内容),而忽略掉无关的噪声(如随机的增强变换)。这正是学习到有效表征的原因。

6 总结

因此,InfoNCE 为互信息这个强大但难以处理的理论概念,提供了一个非常实用且高效的桥梁,使其成为现代表示学习中最核心的损失函数之一。

相关推荐
米小虾1 小时前
告别单打独斗:2026年多Agent协作架构实战指南
人工智能·agent
IT_陈寒2 小时前
SpringBoot这个自动配置坑我跳了三次
前端·人工智能·后端
Larcher3 小时前
AI Loop:让AI像人一样自主完成任务的核心机制
javascript·人工智能·设计模式
牧艺3 小时前
从零到协同:构建类飞书在线文档系统的五个技术重难点
前端·人工智能
CodePlayer竟然被占用了4 小时前
Codex 用电脑的三种姿势:选错模式,你就白烧 Token
人工智能
袋鼠云数栈UED团队4 小时前
一套 Spec-First 的 AI 编程工作流
前端·人工智能
Awu12274 小时前
⚡从零开发 Agent CLI(二):CLI 框架搭建与子命令路由
人工智能·aigc
码上天下4 小时前
React Query 缓存 AI 对话历史的几个权衡
人工智能