【自监督论文阅读笔记】Unsupervised Learning of Dense Visual Representations

Abstract

        对比自监督学习已成为无监督视觉表示学习的一种有前途的方法。通常,这些方法学习全局(图像级)表示,这些表示对于同一图像的不同视图(即数据增强的组合)是不变的。然而,许多视觉理解任务需要密集(像素级)表示。在本文中,我们提出了 视图无关的密集表示 (VADeR),用于密集表示的无监督学习VADeR 通过 强制局部特征在不同的观察条件下保持不变 来学习像素表示。具体来说,这是通过 像素级对比学习 实现的匹配特征(即在不同视图上描述场景相同位置的特征)在嵌入空间中应该靠近,而非匹配特征应该分开。 VADeR 为密集预测任务提供了自然表示,并能很好地迁移到下游任务。我们的方法在多个密集预测任务中优于 ImageNet 监督预训练(和强大的无监督基线)。


1 Introduction

        自从引入像 ImageNet [9] 这样的大规模视觉数据集以来,计算机视觉领域的大部分成功主要是由监督学习驱动的。不幸的是,大多数成功的方法都需要大量标记数据,这使得它们的扩展成本很高。为了利用大量未标记数据并打破这一瓶颈,提出了无监督和半监督学习方法

        最近,基于对比学习的自监督方法 [23] 在计算机视觉问题上显示出可喜的结果 [73、55、30、80、29、63、1、26、49、5]。对比方法 学习 图像视图之间的相似性函数——在表示空间中拉近同一图像的视图,同时将其他图像的视图推开视图的定义因方法而异,但视图通常是从计算机视觉中常用的一组数据增强过程中提取的

        当前的对比自监督方法 有一个共同点相似性分数是在视图的全局表示之间计算的(通常通过最终卷积层上的全局池化操作)。参见图 1a。全局表示的计算效率很高,但提供了对 像素级变化 不变 的 低分辨率特征。这对于像图像分类这样的少数任务来说可能已经足够了,但对于密集的预测任务来说还不够

        与全局表示相反,密集表示在像素级别产生编码。它们提供了一种在训练期间利用视觉感知 [70] 中固有空间结构的自然方式(例如,附近的像素往往具有相似的外观,对象边界具有强梯度,以对象为中心的属性)。此外,许多(可以说是大多数)视觉理解任务依赖于结构化、密集的表示(例如像素级分割、深度预测、光流预测、关键点检测、视觉对应)。

        在本文中,我们提出了一种密集表示的无监督学习方法。关键思想利用 perceptual constancy 感知恒常性 [56]——即 局部视觉表征 在不同观察条件下 应保持不变的思想——作为训练神经网络的监督信号。感知恒常性在视觉感知中无处不在,并提供了一种根据光学结构的不变量来表示世界的方法 [18, 69]。场景的局部表示(例如,狗的眼睛)应该 相对于观察场景的视角保持不变

        我们的方法——视图不可知的密集表示法(VADeR)——通过 对比局部表征 来强制知觉恒常性。这里,匹配特征(即,在不同视图上描述场景的相同位置的特征)的表示在嵌入空间中应该是接近的,而非匹配特征应该是分开的。我们的方法 利用 从视图生成过程中 得到的已知像素对应关系,在每对视图中寻找匹配特征。VADeR可以 被视为 先前对比自监督方法的一种泛化在某种意义上,它学习密集(即,每像素)特征,而不是全局特征。图1b描述了我们的通用方法,并将其与常见的对比方法进行了比较。

        VADeR 为密集预测任务提供自然表示。我们通过查看学习到的特征如何转移到下游任务来评估其性能,无论是作为特征提取器还是用于微调。我们表明,密集表示的(无监督)对比学习在许多视觉理解任务(实例和语义分割、对象检测、关键点检测、对应和深度预测)中比其全局表示更有效。也许更有趣的是,VADeR 无监督预训练在不同任务上优于 ImageNet 监督预训练


2 Related Work

