自监督论文阅读笔记 Self-Supervised Visual Representation Learning with Semantic Grouping
本文解决了从 无标签的 以场景为中心 的数据中 学习视觉表示的问题。现有的工作已经证明了在以场景为中心的数据中 利用潜在的复杂结构 的潜力;尽管如此,他们通常依赖手工制作的目标先验 或 特定的前置任务来建立学习框架,这可能会损害泛化性 。相反,本文提出从数据驱动的语义槽****进行对比学习 ,即SlotCon ,用于联合语义分组和表征学习 。语义分组 是通过 将像素分配给一组可学习的原型 来执行的,这些原型可以通过attentive pooling 注意力池化 特征来适应每个样本,并形成新的槽。基于所学习的数据相关槽,对比目标被用于表示学习,这增强了特征的可区分性,并且反过来便于将语义一致的像素分组在一起 。与先前的工作相比,通过同时优化 语义分组 和 对比学习 这两个耦合的目标 ,本文的方法绕过了手工制作的先验的缺点 ,并且能够从以场景为中心的图像中学习目标/组级别的表示 。实验表明,本文的方法有效地将复杂场景分解为语义组 ,用于特征学习,并显著有益于下游任务,包括目标检测、实例分割和语义分割。
Introduction:
现有的自监督方法已经证明,可以通过构建诸如 变换预测[22]、实例辨别[66,28]和 掩码图像建模[2,27,79,63]等前置任务,从未标记的数据中学习视觉表示。其中,基于实例辨别 的方法[26,6,7,11]将每个图像视为一个单独的类别,并采用对比学习目标进行训练,已经取得了显著的成功,并有利于提高许多下游任务的性能。
然而,这种成功很大程度上建立在 精心策划的以目标为中心的数据集ImageNet [15]上,该数据集与下游应用的真实世界数据有很大差距 ,如城市场景[13]或人群场景[43]。通过简单地将场景作为一个整体来处理,直接将实例辨别前置任务应用于这些真实世界的数据会忽略其内在结构(例如,多个目标和复杂布局),因此会限制以场景为中心的数据进行预训练的潜力[58]。这就引出了本文的关注点:从未标记的以场景为中心的数据中学习视觉表示 。
最近解决这个问题的努力可以粗略地分为两类研究。
- 一种将 实例判别任务 扩展到 像素级以进行密集表示学习 [51、62、69],这在下游 密集预测 任务中 表现出强大的性能。然而,这些方法仍然缺乏对 以场景为中心的数据中 呈现的对象级关系 进行建模的能力,这对于 学习表示 至关重要。
- 尽管另一类工作尝试执行 对象级表示学习 ,但其中大多数仍然 严重依赖特定领域的先验 来发现目标,其中包括显著性估计器 [59、53]、无监督目标提议算法 [64、68]、手工分割算法 [77, 31] 或 无监督聚类 [32]。但是,如果表示是 由手工制作的对象性****先验 监督的 ,它将 不鼓励 从数据本身 学习 对象性objectness,并且容易出现先验错误 。因此,表示的 能力 和 泛化性 将受到限制。
在这项工作中,本文的目标是一种完全可学习 和 数据驱动的方法 ,以便从 以场景为中心的数据中 学习表示,以提高有效性、可转移性和 泛化性。
本文建议从数据驱动的语义槽(即 SlotCon)进行对比学习 ,用于联合 语义分组 和 表示学习 。
• 语义分组 被表述为 特征空间像素级的深度聚类问题 ,其中 聚类中心 被初始化为 数据集共享的一组可学习语义原型 ,并且通过 将像素分配给 聚类 来实现分组 。然后可以通过将像素软分配到聚类中心 并 以 加权的方式 聚合它们的特征 以形成新的特征(也称为槽 Slots )来为每个样本更新聚类中心 。
• 此外,根据 从一幅图像的两个随机视图中 学习到的 数据相关槽 ,采用对比目标 来将 正槽(即来自相同原型和样本的槽)拉到一起 并推开负槽,用于表示学习。优化的表示 将增强 特征、原型和槽的可辨别性,这反过来又有助于将语义上一致的像素分组在一起。
与之前的努力相比,通过 同时优化 语义分组 和 对比表示学习 这两个耦合目标,本文的方法绕过了手工先验的缺点 ,并且能够 从以场景为中心的图像中 学习 对象/组级别的表示。
本文通过对 COCO [43] 目标检测、实例分割和 Cityscapes [13]、PASCAL VOC [20] 和 ADE20K [78] 的语义分割 进行迁移学习评估,广泛评估了本文模型的表示学习能力 。本文的方法显示了 COCO 预训练和 ImageNet-1K 预训练的强大结果,弥合了 以场景为中心 和 以对象为中心的预训练之间的差距。作为副产品,本文的方法在无监督分割中也取得了显着的性能,表现出强大的语义概念发现能力 。
Contributions :
1)本文表明,**自然场景的分解( 语义分组)**可以 以可学习的方式 完成 ,并 与从头开始的表示 联合优化 。
2)本文证明 语义分组 对于从 以场景为中心的数据中 学习良好的表示 至关重要。
3)结合 语义分组 和 表示学习 ,本文释放了 以场景为中心的预训练 的潜力 ,在很大程度上缩小了它与以对象为中心的预训练的差距,并在各种下游任务中取得了最先进的结果。
图像级 自监督学习: 旨在通过 将 每张图像 视为一个数据样本 来学习视觉表示。为此,设计了一系列前置任务,其中 标签 无需人工注释 即可轻松获得。早期的探索范围从包括去噪 [61]、修复 [52] 和跨通道预测 [76] 在内的 低级的 逐像素 重建任务 到 更高级别的实例判别 [17]、旋转预测 [22]、上下文预测[16]、拼图游戏 [49]、计数 [50] 和着色 [75]。配备对比学习 [57, 33] 的实例判别的现代变体 [17] 在学习 可迁移的视觉表示方面 显示出巨大的潜力 [66, 8, 28, 55, 18, 80]。其他作品的学习目标不同,但仍将图像视为一个整体 [26,10,74]。为了进一步利用自然图像中的复杂结构,一些作品利用了局部裁剪 [6、67、70、58],而另一些作品则 进入像素级或对象级,详细如下。
像素级 对比学习 将实例判别任务 从 图像级特征向量 扩展到特征图 [51、44、62、69]。它们的主要区别在于 正像素对的匹配方式 (空间邻接 [51, 69]、feature-space-NN 特征空间-NN [62]、sink-horn 匹配 [44])以及 它们 构建的图像级基线( MoCo v2 [51, 62], BYOL [44, 69])。他们的像素级目标 自然有助于学习 有利于密集预测下游任务的密集表示 ,但缺乏对整体语义的掌握 ,并且通常需要 辅助的图像级损失 来获得更强的性能 [62, 69]。
对象级 对比学习:首先发现图像中的对象 并 将对比目标应用于它们,在细粒度结构 和 整体语义上取得良好的平衡,对 以对象为中心的 [31, 32] 和 以场景为中心的数据 都产生了强大的经验收益。关键问题在于如何在没有监督的情况下找到图像中的对象 。然而,当前的工作仍然严重依赖启发式策略,包括 显着性估计器 [59、53]、选择性搜索 [64、68]、手工分割算法 [77、31] 或 k-means 聚类 [32]。相比之下,本文的语义分组 方法 是 完全可学习的 和端到端的 ,确保了数据驱动的可转移性和简单性 。
无监督语义分割 是一项新兴任务,旨在解决 仅使用未标记图像的语义分割。 IIC [36] 的第一次尝试 最大化了 增强的图像块的互信息,后来的工作 MaskContrast [59] 依赖于 显着性估计器作为 引导语义像素表示 的先验。最近,PiCIE [35] 采用 像素级深度聚类 [5] 将像素聚类为语义组,SegDiscover [34] 通过 采用超像素 进一步改进了这一点。另一方面,Leopart [81] 利用 预训练的vision transformer的注意力图 [7]。尽管如此,它们通常依赖于(自监督的)预训练网络进行初始化,而本文的方法是 完全从头开始训练的。
** 以对象为中心的表示学习**:被视为 数据高效、鲁棒和可解释的机器学习算法的重要组成部分 [25]。对于 无监督的 以对象为中心的 表示学习,已经提出了一系列 基于图像重建 的工作[24,3,19,45]。虽然最近有基于对比学习 的进展,但它们 要么仅限于合成数据 [38, 48, 1],要么需要 流flow中的运动先验 [71, 37]。相反,本文的方法能够 从野外 以自然的场景为中心的图像中 学习 类别槽 category slots [25]。
具有像素级深度聚类的语义分组 :
给定一个未标记图像的数据集 D,我们旨在学习一组原型 S ,将每个像素分类为一个有意义的组 ,使得同一组内的像素是语义一致的(具有相似的特征表示) ,并且不同组之间的像素是语义不连贯的 。我们发现这个问题可以被视为 无监督语义分割 [22, 35],并通过像素级深度聚类[5, 72, 6, 7] 解决。
直观地说,语义上有意义的分组 应该 对数据增强是不变的 。因此,对于同一图像的不同增强,我们强制位于同一位置的像素 具有相似的分配分数 关于同一组集群中心(原型) 。除了一致的分组外,组应该彼此不同 ,以确保学习的表示 具有区分性 并 避免琐碎的解决方案,例如 相同的特征。连同自监督学习中使用的常用技术(例如,非线性projector 和 momentum teacher动量教师 [26, 7] 等),这导致了以下框架。

