Contrastive Loss 中超参数τ的研究

前言

对比学习中许多方法都使用了InfoNCE Loss作为损失函数,但很少有文章详细讲解参数$\tau$的作用,本篇文章参考CVPR 2021文章:Understanding the Behaviour of Contrastive Loss,对损失函数的性质进行介绍,并对其中的$\tau$做一个简单解释。

论文中的发现可以总结为两点:

  1. 对比损失是一个具备困难负样本自发现性质的损失函数,这一性质对于学习高质量的自监督表示是至关重要的。关注困难样本的作用是:对于那些已经远离的负样本,不需要让其继续远离,而主要聚焦在如何使没有远离的负样本远离,从而使得表示空间更均匀(Uniformity)。
  2. $\tau$ 的作用是调节模型困难样本的关注程度: $\tau$越小,模型越关注于将那些与本样本最相似的负样本分开

对比损失更关注困难负样本(Hardness-Awareness)

首先给出自监督学习广泛使用的对比损失(InfoNCE Loss)的形式:
$$
\mathcal{L}(x_i)=-\log \frac{\exp(s_{i,i}/\tau)}{\sum_{k\neq i }\exp(s_{i,k}/\tau)+\exp(s_{i,i}/\tau)}
$$
直观来说,该损失函数要求第 $i$ 个样本和它另一个扩增的(正)样本之间的相似度 $s_{i,i}$ 之间尽可能大,而与其它实例(负样本)之间的相似度 $s_{i,k}$ 之间尽可能小。然而,其实还有很多损失函数可以满足这个要求,例如下面最简单的形式 $\mathcal{L}{simple}$:
$$
\mathcal{L}
{simple}(x_i)=-s_{i,i}+\lambda\sum\limits_{i\neq j}s_{i,j}
$$
然而实际训练时,采用$\mathcal{L}_{simple}$ 作为损失函数效果非常不好,论文给出了他们的性能对比($\tau=0.07$):

Dataset Contrastive Loss Simple Loss
CIFAR10 79.75 74.83
CIFAR100 51.82 39.31
ImageNet100 71.53 48.09
SVHN 92.55 70.83

上面的结果显示,在所有数据集上 Contrastive Loss 都要远好于 Simple Loss。作者通过研究发现,不同于 Simple Loss,Contrastive Loss 是一个困难样本自发现的损失函数。Simple Loss 对所有的负样本给予了相同权重的惩罚 $\frac{\partial \mathcal{L}{simple}}{\partial s{i,k}}=\lambda$。而 Contrastive Loss 则会自动给相似度更高的负样本比较高的惩罚,这一点可以通过对 Contrastive Loss 中不同负样本的相似度惩罚梯度观察得到:
$$
\begin{aligned}
对正样本的梯度: &\frac{\partial\mathcal{L}(x_i)}{\partial s_{i,i}}=-\frac{1}{\tau}\sum\limits_{k\neq i}P_{i,k}\
对负样本的梯度: &\frac{\partial \mathcal{L}(x_i)}{\partial s_{i,j}}=\frac{1}{\tau}P_{i,j}
\end{aligned}
$$
其中 $P_{i,j}=\frac{\exp(s_{i,j}/\tau)}{\sum\limits_{k\neq i}\exp(s_{i,k}/\tau)+\exp(s_{i,i}/\tau)}$。对所有的负样本来说,$P_{i,j}$的分母项都是相同的,$s_{i,j}$越大,负样本的梯度项 $\frac{\partial \mathcal{L}(x_i)}{\partial s_{i,j}}=\frac{1}{\tau}P_{i,j}$也越大。也就是说,Contrastive Loss 给予了更相似(困难)负样本更大的远离该样本的梯度。

超参数 $\tau$ 的作用