自监督学习。

        自监督学习是一种无监督学习形式,它利用数据的内在结构作为训练的监督信号。它包括制定一个 预测性的前置任务,并 以类似于监督学习的方式 学习特征。最近提出了范围广泛的前置任务。例如,[65, 57, 78, 2] 用噪声破坏输入图像 并 训练神经网络重建输入像素。对抗性训练 [20] 也可用于无监督表示学习 [16、12、13]。其他方法依靠启发式方法来设计前置任务,例如图像着色 [77]、相对块预测 [10]、解决拼图游戏 [52]、聚类 [3] 或旋转预测 [19]

        最近,基于对比学习的方法[23]显示了学习无监督视觉表征的有希望的结果。在这一系列方法中,前置任务是区分图像的兼容(相同实例)和不兼容(不同实例)视图,尽管视图的定义因方法而异。 对比预测编码(CPC) [55,29]已应用于顺序数据(空间和时间),并将视图定义为过去或未来的观察。DeepInfomax [30,1]通过 对比来自同一图像全局(整个图像)和局部(小块)特征 来训练网络。

        其他方法 [11、73] 提出了 [15] 的非参数版本,其中训练网络以区分数据集中的每个实例。特别是,InstDisc [73] 依靠 噪声对比估计 [22] 来 对比同一实例的视图(图像变换的组合)和不同实例的视图。作者提出了一个内存库 来存储每个实例的特征,以在训练期间有效地考虑大量负样本(来自不同图像的视图)许多作品都遵循这种方法并使用内存库对负样本进行采样,无论是考虑相同的视图定义 [80、74、26] 还是不考虑 [63、49] SimCLR [5] 也将视图视为图像变换的随机组合,但不使用内存库,而是通过使用更大的批次来提高性能。我们的方法可以看作是这些方法的改编,我们在其中学习像素级而不是图像级的 对视图不变的特征


密集的视觉表示。

        SIFT [46] 和 HOG [8] 等手工制作的特征已大量 用于涉及密集对应的问题 [43、68、35、32]。 Long 等人 [45] 表明,在大型数据集上进行分类训练的深层特征 可以 找到对象实例之间的对应关系,其性能 与 SIFT Flow [43] 等手工制作的方法 相当。这激发了许多关于训练深度网络以学习密集特征的研究 [25、75、76、6、34、53、60、64、54],但这些方法通常需要标记数据并且具有非常专业的架构。特别是,[34] 利用对应流(由图像转换生成)来解决关键点匹配问题。

        最近,已经提出了 学习结构化表示的 无监督/自监督方法。在 [79] 中,作者提出了一种通过 3D 引导的循环一致性学习密集对应的方法。一些工作通过利用时间信号来学习特征,例如,通过学习光流 [14]、为未来帧着色 [66]、光流相似性 [47]、对比预测编码 [24] 或时间周期一致性 [67、40]。其他人提出了自监督的方法来学习 对关键点 [62、33、61、48] 或 部分 [31] 进行编码的 结构化表示。我们的方法在使用的数据、损失函数 和 总体高级目标方面不同于以前的方法。 VADeR 学习可应用于不同下游任务的一般像素级表示。此外,我们的方法不需要特定数据(例如视频 或人脸分割图像)进行训练。


3 Method

        我们的方法 VADeR 通过 强制 像素表示与视角无关 来学习隐空间。这种不变性是在训练期间通过 对比损失 最大化同一场景的不同视图之间的每像素相似性 而施加的。从概念上讲,一个好的像素级嵌入 应该 将语义相似的像素 映射到彼此靠近的位置。图 2 显示了 VADeR 学习的表示的选定结果。这些定性示例表明,VADeR 可以在一定程度上 独立于视角和外观 且无需任何监督地 聚集少量高级视觉概念(如狗的眼睛、天鹅的喙、猫的耳朵)。在下文中,我们首先描述我们如何学习与视角无关的密集特征。然后我们描述我们的架构和实现细节。


