原文:https://link.zhihu.com/?target=https%3A//amitness.com/2020/03/illustrated-simclr/
GitHub:https://link.zhihu.com/?target=https%3A//github.com/google-research/simclr
引言
过去的自监督算法存在诸多问题,本文截止2020.02是SOTA,具有思想简单,效果好的优点
实现方法
方法的整体框架图
整体的思路是对图像做数据增强,让图像对通过两个分支,通过对比损失,拉开同源图片,推开不同源的图片,具体步骤如下
- 做数据增强,如一张图片增强出两个图片,他们其实是同一张图片的数据增强
- 引入一个可学的非线性变换函数,即上图的g(.)函数,上图中f(.)函数是特征抽取函数
- 使用对比交叉熵损失函数训练网络
- 加大batch size
损失函数
针对一对positive的图片(i, j),sim函数是计算计算激活特征的余弦相似度,这个公式实际是一个softmax函数,分子是某张图片的特征$z_i$和他的增强图片特征$z_j$的余弦相似度,分母是这张图片与所有不包含自己的余弦相似度之和,可以看见,如果图i和图j的相似度越高,和其他图的相似度越低,这个函数的值越低,N是一个batch数量的图片
推理
用于其他任务的时候拿h(i)作为特征,需要做finetunning,自监督学习的特征作为其他任务的特征提取层,其他任务可以是分类,检测,分割等等,就像在imagenet上pretrain出来的参数一样
参考
写的比较通俗易懂的知乎:https://zhuanlan.zhihu.com/p/142951091