无监督表示学习(三):2020 Simple Contrastive Learning of Visual Representations(SimCLR)

2020年2月Hinton团队的一项新研究:SimCLR,提出了对比学习为无监督表示学习领域带来的巨大突破,并推出了性能优越的表示模型SimCLR。

论文地址

题目:《A Simple Framework for Contrastive Learning of Visual Representations》
地址:

问题提出

首先论文对当前表示学习的主流方法做了概述,目前大部分表示方法都可以分为两种:生成式判别式。生成式的表示方法是在输入空间用生成器,或其他方式对图片像素进行建模,然而这种像素级的生成非常耗费计算资源,而且在表示学习中也不是必须的部分。判别式的表示方法则是通过最小化一个目标函数,和监督学习有些类似,不同的是输入和标签都来自于未标注的数据集,利用判别思想设置前置任务的问题在于,会限制表示特征的泛化性。

所以,论文提出了一个既简单又强大的表示模型:SimCLR,主要特点有以下四个:

  • 采用了强度更大的数据增扩,这对无监督表示学习来说非常重要;
  • 提出了一个可训练的非线性转化模块,位于特征表示和对比损失之间,大大提升了学习到的特征质量;
  • 归一化嵌入和合适的温度参数,有利于包含对比交叉熵损失的表示学习;
  • 采用比较大的batch size,和比较多的迭代次数,同时选择更深更宽的网络结构,都有利于无监督表示学习。

模型框架

一句话概括:SimCLR先对数据进行不同角度的增扩,再利用对比损失,通过最大化两个样本的特征之间的一致性(argeement)来学习表示

SimCLR框架

上图就是模型的基本框架,x代表输入数据,将其同时送入两个数据增扩的模块,大写的\tau表示同源的数据增扩函数,\widetilde{x}_i\widetilde{x}_j就是增扩后的两个样本,作为正样本对。然后将他们经过一个基础编码器f(.),得到表示向量h_ih_j,文中采用ResNet作为编码器的结构。紧接着再设置一个映射层g(.),用于将特征表示映射到隐空间,得到投影向量z_iz_j,目的是在这个空间计算对比损失,映射层的结构采用一层感知机。实验证明,在隐空间计算对比损失比在编码器之后计算效果要好
和以往表示学习利用对比损失的方式一样,训练的实质是一个对比预测任务,给定一个数据集合\{\widetilde{x}_k\},其中包含\widetilde{x}_i\widetilde{x}_j这两个正样本对,在已知\widetilde{x}_i的情况下,要从集合\{\widetilde{x}_k\}_{k\not=i}中找出\widetilde{x}_j。也就是\widetilde{x}_i应该和\widetilde{x}_j的相似度最大,和其他样本相似度最小,论文中定义相似度的计算方式为:

sim(u,v)=\frac{u^Tv}{||u||\ ||v||}

因此,对于使\widetilde{x}_i\widetilde{x}_j的相似度最大,和其他样本相似度最小的任务,损失函数定义如下:

l_{i,j}=- \log \frac{\exp(sim(z_i,z_j)/\tau)}{\sum_{k=1}^{2N}{1_{k\not=i}\exp(sim(z_i,z_k)/\tau)}}

该目标函数仅仅是针对\widetilde{x}_i\widetilde{x}_j的特征匹配,完整的损失函数应该是样本集合\{\widetilde{x}_k\}中,每对同源增扩样本之间互相匹配的损失函数之和

算法流程

也就是上图中最后总的损失函数:

L=\frac{1}{2N}\sum_{k=1}^N{l(2k-1,2k)+l(2k,2k-1)}