3.1 与视图无关的密集表示

         我们用元组 (x,u) 表示图像  中的像素 u。我们遵循当前的自监督对比学习文献 [73、26、5],并 将 “view视图” 定义为应用于图像(及其像素)的数据变换的随机组合。令 (vx,vu) 为在 (x,u) 上应用 视图 v 的结果。视图 可以修改图像(及其像素)的外观(例如像素级噪声、照明变化、饱和度、模糊、色调)和 几何形状(例如仿射变换、单应性、非参数变换)

        令 f 和 g 为编码器-解码器卷积网络,为图像中的每个像素生成 d 维嵌入,即  。 f 和 g 的参数可以共享、部分共享或完全不同。我们的目标是学习一个嵌入函数,该函数将 (x,u) 编码为 相对于 包含原始像素 u 的任何视图 不变的表示。也就是说,对于每个像素 u 和每个视角对 。为了简化符号,我们将像素级嵌入写为  和 。理想情况下,我们希望满足以下约束: 

其中 u 和 u' 是不同的像素,c(·,·) 是表示之间兼容性的度量。 

        在实践中,上述约束是 通过逐像素特征的对比学习 来实现的。对比损失函数 有不同的实例[39],例如边际损失、对数损失、噪声对比估计(NCE)。在这里,我们 调整 NCE 损失 [22, 55] 以 在逐像素表示之间形成对比。直观上,NCE 可以看作是一个二元分类问题,其目标是区分兼容视图(同一像素的不同视图)和 不兼容视图(不同像素的不同视图)。 

        对于每个像素 (x,u),我们构造 一组 N 个随机负像素 。像素 u 和 u ^{_{}^{-}}损失函数可写为:

        我们认为兼容性度量是温度校准的余弦相似性,,其中 τ 是温度参数。通过使用一个简单的、非参数的兼容性函数,我们将表示学习的所有负担都放在了网络参数上

        这种损失函数 迫使 像素的表示 与同一像素的其他视图 比 其他像素的视图 更兼容。最终损失 包括 最小化数据集每个图像上每个像素的经验风险


3.2 实施细节

Sampling views.

        我们认为视图是 (i) 外观变换(随机高斯模糊、颜色抖动和/或灰度转换)和 (ii) 几何变换(随机裁剪,然后调整大小为 224×224)的组合。在这项工作中,我们 使用与 [26 MoCo] 中相同的变换

        通过对每个训练图像的视图对进行采样 并 确保至少 32 个像素属于两个视图 来生成正训练对(我们尝试了每对不同的最小匹配像素数,并且没有注意到性能上的任何数量差异)。像素级匹配的监督是免费的:这两个视图在它们之间 引入了对应关系图。我们 使用这个对应图 来找到 这对视图之间的匹配特征,并 将每个匹配的视图对 视为正训练样本

        如果我们考虑 逐像素的表示,则 负样本的数量尤为重要,因为现代数据集中的像素数量很容易达到数千亿的数量级。在初步实验中,我们尝试使用同一图像的不同像素作为负样本,但未能成功。我们认为使用来自其他图像的像素 对于负样本 更自然,并且它 非常适合使用 负样本队列 的情况。我们使用最近提出的 动量对比机制 [26] 在训练期间有效地使用大量负样本。关键思想是 将负样本表示为包含一组代表性负样本的大型动态字典队列,并将编码器 g 建模为 f 的基于动量的移动平均值。按照 [26],我们将字典的大小设置为 65,536,并使用 0.999 的动量。我们观察到与 [26] 中报告的内存库大小相关的类似行为。


Architecture.

        我们采用 特征金字塔网络(FPN) [41]作为我们的 编码器-解码器架构。FPN向标准网络(我们使用ResNet-50 [28]) 添加了一个轻量级的自上而下的路径,并生成了一个维度为256的特征金字塔(具有从1/32到1/4分辨率的四个比例)。类似于[36]的语义分割分支,我们将FPN的信息合并到单个密集输出表示中在金字塔的每个分辨率下,我们添加多个上采样块使得每个金字塔产生维度为128 且 比例为1/4的特征图 (例如,我们为分辨率为1/32的金字塔添加3个上采样块,为分辨率为1/8的金字塔添加1个上采样)。每个上采样模块由一个3 × 3卷积、group norm[71]、ReLU [50]和 2×双线性上采样组成。最后,我们 对金字塔表示进行逐元素求和,并通过最终的1×1卷积最终图像的维度为128,比例为1/4。由于我们在训练过程中使用大小为224×224的图像,因此由VADeR生成的特征图具有128×56×56的维度。 


