文章目录
前言
对比学习来自于一个朴素的想法,想像一下我们找出最像猫的照片的过程
看一眼猫,对比找出哪个最类似,最后做出判断
通过这个简单思想的启发,有人提出了”对比学习“的概念
大佬们想把机器训练成可以识别相似与或者不相似的图片:
机器要怎么做才能学习?
-
与目标相似/不相似的图片
-
图片的表示方式
-
能够判断两幅图片的相似程度
simCLR 框架简介
Self-supervised learning implemented by contrastive learning
框架流程简介:
- 输入一张图片(e.g. cat)
- 对图片随机变换,生成两张增强的图片
- 得到图片增强后的数据表示 x i , x j x_i, x_j xi,xj
- 通过 encoder 得到 image representation h i , h j h_i, h_j hi,hj
- 再通过non-linear全连接层的到数据的表示 z i , z j z_i, z_j zi,zj
- 最终目标是最大化 z i , z j z_i, z_j zi,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 * 2 Batch 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_j
hi,hj, 然后经过一系列非线性的Dense-Relu-Dense层,最后又把图片映射表示为
z
i
,
z
j
z_i, z_j
zi,zj.
6. 调试模型(tuning model)
别忘了我们上文batch size = 2, 也就是说, 最后生成了4个向量 z 1 , z 2 , z 3 , z 4 z_1, z_2, z_3, z_4 z1,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)。