为了更具体的解释超参数 $\tau$ 的作用,作者计算了两种极端情况,即 $\tau$ 趋近于 0 和无穷大。当 $\tau$ 趋近于 0 时:
$$
\begin{aligned}
&\lim\limits_{\tau\rightarrow0^+}-\log \frac{\exp(s_{i,i}/\tau)}{\sum_{k\neq i}\exp(s_{i,k}/\tau)+\exp(s_{i,i}/\tau)}\
=&\lim\limits_{\tau\rightarrow0^+}\log \left[1+\sum\limits_{k\neq i}\exp((s_{i,k}-s_{i,i})/\tau)\right]
\end{aligned}
$$
简单点,我们仅考虑那些困难的负样本,即如果存在负样本 $x_k$,有 $s(x_i,x_k)\ge s(x_i,x_i^+)$,则称$x_k$为困难的负样本。则上式可以改写为:
$$
\lim\limits_{\tau\rightarrow0^+}\log\left[1+\sum\limits_{s_{i,k\ge s_{i,i}}}^{}\exp((s_{i,k}-s_{i,i})/\tau)\right]
$$
因为 $\tau\rightarrow0^+$,直接忽略常数1,并且将求和改为最大的 $s_{i,k}$这一项,记做 $s_{max}$,则上式为:
$$
\lim_{\tau\rightarrow0^+}\frac{1}{\tau}\max\left[s_{max}-s_{i,i},0 \right]
$$
可以看出,此时 Contrastive Loss 退化为只关注最困难的负样本的损失函数。而当 $\tau$ 趋近于无穷大时:
$$
\begin{aligned}
&\lim_{\tau\rightarrow+\infty}-\log\left[\frac{\exp(s_{i,i}/\tau)}{\sum_{k\neq i} \exp(s_{i,k}/\tau)+\exp(s_{i,i}/\tau)}\right]\
=&\lim_{\tau\rightarrow+\infty}-\frac{1}{\tau}s_{i,i}+\log\sum\limits_k\exp(s_{i,k}/\tau)\
=&\lim_{\tau\rightarrow+\infty}-\frac{1}{\tau}s_{i,i}+\log\left[N(1+(\frac{1}{N}\sum\limits_k\exp(s_{i,k}/\tau)-1))\right]\
=&\lim_{\tau\rightarrow+\infty}-\frac{1}{\tau}s_{i,i}+\log\left[1+(\frac{1}{N}\sum\limits_k\exp(s_{i,k}/\tau)-1)\right]+\log N\
=&\lim {\tau \rightarrow+\infty}-\frac{1}{\tau} s{i, i}+\left(\frac{1}{N} \sum_{k} \exp \left(s_{i, k} / \tau\right)-1\right)+\log N \
=&\lim {\tau \rightarrow+\infty}-\frac{1}{\tau} s{i, i}+\frac{1}{N \tau} \sum_{k} s_{i, k}+\log N \
=&\lim {\tau \rightarrow+\infty} \frac{1-N}{N \tau} s{i, i}+\frac{1}{N \tau} \sum_{k \neq i} s_{i, k}+\log N
\end{aligned}
$$
上述式子利用了 $\ln(1+x)$和$e^x$的泰勒展开(等价无穷小)。

此时 Contrastive Loss 对所有负样本的权重都相同 ($\frac{1}{N_\tau}$),即 Contrastive Loss 失去了对困难样本关注的特性。有趣的是,当 $\tau=\frac{N-1}{N}$ 时,对比损失 $\mathcal{L}(x_i)$ 与前面提到的 $\mathcal{L}_{simple}$ 几乎一样。

Reference

- [1] Wang F, Liu H. Understanding the behaviour of contrastive loss[C]//Proceedings of the IEEE/CVF conference on computer vision and pattern recognition. 2021: 2495-2504.

Contrastive Loss 中超参数τ的研究
https://pandintelli.github.io/2022/03/05/Contrastive-Loss-hyper-parameter/
作者
Pand
发布于
2022年3月5日
许可协议