Press "Enter" to skip to content

避繁就简,何恺明提出简单强大的自监督学习方案MAE

本站内容均来自兴趣收集,如不慎侵害的您的相关权益,请留言告知,我们将尽快删除.谢谢.

近日以 Kaiming He 为第一作者的FAIR团队挂出了一篇关于自监督学习领域的最新论文:Masked Autoencoders (MAE)。论文中,Kaiming提出了一种非常简单但是高效的重构方案, 即对输入图像块进行随机mask,随后对缺失像素进行重建。 这一方案在实验中展现出了较好的泛化和可扩展性能, 在ImageNet-1k数据集下,Vit-Huge模型的Top-1精度可达87.8% ,简直可以说是用最朴素的任务,刷最狠的分。

 

 

论文标题:

 

Masked Autoencoders Are Scalable Vision Learners

 

论文链接:

 

https://arxiv.org/pdf/2111.06377.pdf

 

一、动机

 

Masked Autoencoders的任务设定非常朴素,可以看作是一种 更为通用的去噪自动编码器(denoising autoencoders)形式 。在NLP领域中,BERT的masked autoencoding以及GPT中的自回归语言建模基本都遵照这一形式,使得我们可以 训练包含超过1000亿以上参数的模型。 但是回过头来,自编码器学习形式在CV领域,进展为何如此缓慢?作者从CV和NLP领域的不同之处展开叙述:

 

1.网络架构差距 CV领域大多使用卷积操作进行特征计算,这种端到端的设计使得我们很难在特征提取过程中加入 Mask信息或位置编码 。相比起NLP的序列位置嵌入,自然少了一些语义信息。近来随着视觉Transformer[1]的出现,这个问题相对得到了缓解,这可能也是本文工作的一个重要启发。

 

2.视觉和语言的信息密度差距 直观上理解,文字本身就含有高层语义,对语言进行重构,模型预测的目标信息量大,模型训练时遇到的噪声相对较少。相比之下, 图像本身具有高度信息冗余的特点 ,预测的难度较大,模型可能需要花费大量的精力和容量去学习对目标语义无关的嘈杂信息。

 

3.解码器的设计差距 在视觉中解码器重建像素,在NLP中解码器重建缺失单词,更直观的讲,是在重建特征。二者包含的语义信息有差距,在NLP中解码器往往只需要一个简单的MLP就可以完成任务,但是在图像解码时,往往还需要其他的精心设计, 解码器的设计直接关系到网络学习到的隐层语义表示。

 

基于以上分析,同时为了克服这些问题并使视觉模型可以学到更多有用的特征,本文提出了一种简单的策略,如下图所示 , 随机Mask掉图像中的一大部分(最大可达到75%) ,随后进行恢复,文中证明这种策略在很大程度上减少了冗余。

 

 

本文所提的MAE方法还展现出了优越的 可扩展性 ,不仅在ImageNet-1K上取得了良好的预训练性能, 在目标检测、实例分割和语义分割等任务的迁移学习实验也取得了超过其他同类方法的效果。

 

二、方法

 

本文方法简单直观,与经典的自动编码器不同的是, 本文采用了一种非对称的设计,允许编码器仅对部分图像块(无mask token)进行操作 ,并设计了一个轻量级的解码器,从隐层表示和mask token重建输入图像,整体结构如下图所示。

 

 

对于输入图像的处理, 作者仿照ViT的做法,将图像划分为规则的非重叠patch ,然后对一个子集的patch进行采样,并移除剩余的patch。 采样方式遵照均匀分布 ,作者称这一方式为“随机抽样”(random sampling)。本文的编码器使用ViT,编码形式也基本与ViT一样,通过线性投影获得token,并加入位置编码,随后再经过一系列标准的Transformer blocks处理。不同的是,本文的编码器只需要在整体图像块的一小部分(例如25%)上运行。 这可以节省一定的计算量和显存来训练更大的编码器。

 

