分享

使用 SimCLR 推进自我监督和半监督学习

 雨夜的博客 2021-12-16

视频介绍:使用 SimCLR 推进自我监督和半监督学习

最近,自然语言处理模型,例如BERT和T5,已经表明,通过首先在一个大型未标记数据集,然后在较小的标记数据集上进行微调。同样,训练前对大型未标记的图片数据集,具有提高计算机视觉任务性能的潜力,具体表现为标本的CNN,实例歧视,CPC,AMDIM,CMC,莫科和别的。这些方法属于自监督学习的范畴,自监督学习是一系列技术,通过从未标记的数据集中创建替代标签,将无监督学习问题转换为有监督学习问题。然而,当前用于图像数据的自监督技术很复杂,需要对架构或训练过程进行重大修改,并且尚未得到广泛采用。

在“一个简单的视觉表示对比学习框架”,我们概述了一种方法,该方法不仅简化而且改进了以前对图像进行自监督表示学习的方法。我们提出的称为 SimCLR 的框架显着提升了自监督和半监督学习的最新技术水平,并在有限数量的类标记数据的情况下实现了图像分类的新记录(使用 1% ImageNet数据集上的标记图像)。我们方法的简单性意味着它可以很容易地合并到现有的监督学习管道中。在下文中,我们首先介绍 SimCLR 框架,然后讨论我们在开发 SimCLR 时发现的三件事。

SimCLR 框架

SimCLR 首先学习未标记图像上的通用表示数据集,然后可以使用少量标记图像对其进行微调,以实现给定分类任务的良好性能。通用表示是通过同时最大化同一图像的不同变换视图之间的一致性和最小化不同图像的变换视图之间的一致性,遵循一种称为对比学习的方法来学习的。使用这种对比目标更新神经网络的参数会导致相应视图的表示相互“吸引”,而非相应视图的表示相互“排斥”。

首先,SimCLR 从原始数据集中随机抽取示例,使用简单增强(随机裁剪、随机颜色失真和高斯模糊)的组合对每个示例进行两次转换,创建两组相应的视图。单个图像的这些简单变换背后的基本原理是 (1) 我们希望在变换下鼓励同一图像的“一致”表示,(2) 由于预训练数据缺少标签,我们无法先验地知道哪个图像包含哪个对象类,以及 3) 我们发现这些简单的转换足以让神经网络学习良好的表示,尽管也可以合并更复杂的转换策略。

SimCLR 然后使用一个基于ResNet架构的卷积神经网络变体。之后,SimCLR 使用全连接网络(即MLP)计算图像表示的非线性投影,该网络放大不变特征并最大化网络识别同一图像不同变换的能力。我们使用随机梯度下降来更新 CNN 和 MLP,以最小化对比目标的损失函数。在对未标记图像进行预训练后,我们可以直接使用 CNN 的输出作为图像的表示,也可以使用标记图像对其进行微调,以实现下游任务的良好性能。

性能

尽管很简单,但 SimCLR 极大地推进了 ImageNet 上自监督和半监督学习的最新技术。在 SimCLR 学习的自监督表征之上训练的线性分类器实现了 76.5% / 93.2% top-1 / top-5 准确率,而之前最佳 ( CPC v2 ) 的准确率为 71.5% / 90.1% ,与监督的性能相匹配在较小的模型 ResNet-50 中学习,如下图所示。

file

当仅对 1% 的标签进行微调时,SimCLR 实现了 63.0% / 85.8% top-1 / top-5 准确度,而之前最佳 (CPC v2) 的准确度为 52.7% / 77.9%。也许令人惊讶的是,当对 100% 的标签进行微调时,预训练的 SimCLR 模型仍然可以显着优于从头开始训练的监督基线,例如,微调 SimCLR 预训练的 ResNet-50 (4x) 在 30 个时期内达到 80.1% 的 top-1 准确率,而从头开始训练它在 90 个 epoch 中得到 78.4%。

理解表示

的对比学习SimCLR 对以前方法的改进不是由于任何单一的设计选择,而是由于它们的组合。下面总结了几个重要的发现。

  • 发现 1:用于生成相应视图的图像转换组合至关重要。

由于 SimCLR 通过最大化同一图像的不同视图的一致性来学习表示,因此重要的是组合图像转换以防止简单的一致性形式,例如颜色直方图的一致性。为了更好地理解这一点,我们探索了不同类型的转换,如下图所示。

file

我们发现,虽然没有任何单一的转换(我们研究过)足以定义产生最佳表示的预测任务,但有两个转换脱颖而出:随机裁剪和随机颜色失真。虽然裁剪和颜色失真本身都不会带来高性能,但组合这两种转换会导致最先进的结果。

要理解为什么将随机裁剪与随机颜色失真相结合很重要,请考虑最大化同一图像的两个裁剪之间的一致性的过程。这自然包含两种类型的预测任务,可以实现有效的表示学习:(a)从更大的“全局”视图(裁剪 B)预测局部视图(例如下图中的裁剪 A),以及(b)预测相邻视图(例如,在作物 C 和作物 D 之间)。

file

但是,同一图像的不同裁剪通常在色彩空间中看起来非常相似。如果颜色保持不变,模型可以通过匹配颜色直方图来最大化作物之间的一致性。在这种情况下,模型可能只关注颜色而忽略其他更普遍的特征。通过独立地扭曲每种作物的颜色,可以去除这些浅层线索,并且模型只能通过学习有用且可概括的表示来实现一致。

  • 发现 2:非线性投影很重要。

在 SimCLR 中,在计算对比学习目标的损失函数之前应用了基于 MLP 的非线性投影,这有助于识别每个输入图像的不变特征,并最大限度地提高网络识别同一图像不同变换的能力。在我们的实验中,我们发现使用这种非线性投影有助于提高表示质量,将在 SimCLR 学习的表示上训练的线性分类器的性能提高10% 以上。

有趣的是,用作 MLP 投影模块输入的表示与投影的输出之间的比较表明,较早阶段的表示在通过线性分类器测量时表现更好。由于对比目标的损失函数基于投影的输出,因此投影前的表示更好,这有点令人惊讶。我们推测,我们的目标导致网络的最后一层变得对可能对下游任务有用的特征(例如颜色)保持不变。通过额外的非线性投影头,投影头之前的表示层能够保留更多关于图像的有用信息。

  • 发现 3:纵向扩展显着提高了性能。

我们发现 (1) 在同一批中处理更多的例子,(2) 使用更大的网络,以及 (3) 更长时间的训练都会带来显着的改进。虽然这些看起来似乎有些明显,但SimCLR 的这些改进似乎比监督学习更大。例如,我们观察到监督 ResNet 的性能在 90 到 300 个训练时期(在 ImageNet 上)达到峰值,但 SimCLR 即使在 800 个训练时期后仍能继续改进。当我们增加网络的深度或宽度时,情况似乎也是如此——SimCLR 的增益继续,而监督学习开始饱和。为了优化扩大训练的回报,我们广泛使用了我们实验中的Cloud TPU。

代码和预训练模型

为了加速自监督和半监督学习的研究,我们很高兴与更大的学术界分享 SimCLR 的代码和预训练模型。

    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多