论文笔记:A Simple Framework for Contrastive Learning of Visual Representations
0 简介
论文:A Simple Framework for Contrastive Learning of Visual Representations
代码:https://github.com/google-research/simclr
发表:2020年发表在ICML会议上
1 核心思想
如何构建对比学习的比较对象?本文按如下方式进行构建:
- 数据增强:输入 x x x,增强为 x ~ i \tilde{x}_i x~i( t ∼ T t \sim \mathcal{T} t∼T)和 x ~ j \tilde{x}_j x~j( t ′ ∼ T t^\prime \sim \mathcal{T} t′∼T),获得两个相关的视角,这两个相关的视角经过代表学习后要相近;
- 和其他图片增强的视角进行对比:
x
x
x的视角和其他图片增强得到的视角距离越远越好。
2 具体算法
2.1 增强图片的方式
- 随机裁剪(random cropping);
- 随机颜色失真(random color distortions);
- 随机高斯模糊(random Gaussian blur)。
实矩形是原始图像,虚线矩形是随机裁剪。通过随机裁剪图像,我们采样对比预测任务,包括全局到局部视图(B→A)或相邻视图(D→C)预测。
2.2 比较学习
h
i
=
f
(
x
~
i
)
=
ResNet
(
x
~
i
)
\boldsymbol{h}_{i}=f\left(\tilde{\boldsymbol{x}}_{i}\right)=\operatorname{ResNet}\left(\tilde{\boldsymbol{x}}_{i}\right)
hi=f(x~i)=ResNet(x~i)
其中
h
i
∈
R
d
\boldsymbol{h}_{i} \in \mathbb{R}^d
hi∈Rd。
z
i
=
g
(
h
i
)
=
W
(
2
)
σ
(
W
(
1
)
h
i
)
\boldsymbol{z}_{i}=g\left(\boldsymbol{h}_{i}\right)=W^{(2)} \sigma\left(W^{(1)} \boldsymbol{h}_{i}\right)
zi=g(hi)=W(2)σ(W(1)hi)
其中
σ
\sigma
σ就是一个ReLU非线性操作。
正样本组合
x
~
i
\tilde{x}_i
x~i和
x
~
j
\tilde{x}_j
x~j对比Loss:
ℓ
i
,
j
=
−
log
exp
(
sim
(
z
i
,
z
j
)
/
τ
)
∑
k
=
1
2
N
1
[
k
≠
i
]
exp
(
sim
(
z
i
,
z
k
)
/
τ
)
\ell_{i, j}=-\log \frac{\exp \left(\operatorname{sim}\left(\boldsymbol{z}_i, \boldsymbol{z}_j\right) / \tau\right)}{\sum_{k=1}^{2 N} \mathbb{1}_{[k \neq i]} \exp \left(\operatorname{sim}\left(\boldsymbol{z}_i, \boldsymbol{z}_k\right) / \tau\right)}
ℓi,j=−log∑k=12N1[k=i]exp(sim(zi,zk)/τ)exp(sim(zi,zj)/τ)
其中
1
[
k
≠
i
]
∈
{
0
,
1
}
\mathbb{1}_{[k \neq i]} \in \{0, 1\}
1[k=i]∈{0,1},当
k
≠
i
k \neq i
k=i等于1,
k
=
=
i
k == i
k==i等于0,
τ
\tau
τ为温度系数。
负样本
u
u
u和
v
v
v对比Loss: