自监督论文阅读笔记Efficient Self-supervised Vision Pretraining with Local Masked Reconstruction

        计算机视觉的自监督学习取得了巨大的进步,并改进了许多下游视觉任务,例如图像分类、语义分割和 目标检测。其中,生成式自监督视觉学习方法如 MAE 和 BEiT 表现出良好的性能。然而,他们的全局掩码重建机制在计算上要求很高。为了解决这个问题,本文提出了局部掩码重建 (LoMaR),这是一种简单而有效的方法,它在简单的 Transformer 编码器上的 7×7 patch的小窗口内执行掩蔽重建,与整个图像的全局掩码重建相比,提高了效率和准确性之间的权衡

        大量实验表明,LoMaR 在 ImageNet-1K 分类上的 top-1 准确率达到 84.1%,优于 MAE 0.5%。在 384×384 图像上对预训练的 LoMaR 进行微调后,top-1 准确率可以达到 85.4%,超过 MAE 0.6%。在 MS COCO 上,LoMaR 在目标检测方面比 MAE 高 0.5 APbox,在实例分割方面比 MAE 高 0.5 APmask。 LoMaR 在预训练 高分辨率图像上的计算效率尤其高,例如,它比 MAE 快 3.1 倍,在预训练 448×448 图像上的分类精度提高 0.2%。这种局部掩码重建学习机制可以很容易地集成到任何其他生成式自监督学习方法中


        最近,自监督学习方法 [14, 7, 2, 24, 9, 1, 56, 41, 28] 在学习有利于下游应用(例如图像分类和目标检测)的表示方面取得了巨大成功。其中,几种生成式自监督学习方法,例如 Masked Autoencoder (MAE) [24] 和来自Image Transformers 的双向编码器表示(BEiT)[2] ,它们从一小部分图像块重建输入图像,已经证明了出色的表现。

        然而,当前生成式自监督学习方法(如 MAE 和 BEiT)的一个主要瓶颈是它们对计算的高需求,因为它们有全局掩模重建并在大量图像块上运行。例如,在 128 个 TPU-v3 GPU 上,在 224 × 224 分辨率下的 120 万张 ImageNet 图像上预训练 MAE-Huge [24] 需要 34.5 小时。由于与离散变分自动编码器相关的成本,BEiT[2] 训练速度较慢。高分辨率图像进一步加剧了这个问题。例如,在 384×384 图像上预训练 MAE 消耗的计算时间是 224×224 对应图像的 4.7 倍。然而,高分辨率图像在许多任务中是必不可少的,例如目标检测。因此,提高预训练的效率有望在 使用更大的数据集 或 更高分辨率的图像 进行预训练时 发挥额外的性能提升

        在 Transformer 模型中全局自注意力机制 关注所有 n 个图像块,产生 O(n2) 时间复杂度。但是,在重建中 关注遥远的patches 的好处 仍不清楚。在图 1 中,我们可视化了重建 掩码图像块(以黑色显示)时的注意力权重。从预训练的 MAELarge 模型中,我们从解码器层 2、4、6 和 8 中提取注意力权重,并使用白色表示高度注意力。该模型 主要关注 接近目标patch的 patch,这促使我们 限制重建中使用的注意力范围。因此,本文提出了一种新模型,称为 局部掩码重建 或 LoMaR该模型将注意力区域限制在一个小窗口,例如 7×7 图像块,这足以进行重建。类似的方法 [15, 51, 58] 在许多 NLP 领域中已经出现,适用于那些需要 对长序列进行操作 的人。小窗口也已在视觉领域进行了探索,以提高训练和推理速度 [35, 57]。但与以前的vision transformers不同,例如 Swin Transformer [35],它为每个图像 创建 具有固定坐标的 移动窗口。相反,本文对几个具有随机位置的窗口进行采样,这样可以更好地捕捉不同空间区域中的对象

         在图 2 中,比较了 LoMaR 和 MAE,并注意到两个主要区别

a) 本文对一个区域进行 k x k个patches 的采样,以执行掩码重建,而不是从全部数量的 patches。本文发现 仅用一些局部视觉线索 来恢复丢失的信息 就足够了,而不是从全局位于图像中的 25% 可见块中重建掩码块。

