Cookbook Reading - 1

All the following text are stemmed from the source book, please refer to the original copy - A Cookbook of Self-Supervised Learning. Additionally, there will be a large amount of Chinese translations on it since it will be used for me to recall something, sorry in advance.

What is Self-Supervised Learning and Why Bother?

自监督学习,也被称为 the dark matter of intelligence。它是一个提升机器学习的康庄大道。与监督学习不一样,监督学习受制于有标签数据的数量,而自监督学习方法能够从大量没有标签的数据里面进行学习。自监督学习是深度学习在自然语言处理领域取得成功的基础,它推动了从自动机器翻译到在无标记文本的网络规模语料库上训练的大型语言模型的发展。在计算机视觉里面,SSL通过在10亿张图像上训练的SEER等模型,将数据规模推向了新的极限。一些针对计算机数据的SSL方法,即使在一些竞争相对激烈的Benchmarks上(e.g., ImageNet)已经能够和一些在有数据标签的训练的监督学习上得到的模型相媲美甚至更好。SSL也已经被成功运用在各个模态数据上,比如视频,音频,和一些时间序列。

自监督学习根据位标签的输入定义了一个辅助任务来产出descriptive and intelligible的特征。在自然语言中,一个常见的SSL的目标就是去遮住(mask)一个文本中的单词,然后预测周围的单词。这种预测一个词周围的上下文的目标鼓励了模型不依赖任何标签也能去捕捉文本中词汇中的关系。同样的经过SSL模型学到的表征也能被用作一系列下游任务上,比如不同语言间的文本翻译,总结,甚至产生文本,当然也还有一些别的。在CV中,MAEBYOL这些方法也存在相似的目标,通过学习来预测一个图像被遮住的patch或者其表征。也有别的SSL目标,通过添加颜色或者裁剪图片来形成同一个图片的两个不同视角,然后鼓励模型能学到映射到相似表征的能力。

有了能力来在大量的未标签数据上进行训练,带来了很多好处。传统的监督学习方法通常是根据现有的有标签数据对已知的特定任务进行训练(先验的),而 SSL 则是学习对许多任务都有用的通用表征SSL 在医学等领域尤其有用,因为在这些领域中,标签的成本很高,或者无法事先知道具体的任务。还有证据表明,SSL 模型可以学习到对对抗性示例(adversarial examples)、标签损坏(label corruption)和输入扰动(input perturbations)更稳健(robust)的表征,而且与有监督的模型相比更公平。因此,SSL是一个越来越受关注的领域。然而,和做饭很像,训练SSL方法是一个门槛很高的微妙艺术。

Why a Cookbook for Self-Supervised Learning?

虽然 SSL 的许多组成部分都为研究人员所熟悉,但要成功训练 SSL 方法,却需要从借口任务到训练超参数等一系列令人眼花缭乱的选择。SSL研究有一个高的门槛,一是因为计算成本,二是没有完全透明的论文详细讲述其中能够充分发挥SSL的潜能的复杂的实现方法,三是缺乏SSL统一的词汇和理论观点。因为SSL从传统的reconstruction-based无监督学习方法(e.g.,denoising variational autoencoders)建立了一套独特的范式,我们在统一视角下理解 SSL 的词汇是有限的。事实上,在一个单一视角下统一SSL方法在2021也仅仅才开始出现。如果没有一个共同的基础来描述 SSL 方法的不同组成部分,研究人员在开始研究 SSL 方法时就会面临更大的挑战。同时,SSL研究也急需新的研究人员,因为SSL现在已经遍布我们的生活了。然而,关于 SSL 的通用性保证、公平性属性以及对对抗性攻击甚至自然发生的变异的鲁棒性,仍有许多未解决的研究问题。这类问题对于SSL方法的依赖程度也很关键。

此外,SSL 是由经验驱动的,它有许多活动部件(主要是超参数),这些部件可能会影响最终表征的关键属性,而且在已发表的作品中不一定有详细说明。即,为了开始研究SSL方法,我们必须首先对这些方法进行详尽的实证研究,才能充分掌握所有这些活动部件的影响和行为。这种经验盲点需要大量的计算资源和已有的实践经验,因此具有很强的局限性。总之,SOTA 的性能来自看似不同但又相互重叠的方法,现有的理论研究很少,而实际应用却很广泛,因此需要一本统一技术及其“配方”的指南,这对降低 SSL 的研究门槛至关重要。

