论文链接
论文链接:https://arxiv.org/pdf/2002.05709.pdf
代码链接:https://github.com/google-research/simclr
基本思想
对同一张图像x进行不同的data augmentation,得到多个view,这些view要相互吸引;对于来自不同图像的view,要相互远离。论文相当关键的一部份就是研究了data augmentation对于unsupervised contrastive learning的帮助。
Data augmentation对于特征学习的重要性
Data augmentation对于训练好unsupervised contrastive learning的模型非常的关键。一些强力的augmentation技巧可以大幅提升SimCLR,但对于原本supervised的方法却不见得有帮助。论文中提到一个细节:单纯使用random crop其实没什麽效果,要加上color distortion后才会有显著的效果。这是因为原本的 random crop 切出来的图片 在pixel value的分布其实相差不大,主要是在scale与offset上的不同,相当不利于CNN的contrastive learning,而这两种加上color distortion后的 pixel value的分布就会有明显的变化,使得适合作为contrastive learning的学习对象。
Backbone
ResNet-50(4x),即网络宽度是ResNet-50的4倍。
在representation和contrastive loss之间添加全连接层
通过MLP,也就是全连接层,可以学习出数据的非线性信息,是对上一步的一个增强。通过这一步的学习就可以得出同一类别数据的共同信息特点。在representation与contrastive loss间使用可学习的non-linear projection,避免计算 similarity 的 loss function在训练时丢掉一些重要的feature。论文中使用非常简单的单层MLP,配上ReLU activation function作为non-linear projection。
SimCLR性能如何?
在ImageNet数据集上,SimCLR能得到与2012年AlexNet相同的性能,但是仅仅使用了1%的标签,这归功于两点:
- 首先在具有残差连接的深度卷积网络上做无监督表征学习。
- 之后在具有标签的少量数据集上微调。
参考资料