论文:A Simple Framework for Contrastive Learning of Visual Representations
论文链接:https://arxiv.org/pdf/2002.05709.pdf
Lecun在2020的AAAI上表示看好自监督学习,在近两年,self-supervised learning的成果也越来越多,如MoCo,CPC等等。Hinton组的这篇SimCLR,比之前的SOTA方法在InageNet的top1的accuracy上提高了7个百分点,虽然有人说这篇文章属于暴力美学,但还是值得一读的。
在参数相同的情况下,ImageNet的top1 accuracy高于其他SOTA方法7个百分点及以上,更加接近supervised learning。
网络结构如上图:
(1)对于样本 x x x,首先进行data augmentation(本文的三种augmentation分别为:随机裁剪并resize,color distortion以及Gaussian Blur),经过两种不同的操作得到 x i ~ \widetilde{x_{i}} xi
和 x j ~ \widetilde{x_{j}} xj
;
(2)经过一个Encoder f ( ⋅ ) f(·) f(⋅),文中选用Resnet,得到特征表示 h i h_{i} hi 和 h j h_{j} hj;
(3)特征表示再经过一个projection head,即 g ( ⋅ ) g(·) g(⋅),得到网络的输出。
算法流程如下:
上述的 L L L就是所谓的contrastive loss,文中被称作NT-Xent, l ( i , j ) l(i,j) l(i,j)是让相似的图像(同一个样本 x x x经过数据增得到的两张图像)的特征表示相似度尽可能高,不同图像的特征相似度尽可能低。
文中采用了256-8192的大batch size进行训练,简单粗暴,不需要什么memory bank这类存储库。实验结果也表明,大的batch得到的效果更好。
两种数据增强的组合能达到更好的效果,特别是上图中Crop和Color distortion的组合。
关于projection head是否有必要存在,以及线性与非线性的差别。实验结果证明,非线性的projection head效果更好。作者在文中解释说,projection head能够消除一些对downstream task有用的信息,并且可以构建和维护特征表示中的更多信息。
对比其他自监督学习方法,结果如下:
经过少量有标签数据的微调后,达到更好的效果: