SIMCLR自监督算法论文读书笔记

原文: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,具有思想简单,效果好的优点

实现方法

方法的整体框架图

整体的思路是对图像做数据增强,让图像对通过两个分支,通过对比损失,拉开同源图片,推开不同源的图片,具体步骤如下

  1. 做数据增强,如一张图片增强出两个图片,他们其实是同一张图片的数据增强
  2. 引入一个可学的非线性变换函数,即上图的g(.)函数,上图中f(.)函数是特征抽取函数
  3. 使用对比交叉熵损失函数训练网络
  4. 加大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