1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > 【ICML 对比学习论文解读】SimCLR: A Simple Framework for Contrastive Learning of Visual Representations

【ICML 对比学习论文解读】SimCLR: A Simple Framework for Contrastive Learning of Visual Representations

时间:2019-11-04 15:16:44

相关推荐

【ICML 对比学习论文解读】SimCLR: A Simple Framework for Contrastive Learning of Visual Representations

一、写在前面

对比学习(Contrastive Learning)

对比学习是一种自监督学习方法,在无标签数据集上仍可以学习到较好的表征。

对比学习的主要思想就是相似的样本的向量距离要近,不相似的要远,以此获得数据的高阶信息

自监督学习(Self-Supervised Learning)

Self-Supervised Learning,又称为自监督学习,我们知道一般机器学习分为有监督学习,无监督学习和强化学习。 而 Self-Supervised Learning 是无监督学习里面的一种,主要是希望能够学习到一种通用的特征表达用于下游任务 (Downstream Tasks)。

二、对比学习经典论文SimCLR

Paper: A Simple Framework for Contrastive Learning of Visual Representations /pdf/2002.05709.pdfPPT: SimCLR: A Simple Framework for Contrastive

Learning of Visual Representations

(1)SimCLR预训练阶段(类比BERT预训练阶段)

Data augmentationEncoding ( x ~ i → z i , x ~ j → z j \tilde x_i \rightarrow z_i, \tilde x_j \rightarrow z_j x~i​→zi​,x~j​→zj​)Contrastive loss function

SimCLR用了一种叫做 NT-Xent loss (Normalized Temperature-Scaled Cross-Entropy Loss)的对比学习损失函数,也就是我们一般提到的对比学习里面的InfoNCE loss

(2)对下游任务Fine-tune阶段(类比BERT对下游任务微调)

输入图片 x x xEncoding h = f ( x ) h=f(x) h=f(x)将表征 h h h,作为下游任务的输入用少量标注数据微调模型

(3)下游任务预测阶段

使用微调好的模型进行下游任务预测

SimCLR框架

SimCLR详细架构图

SimCLR的伪代码

计算每个Batch里面的所有Pair的损失之和取平均:

常见的数据增强方法

三、相关问题

问题1:SimCLR是有两个独立的Encoder网络吗?不是的,共享网络层参数

显然不是,SimCLR中不同view的图片用的是相同的网络 f f f(共享网络参数),而不是 f 1 , f 2 f_1, f_2 f1​,f2​,这个在论文里也有说明。因此在预测阶段输入一张图片,经过网络 f f f,就可以得到图片的表征。

这种共享网络参数的思想是很常见的,比如BERT Mask任务的Softmax分类器(如下图所示)、Transformer的全连接层是所有位置共享的,ESMM双塔结构的底层网络是共享。想想也是,我们不可能给每个位置都初始化一个网络吧,这代价也太大了。

问题2:SimCLR预测阶段是怎么样的?

我们通过对比学习,巧妙地在没有任何标签的情况下训练好了 SimCLR 模型,使得其Encoder的输出可以像正常有监督训练的模型一样表示图片的Representation信息。所以接下来就是利用这些 Representation的时候了,也就是在下游任务上Fine-tune。一旦 SimCLR 模型在对比学习任务上得到训练,它就可以用于迁移学习,如 ImageNet 分类,如下图19所示。此时在下游任务上 Fine-tune 模型时需要labeled data,但是数据量可以很小了。

The hidden layer before the projection head is a better representation than the layer after.

z z z只是用来做contrastive learning的训练,而真正当我们使用feature来做下游任务时,还是选取nonlinear projection前的 h h h特征。这是因为 h h h的信息量是要比 z z z的信息量要高的。

四、相关资料

🤩 视频:李沐 对比学习论文综述【论文精读】 对比学习(Contrastive Learning)中的损失函数https://keremturgutlu.github.io/self_supervised/10%20-%20simclr.html[论文笔记]——SimCLR(Google Brain)ICML//04/advancing-self-supervised-and-semi.htmlSelf-Supervised Learning 超详细解读 (二):SimCLR系列(推荐阅读)

五、To Do

SimCLR代码实现对比学习论文综述【论文精读】

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。