学习一下对比学习

        由于在做一些语义相似的工作,其中看了陈丹奇组的SimCSE使用了对比学习刷新了有监督和无监督的SOTA,自己也在做一些相关的下游任务的实验,其中就使用了图像和nlp领域都非常火的对比学习的方法,看了一下张俊林大神知乎对于对比学习的研究进展精要,讲的还是一如既往的清晰易懂。还是做一下搬运工,做一下自己的提炼记录。

对比学习分类

        对比学习是无监督学习中自监督学习中的一种,其中NLP中的预训练模型MLM就是自监督学习(使用辅助任务挖掘无监督语料自身的监督信息)。图像中的自监督分为两种:生成式(VAE,GAN),判别式(对比学习)。而对比学习又可以分为1.基于负例;2.基于对比聚类;3.基于不对称网络;4.基于冗余消除损失函数等。对比学习中的要点是构造正反例,构造学习模型,防止模型坍塌。其中的几种模型方法都是在这三个要点上进行变换和改进。

基于负例的对比学习

        代表模型:Moco,SimCLR

        SimCLR

        使用常见的图像增强方法构造正例,负例来自于batch内部。模型结构使用双塔结构,如下图所示,在encoder层后又加入了project层。

        1.为什么在encoder后面要加入project层?

        Moco中没有使用project,但是实验证明了project的有效性;但是张俊林提出了自己的猜测:encoder之后的特征表示包含了更多的包含图像增强信息在哪的细节特征,project可以进行过滤;预训练时特征会有两种:通用特征和任务相关特征;加入project后区分了两者特征,encoder之后的特征更加通用化(供后面的finetune使用),project后的特征与预训练的任务相关;

        2.相似计算要做L2正则?

        L2把特征向量映射到了单位超球面,单位向量长度可以增加了训练的稳定性,超球面可以区分类别,提高模型表示能力。归一化后的向量的点积与余弦距离是等价的,所以相似性计算可以使用L2之后的点积或者是cosine。

        3.对比学习的表示能力的评判标准

        特征学习表示能力的评判标准uniform和alignment出自该论文。                                                     alignment:正例的距离相近,特征表示最直接表现。
        uniform:特征均匀分布在球面上,防止模型坍塌。(分布均匀表示两两有差异,信息保留更多。)

        4.损失函数


        分子是alignment,分母就是uniform。
        温度系数t就是uniform和容忍性的权衡,越小表示越关注距离近的负例,但是太小的话,有可能产生误判,越大就是对误判为反例有更大的容忍性。温度系数更详细的分析可以看这篇知乎。 

        Moco系列

        使用的负例则是来自batch之外,取自所有的训练数据。模型的结构如下图。

       1.不对称的分支,下分支的参数更新使用移动平均的动量更新机制。
        2.负例不限于batch之内
        实验证明上述两者需要一起使用,下分支进行缓慢的参数变动使得来自不同batch的表征编码相对稳定而统一的改变。

基于聚类的对比学习

         代表模型:SwAV

        增强方法和模型结构和SimCLR相同;
        损失函数的计算不同:对batch内的特征表示进行聚类,使正例对的表示在同一个类中。


        同样的,损失函数中分子体现了alignment,分母体现了uniform属性。SimCLR可以看成是极端情况下的聚类模型。 

非对称结构

        代表模型:BYOL

        BYOL 只是用正例 且是目前最好的对比学习模型之一,如何防止坍塌。图像增强方法一致,模型结构在moco V2的基础上上分枝增加了project结构,上下分支不对称更新,模型只使用正例,分别进行两次模型计算。

    初步的结论应该是不对称是防止坍塌的关键,而动量更新则对提升模型很重要。

消除冗余损失函数

        代表模型:Barlow,Twins

        模型对称;共享参数;只使用正例在损失函数上做了一些变化。


        相关性矩阵。不变项(拉近正例) + 冗余消除项(增强元素独立性)

方法对比及问题

        模型对比:

        论文“How Well Do Self-Supervised Models Transfer?”实验给出了结论,DeepCluster-v2 SwAV BYOL SimCLR-v2这几个模型效果较突出。

        问题:

        1.训练数据偏置问题 目前公开训练数据往往是很干净的,如果是复杂的图片数据则会产生数据偏置问题,

        2.更好构建正例的方法,对于模型学习更多的空间不变形。

        3.像素级学习能力。对于像素级的下游任务更加友好

        4.Hard负例问题,负例越多则hard负例越多,对模型也越好,温度系数t也是聚焦hard负例。

        5.模型融合问题,有监督模型和对比学习融合

以上就是俊林大神对于对比学习的一些介绍,并且微博在对比学习上也做了一些工作,是对比学习在nlp及多模态上的应用,用于对抗训练数据中的噪声。

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值