具体来说,如图 1 所示,本文的方法包含两个神经网络 :学生网络 由 θ 参数化,并包括编码器 fθ、projector gθ 和 一组 K 可学习原型
,教师网络****与学生拥有相同的架构 ,但使用了一组不同的权重 ξ,其更新为 θ 的指数移动平均值 。
- 给定输入 图像 x,应用两个随机增强 来生成两个增强视图 v1 和 v2。
- 每个增强视图
然后用编码器 f 编码 成 隐藏特征图
, - 然后用 多层感知器 (MLP) g 转换 得到
。 - 然后,我们用 相应的原型 Sθ 计算 投影
的分配
,并强制 它与 教师网络的另一个视图
产生的分配
相匹配 。更准确地说,使用l2 归一化 投影
和原型
,

其中,τs, τt > 0 温度参数,控制两个网络 输出分布的锐度。 c 可以省略,后面会解释。请注意,由于几何图像增强,例如 随机裁剪、缩放 或 翻转,两个特征图
和
的 比例 或 布局 可能不一致 。因此,我们 对预测的分配 执行逆增强(inverse augmentation)过程 (包括 RoIAlign [29] 和 可选的翻转,详细信息在第 A.1 节中提供)来对齐 它们的空间位置:
。对 分配 Q 而不是 投影 z 执行 逆增强 ,以 将上下文信息 保持在 用于槽生成的 重叠区域之外 ,这将在第 3.2 节中详细说明。
基于 对齐的分配,本文应用 交叉熵损失
强制不同视图的 空间对齐像素之间 分配分数的一致性。交叉熵损失 在所有空间位置上 进行平均 以产生分组损失 :

