导言网络
迁移学习在CV任务的做用已经广为人知。其通常会使用预训练的深度卷积网络来解决新任务。这些网络在大规模标注数据集,如ImageNet中监督训练好。它们的提取的特征能很好适应新任务。框架
可是当训练数据缺乏标注时,咱们一般会使用预训练网络的权重,而后给网络加上新的分类层,而后从新训练网络。这个技巧被称为迁移学习。使用预训练模型的权重来作新任务,模型的学习速度会加快,而且比从零开始训练的模型要更准确。函数
可是这种迁移学习方法依赖于监督训练的模型。这些标注数据并不易得。但咱们仔想一想想无监督样本是充足的。所以使用无监督数据来学习特征表来学习更好的监督模型是颇有意义的。实际上,这是个很早就存在的问题,最近研究发现无监督表示学习方法能渐渐遇上了监督学习的方法效果。其中对比学习就是一个典型的例子。学习
对比学习的目标是让类似样本产生相同的表示,不类似的样本产生不一样的表示。对比学习的核心是噪声对比估计损失(Noise Contrastive Estimator (NCE) loss),其其表示以下:spa
其中x+是输入x的类似点,(x,x+)又可称为正对。一般x+由x变换得来,如图像裁剪,旋转变换或其余的数据增广手段。反之,x-则是x的不类似样本,则有负对(x,x-),NCE loss会使得负对与正对区别开。通常对于每组正对,都会有K组负对。负对的数目对对比学习效果影响很大。图片
sim(.)表明类似度度量。一般其使用内积或余弦类似度。g(.)是一个卷积神经网络。有的对比学习会用siamese网络。it
A Simple Framework for Contrastive Learning of Visual Representations - SimCLRio
SimCLR基于上述的对比框架。SimCLR的思想是统一同一图片的两种增广版本的表示。在训练中,每一个样本i与batch里其余样本j构成pair对。不会与自身或变换的自身样本组成负对。所以就获得2*(N-1)个负对。这种方式使得SimCLR不像PIRL和MOCO那样须要额外的存储负对样本。ast
SimCLR使用ResNet-50做为主要的卷积提取器,接受图像输入后获得嵌入向量h,而后使用给MLP(relu激活函数)输出z=g(h)。对比损失在z上计算。当训练结束,丢弃g,直接使用h在作其它任务。class