@article{chen2020a,
title={A Simple Framework for Contrastive Learning of Visual Representations},
author={Chen, Ting and Kornblith, Simon and Norouzi, Mohammad and Hinton, Geoffrey E},
journal={arXiv: Learning},
year={2020}}
概
SimCLR 主要是利用augmentation来生成正负样本对, 虽然没有花里胡哨的结构, 但是通过细致的tricks比之前的方法更为有效.
主要内容
流程
流程是很简单的, 假设有一个batch的样本(x), 然后从augmentation(mathcal{T})中随机选取俩个(t,t'), 由此得到两批数据( ilde{x}_i=t(x), ilde{x}_j=t'(x)), 经过第一个encoder得到特征表示(h_i,h_j), 再经由一个非线性变化(g)得到(z_i,z_j)(注意这一步是和以往方法不同的点), 再由(z_i, z_j)生成正负样本对(对应同一个样本的俩个样本构成正样本对, 否则为负样本对).
接下来先介绍一些比较重要的特别的tricks, 再介绍别的.
projection head g
一般方法只有一个encoder (f(cdot)), SimCLR多了一个projection head (g(cdot)), 它把第一次提到的特征再进行一次过滤:
其中(sigma)为ReLU.
作者说, 这是为了过滤到由augmentation带来的额外的可分性, 让区分特征(z)变得更为困难从而学习到更好的特征(h).
注: 用于下游任务的特征是(h)而非(z)!
上表是将特征(h)或者(z)用于一个二分类任务, 区分输入是否经过了特定的augmentation, 结果显示(h)能够更好的分类, 意味着(h)比(z)含有更多的augmentation的信息.
constractive loss
其中(mathrm{sim}(u,v)=u^Tv/|u||v|).
实验显示这个损失比别的都好用.
augmentation
SimCLR中augmentation是很重要的构造正负样本对的配件, 经过消融实验发现, 最有效的的是crop和color distortion.
另外, 实验还显示, 监督学习比起对比学习来讲, 对augmentation的依赖程度很低, 甚至可以说是不依赖.
other
- 大的模型充当encoder效果更好;
- 大的batch size 和 更多的 training epoches有助于学习到更好的特征表示;