文章目录
前言
对比学习来自于一个朴素的想法,想像一下我们找出最像猫的照片的过程
看一眼猫,对比找出哪个最类似,最后做出判断
通过这个简单思想的启发,有人提出了”对比学习“的概念
大佬们想把机器训练成可以识别相似与或者不相似的图片:
机器要怎么做才能学习?
与目标相似/不相似的图片

图片的表示方式

能够判断两幅图片的相似程度

simCLR 框架简介
Self-supervised learning implemented by contrastive learning
框架流程简介:
- 输入一张图片(e.g. cat)
- 对图片随机变换,生成两张增强的图片
- 得到图片增强后的数据表示x i , x j x_i, x_jxi,xj
- 通过 encoder 得到 image representation h i , h j h_i, h_jhi,hj
- 再通过non-linear全连接层的到数据的表示z i , z j z_i, z_jzi,zj
- 最终目标是最大化z i , z j z_i, z_jzi,zj的相似度
simCLR的步骤
1. 准备数据集,假设有一个很多很多很多图片的数据集

2. 数据增强(Data augmentation)
- 举个例子,从数据集中,分组,两张图片为一组(Batch size = 2)
论文实现中,Batch size = 8192.
- 构造函数对图片进行“增强”,比如随机裁剪(crop),翻转(flip),颜色抖动(color jitter),调整灰度(grayscale)。
r a n d o m ( c r o p + f l i p + c o l o r j i t t e r + g r a y s c a l e ) random (crop + flip + color jitter + grayscale)random(crop+flip+colorjitter+grayscale)
效果如下:
3. 一个batch = 2图片组,增强后得到4张图片。
B a t c h s i z e ∗ 2 Batch \ size * 2Batch size∗2
效果如下:
4. 通过encoder得到图片表示
(Find image representation based on encoder)
读者可能好奇encoder是什么,论文用ResNet-50结构作为卷积网络encoder,得到一个1*2048的表示:
5. 映射图片(Projection Head)
上面我们得到图片的增强表示h i , h j h_i, h_jhi,hj, 然后经过一系列非线性的Dense-Relu-Dense层,最后又把图片映射表示为z i , z j z_i, z_jzi,zj.
6. 调试模型(tuning model)
别忘了我们上文batch size = 2, 也就是说, 最后生成了4个向量z 1 , z 2 , z 3 , z 4 z_1, z_2, z_3, z_4z1,z2,z3,z4. 接下来我们要计算图片经过一系列编码器,图片变换之后的的损失(loss)。

6.1 计算余弦相似度
原理很简单,c o s < x , y > = x ∗ y ∣ ∣ x ∣ ∣ ∗ ∣ ∣ y ∣ ∣ cos<x, y> = {\frac{x*y}{||x|| * ||y||}}cos<x,y>=∣∣x∣∣∗∣∣y∣∣x∗y
注意,这里的 τ \tauτ 是温度参数(temperature parameter),它可以适当放缩相似度的计算,可以让相似度不限于 [ − 1 , 1 ] [-1, 1][−1,1]。然后一个batch里面最后得到的4张图片, 两两相似度计算,得到下面的结果:
6.2 计算损失(loss calculation)
SimCLR使用了一种叫做 NT-Xent loss 的损失函数,全称 Normalised Temperature-Scaled Entropy Loss。该损失函数的原理是:
- 把增强的图片对取出来:

- 用Softmax函数去得到图片pair的相似度, 比如:

第一张图片作为参考,计算另外三张图片,哪个最像?
- 计算损失函数 (Noise Contrastive Estimation(NCE) Loss)
Softmatx取一个负log:
图片对调换一下,再算一次:
最后终于。。对所有的图片对(一个图片随机增强变换成的两个图片),取一个平均,得到损失值Loss。
依据这个Loss,encoder 和 projection head表示可以一步一步地变强。
Downstream tasks
通过上文地对比学习, SimCLR模型训练完成后,该模型可以用于迁移学习。这里主要用训练出地encoder来迁移学习。
结论
开拓自监督学习地领土,击败一众框架,性能SOTA(STATE-OF-THE-ART)。