举个例子,N=2时有两个样本x_1x_2,输入网络后各自得到两个增扩样本\{\widetilde{x}_1,\widetilde{x}_2\}\{\widetilde{x}_3,\widetilde{x}_4\},每对增扩样本构成正样本对。经过编码器和映射层,得到他们的投影向量\{z_1,z_2,z_3,z_4\},接下来计算loss:
使\widetilde{x}_1\widetilde{x}_2的相似度最大,和\widetilde{x}_3\widetilde{x}_4的相似度最小,得到l_{1,2};使\widetilde{x}_2\widetilde{x}_1的相似度最大,和\widetilde{x}_3\widetilde{x}_4的相似度最小,得到l_{2,1},类似地得到l_{3,4}l_{4,3},以上是模型的全部目标,加在一起就是总体损失函数L=\frac{1}{4}[l_{1,2}+l_{2,1}+l_{3,4}+l_{4,3}]

各种trick详解

1、数据增扩

这篇论文着重对数据增扩做了大量的实验说明。
首先,列举出多种数据增扩的方式,基于几何变换的增扩有随机裁剪(crop)、尺寸变换(resize)、旋转(rotate)和遮挡(cutout);基于纹理变换的增扩有一系列色彩失真(distortion)、高斯模糊和Sobel滤波,效果如下图所示:

实验涉及的数据变换方式

定义了这些数据变换方式之后,为了了解单个数据增扩的影响和数据增扩组合的重要性,论文设计了使用单个增扩方式和使用成对增扩方式对表示性能带来影响的对比实验。
具体操作是将数据增扩的方式两两组合,分别训练出对应基本模型之后,再用一个线性分类器进行分类,得到下面这个表:

除了最后一列计算的平均准确率之外,对角线上的数值是只用一种增扩方式的准确率,可以看到准确率都不是很高,此外有一个组合方式脱颖而出,就是随机裁剪加上色彩变换。这个组合的优势在于,本身随机裁剪增扩效果就比较优秀,其得到的图像块可以包含不同的特征信息,但它们的颜色分布往往都相似,而对图像块做色彩变换之后,它的特征分布会很具辨识性(这一点论文也做了实验验证),所以这两种数据增扩方式组合起来就能够使增扩效益最大化。

随后,为了进一步研究色彩变换的重要性,论文还验证了不同色彩变换强度下分类准确率的变化:

可以看到色彩变换的强度越大,分类效果越好,最后一个AutoAug是在全监督学习中用到的一种色彩变换方式。实验还发现在全监督学习中,色彩变换的强度越大,并不能带来更好的分类准确率,而在无监督学习中则相反,强度大的色彩变换更有利于特征表达。

最后,论文中的数据增扩方式为以下三个变换的顺序组合:随机裁剪、色彩变换,和随机高斯模糊。无监督表示学习中数据增扩是非常关键的一部分,本文提出的数据增扩方式经过了大量的实验验证,证明了这种增扩方式能够达到最好的效果。

2、网络结构

这部分论文首先提出的一点是,更大的网络结构对无监督模型来说更有益,并且做了实验验证,随着参数量增多,无监督表示的性能越好(分类top1准确率越高)。

其次是关于映射层g(.)的结构,同样用实验证明了,在恒等映射、线性映射和非线性映射这三种设置中,非线性映射取得了更好的性能。映射层的输出用于计算对比损失,可能会丢失一些有用的信息,映射层之前的隐藏层对于特征的表达能力更好。

3、损失函数和batchsize

损失函数部分,论文提出带有调节参数的归一化交叉熵更好用,同时采用更大的batchsize和更长的训练时间,也会让性能提升。

上图是采用不同batchsize,在不同的迭代次数下的分类准确率,可以看到批次越大准确率越高,因为大的批次能够一次性提供更多的负样本,同时迭代次数较小时,大批次的提升比较明显,随着训练时间增多,不同批次之间的性能差异逐渐变小。

总结

SimCLR的模型结构十分简单,然而能够取得优越的表示效果,大部分得益于数据增扩部分的改进,这也是在大量的实验基础上得到的最优组合,其次就是网络结构和一些训练技巧的加持。总体来说效果惊艳,实验量巨大。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,470评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,393评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,577评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,176评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,189评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,155评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,041评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,903评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,319评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,539评论 2 332
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,703评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,417评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,013评论 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,664评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,818评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,711评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,601评论 2 353