我们的目标是为了降低从事SSL研究的门槛,通过铺设基础和一些相对较新的SSL方法,以一种cookbook的风格来呈现。为了“烹饪”成功,你必须首先学习基本技术:切菜,炒菜等。在第 2 节中,我们首先使用通用词汇介绍自监督学习的基本技术。特别是,我们将从统一的视角来描述这些方法系列以及将它们的目标联系起来的理论主线。我们在概念框中突出了损失项或训练目标等关键概念。然后,一个厨师必须学会运用技术去做成一道美味的菜,这也就需要学习现有的菜谱,组合食材,还有品味菜品。在第三节中,我们介绍了实际成功实现SSL方法中,需要考虑的点。我们讨论了通常的训练菜谱,包括超参数的选择,如何组合不同组件(比如结构和优化器),还有如何评价SSL方法。我们还将分享顶尖研究人员就常见培训配置和陷阱提出的实用建议。我们希望这本手册能成为成功训练和探索自监督学习的实用基础。

The families and origins of SSL

由于大规模的特别大的数据集和高内存的GPU的可获得性,自2020年以来,SSL方法就开始复兴了。但是SSL的起源可以追溯到深度学习年代的最开始

Origins of SSL

当今的方法都建立于我们从早期实验中获得到的知识。在这一章节中,我们给了一个在2020年以前关于SSL点子的简述。虽然许多具体方法已经不再被主流使用,因为它们不再能在基准问题上提供最先进的性能,我们也不会对它们进行详细讨论,但这些论文中的观点构成了许多现代方法的基础。比如,restoring missing or distorted parts of an input or contrasting two views of the same image的核心目标形成了现代SSL方法的基础。SSL 早期的进展主要集中在以下几类(有时相互重叠)方法的开发上:

  1. Information restoration: 大量的方法被开发来遮住或者移除一个图片中的一些东西,然后训练一个神经网络来恢复缺失部分的信息。基于上色的SSL方法(Colorization-based)SSL methods把一个图片转换成灰度图,然后训练一个神经网络来预测原本的RGB值。由于着色需要了解对象的语义和边界,因此着色被证明是早期的对象分割 SSL 方法。这种信息恢复最直观简单的应用是遮住即挪去图像的一部分,然后训练一个神经网络来给缺失的像素着色。这个点子进化成了Masked auto-encoding methods,其中,掩蔽区域是图像patches的结合体(union),可以使用transfomer进行预测

  2. Using temporal relationships in video: 尽管这个回顾的焦点是在图像(而非视频)处理上,一系列专门方法已经被开发出来,通过对视频进行预训练来学习单图像表征(single-image representations)。需要注意的是,信息还原(information restoration)方法对视频特别有用,因为视频包含多种可能被屏蔽的信息模式。Wang and Gupta 使用三重损失(triplet loss)对模型进行预训练,以提高两个不同帧中同一个物体表征的相似性。最终的结果模型在物体检测上表现不错。Pathak et al. 训练了一个模型来预测物体在单一帧中的运动,调整由此产生的features来解决单一帧(single-frame)检测问题。Agrawal et al. 预测多帧图像中摄像机的自我运动(ego-motion)轨迹。Owens et al. 提出从视频中去掉音轨,然后预测缺失的声音。对于深度映射(depth mapping)等专业应用,有人提出了自监督方法,从未标明的图像对中学习单目深度(monocular depth)模型,然后从单摄像头视频(single-camera video)中学习帧。此类方法仍是一个活跃的研究领域。

  3. Learning spatial context: 这个种类的方法是训练一个模型来理解物体在一个场景的相对位置和方向。RotNet 通过随机旋转来掩盖重力方向,然后要求模型预测旋转。Doersch et al. 是最早的 SSL 方法之一,它可以简单地预测图像中两个随机采样的patch的相对位置。这个方法后来被Jigsaw方法取代了。Jigsaw方法就是把一个图片分成一列disjoint的patches然后预测相互的相对位置。一个不同的空间任务是学习数数:模型是在自监督方式被训练来输出一个图像中物体的数量

  4. Grouping similar images together: 通过将语义相似的图像分组,可以学习到丰富的特征。K-means聚类就是在传统的机器学习中最广泛运用的方法之一。许多研究都对 k-means 进行了调整,以便利用神经模型做 SSL。深度聚类技术通过在特征空间(feature space)中执行 k-means 来交替为图像分配标签,并更新模型以respect这些分配的类别标签。这个方法最近的处理方式是使用mean-shift更新来把features推到他们的聚类中心,而且已经被证明可以用来补充BYOL方法。BYOL是一种基于两个网络的方法,其目标是预测每个样本的伪标签。对深度聚类的别的提升包括在特征空间用optimal transport methods来创建更有信息的聚类。

  5. Generative models: 一种早期的有影响力的SSL方法是贪婪层级(greedy layer-wise)预训练,其中,深度网络的各层使用autoencoder loss进行逐层训练。当时的一种类似方法是使用受限玻尔兹曼机 (RBMs),这种机器可以进行分层训练和堆叠,以创建深度信念网。虽然这些方法已被放弃,转而采用更简单的初始化策略和更长的训练时间,但它们在历史上对 SSL 的使用产生了深远影响,因为它们促成了第一批 “深度 “网络的训练。后来在auto-encoders的表征学习的能力上的提升有包括denoising autoencoders,cross-channel prediction,和deep canoncically correlated autoencoders。但是最终发现,当要求auto-encoder恢复其输入的缺失部分时,表征转移性会更好,这就形成了 SSL 方法中的 “信息恢复 “类别。

    生成式对抗网络由一个图像生成器和一个判别器组成,判别器区分真图像和生成的假图像。这对模型的两个组成部分都可以在没有监督的情况下进行训练,而且两者都可能包含对迁移学习有用的知识。早期的GANs的论文使用 GAN 组件进行下游图像分类实验。此外,还开发了专门的特征学习程序来修改判别器、添加生成器或学习从图像到潜空间的额外映射,以改进迁移学习。

  6. Multi-view invariance: 许多现代 SSL 方法,尤其是我们在本文中重点讨论的方法,都使用对比学习(contrastive learning)来创建不受简单变换影响的特征表征。对比学习的理念是鼓励模型以相似的方式表示输入的两个增强版本。在对比学习被广泛采用之前,有许多方法以各种方式强制保持不变性,从而引领了这一方向。

    从无标签数据中学习的最流行框架之一,是使用弱训练网络为图像添加伪标签(pseudolabels),然后以标准监督方式使用这些标签进行训练。这种方法后来得到了改进,加强了对变换的不变性(invariance to transformations)。虚拟对抗训练(virtual adversarial training)利用图像的伪标签对网络进行训练,此外还进行对抗训练,使学习到的特征几乎不受输入图像微小扰动(small perturbations)的影响。后来的工作重点是保持数据增强(augmentation)变换的不变性(maintain invariance to data augmentation transforms)。这类早期的重要方法包括 MixMatch,该方法通过平均(average)网络在多个不同随机增强(augmentation)训练图像上的输出来选择伪标签,从而得到增强不变的标签。大约在同一时间,人们发现,通过训练网络使不同视角下的图像表征之间的互信息最大化,可以实现良好的 SSL 性能。这些以增强为基础(augmentation-based)的方法在上述旧方法和本文重点讨论的现代方法之间架起了一座桥梁。

有了这些渊源,我们现在将 SSL 分成四大系列:深度度量学习(Deep Metric Learning)系列、自馏分(Self-Distillation)系列、典型相关分析(Canonical Correlation Analysis)系列和屏蔽图像建模(Masked Image Modeling)系列。

在接下来的文章中,将会以原著的方式呈现摘录来形成笔记。




    Enjoy Reading This Article?

    Here are some more articles you might like to read next:

  • Line Segment Intersection
  • Graduation
  • Review of SwAV
  • Review of SimSiam
  • Extracts from BYOL