无监督学习距离监督学习还有多远?Hinton组新作解读

本文原载于知乎,已获作者授权转载,请勿二次转载。

https://zhuanlan.zhihu.com/p/107126866

最近一段时间,学术界对无监督学习的研究和关注越来越多。在ImageNet数据集上面的方法和研究对比也不断增加(主要是大组或者大厂,计算资源充足)。

之前写过自监督学习(self-supervised learning)和动量对比的笔记,今天读一下Hinton组最新的一篇论文:A Simple Framework for Contrastive Learning of Visual Representations。

之前kaiming在动量对比文章中写过:“This suggests that the gap between unsupervised and supervised representation learning has been largely closed in many vision tasks.“ 

通过Hinton的这篇文章(SimCLR),我们可以发现,无监督学习和监督学习性能之间的差距已经越来越小。如图1,在ImageNet上,基于ResNet50网络,SimCLR达到了69%,而监督学习基线是77%。

图1. 不同无监督学习算法和监督学习基线对比,网络为ResNet50。可以看出,SimCLR的准确率距离监督学习已经非常接近(69% vs 77%)。

这篇文章没有提出新的方法,主要是基于现有无监督对比学习算法,做了技术细节上的简化和改进,比如数据增广、batchsize、训练步数等。本文的实验和对比非常多,所以后续部分会比较多实验图,如果只想了解主要思想,那么作者的结论可以总结为以下几条:

  • 组合使用多个数据增强方法对于对比学习算法非常重要。同时,数据增强对无监督学习的提升效果远大于监督学习;

  • 在对比损失和特征表示之间插入一个可学习的非线性变换模块(MLP),可以大幅度提升学习到的特征的质量;

  • 与监督学习相比,无监督对比学习可以得益于更大的batchsize以及训练步数

一、方法介绍

图2. SimCLR算法结构。原始图片经过不同的数据增广变换t~T和t‘~T,然后经过神经网络f(.)得到特征表示,最后经过一个非线性变换模块g(.)。训练目的是最大化同一个样本在不同增广情况下的一致性。

如图2,SimCLR的算法非常简单,由数据增广、特征网络和变换网络组成。可以看出,整个过程比之前kaiming提出的动量对比(MoCo)更加的简单,同时省去了数据存储队列。

为了更好的理解训练过程,我们看下面的图(by Mohammad Norouzi):如图3,假设batchisize=N,经过数据增广,得到2N训练图片。

我们的训练目标是使得来自同一图片的特征,例如  和  尽可能接近;而来自不同图片的特征,例如  和  尽可能远离。损失函数如下:

 .

图3. SimCLR正负样本采样和训练图。对于batchsize=N,通过数据增广得到2N图片。来自同一图片(x1)的不同增广(z1, z2)互相吸引,它们的特征应该接近(红色的线);而来自不同图片的增广(例如z1和z_2N)互相排斥,它们的特征应该偏离(蓝色的线)。

二、数据增广

图4. 作者研究的数据增广的类型

作者研究了一系列数据增广和它们的两两组合如图4,完整的结果如下图6:

图5. 数据增广和组合实验结果。1. 组合效果要比单一方式(对角线)好,2. 通过最后一列看出,最好的三个增广是:Crop、Cutout、Color

三、网络结构和非线性变换

图6. 性能随模型大小变换图

如图6,随着模型大小的不断增加,SimCLR(红色的线)带来的提升,要大于监督学习(绿色的线)。说明无监督学习可以更好的利用更大模型的潜力。

图7. 在特征后面加入一个非线性变换,可以极大的提高特征的表达能力。

如图7对比可以发现,在特征后面加入一个非线性可学习变换,可以极大的提升特征的表达能力。这个结果与之前CVPR19 Revisiting Self-Supervised Visual Representation Learning有一定的联系。

CVPR19论文发现,对于VGG网络,深层特征的性能比之前的层要低,而ResNet则相对稳定。SimCLR的发现是,如果我们在ResNet后面继续加一个非线性变换,那么性能会进一步提升。

图8. CVPR19论文图。对于VGG深层特征性能反而比之前的层要低,但是ResNet相对稳定。

四、batchsize和训练步数

图9. 增大batchsize和训练步数可以带来性能的提升,但是提升会逐渐减小,

如图9,增大batchsize和训练步数,可以带来性能的提升。但是这个提升会随着stepsize以及步数的增加,而逐渐变小。我们可以看到作者尝试的最大batchsize=8192,最多训练epoch=1000,这对于一般的研究组是难以实现的。

作者用的是google的Cloud TPU,对于batchisze=4096以及epoch=100的情况,128个TPU v3,训练时间大约1.5小时所以尽管本文的方法非常简单有效,但是代价也很明显就是增加了对硬件和计算资源的消耗,一般的研究组或者公司是很难承受的。

五、和state-of-the-art对比

图10. 和state-of-the-art对比

可以看出,虽然本文提出的结构和改进都很简单,但是通过一些设计的探索,在Imagenet上取得了比当前最好性能高7%(相对提升)的结果。这个结果还是非常惊人的,同时由于和监督学习的差距进一步缩小,我们或许可以展望不久的将来,无监督学习可以赶上甚至超越监督学习的性能。

论文地址:

https://arxiv.org/abs/2002.05709

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值