带你理解对比学习损失函数的性质以及温度系数的作用(一)

简介: 带你理解对比学习损失函数的性质以及温度系数的作用(一)

很多小伙伴都了解对比学习,但要说温度系数的作用可能就不太清楚了。


卷友们好,我是对白。


对比学习中的温度系数是一个神秘的参数,大部分论文都默认采用小的温度系数来进行自监督对比学习(例如0.07,0.2)。然而并没有对采用小温度系数的解释,以及温度系数是如何影响学习过程的,即温度系数这个角色的意义。


今天给大家介绍一篇CVPR2021中研究对比损失(Contrastive Loss)温度系数的论文,由我校出品,解释了温度系数的具体作用,还借此探索了对比学习的学习机制,相信大伙看完以后,在内卷的道路上又可以领先别人一步了(真是太卷了QAQ)。


b18f9da9bcaa52129bb4b3a9209de4cb.png


首先总结下本文的发现:


1.对比损失函数是一个具备困难负样本自发现性质的损失函数,这一性质对于学习高质量的自监督表示是至关重要的,不具备这个性质的损失函数会大大恶化自监督学习的性能。关注困难样本的作用就是:对于那些已经远离的样本,不需要继续让其远离,而主要聚焦在如何使没有远离的那些的样本远离,从而使得到的表示空间更均匀(uniformity)。


2.温度系数的作用是调节对困难样本的关注程度:越小的温度系数越关注于将本样本和最相似的其他样本分开)。作者对温度系数进行了深入的分析和实验,并利用温度系数来解释对比学习是如何学到有用表征的。


3.对比损失存在一个均匀性-容忍性的Dilemma(Uniformity-Tolerance Dilemma)。小温度系数更关注于将与本样本相似的困难样本分开,因此往往可以得到更均匀的表示。然而困难样本往往是与本样本相似程度较高的,例如同一个类别的不同实例,即有很多困难负样本其实是潜在的正样本。过分强迫与困难样本分开会破坏学到的潜在语义结构。


论文对温度系数的作用进行了理论的分析和实验的验证。


一、对比损失更关注困难样本的特性



首先给出自监督学习广泛使用的对比损失(InfoNCE loss)的形式:


ff842e8b0cbc9bd2da4a7ace3119ce44.png


其中 是温度系数。直观来说,该损失函数要求第i个样本和它的另一个augmentation的副本(即正样本)之间的相似度 尽可能大,而与其他的实例(负样本)之间的相似度 尽可能小。然而,很多的损失可以达到这个要求,例如下面的最简单的形式 :


7c6414e60845af16601d4cc77328968f.png


然而实际训练过程,采用 作为损失函数效果非常不好,论文给出了使用contrastive loss(Eq1)和简单损失(Eq2)的性能对比,温度系数采用0.07:


77395104d8c1becb97af943e7c3d8ed8.png


上面的结果显示,在所有数据集上Contrastive Loss要远远好于Simple Loss。作者通过探究发现,不同于Simple Loss,Contrastive Loss是一个困难样本自发现的损失函数。我们可以通过公式(2)看到,Simple Loss对所有的负样本相似度给予了相同权重的惩罚( ,损失函数对所有的负样本相似度的梯度都是相同的)。而Contrastive Loss则更会自动的给距离更近相似度更高的负样本更多的惩罚。这一点可以通过对比损失(Eq1 中)对不同负样本的相似度的惩罚梯度的简单计算来观察:


对正样本的梯度:


d280c678d87ac8d5e0c86970eef32385.png


对负样本的梯度:


e548adde5fb080cd03aef6785d547b2f.png


其中:


0eb7dd58acfd843d6e369de37e10c454.png


对于所有的负样本比较来说, 的分母项都是相同的。那么 越大,则 的分子项越大,梯度项也越大。也就是说,对比损失给予了更相似(困难)的负样本更大的远离该样本的梯度。可以把不同的负样本想像成同极点电荷在不同距离处的受力情况,距离越近的点电荷受到的库伦斥力更大,而距离越远的点电荷受到的斥力越小。对比损失也是这样的。这种性质更有利于形成在超球面均匀分布的特征。


为了验证上面表格中对比损失和简单损失的差距确实是因为对比损失具有困难样本自发现的特性,作者还用了一种显式的困难样本挖掘算法用于简单损失上。即选取最相似的4096个样本作为负样本,并用Eq2的简单损失作为损失函数,采用显式困难样本挖掘算法的简单损失函数效果大大提升,远远超过了温度系数取0.07时的对比损失。结果如下表所示:


6134f4304d524dbf1e6d7dcb502f0d53.png


二、温度系数的作用



除了上面介绍的困难样本自发现的性质之外,观察Eq3和Eq4,我们可以容易地发现,损失函数对正样本的梯度绝对值等于所有对负样本的梯度值绝对值的和,即


4875c8622058b529553725d15d7a640c.png


给予这个观察,作者定义了对第j个负样本的一个相对惩罚强度:


