【对比自监督学习】SimCLR、CPC、AMDIM并无本质差异

点击上方“机器学习与生成对抗网络”,关注"星标"

获取有趣、好玩的前沿干货!

来源 | towardsdatascience 

转自 | 新智元      编辑 | QJP、小智

【导读】近日,两位Facebook的研究员小哥,提出了一种新的对比各种自监督学习框架的方法,结果显示SimCLR、CPC、AMDIM这些框架,彼此之间并无本质差异。

对比自监督学习将取代监督式深度学习主导地位的预言,已经「甚嚣尘上」。

 

Hinton大力推广的SimCLR就是其中一种。

 

对比自监督学习(CLS)是从无标签数据中选择和对比Anchor,Positive,Negative(APN)三种特征,学习到有用表征的方法。

 

近日,Facebook的两位研究员,使用一个新的框架来对比分析了目前三个主流的自监督学习算法:SimCLR、CPC、AMDIM。结果显示,尽管这些方法表面上看起来非常不同,但实际上他们互相之间只有微小的差异。

   回顾:自监督学习和对比学习

自监督学习

 

在有监督学习中,系统会给定一个输入x和一个标签y。而在自监督学习中,系统只给定了输入x,系统需要从输入x的一部分来预测输入的其他部分,输入既是source,也是target。

 

对比学习

 

俗话说,近朱者赤近墨者黑,机器学习中也有一种类似思想的算法就是聚类,对比学习与这种思想也是十分相似,通过三个要素来完成这个任务,即积极的,锚定的和消极的表征。

 

对于一张图片,我们需要一张相似的图片来构建一个正例二元组,需要一个相似的图片和一张不相关的图片来构成一个负例三元组。

但是在自监督学习中,样本的标签y是不知道的,所以无法得知两张照片是否相似。如果假设每张图片都有自己的标签,那就可以通过各种方法来形成这些三元组。

 

有了标签以后,就可以通过新提出的框架对各种CLS方法进行评估。

   评估对比自监督学习的五个新视角

下面,这个框架通过五种视角来对比CLS的各种方法,包括:

 

1.数据增强管道

 

2.编码器选择

 

3.表征抽取

 

4.相似度度量

 

5.损失函数

 

 

第一个视角是定义一个数据增强管道。

       

在深度学习中,数据增强的目的就是为了扩充数据集,通过对输入图像进行翻转、对称、抖动、灰度等各种操作来增加数据的量。

 

主流的三种CLS方法的数据增强管道也是也有千秋。

 

CPC

              

CPC除了使用抖动、灰度和翻转之外,还使用了一种新的变换,就是将原来的图像分割成Patches小块。通过CPC管道,可以生成多组正负样本对。

 

AMDIM

 

AMDIM管道是通过执行完一些基本的翻转抖动等操作以后,对同一个图像使用两次数据增强管道,生成两个版本的图像。

              

SimCLR

 

在他们的论文中,发现变换方式的选择对于方法最后的表现十分重要,事实上,这些方法的表现都是通过选择特定的变换来驱动的。

 

对比CLS方法的第二个视角是编码器Encoder。

 

             

 

CLS方法大多只是使用了不同宽度和深度的ResNet架构,通过消融实验可以发现,AMDIM不能够很好的泛化,而CPC受到编码器结构变化的影响较小。

 

在消融实验中还有一个额外的发现,更宽的编码器在对比学习中的表现更好。

 

第三种视角是表征抽取。

 

这是「魔术」发生的地方,也是他们不同之处最大的地方。

 

CPC通过在隐藏空间中预测未来信息来学习表征。把图片当成一条时间线,过去的信息在左上方,未来的信息在右下方。

       

     

AMDIM是比较从CNN不同层的得到特征图之间的表征方式。这些表征来自于两个部分:一个图像的多个视图和CNN的中间层。

              

SimCLR与AMDIM类似,但是进行了两个改进:一是只使用最后一个特征图,二是通过投影头运行特征映射并比较两个向量(类似于 CPC 上下文投影)。

 

用来比较这些方法还有两种方式:相似性度量和损失函数。

 

相似性度量使用了点积或者余弦距离,作者的实验表明,相似性的选择是无关紧要的。损失函数都使用了NCE损失。

   YADIM:目前的对比学习框架只是特例

研究人员找到了一种新的方法来显示这个框架的用途,这种方法叫做Yet Another DIM (YADIM).

 

YADIM的特点如下:

 

1.合并了CPC和AMDIM的管道

 

2.使用了AMDIM的编码器

 

3.对一个图像进行多个版本的编码,并使用最后一层的特征图进行比较。

 

4.使用点积求相似度

 

5.使用NCE损失函数

 

YADIM的实验结果

      

 

可以看出,尽管融合了AMDIM和CPC的模型效果最优,但是YADIM的效果也仅差了一点。

 

SimCLR只是YADIM的一种特殊情况。

 

SimCLR像AMDIM一样,通过最大化同一图像的两个视图之间的相似性来提取表征。

 

SimCLR与AMDIM相似,但进行了一些小调整。首先,它使用非定制的通用ResNet。其次,它使用了经过修改的数据增强管道。第三,它使用投影头添加了参数化的相似性度量。最后,它为NCE损失增加了比例系数(τ)。

 

接下来,我们具体分析下SimCLR是如何做的。

 

数据增强管道:SimCLR的数据增强跟AMDIM类似,对同一输入使用两次随机扩充,包括随机调整大小和裁剪,随机水平翻转,颜色抖动,随机灰度和高斯模糊。

 

编码器:SimCLR中的编码器是一个可变宽度和深度的ResNet,SimCLR中的ResNet使用批量归一化。

 

表征抽取:R与AMDIM类似,但只使用最后一个特征图,二是通过投影头进行特征映射并比较相似度。

 

相似性度量:SimCLR使用投影头z =fφ将表示向量从编码器映射到另一个向量空间,即fφ:R c→R c,将两个向量之间的余弦相似度作为评分。

 

损失函数:SimCLR使用NCE损失来调整相似性评分的范围。

 

             

 

这种损失将锚点和正样本聚集在一起,而将锚点和负样本分开。

 

如果再分析下AMDIM和CPC就不难发现,这些对比自监督学习框架都是大同小异,只是从上面五个角度做了微小改动而已。

 

这也是首个在同一标准下对三大框架进行对比的工作,让我们从一个更高的视角窥探了对比自监督学习的原理,也为后来者提供了改进现有对比学习方法的新思路。

参考链接:

https://towardsdatascience.com/a-framework-for-contrastive-self-supervised-learning-and-designing-a-new-approach-3caab5d29619

—完—
超100篇!CVPR 2020最全GAN论文梳理汇总!

拆解组新的GAN:解耦表征MixNMatch

StarGAN第2版:多域多样性图像生成
附下载 | 《可解释的机器学习》中文版

附下载 |《TensorFlow 2.0 深度学习算法实战》

附下载 |《计算机视觉中的数学方法》分享

《基于深度学习的表面缺陷检测方法综述》

《零样本图像分类综述: 十年进展》

《基于深度神经网络的少样本学习综述》

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值