InfoNCE

分类: 深度学习基础

InfoNCE

定义

对比学习的核心损失函数,通过最大化正样本对的相似度、最小化负样本对的相似度来学习表征,是 CLIP、SimCLR 等方法的基础

数学形式

LInfoNCE=logexp(sim(zi,zj+)/τ)k=1Kexp(sim(zi,zk)/τ)\mathcal{L}_{\text{InfoNCE}} = -\log \frac{\exp(\text{sim}(z_i, z_j^+) / \tau)}{\sum_{k=1}^{K} \exp(\text{sim}(z_i, z_k) / \tau)} 其中 zj+z_j^+ 是正样本,τ\tau 是温度参数,KK 包含 1 个正样本和 K1K-1 个负样本

核心要点

本质上是互信息的下界估计(Info = Information, NCE = Noise Contrastive Estimation)

负样本数量越多,互信息估计越紧,但计算开销也越大

CLIP 的图文对比学习直接使用 InfoNCE 的对称版本

蒸馏场景中可用于对齐 teacher-student 的表征空间

代表工作

CPC (van den Oord et al. 2018): InfoNCE 的提出论文

SimCLR: 视觉自监督学习中 InfoNCE 的经典应用

CLIP: 图文对比学习

相关概念

知识蒸馏

特征蒸馏

自蒸馏