对比学习中的温度系数(Temperature Parameter)原理与作用
一、问题描述
在对比学习(如SimCLR、MoCo等)中,温度系数(通常记为τ)是InfoNCE损失函数中的一个关键超参数。它缩放相似度得分的分布,影响模型学习到的特征表示质量。若温度系数设置不当,可能导致模型无法区分正负样本或过度关注困难负样本。需要理解温度系数的具体作用、数学形式及其对梯度的影响。
二、温度系数的数学形式
以InfoNCE损失为例,对于一个锚点样本\(x_i\),其正样本为\(x_j\),负样本集合为\(\{x_k\}_{k \neq i}\),损失函数为:
\[\mathcal{L}_i = -\log \frac{\exp(s_{i,j} / \tau)}{\exp(s_{i,j} / \tau) + \sum_{k \neq i} \exp(s_{i,k} / \tau)} \]
其中\(s_{i,j}\)是样本\(x_i\)与\(x_j\)的相似度(如余弦相似度),τ即温度系数(τ > 0)。
三、温度系数的作用机制
-
缩放相似度分布:
- 当τ较小时(如τ → 0),指数项\(\exp(s/\tau)\)的差异被放大。此时模型会更关注高相似度的正样本,但可能导致梯度不稳定(类似Hard Mining)。
- 当τ较大时,相似度分布更平滑,模型对所有负样本“一视同仁”,但可能降低区分能力。
-
梯度分析:
定义概率\(p_{i,j} = \frac{\exp(s_{i,j} / \tau)}{\sum_{k} \exp(s_{i,k} / \tau)}\),损失对相似度\(s_{i,j}\)的梯度为:
\[ \frac{\partial \mathcal{L}_i}{\partial s_{i,j}} = \frac{1}{\tau} \left(p_{i,j} - 1\right), \quad \frac{\partial \mathcal{L}_i}{\partial s_{i,k}} = \frac{1}{\tau} p_{i,k} \quad (k \neq j) \]
- τ出现在梯度分母中:τ越小,梯度幅度越大,更新步伐越大,但需防止梯度爆炸。
- τ调节正负样本的梯度权重:困难负样本(相似度较高)的梯度随τ减小而增加。
四、温度系数的选择策略
- 经验范围:常见取值在0.05~0.2之间(如SimCLR中τ=0.1)。
- 调参方法:
- 过小τ:模型可能过度拟合简单样本,泛化性下降。
- 过大τ:模型无法充分学习细微差异,收敛缓慢。
- 可通过验证集上的线性探测(Linear Probing)准确率选择τ。
五、实例说明(SimCLR框架)
在SimCLR中,τ控制特征空间的紧凑性:
- 低τ使类内样本更紧密,但可能牺牲类间可分性。
- 合适的τ平衡了“均匀性”(Uniformity)和“对齐性”(Alignment),这是对比学习的两个核心指标。
六、总结
温度系数通过缩放相似度分布,间接控制模型对困难样本的关注程度,影响梯度的稳定性和表示学习的质量。其调参需结合具体任务和数据集特性,是对比学习模型优化的关键一环。