直接优化上述目标 类似于 Mean Teacher [54] 的无监督变体 ,其会发生如 [26] 所示的崩溃。为了避免崩溃 ,本文遵循 [7] 来 维持一个 mean logit
并在 产生教师的分配 Qξ 时减少它 ,如等式1.所示。 mean logit 存储 教师网络产生的 所有 logit 的指数移动平均值:

其中 B 代表批量大小。直观地说,减少 mean logit 会放大 不同像素之间 分配的差异,从而避免 将所有像素 分配给同一个原型 。除此之外,教师温度 τt 设置为 小于学生温度 τs 以产生更清晰的目标 并避免统一的分配 。这两种操作都有助于避免崩溃 ,并强制网络学习有意义的语义分组 。
Discussions 与DINO的对比 :
由此产生的语义分组解决方案可能看起来像是 DINO [7] 的幼稚的扩展 。然而,这远非全貌。
DINO 是一种 图像级的 表示学习方法,它采用在整个数据集上共享的 大量原型(例如 65536),唯一的目标是表示学习,原型只是用作特征匹配的代理 。
相反,本文的目标 建立在像素级 之上,专门用于学习有意义的语义分组 (参见表 5 和图 2),并且需要更少的原型 (例如,COCO 的 256 个,参见表 6a 中的消融)。表示学习 是通过 对 适应每个图像的 学习到的组 的对比学习来执行的 (详见第 3.2 节),这对性能有很大贡献(见表 6b 中的消融)。
本文的方法总体上 为 在线聚类 和 表示学习的解耦 提供了一种新颖的观点,而DINO 的动机主要在于避免在线聚类期间崩溃 的技术。
通过对比槽slots进行 组级的表示学习 :
受 Slot Attention [45] 的启发,本文 重用 由等式1中的语义分组模块 计算的分配 。 在密集投影 z 上执行 注意力池化 以产生 组级的特征向量(重新表述为槽 ),如图 1 所示。直观地说,由于 softmax 归一化应用于槽维度,对于每个单独的输入特征向量,注意力系数总和为 1。 因此,密集投影 z 相对于相应原型 S 的 软分配 A 也可以被视为****描述 原型 如何将密集投影分解为非重叠的组 的 注意力系数 。这激发了本文遵循 [45] 使用注意力池化来分解密集投影 。具体来说,对于从视图
产生的密集投影
,我们提取 K 个槽:

