作者 | Feng 整理 | 对白的算法屋 编者寄语:
很多小伙伴都了解对比学习,但要说温度系数的作用可能就不太清楚了。
卷友们好,我是对白。
对比学习中的温度系数是一个神秘的参数,大部分论文都默认采用小的温度系数来进行自监督对比学习(例如0.07,0.2)。然而并没有对采用小温度系数的解释,以及温度系数是如何影响学习过程的,即温度系数这个角色的意义。
今天给大家介绍一篇CVPR2021中研究对比损失(Contrastive Loss)温度系数的论文,由我校出品,解释了温度系数的具体作用,还借此探索了对比学习的学习机制,相信大伙看完以后,在内卷的道路上又可以领先别人一步了(真是太卷了QAQ)。
首先总结下本文的发现:
1.对比损失函数是一个具备困难负样本自发现性质的损失函数,这一性质对于学习高质量的自监督表示是至关重要的,不具备这个性质的损失函数会大大恶化自监督学习的性能。关注困难样本的作用就是:对于那些已经远离的样本,不需要继续让其远离,而主要聚焦在如何使没有远离的那些的样本远离,从而使得到的表示空间更均匀(uniformity)。
2.温度系数的作用是调节对困难样本的关注程度:越小的温度系数越关注于将本样本和最相似的其他样本分开)。作者对温度系数进行了深入的分析和实验,并利用温度系数来解释对比学习是如何学到有用表征的。
3.对比损失存在一个均匀性-容忍性的Dilemma(Uniformity-Tolerance Dilemma)。小温度系数更关注于将与本样本相似的困难样本分开,因此往往可以得到更均匀的表示。然而困难样本往往是与本样本相似程度较高的,例如同一个类别的不同实例,即有很多困难负样本其实是潜在的正样本。过分强迫与困难样本分开会破坏学到的潜在语义结构。
论文对温度系数的作用进行了理论的分析和实验的验证。
一、对比损失更关注困难样本的特性
首先给出自监督学习广泛使用的对比损失(InfoNCE loss)的形式:
其中 是温度系数。直观来说,该损失函数要求第i个样本和它的另一个augmentation的副本(即正样本)之间的相似度 尽可能大,而与其他的实例(负样本)之间的相似度 尽可能小。然而,很多的损失可以达到这个要求,例如下面的最简单的形式 :
然而实际训练过程,采用 作为损失函数效果非常不好,论文给出了使用contrastive loss(Eq1)和简单损失(Eq2)的性能对比,温度系数采用0.07:
上面的结果显示,在所有数据集上Contrastive Loss要远远好于Simple Loss。作者通过探究发现,不同于Simple Loss,Contrastive Loss是一个困难样本自发现的损失函数。我们可以通过公式(2)看到,Simple Loss对所有的负样本相似度给予了相同权重的惩罚( ,损失函数对所有的负样本相似度的梯度都是相同的)。而Contrastive Loss则更会自动的给距离更近相似度更高的负样本更多的惩罚。这一点可以通过对比损失(Eq1 中)对不同负样本的相似度的惩罚梯度的简单计算来观察:
对正样本的梯度:
对负样本的梯度:
其中:
对于所有的负样本比较来说, 的分母项都是相同的。那么 越大,则 的分子项越大,梯度项也越大。也就是说,对比损失给予了更相似(困难)的负样本更大的远离该样本的梯度。可以把不同的负样本想像成同极点电荷在不同距离处的受力情况,距离越近的点电荷受到的库伦斥力更大,而距离越远的点电荷受到的斥力越小。对比损失也是这样的。这种性质更有利于形成在超球面均匀分布的特征。
为了验证上面表格中对比损失和简单损失的差距确实是因为对比损失具有困难样本自发现的特性,作者还用了一种显式的困难样本挖掘算法用于简单损失上。即选取最相似的4096个样本作为负样本,并用Eq2的简单损失作为损失函数,采用显式困难样本挖掘算法的简单损失函数效果大大提升,远远超过了温度系数取0.07时的对比损失。结果如下表所示:
二、温度系数的作用
除了上面介绍的困难样本自发现的性质之外,观察Eq3和Eq4,我们可以容易地发现,损失函数对正样本的梯度绝对值等于所有对负样本的梯度值绝对值的和,即
给予这个观察,作者定义了对第j个负样本的一个相对惩罚强度:
则对于所有的 , 形成了一个玻尔兹曼概率分布,该分布的熵随着温度系数的增大严格增大,即 是随着 单调递增的(只需要满足所有的 不相等即可)。至此作者们发现,温度系数决定了此分布的熵。如果我们将 由大到小排序,形成一个顺序统计量,那么熵的大小将决定了分布的陡峭程度,如下图所示,下图是作者演示的负样本惩罚梯度在不同温度系数下与相似度的关系。当温度系数很小时,例如蓝色线0.07,随着 的增大将惩罚梯度剧烈的增大。而当温度系数逐渐增大,相对梯度的熵逐渐也增大,概率分布逐渐接近均匀分布,例如途中的绿色线。那么对相似度大的负样本的关注度逐渐减小。
上面论证了温度系数的作用,即温度系数决定了对比损失对困难负样本的关注程度,越大的温度系数,往往一视同仁,不会太过关注更困难的负样本;而温度系数越小,则越关注与该样本相似度非常大的困难负样本,给予困难负样本更大的梯度与正样本分离。
作者为了更具体的解释温度系数的作用,计算了两种极端情况,即温度系数趋向于0和无穷大。
当温度系数趋向于0时:
可以看出,此时对比损失退化为只关注最困难的负样本的损失函数。而当温度系数趋向于无穷大时:
此时对比损失对所有负样本的权重都相同,都为 ,即对比损失失去了困难样本关注的特性。有趣的是,当温度系数趋向于无穷时,该损失便变成了之前介绍的简单损失 。
作者通过上面的两个极限情况也分析出了对比损失随着温度系数的增大而倾向于“一视同仁”,随着温度系数的减少而只关注最困难的负样本,这样的一种调节负样本关注度的作用。
三、均匀性-容忍性困境
基于对温度系数作用的探索,作者进而指出了对比学习存在的潜在问题,即均匀性-容忍性的困境。
对于温度系数来说,更小的温度系数更加关注困难样本,因此更容易形成均匀的表示空间,均匀的特征对于表示学习是十分重要的,具体可以见ICML2020的论文 <<Understanding Contrastive Representation Learning through Alignment and Uniformity on the Hypersphere>> 。但是另一方面,由于无监督学习中没有真正的类别标签,对比学习普遍将除本样本以外的所有其他样本作为负样本。
在这种情况下,与正样本相似度极高的负样本往往很可能是潜在的正样本。例如,与当前的苹果图片相似度最高的图片往往是另一个苹果,此时如果太注重困难负样本则会破坏网络经过一定训练后已经学到的语义信息,这种情况在训练后期尤其明显。随着训练的进行,网络获取到的信息越来越接近真实语义特性,那么此时的负样本更有可能是潜在的正样本,因此一个启示是可以随着迭代的次数增多而增大温度系数,这可能是作者以后的工作。于是作者认为,一个好的温度系数,应该是均匀性和容忍性的折衷。
作者对不同温度系数下的均匀性-容忍性进行了量化并可视化如上图。
四、实验验证
下图是实验对温度系数的验证,红色的box是正样本的相似度,而横坐标往右依次是与相似度最大的10个样本的相似度分布。可以发现,温度系数越小,正样本和最困难的负样本之间的相似度gap越大,这说明了越小的温度系数越倾向于把最困难的负样本分开。该实验支撑了之前的理论分析。
另一方面,作者也对不同的数据集的最优温度系数进行了验证,下图绿色的柱子为对比损失随着温度系数的性能表现。此外,作者也验证了采取显式困难样本发现的对比损失,采取了显示的困难样本挖掘算法后,性能表现与温度系数的关联弱化,当温度系数高于一个合适的值时,该损失产生的模型性能基本保持稳定。