对于解码器部分,其输入是由可见的图像patch和对应的mask token构成。 每个mask token都是一个共享的学习向量 ,表示要预测的缺失patch。同时每个token的位置编码也被添加用来定位patch的位置。需要注意的一点是, 解码器仅在预训练期间进行图像重建任务,预训练完成后,仅使用前端的编码器对图像进行特征提取 。因此,解码器可以独立于编码器的设计。在实验中,解码器的形状和参数量都比编码器更加轻量,而数据量相对较大的patch表征和mask token仅通过解码器计算,这大大减少了预训练的时间。

 

MAE对每个mask patch的真实像素值进行预测。解码器的输出为一系列像素值集合,其最后一层是一个线性投影, 输出通道的数等于每个patch中像素值的数量 。预测完成后,对每个patch的预测像素值向量进行reshape以构成重构图像。 损失函数为计算像素空间中重建图像和真实图像之间的均方误差(MSE),但是只计算mask patch上的损失 ,这一做法类似于BERT[2]。

 

三、实验效果

 

本文主要在ImageNet-1K上进行了自监督预训练的实验,使用ViT-Large(ViT-L/16)作为baseline。ViT-L的参数量较大(比ResNet-50大一个数量级), 训练往往倾向于过拟合 。以下是从零开始训练的ViT-L与从基线MAE微调的ViT-L之间的比较:

 

 

此外,作者还与其他自监督方法进行了对比实验:

 

 

实验结果表明,对于ViT-B,不同方法的性能都很接近。对于ViT-L,各种方案的性能差距会大, 这表明对于更大模型降低过拟合更具挑战性 。同时也展示了MAE可以很容易地扩展。例如使用ViT-H可以获得86.9%的准确率, 再通过使用448尺寸微调后 ,精度就达到了87.8%。已经超过了之前的SOTA性能(VOLO[3],最佳性能为87.1%,微调尺寸为512)。需要说明的是,这仅是使用最基础ViT的效果,作者预计,如果使用特征学习能力更强的结构,网络的表现可能会更好。

 

在COCO和ADE20K上的目标检测和语义分割迁移实验效果如下:

 

 

 

在COCO数据集上的检测与分割任务的效果表明,相比有监督预训练,MAE已达到了性能SOTA。当backbone为ViT-B时,MAE可以取得2.4AP提升,当backbone为ViT-L时,性能提升达到4.0AP。在ADE20K上的分割结果表明,本文的MAE方法显着改善了ViT-L的迁移学习效果,比有监督的训练提高了3.7mIoU。

 

四、总结和思考

 

本文提出了一种简单高效的视觉自监督训练方法,作者 从图像和语言的信号本质特征出发 ,考虑通过使用NLP领域中较为成熟的技术提高视觉自监督框架的性能,同时认真分析和处理二者之间的差距。本文也观察到, 所提的MAE方法可以从局部推断出复杂的整体重建 ,表明它已经学习到了许多视觉概念,即语义。本文也提醒我们在视觉Transfromer火热的当下,我们更应该从特征学习的本质出发来思考视觉学习的问题。“扩展性好的简单算法是深度学习的核心”。

 

参考

 

[1] Alexey Dosovitskiy, Lucas Beyer, Alexander Kolesnikov, Dirk Weissenborn, Xiaohua Zhai, Thomas Unterthiner, Mostafa Dehghani, Matthias Minderer, Georg Heigold, Syl- vain Gelly, Jakob Uszkoreit, and Neil Houlsby. An image is worth 16×16 words: Transformers for image recognition at scale. In ICLR, 2021.

 

[2] Jacob Devlin, Ming-Wei Chang, Kenton Lee, and Kristina Toutanova. BERT: Pre-training of deep bidirectional trans- formers for language understanding. In NAACL, 2019.

 

[3] Li Yuan, Qibin Hou, Zihang Jiang, Jiashi Feng, and Shuicheng Yan. VOLO: Vision outlooker for visual recogni-tion. arXiv:2106.13112, 2021.

 

作者:s even

 

Illustrastion   b y Anna Golde   from  Icons8

Be First to Comment

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注