Contrastive Multiview Coding(多视角的对比学习编码)

原文题目为:Contrastive Multiview Coding
代码链接:https://github.com/HobbitLong/CMC

引言

本文主要提出了Multiview 的contrastive learning。motivation是现实世界中看待同一个物体具有多个视角,每一个视角都是有噪声和不完整的,但是一些对于该物体很重要的元素,例如physics(物理), geometry(几何), and semantics(语义)通常是在多个视角间共享的,举个例子:(一只狗可以被看到(seen),听到(heard),摸到(felt)),所以作者认为一个powerful representation建模了多个视角下都不变的元素。

基于这个假设,作者提出了多视角下进行contrastive learning来获得multi-view representation,通过contrastive learning,实际上等同于最大化互信息在多个view之间,即让多个view之间最大化共享的信息。
Contrastive Multiview Coding(多视角的对比学习编码)
如上图所示,对于第ii个样本,4个 不同视角的representation在朝着嵌入空间中靠近优化,而对于另一个jj样本,嵌入空间朝着远离的方向优化。最终的结果是每个样本簇不同分离开来,每个样本簇包含4个不同视角的嵌入representation。上图展示的是NYU RGBD数据的4个view,最终的表示可以是4个视角的representation concatenation。

方法

two-view contrastive learning

给定数据集V1V_{1}V2V_{2},包含样本集合{v1i,v2j}i=1N\{v_{1}^{i},v_{2}^{j}\}_{i=1}^{N},我们考虑对比congruent(一致)和incongruent(不一致)样本对,即样本来自联合分布xp(v1,v2)x\sim p(v_{1},v_{2}),也就是x={v1i,v2i}x=\{v_{1}^{i},v_{2}^{i}\}认为是positives,相反的,样本来自边缘分布的乘积yp(v1)p(v2)y\sim p(v_{1})p(v_{2}),也就是y={v1i,v2j}y=\{v_{1}^{i},v_{2}^{j}\}认为是negatives。

我们定义一个判别函数(也称为critic)hθ()h_{\theta}(\cdot),对positvie的样本对获得高值,对negative样本对获得低值。遵循先前的设置,选择一个正样本对xx,同时采样kk个负样本对{y1,y2,...,yk}\{y_{1},y_{2},...,y_{k}\}进行对比学习:
Lcontrast=ES[loghθ(x)hθ(x)+i=1khθ(yi)]\mathcal{L}_{contrast}=-\mathbb{E}_{S}[\log{\frac{h_{\theta}(x)}{h_{\theta}(x)+\sum_{i=1}^{k}h_{\theta}(y_{i})}}]
其中S={x,y1,y2,...,yk}S=\{x,y_{1},y_{2},...,y_{k}\},具体的,我们固定一个视角的样本v1iv_{1}^{i},从另一个视角选择出正样本v2iv_{2}^{i}和采样的kk个负样本v2j,jv_{2}^{j},j
LcontrastV1,V2=E{v11,v21,v22,...,v2k+1,}[loghθ({v11,v21})j=1k+1hθ({v11,v2j})]\mathcal{L}_{contrast}^{V_{1},V_{2}}=-\mathbb{E}_{\{v_{1}^{1},v_{2}^{1},v_{2}^{2},...,v_{2}^{k+1},\}}[\log{\frac{h_{\theta}(\{v_{1}^{1},v_{2}^{1}\})}{\sum_{j=1}^{k+1}h_{\theta}(\{v_{1}^{1},v_{2}^{j}\})}}]
理论上,针对一个样本v11v_{1}^{1}需要遍历V2V_{2}全部的负样本来进行contrast,即kk为数据集大小减1.但是当数据集很大时,例如imagenet,直接优化上述的loss是不合理的,因为softmax分类的类别过多,计算量太大。因此作者采用随机采样kk个负样本并进行k+1k+1-softmax分类的方法。

critic hθ()h_{\theta}(\cdot)

hθ()h_{\theta}(\cdot)是一个神经网络,采用编码器fθ1()f_{\theta_{1}}(\cdot)fθ2()f_{\theta_{2}}(\cdot)来分别编码输入样本v1v_{1}v2v_{2},得到的表示来计算余弦相似度:
hθ({v1,v2})=exp(fθ1(v1)fθ2(v2)fθ1(v1)fθ2(v2)1τ)h_{\theta}(\{v_{1},v_{2}\})=\exp{(\frac{f_{\theta_{1}}(v_{1})\cdot f_{\theta_{2}}(v_{2})}{||f_{\theta_{1}}(v_{1})||\cdot ||f_{\theta_{2}}(v_{2})||}\cdot \frac{1}{\tau})}
τ\tau是超参数来动态调节范围。
LcontrastV1,V2\mathcal{L}_{contrast}^{V_{1},V_{2}}是将V1V_{1}视为anchor并枚举V2V_{2},对称地,将V2V_{2}视为anchor并枚举V1V_{1},将两者相加作为two views loss:
L(V1,V2)=LcontrastV1,V2+LcontrastV2,V1\mathcal{L}(V_{1},V_{2})=\mathcal{L}_{contrast}^{V_{1},V_{2}}+\mathcal{L}_{contrast}^{V_{2},V_{1}}

与互信息(MI)的联系