Training.

        我们在ImageNet-1K [9] train split上训练我们的模型,包含大约1.28M的图像。用随机梯度下降优化f 的权重,权重衰减为0.0001,动量为0.9。我们使用4个批量大小为128的GPU 进行大约6M次迭代的训练。我们对编码器和解码器分别使用3e-7和3e-3的学习速率。我们将等式2乘以因子10,因为我们观察到,当使用非常少量的标签数据进行微调时,它会提供更稳定的结果。我们将温度τ设置为0.07。

        通过对随机图像和两个视图进行采样来生成训练样本。我们存储属于两个视图变换图像的像素之间的对应流。在通过网络转发每个视图之后,我们应用等式2中的损失将32对匹配的像素视为正对 (我们从所有匹配对中随机选择32对)负样本是来自MoCo队列的元素。然后,我们用SGD更新网络f 的参数,用 f 的权重的移动平均值更新 g 的权重。最后,我们更新动态字典的元素,并重复训练

        我们选择用 MoCo [26] 初始化VADeR编码器的权重,以提高训练速度解码器的权重是随机初始化的。我们认为MoCo是我们最重要的基线,有两个原因:(1)它是无监督视觉表示的当前技术水平,(2) 我们从MoCo初始化开始。我们还将我们的模型与在ImageNet-1K上用标签预先训练的ResNet-50 [28]进行了比较。MoCo包含与ResNet-50相同的容量,而由于解码器的原因,VADeR包含大约2M的额外参数


4 Experimental Results

        无监督学习的一个重要目标是学习可迁移到下游任务的特征。我们评估 VADeR 在 从识别到几何的 各种任务中 学习到的特征的质量(有关评估任务的示例,请参见图 3)。我们考虑两种迁移学习实验协议(i) 特征提取,我们评估固定的学习特征的质量,以及 (ii) 微调,我们使用学习的特征作为权重初始化,并对整个网络进行微调。对于每个实验,我们为 VADeR 和基线考虑相同的模型和超参数,仅更改固定特征或微调初始化。有关下游任务的数据集和实现的更多详细信息,请参阅补充材料。


4.1 Feature Extraction Protocol

语义分割和深度预测

         我们遵循自监督学习 [21、37] 的常见做法,并使用线性预测器 评估固定的图像表示的特征质量。线性分类器是一个 1×1 卷积层,可将特征转换为 logits(后面接 softmax)用于每像素分类(语义分割)或 转换为单个值用于每像素回归(深度预测)。我们用交叉熵训练语义分割任务,用 L1 损失训练深度预测。我们在两个数据集(PASCAL VOC12 [17] 和 Cityscapess [7])和一个深度预测数据集(NYU-depth v2 [51])中测试冻结特征。在所有数据集中,我们在提供的训练集 2 上训练线性模型并在验证集上进行评估。


4.2 Fine-tuning Protocol

         在本节中,我们比较了微调下游任务的功能有多好。所有基线都具有相同的 VADeR FPN 架构(如第 3.2 节所述),并使用相同的超参数和数据进行训练。除了权重初始化之外,其他一切都保持相同——这允许直接比较不同的初始化方法。我们将 VADeR 与两个编码器初始化进行比较:受监督的 ImageNet 预训练和 MoCo。与基线相反,VADeR 初始化 FPN 的编码器和解码器。在这些实验中,我们使用 [26] 中提出的微调设置:批归一化层使用 Sync Batch-Norm [58] 进行训练,我们在所有 FPN 层上添加批归一化。


目标检测、实例分割和关键点检测。

        我们使用 带有FPN主干 [41] 的Mask R-CNN [27]。所有方法都使用标准指标在 COCO [42] 上进行训练和评估。我们使用 Detectron2 [72] 的实现来进行训练和评估。我们使用 [72] 提供的默认超参数(为 ImageNet 监督预训练选择)训练一种用于目标检测/分割的模型和一种用于关键点检测的模型。所有模型都在大约 12 个时期(schedule 1x)的受控设置上进行训练。

        表 4 将 VADeR 与三项任务的基线进行了比较。 MoCo 已经是一个非常强大的基线,可实现与受监督的 ImageNet 预训练相似的性能。我们观察到 VADeR 在这些实验中始终优于 MoCo(和监督基线),显示出与全局表示相反,学习密集表示的优势