c5ea4ee3260bf3cc845b2284baeddc13.png


则对于所有的 , 形成了一个玻尔兹曼概率分布,该分布的熵随着温度系数的增大严格增大,即 是随着 单调递增的(只需要满足所有的 不相等即可)。至此作者们发现,温度系数决定了此分布的熵。如果我们将 由大到小排序,形成一个顺序统计量,那么熵的大小将决定了分布的陡峭程度,如下图所示,下图是作者演示的负样本惩罚梯度在不同温度系数下与相似度的关系。当温度系数很小时,例如蓝色线0.07,随着 的增大将惩罚梯度剧烈的增大。而当温度系数逐渐增大,相对梯度的熵逐渐也增大,概率分布逐渐接近均匀分布,例如途中的绿色线。那么对相似度大的负样本的关注度逐渐减小。


9b269fbd4996c0671d91520b98e861d4.png


上面论证了温度系数的作用,即温度系数决定了对比损失对困难负样本的关注程度,越大的温度系数,往往一视同仁,不会太过关注更困难的负样本;而温度系数越小,则越关注与该样本相似度非常大的困难负样本,给予困难负样本更大的梯度与正样本分离。


作者为了更具体的解释温度系数的作用,计算了两种极端情况,即温度系数趋向于0和无穷大。


当温度系数趋向于0时:


eb0286ce05f18cd75fe674cd7f633b28.png


可以看出,此时对比损失退化为只关注最困难的负样本的损失函数。而当温度系数趋向于无穷大时:


b23d77a086e217093b8cc58ce58b84d9.png


此时对比损失对所有负样本的权重都相同,都为 ,即对比损失失去了困难样本关注的特性。有趣的是,当温度系数趋向于无穷时,该损失便变成了之前介绍的简单损失 。


作者通过上面的两个极限情况也分析出了对比损失随着温度系数的增大而倾向于“一视同仁”,随着温度系数的减少而只关注最困难的负样本,这样的一种调节负样本关注度的作用。


相关文章
|
机器学习/深度学习 编解码 数据可视化
【即插即用】涨点神器AFF:注意力特征融合(已经开源,附论文和源码链接)
【即插即用】涨点神器AFF:注意力特征融合(已经开源,附论文和源码链接)
7890 1
|
自然语言处理 算法 数据挖掘
自蒸馏:一种简单高效的优化方式
背景知识蒸馏(knowledge distillation)指的是将预训练好的教师模型的知识通过蒸馏的方式迁移至学生模型,一般来说,教师模型会比学生模型网络容量更大,模型结构更复杂。对于学生而言,主要增益信息来自于更强的模型产出的带有更多可信信息的soft_label。例如下右图中,两个“2”对应的hard_label都是一样的,即0-9分类中,仅“2”类别对应概率为1.0,而soft_label
自蒸馏:一种简单高效的优化方式
|
负载均衡 Ubuntu 应用服务中间件
|
存储 SQL 缓存
Hadoop入门(一篇就够了)
Hadoop入门(一篇就够了)
31340 4
Hadoop入门(一篇就够了)
|
网络协议 Linux Android开发
告别无法访问的github(附解决方案)
最近一行在使用github的时候又登不上去了,挂着NPV都没用 据说是某些不可描述的有关组织机构对该网站的DNS污染或者随机丢包造成的
22817 5
告别无法访问的github(附解决方案)
|
7月前
|
存储 人工智能 自然语言处理
为什么混合专家模型(MoE)如此高效:从架构原理到技术实现全解析
本文深入探讨了混合专家(MoE)架构在大型语言模型中的应用与技术原理。MoE通过稀疏激活机制,在保持模型高效性的同时实现参数规模的大幅扩展,已成为LLM发展的关键趋势。文章分析了MoE的核心组件,包括专家网络与路由机制,并对比了密集与稀疏MoE的特点。同时,详细介绍了Mixtral、Grok、DBRX和DeepSeek等代表性模型的技术特点及创新。MoE不仅解决了传统模型扩展成本高昂的问题,还展现出专业化与适应性强的优势,未来有望推动AI工具更广泛的应用。
4030 4
为什么混合专家模型(MoE)如此高效:从架构原理到技术实现全解析
|
算法 Java 数据库
美团面试:百亿级分片,如何设计基因算法?
40岁老架构师尼恩在读者群中分享了关于分库分表的基因算法设计,旨在帮助大家应对一线互联网企业的面试题。文章详细介绍了分库分表的背景、分片键的设计目标和建议,以及基因法的具体应用和优缺点。通过系统化的梳理,帮助读者提升架构、设计和开发水平,顺利通过面试。
美团面试:百亿级分片,如何设计基因算法?
|
12月前
|
搜索推荐 物联网 PyTorch
Qwen2.5-7B-Instruct Lora 微调
本教程介绍如何基于Transformers和PEFT框架对Qwen2.5-7B-Instruct模型进行LoRA微调。
12282 34
Qwen2.5-7B-Instruct Lora 微调

热门文章

最新文章