其中,
表示 Hadamard 积,类似的操作适用于教师网络以生成
。请注意,由于 初始槽 由整个数据集共享,因此在特定视图
中可能 缺少相应的语义,从而产生冗余槽 。因此,本文计算以下二进制指示符
以屏蔽 未能占据主导像素的槽 :

的计算方法类似。根据 对象级 SSL [59, 31, 68, 32] 中的文献,本文然后应用 对比学习目标 用 InfoNCE 损失 来 区分 具有相同语义的插槽 与 分散注意力的插槽 :

这个目标有助于最大化同一槽的不同视图之间的相似性 ,同时最小化 来自具有不同语义的另一个视图的槽之间 和 来自其他图像的所有槽之间的相似性 。请注意,此处将具有与projector gθ 相同架构的 额外的predictor qθ 应用于槽 Sθ,因为根据经验,它会产生更强的性能 [11、64、32]。并且由此产生的 槽级对比损失 也遵循像方程式(2)这样的对称设计:


整体的优化目标 :
我们联合优化 语义分组目标 (方程 2)和 组级对比学习目标(方程 7),由平衡因子 λg 控制:

在每个训练步骤,学生网络 都使用来自整体损失函数的梯度进行优化:
, 其中 η 表示学习率;教师网络****更新为学生网络的 指数移动平均值:
,其中 λt 表示动量值。训练后,只保留教师编码器 fξ 用于下游任务。
COCO train2017 [43] 包含约 11.8 万张具有多尺度对象的不同场景的图像,更接近真实世界的场景。相比之下,ImageNet-1K 是一个以对象为中心的精选数据集,包含超过 128 万张图像,更适合评估模型使用大规模数据的潜力。
数据增强。图像增强设置与 BYOL [26] 相同:224×224 像素随机调整大小的裁剪,随机水平翻转,然后是随机颜色失真、随机灰度转换、随机高斯模糊和曝光。在训练期间丢弃没有重叠的裁剪对。
具体来说,本文为不同下游任务,(即 COCO [43] 上的目标检测和实例分割,以及 PASCAL VOC [20]、Cityscapes [13] 和 ADE20K [78] 上的语义分割)的预训练模型添加了一个新的初始化的任务特定的头 。
COCO 预训练:在表 2 中,本文展示了 COCO 预训练的主要结果。使用 COCO 进行的目标级的预训练一直在稳步改进,其中性能最好的方法是 DetCon [41] 和 ORL [68],它们仍然依赖于目标先验 ,如 选择性搜索 [56] 或 手工分割算法 [21],但未能击败像素级最先进的 PixPro [69]。本文的方法减轻了这些限制,并在所有任务中显着改进了当前的 对象级方法,实现了对以前方法的一致改进,甚至是在更大的数据集 ImageNet-1K 上预训练的几种方法(表 3)。还值得注意的是,本文的方法可以在最大和最具挑战性的分割数据集 ADE20K 上取得更好的性能,这增加了这项工作的意义。
表2:与其他 图像级、像素级和 对象级自监督学习方法相比,本文的方法在 不利用多裁剪 [6] 和对象性先验 的情况下 对不同任务显示出一致的改进 。
表3:本文的方法还与以对象为中心的数据兼容 ,并且在不使用 FPN [42] 和对象性先验的情况下 显示了对不同任务的一致改进 。
ImageNet-1K 预训练。在 没有 对目标提议的选择性搜索 以及 没有预训练 和 转移 FPN 头部的情况下,我们的方法仍然击败了当前的大多数工作,并在很大程度上缩小了与 SoCo 的差距。
COCO+ 预训练。在表 4 中,报告了 COCO+ 预训练的结果。 COCO+ 是 COCO train2017 加上 unlabeled2017 的集合,大约使训练图像数量增加了一倍,大大增加了数据的多样性 。本文的方法进一步在所有使用扩展 COCO+ 数据的任务中取得了显着的进步,甚至与在 ImageNet-1K(COCO+ 的 5 倍大)上预训练的最佳性能模型的结果相当,展示了以场景为中心的预训练的巨大潜力 。
鉴于本文的方法在表示学习方面取得的持续改进,我们需要进一步分析本文的语义分组组件 在定量和定性上 解析场景的能力 。与当前详尽枚举大量对象提议 并 报告最佳分数的 SSL 方法不同 [7, 32],本文遵循无监督语义分割 [36, 35] 的常见做法 ,使用Hungarian算法 将 预测结果 与 真值相匹配[40],其中每个真值标签被互斥地分配给原型 。为了公平比较,用于评估的模型使用 K = 27 进行训练,以匹配 COCO-Stuff 的类别数。
如表 5 所示,本文的方法可以超越之前的作品 PiCIE [35] 和 SegDiscover [34],mIoU 高 4 个点。同时,pAcc 较低,因为我们用较低的分辨率训练模型 (7 × 7 对 80 × 80 特征图)。除了表 5,本文还描述了可视化结果,其中本文的方法 区分了混淆对象 (第 4 列)并成功定位了小目标 (第 5 列)。由于我们只需要在同一图像中分离具有不同语义的像素 ,因此可以忽略类别预测中的错误 。
我们假设一个合适的 K 可以鼓励 学习 特定于数据的语义特征 ,这仅在 预训练 和 下游数据 相似 (从 COCO 到 COCO)时才有帮助 ;增加 K 会产生细粒度的特征 ,这些特征可能在语义上缺乏可辨别性,但对需要细粒度分割的 ADE20K 具有更好的可迁移性 [14]。
损失平衡权重λg。表 6b 消融了语义分组损失和组级对比损失之间的平衡,其中最好的平衡是通过 同等对待两种损失 来实现的。值得注意的是,当 λg = 1.0 时,仅应用 语义分组损失 并且性能大幅下降 ,这表明 本文的组级对比损失对于学习良好表示的重要性 。
图2:本文的方法可以在广泛的场景和语义粒度中发现视觉概念,而不管小目标的大小和遮挡。

