无监督表示学习(三):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框架

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

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

该目标函数仅仅是针对到的特征匹配,完整的损失函数应该是样本集合中,每对同源增扩样本之间互相匹配的损失函数之和

算法流程

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

举个例子,N=2时有两个样本和,输入网络后各自得到两个增扩样本和,每对增扩样本构成正样本对。经过编码器和映射层,得到他们的投影向量,接下来计算loss:
使和的相似度最大,和,的相似度最小,得到;使和的相似度最大,和,的相似度最小,得到,类似地得到和,以上是模型的全部目标,加在一起就是总体损失函数。

各种trick详解

1、数据增扩

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

实验涉及的数据变换方式

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

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

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

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

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

2、网络结构

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

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

3、损失函数和batchsize

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

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

总结

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

你可能感兴趣的:(无监督表示学习(三):2020 Simple Contrastive Learning of Visual Representations(SimCLR))