b) 本文轻量级 MLP 头替换 MAE 中的重量级解码器。本文所有图像patches 直接输入编码器,包括 掩码的 和 可见的patches 。相比之下,在 MAE 中,只有可见的patches 被馈送到编码器。实验表明,这些架构变化 为小窗口中的局部掩码重建带来了更多的性能提升

        经过大量实验,发现:

  • 与 ViT B/16 相比,LoMaR 不会引入额外的预训练成本
  • LoMaR 在预训练高分辨率图像方面比其他基线更有效,因为它的计算成本对于不同的图像分辨率是不变的。然而,其他方法的计算成本与图像分辨率的增加成二次方,这导致了非常昂贵的预训练。
  • LoMaR 是高效的,可以很容易地集成到任何其他生成的自监督学习方法中。将本文的本地掩码重建学习机制配备到 BEiT 中可以将其 ImageNet-1K 分类性能从 83.2 提高到 83.4 Top-1 准确度,仅花费其原始预训练时间的 35.8%。
  • LoMaR在目标检测等其他任务上也有很强的泛化能力。在用于目标检测的 ViTDet [33] 框架下,它的性能优于 MAE 0.5 APbox。


        自监督中,生成方法包括 自回归预测 [23, 9] 和 自编码器。 

        自动编码器:学习可以重建原始输入的表示。由于存在一个无效的解决方案,自动编码问题本质上是不适定的:一个完全由恒等映射组成的网络。因此,有必要应用某种形式的正则化,例如稀疏性 [48]、输入损坏 [54]、概率先验 [31、49] 或对抗性判别器 [38]。(正则自编码器使用的损失函数可以鼓励模型学习其他特性(除了将输入复制到输出))


        LoMaR 依赖于一堆 Transformer [53] 块,通过类似于 MAE [24] 的 从损坏图像中 恢复丢失的patches 来预训练大量未标记的图像,但 LoMaR 在几个关键地方与 MAE 不同。图2并排比较了两者。在本节中,首先重新审视 MAE 模型,然后描述 LoMaR 和 MAE 之间的区别

        Masked Autoencoder(MAE) :

                掩码自动编码器 (MAE) 模型 [24],如图 2 左侧所示,采用 非对称的编码器-解码器架构。编码器从图像中获取 patches子集 并输出patches的 隐表示。根据这些,解码器重建丢失的patches。对于分辨率为 h × w 的输入图像,MAE 首先 将其划分为一系列不重叠的块patches。然后,MAE 随机屏蔽掉大部分(例如 75%)的图像块位置编码被添加到每个patch 中以指示它们的空间位置。 MAE 首先将剩余的patch 编码到 隐表示空间中,然后 将 隐表示与 掩码patches 的占位符一起输入解码器,解码器执行重建。对于每个重建图像,MAE 使用像素空间中 与原始图像的均方误差 (MSE) 作为损失函数

        Local Masked Reconstruction (LoMaR) :

        本文从以下角度将 LoMaR 与 MAE 进行对比来描述它:
                局部 与 全局掩码重建:MAE 使用从整个图像中采样的patch 重建每个丢失的patch。然而,如图 1 所示,通常只有目标patch附近的patch 对重建有显著贡献,这表明 局部信息足以进行重建。因此,本文对小区域内的patch 执行掩蔽和重建。实验发现,7×7 块的区域大小可以在准确性和效率之间取得最佳平衡。另一方面,与卷积网络 [26, 50] 类似,LoMaR 具有平移不变性,因为每次迭代都使用在随机空间位置采样的小窗口。

                        从复杂性的角度来看,由于操作的令牌tokens 更少,局部掩蔽和重建 比 MAE 的全局掩蔽和重建在计算上更有效。假设每个图像可以被划分为 h × w 个块。计算自注意力的时间复杂度是 复杂度是 patches 数量的二次方,并且很难对大的hw 进行扩展。然而,对于本文的局部掩码重建,我们采样了 n 个窗口,每个窗口包含 m × m 个补丁;它的计算复杂度为,如果我们将 m × m 固定为常数窗口大小,则它具有线性时间复杂度。如果 可以显著降低计算成本

                 架构:LoMaR 不是 MAE 这种非对称的编码器-解码器,而是应用了一个简单的 Transformer 编码器架构。本文将采样区域下的所有可见和掩码patches 输入到编码器中。尽管将掩码patches 输入编码器 可以被认为 比只将掩码补丁输入解码器的 MAE 操作效率低,但本文发现在早期阶段输入掩码 可以增强视觉表示 并使其对较小的窗口尺寸 更加稳健这可能是因为在 与其他可见patches 多个编码器层的交互后,编码器可以将 掩码patches 转换回其原始 RGB 表示。隐藏层中那些恢复的掩码可以隐含地对图像表示做出贡献因此,我们将掩码patches保留为 LoMaR 中的编码器输入。

                 相对位置编码: LoMaR 应用相对位置编码 (RPE) 而不是 MAE 中的绝对位置编码。本文应用了 [55] 中的上下文 RPE,其中它在计算自注意力时为每个查询 i 和键 j 引入了一个可学习的向量 rij。

                具体实施:给定一个图像,我们首先将它分成几个不重叠的块。每个patch被 线性投影 到嵌入中。我们在不同的空间位置 随机采样了几个 K × K 块的方形窗口。然后我们将每个窗口内固定百分比的patchess 归零。之后,我们以光栅顺序 将每个窗口中的所有patches(包括可见patches和 掩码patches)输入到编码器。遵循 [55] ,编码器在自注意力层中应用可学习的相对位置编码。我们使用 简单的 MLP 头将编码器输出的隐表示 转换回其原始特征维度,然后使用归一化的真实图像计算均方误差。


        表 1 总结了不同自监督学习方法的结果。所有模型都在 ImageNet-1K [16] 上以 224×224 分辨率进行自监督预训练,并在标记的 ImageNet-1K 上进行微调。 LoMaR 在预训练 400 个 epoch 之后就达到了 MAE 的最佳结果,达到 83.6%。当预训练 1,600 个 epoch 时,其性能进一步提高到 84.1%。在 384×384 分辨率下微调时,LoMaR 的准确率达到 85.4%,比最佳基线高 0.6%。总体而言,LoMaR 在预训练时间较短的情况下优于强基线。         

        图 3 和表 1 显示了 LoMaR、MAE [24] 和 BEiT [2] 之间的计算效率比较。与基线相比,LoMaR 始终以更少的预训练时间实现相同或更高的准确度。具体来说,使用 1,600 个 epoch 预训练 MAE 可以达到 83.6% 的准确率,但需要大约 232 小时。 LoMaR 在预训练的 66 小时内达到相同的精度,速度提高了 3.5 倍。 BEiT 需要 285 个预训练小时才能获得 83.2% 的准确率。相比之下,LoMaR 在 49 小时内获得了类似的结果,这意味着节省了 5.8 倍的时间。

        在小patches上进行预训练:本文还使用 8×8 像素而不是通常的 16×16 像素的小块上评估本文的模型。这会产生与 16×16 块相同的计算时间(大约 66 小时)。与 16×16 块相比,微调后的模型准确率从 83.6% 提高到 84.3%。 类似的实验对于 MAE 和 BEiT 来说代价高昂,因为较小的patches 大大增加了操作的 patches数量 并导致自注意力的高成本。在本文的实验中,由于数值问题,使用官方代码在 8×8 补丁下对 MAE 进行预训练会崩溃。

        高分辨率图像的效率:图4,LoMaR 在显着缩短的预训练时间内始终优于其他模型 ,它与窗口数成线性比例。相比之下,MAE 和 BEiT 的预训练时间 随着分辨率的增加 呈二次方缩放。结果,LoMaR 在 384×384 图像上比 MAE 快 2.5 倍(准确度 +0.2%),比 BEiT 快 5.0 倍(准确度 +0.8%),对于 448×448 的分辨率,它比 BEiT 快 3.1 倍MAE(准确度 +0.2%),比 BEiT 快 5.3 倍(准确度 +0.6%)。

        目标检测和实例分割:表 2 ,显示了 LoMaR 在 COCO 目标检测基准上的持续改进。在 ViTDet 下,LoMaR 超过 MAE 0.3 APbox 和 0.3 APmask。当应用在 384×384 分辨率下预训练 1,600 个 epoch 的 LoMaR 时,它进一步提高到 51.6 APbox 和 45.9 APmask。在 ViTAE 框架中,LoMaR 比 MAE 分别提高了 0.4 APbox 和 0.4 APmask。


       与BEiT集成

                本文的核心思想,局部掩蔽重建,可以很容易地集成到其他生成式自监督学习方法中。为了检验其在不同范式中的有效性,本文将其集成到 BEiT [2]。具体来说,我们随机抽取四个 7×7 窗口并将它们输入 BEiT 模型,并预训练 300 个 epoch,同时保留所有其他实验设置作为原始 BEiT。表 3 中的结果表明,该策略将准确率从 82.8% 提高到 83.4%,高于预训练 800 个 epoch 的原始 BEiT。


        Ablation

                架构:

                        图 5 比较了不同的架构,包括一个简单的编码器(以可见和掩码patches作为输入)和一个不对称的编码器-解码器架构,正如 MAE 所采用的那样。最初,本文在 MAE 的指导下将 75% 的patches作为掩码 进行采样。默认情况下,本文对两种架构都使用绝对位置编码 (APE)。本文用不同的掩码重建窗口消融这两种架构,它表明一个简单的编码器总是可以胜过非对称编码器-解码器。此外,当我们将窗口大小从 14 减小到 7 时,性能差距进一步扩大,这表明简单的编码器比类似 MAE 的架构对更小的窗口大小更稳健。本文还将 有着相对位置编码的 LoMaR 版本(Simple encoder + RPE) 与 有着绝对位置编码的(Simple encoder) 进行比较。结果显示不同窗口大小的平均改进为 0.3 acc,证明了 RPE 的好处

                窗口大小

                        本文创建具有多种不同窗口大小(例如 5×5、7×7、9×9、11×11 和 14×14)的 LoMaR(简单编码器 + RPE)版本。一个警告是,较小的窗口比较大的窗口覆盖的可见patches要少得多,这会产生不公平的比较。为了鼓励公平,本文为每个窗口大小分配不同数量的视图,如表 4 所示,以便所有条件在训练中具有相似数量的可见patches。图 5 中的结果表明,当我们将窗口大小从 14 减小到 7 时,MAE 性能保持稳定,但当窗口大小减小到 5 时会性能锐减。另一方面,更大的窗口大小通常会导致更高的计算成本,如图5(右)所示; 14×14 窗口的预训练时间几乎是 7×7 窗口的两倍。因此,从效率和准确性的角度来看,7×7 的窗口大小可以被认为是局部掩模重建的最佳折衷方案

                 掩码比率

                        本文还探索了局部掩码重建场景下的最佳掩码比率(见图 6)。在不同的掩码比率上训练我们之前的最佳设置(简单编码器 + 窗口大小 7×7 + RPE),范围从 30% 到 90%。结果表明,太低 (30%) 或太高 (90%) 的掩码比率都不是最优的,因为它们会过度简化或复杂化训练任务。我们发现 80% 的掩码率可以获得最佳性能,这与在 MAE 中观察到的获得最佳微调性能的 60% 的掩码率不同。出于这个动机,本文在实验中使用了 80% 的掩码率。


        可视化重建结果
                图 7 中定性地展示了本文的预训练模型的重建性能。我们从 ImageNet-1K [16] 和 MS COCO[34] 中随机采样了几张图像。之后,我们在每个图像中采样一个包含 7×7 块的区域,并将窗口中 80% 的块归零以进行重建。可以看出,LoMaR 能够生成合理的图像,这也证实了本文最初的猜想,即仅从局部周围的patches中就可以恢复丢失的patches

                图 8 中展示了不同掩码率下的重建性能。对于每张图像,我们采样一个窗口并随机遮罩 60%、70%、80% 和 90% 的patches进行重建。我们发现 LoMaR 可以在各种掩蔽尺度下合理地恢复损坏的图像;即使只有 5 个可见patches作为线索,它仍然可以成功重建图像(90% 掩蔽)。这表明 LoMaR 已经学习了大容量的模型并且可以推断出复杂的重建


        自监督学习 (SSL) 可以从使用大量未标记数据的训练中受益,这带来了许多有希望的结果 [30、45、46、6、24、2、14、8]。然而,在大规模预训练下,它们的高计算需求仍然是一个重要的问题。在本文的研究中,生成 SSL 的局部掩蔽重建 (LoMaR) 比 MAE [24] 和 BEiT [2] 使用的全局版本更有效。 LoMaR 在图像分类、实例分割和目标检测方面表现出良好的泛化能力;它可以很容易地集成到 MAE 和 BEiT 中。 LoMaR 承诺将 SSL 扩展到更大的数据集和更高分辨率 [44, 52] 以及更多计算密集型数据集,例如视频 [39]。

        LoMaR 的另一个优势在于 当图像块的数量增加时 的效率增益,例如高分辨率图像或 8×8 的小块。主要原因是 LoMaR 将自注意力限制在局部窗口内,其计算复杂度随每张图像的采样窗口数量线性增长这一特性能够在高图像分辨率下进行有效的预训练,这对于其他 SSL 方法来说过于昂贵。它可以使许多视觉任务受益,例如目标检测或实例分割,这些任务需要在像素级别进行密集预测。

        尽管 LoMaR 在高分辨率图像的其他基线上具有较高的预训练效率增益,但与 MAE [24] 相比,LoMaR 相对于低分辨率图像的效率提高有些有限。在 224×224 图像上训练相同数量的 epoch 时,LoMaR 比 BEiT [2] 快 2.2 倍,BEiT [2] 也将掩码patches 作为编码器输入,但它比 MAE 消耗了大约 10% 的预训练时间。这种现象主要是由于两个原因:1)MAE编码器只将可见的patch作为输入,而LoMaR编码器将masked的patch作为输入,这导致在低分辨率下的patch数量相似。 2)LoMaR还采用了上下文感知的相对位置编码[55],它引入了额外的计算。但是,可以通过对窗口进行欠采样under-sampling  或将 掩码patches 移动到后面的编码器层 来进一步提高其效率。希望在未来的工作中,可以将局部掩码重建思想适应更有效的模型架构。

        

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值