首页 > 其他分享 >对比损失与温度系数

对比损失与温度系数

时间:2023-07-16 18:45:28浏览次数:29  
标签:系数 样本 困难 损失 对比 温度

对比学习中的温度系数是一个神秘的参数,大部分论文都默认采用小的温度系数来进行自监督对比学习(例如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的论文 <> 。但是另一方面,由于无监督学习中没有真正的类别标签,对比学习普遍将除本样本以外的所有其他样本作为负样本。

在这种情况下,与正样本相似度极高的负样本往往很可能是潜在的正样本。例如,与当前的苹果图片相似度最高的图片往往是另一个苹果,此时如果太注重困难负样本则会破坏网络经过一定训练后已经学到的语义信息,这种情况在训练后期尤其明显。随着训练的进行,网络获取到的信息越来越接近真实语义特性,那么此时的负样本更有可能是潜在的正样本,因此一个启示是可以随着迭代的次数增多而增大温度系数,这可能是作者以后的工作。于是作者认为,一个好的温度系数,应该是均匀性和容忍性的折衷。

 

作者对不同温度系数下的均匀性-容忍性进行了量化并可视化如上图。

四、实验验证

下图是实验对温度系数的验证,红色的box是正样本的相似度,而横坐标往右依次是与相似度最大的10个样本的相似度分布。可以发现,温度系数越小,正样本和最困难的负样本之间的相似度gap越大,这说明了越小的温度系数越倾向于把最困难的负样本分开。该实验支撑了之前的理论分析。

 

另一方面,作者也对不同的数据集的最优温度系数进行了验证,下图绿色的柱子为对比损失随着温度系数的性能表现。此外,作者也验证了采取显式困难样本发现的对比损失,采取了显示的困难样本挖掘算法后,性能表现与温度系数的关联弱化,当温度系数高于一个合适的值时,该损失产生的模型性能基本保持稳定。

 

五、总结

在本文中,作者试图了解无监督对比损失的一些具体的性质和行为。作者们首先分析出了对比损失是一种困难样本感知的损失函数。并且验证了困难样本感知的性质是对比损失的不可或缺的性质。不具备这种性质的损失函数,即使负样本非常多,性能还是会退化严重。此外作者们也深入研究了温度系数的作用,发现温度系数控制着对负样本感知程度。并接着提出了Uniformity-Tolerance Dilemma。总体来说,论文揭示了一些对比学习有用的性质和现象,相信本文会启发更多的研究者设计更好的损失以及算法。

标签:系数,样本,困难,损失,对比,温度
From: https://www.cnblogs.com/zhangxianrong/p/17558322.html

相关文章

  • Java性能优化-测试try-catch放在循环内和外的性能对比与业务区别
    场景Java中使用JMH(JavaMicrobenchmarkHarness微基准测试框架)进行性能测试和优化:https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/131723751使用如上方式测试Java中try-catch放在循环内和循环外是否有性能上的差别。注:博客:https://blog.csdn.net/badao_lium......
  • Java性能优化-测试数组和链表在查询和添加删除时性能对比
    场景Java中使用JMH(JavaMicrobenchmarkHarness微基准测试框架)进行性能测试和优化:https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/131723751上面在使用JMH时测试了Java中数组和链表在进行头部插入时的对比结果。下面分别对比在头部、中部、尾部分别进行查询和......
  • mysql 怎么与当前日期对比
    项目方案:使用MySQL进行与当前日期的对比1.简介在许多应用中,我们经常需要对数据库中的日期进行对比操作,特别是与当前日期进行对比。MySQL是一个流行的关系型数据库管理系统,它提供了丰富的日期和时间函数,可以方便地与当前日期进行对比。本项目方案将介绍如何使用MySQL进行与当......
  • LNMP 和 LAMP 对比 (仅供参考)
    Nginx性能稳定、功能丰富、运维简单、处理静态文件速度快且消耗系统资源极少。Apache是LAMP架构最核心的WebServer,开源、稳定、模块丰富是Apache的优势。但Apache的缺点是有些臃肿,内存和CPU开销大,性能上有损耗,不如一些轻量级的Web服务器 至于安装哪个好呢? 要省......
  • 全方位对比 Postgres 和 MySQL (2023 版)
    全方位对比Postgres和MySQL(2023版)原创Bytebase昨天10:36阅读数9.4K本文被收录于专区数据库进入专区参与更多专题讨论 根据 2023年StackOverflow调研,Postgres已经取代MySQL成为最受敬仰和渴望的数据库。随着Postgres的发展势头愈......
  • 筛法对比
    杜教筛博客链接时间复杂度\(O(n^\frac{2}{3})\)要求:构造一个\(g\)满足\((f*g)\)易于计算前缀和,\(g\)易于计算前缀和。注意并没有要求\(g\)和\(f*g\)是一个积性函数。杜教筛可以多次运用,例如筛\(f=\phi*\phi*\mu\),可以筛\(f*I=\phi*\phi\),这样只需要解决\(g......
  • 解决redis mget和pipeline性能对比的具体操作步骤
    RedisMGET和Pipeline性能对比整体流程为了理解和比较Redis的MGET和Pipeline性能,我们需要了解以下步骤:步骤描述1连接到Redis服务器2使用MGET命令获取多个键的值3使用Pipeline命令批量执行多个命令4计算每个步骤的执行时间5比较MGET和Pipeline的性能......
  • m基于强化学习的永磁同步电机位置控制器simulink仿真,对比传统的PI控制器和模糊PI控制
    1.算法仿真效果MATLAB2017b仿真结果如下:      2.算法涉及理论知识概要       永磁同步电机(PermanentMagnetSynchronousMotor,PMSM)是一种高效、精度高、响应速度快的电机,广泛应用于现代工业和民用领域。PMSM的位置控制是PMSM控制的核心问题之一,其优化控......
  • 197-上升的温度
    上升的温度原文地址:197.上升的温度-力扣(LeetCode)题目如下所示个人题解这题稍微麻烦一些,因为需要使用到MySQL的日期(date)的相关函数,可以自行学习一下,以下为个人思考路程--1、建表CREATETABLE197_weather( idINTPRIMARYKEY, recordDateDATE, temperatu......
  • 永磁同步电机转速PI控制,SMC滑模控制,ADRC自抗扰控制Simulink对比仿真模型
    永磁同步电机转速PI控制,SMC滑模控制,ADRC自抗扰控制Simulink对比仿真模型1.永磁同步电机SVPWM控制算法,实现FOC矢量控制,DQ轴解耦控制~2.转速电流双闭环控制,电流环采用PI控制,转速环分别采用PI控制、SMC滑模控制和ADRC自抗扰控制,对三种方法进行对比,分析ADRC控制优越性~ID:1411866100166......