4.3 Ablation Studies

视图的影响。

        我们分析了在训练过程中正确匹配像素的重要性。表 3 显示了考虑三种像素匹配策略的结果。第一行(“不匹配”)忽略了同一场景的视图之间的对应关系图。它将随机像素对视为正对。第二行和第三行使用了正确的对应图。第二行(“相同视图”)始终考虑每对视图使用相同裁剪,而最后一行(“差异视图”)考虑不同的裁剪(具有不同的位置和比例)。 VADeR 默认使用第三种方法。报告了 Pascal VOC(以 mIoU 为单位)的语义分割和 DAVIS-2017(以区域相似性 J 为单位)的密集对应的结果。正如预期的那样,在视图之间使用随机像素匹配比使用正确的像素配对更糟糕(第 1 行与第 2 行和第 3 行)。我们还注意到,在配对视图(第 2 行与第 3 行)之间考虑相同或不同的裁剪时,识别任务的性能几乎没有变化。然而,对于对应关系,每个视图具有不同的裁剪提供了相当大的优势


5 Conclusion

        我们提出了 VADeR——View-Agnostic Dense Representations——用于密集表示的无监督学习。我们的方法通过 像素级对比学习 来学习表征。 VADeR 是 通过 强制匹配像素的表示(即来自描述同一位置的不同视图的特征)在嵌入空间中靠近,而不匹配的特征相距很远 来训练的。我们利用 从随机生成的场景视图中 导出的已知像素对应关系 来生成正对。定性的例子表明,VADeR特征可以发现高级视觉概念,语义分组可以从训练中出现,没有任何标签。我们表明,学习无监督的密集表示 对于下游像素级任务 比全局表示更有效。在从识别到几何的许多结构化预测任务中,与强基线相比,VADeR 取得了积极的成果。我们认为,学习无监督的密集表示对于涉及迁移学习的许多结构化问题 以及无监督或低数据机制问题很有用


6 Broader Impact

        我们的研究属于推进计算机视觉和场景理解的机器学习技术的范畴。我们专注于改善密集预测任务的图像表示,这包含了大量的基本视觉任务,如图像分割和目标检测。虽然使用这些应用程序可能有许多潜在的含义,但我们在这里讨论两个方面。首先,我们强调了在没有或很少标注数据的情况下,图像理解的一些社会含义。其次,我们提供了一些关于通用表征学习方法评估的基础研究问题的见解。

        使用未标记数据提高图像理解能力,特别是对于像素级任务,开辟了广泛的对社会有益的应用,而这些应用是其他方法无法解决的。由于需要非常专业的标记器,医学图像应用程序缺乏标记数据。另一个应用是处理有害的在线内容,包括但不限于恐怖宣传、仇恨言论、假新闻和错误信息,这对政府和企业来说是一个巨大的挑战。让这些问题变得特别困难的是,很难获得干净的标记数据来训练机器学习模型——想象一下在不幸的克赖斯特彻奇袭击中通过直播视频拍摄恐怖袭击。自监督学习可能会推动模型的发展,以检测极其罕见但极具影响力的事件。另一方面,这种技术可能被滥用于侵犯隐私和言论自由。我们承认这些风险是任何非道德技术的一个特征,我们邀请各国政府、决策者和所有公民——包括研究界——努力在这些利益和风险之间取得平衡。

        我们研究的另一个有趣的方面是 强调将表征学习方法与下游应用的性质相结合的重要性。通过我们的方法,我们表明,从未标记的数据学习像素级表示,我们可以在各种密集预测任务中胜过图像级方法。我们的研究结果强调,研究界应该超越有限的测试平台来评估通用表示学习技术。我们邀请进一步研究为此类方法开发综合评估协议。事实上,我们在计算机视觉领域看到了许多研究机会,例如开发一系列跨越各种几何和语义图像理解任务的标准化基准,以及设计可以弥合离线和在线性能差距的方法。

猜你喜欢

转载自blog.csdn.net/YoooooL_/article/details/129176511