最后,通过在 COCO val2017 split 中 可视化它们的最近邻 来分析原型是否学习语义。我们首先对每个图像进行语义分组 ,将它们分成不重叠的组(段),然后将每个组池化为一个特征向量 ,并根据余弦相似度 检索每个原型的前 5 个最近邻段。如图 2 所示,原型很好地 绑定到了语义含义,涵盖了从动物、食物和运动到家具、建筑物等广泛的场景和语义粒度,无论物体大小和遮挡如何,都能很好地定位它们 ;值得注意的是,没有任何人工注释 。
Conclusion :
这项工作提出了一个统一的框架,用于从未标记的 以场景为中心的 图像中 进行联合 语义分组 和 表示学习 。语义分组是通过 将像素分配给一组可学习的原型 来执行的,这些原型可以通过在特征图上 注意力池化 来适应每个样本 并形成新的槽 。基于学习到的 数据相关的槽,采用 对比目标 进行表示学习,增强特征的可辨别性 并 促进语义连贯像素 分组到一起。通过 同时优化 语义分组 和 对比学习 这两个耦合目标,所提出的方法绕过了手工先验的缺点,可以从 以场景为中心的图像中 学习对象/组级表示 。实验表明,该方法有效地 将复杂场景分解为语义组 以进行特征学习,并显着促进下游任务,包括 目标检测、实例分割和语义分割。
