论文阅读“Masked Autoencoders Are Scalable Vision Learners”(CVPR2022)

论文标题

Masked Autoencoders Are Scalable Vision Learners

论文作者、链接

作者:

He, Kaiming and Chen, Xinlei and Xie, Saining and Li, Yanghao and Doll{\'a}r, Piotr and Girshick, Ross

链接:CVPR 2022 Open Access Repository

代码(非官方):https://github.com/pengzhiliang/MAE-pytorch


Introduction逻辑(论文动机&现有工作存在的问题)

深度学习架构的学习能力和容量不断增长,但对有标签的图片的需求不断增加——自然语言处理中需要大量的数据,用自监督学习方法来解决数据需求问题——BERT语言处理模型中提出的掩膜自编码技术masked autoencoding,移除一部分数据并学习去预测移除的文本——掩膜自编码器masked autoencoders,即一种去噪的自编码器

本文作者想要去探究,什么导致了掩膜编码在视觉图像和文本上的不同表现:(i)架构的不同,即卷积神经网络和ViT的不同(ii)图像和文本的数据稠密程度不同——为了让模型学习到更强的语义信息,引入了掩膜操作。(iii)在文本和图像重构的过程中,自编码器中的解码器起到的作用并不相同——在对图像处理的过程中,解码器的设计非常重要,决定了学到的潜在特征的表达水平

本文提出的掩膜自编码器(masked autoencoder ,MAE) ,给输入的图像随机打上补丁,然后在像素空间中对缺失的图块进行重构。MAE用一个不对称的编码器——解码器设计,编码器仅对图块的可见子集进行操作(在没有掩膜标记的情况下),解码器则是一个轻量级的设计,在有掩膜标记的情况下对潜在表达重构为输入的图片,见图1所示。

论文阅读“Masked Autoencoders Are Scalable Vision Learners”(CVPR2022)_第1张图片

 这个重构过程的计算消耗是非常高的。于是,选择高的掩膜率(比如,75%),可以得到比较好的结果,优化了精度,同时允许编码器只处理一小部分(比如,25%)的图块。


相关工作

掩膜语言模型

自编码

掩膜图像编码

自监督学习


论文方法

MAE是一个简单的自编码器方法,输入部分的观察数据,将原始信号进行重构出来。与其他的自编码器相似,MAE使用一个编码器将观察到的信号映射到一个潜在的特征表达,然后用解码器将潜在的特征表达重构成原始的输入信号。与传统自编码器不同,MAE使用了一个非对称的编码器结构,使得编码器可以只对部分图块进行处理,然后用一个轻量级解码器对原始信号进行一个重构。如图1所示。

掩膜Masking

与ViT相似,将输入的图像分割成不重叠的图块。从图块中选择一个子集,然后将剩余的图块用掩膜掩盖起来。抽样策略很简单:按照均匀分布的方式随机抽样,不进行替换,称之为“随机抽样”。

高掩膜率的随机采样,极大程度的减少了计算负担,于是创造了一个不能依靠邻居图块而简单的推理原始图像的任务。平均分布避免了潜在中心偏置(即,大多数掩膜存在于中心位置)。高度稀疏的输入图像,使得可以设计一个高效的编码器。

MAE encoder

MAE的encoder是一个ViT,但是只应用在可观察到的没有被掩盖的图块上。仅仅使用一个标准的ViT,编码器将会通过一个带有潜在编码的线性映射对图块进行一个编码,最后用一系列Tansformer blocks对得到的结果集合进行处理。编码器只对全集的一个子集(25%)进行操作。掩盖的图块将会被移除,没有任何的掩膜标记会被使用。这使得我们可以只用一小部分的计算和内存来训练非常大的编码器。

MAE decoder

MAE的decoder的输入是一整组tokens,由以下内容组成(i)编码后的可见图块(ii)掩膜tokens。如图1所示,每一个掩膜的标签都是共享的,表示待预测缺失的图块的学习向量。对全部的token标签添加了位置编码;没有这的话,掩膜将会无法携带图片的位置信息。解码器中有一些列的Transformer blocks。

解码器只有在预训练的过程中,对图像进行重构的情况下才使用。因此,解码器的设计是动态的,与编码器的设计是相互独立的。

重构目标 Reconstruction target

MAE通过预测每一个掩膜处的像素值来对输入数据进行一个重构。解码器输出的每一个元素,是代表一个图块的像素值的向量。解码器的最后一层是一个线性投影器linear projector,投影器的输出维度与每个图块的像素值个数相同。解码器的输出会进行一个reshape,以适应输入图像的尺寸。使用均方误差MSE来衡量原始图像和重构图像的差异。

本文还研究了一种以每个掩模块的归一化像素值为重建目标的变体。即,对图块中的所有像素计算均值和标准差,然后对图块进行一个归一化。使用归一化的像素作为重构目标会提升模型效果。

简单实现Simple implementation

MAE的预训练可以有效地实施,重要的是,不需要任何专门的稀疏操作。首先,对每一个图块生成一个对于的token标签。然后,对token的列表进行基于掩膜率的随机打乱。这个过程会生成一组小的token子集,并且与无替换的图块采样是等价的。编码过程,对编码过后的图块列表添加一个列表的掩膜token,并且做一个打乱的逆操作,将token与其对应的目标进行对齐。解码器对全局列表进行操作。值得注意的是,不需要使用稀疏操作。这个简单的实现引入的开销可以忽略不计,因为打乱和反打乱操作非常快。


消融实验设计

掩膜率

解码器的设计

掩码token

重构目标

数据增广

掩膜采样策略


一句话总结

使用了一个非对称的自编码器设计,编码器是ViT,解码器是一个浅层模型,这种不对称的设计还是非常新颖的,还有将mask作为一个任务的思想。


论文好句摘抄(个人向)

(1)This appetite for data has been successfully addressed in natural language processing (NLP) by self-supervised pretraining.

你可能感兴趣的:(论文阅读,深度学习,计算机视觉)