【何恺明新作速读】Masked Autoencoders Are Scalable Vision Learners

共 2549字,需浏览 6分钟

 ·

2021-11-23 07:28

作者 |  胖虎 

原文 | https://zhuanlan.zhihu.com/p/434345170

本文经过作者同意转载。


最近这篇文章大火了,毕竟是FAIR的文章,而且一作还是Kaiming大佬。粗略地读了一下,概括性地写了本篇笔记。


论文:Masked Autoencoders Are Scalable Vision Learners
论文:https://arxiv.org/pdf/2111.06377v1.pdf



Autoencoders在NLP应用的比CV多,这是为什么呢?

1、CV界基本是卷积称霸的现状(尽管transformer逐渐兴起)。要把例如mask tokens或者位置编码融入到卷积操作中很难。而ViT一定程度上解决了这个问题。

2、信息密度问题。语言是人类创造的,所以基本都是信息密集的。而图片可能存在很多信息冗余。这造成了什么问题呢?一句话如果我mask掉一两个单词,模型若想要补全这句话,需要非常high-level的理解,也就是真正理解这句话(想想高中英语的完形填空)。但是图片如果我mask掉十几个像素点,我根本不需要理解这张图片是什么,就算用个二插值我都能补全个七七八八。为了解决这个问题,本文mask掉大量的像素(例如75%)。这样,模型就不得不去理解high-level的信息,才能够补全出来一张图了。

3、autoencoder中的decoder,在NLP和CV中是不同的。CV中解码出来的是pixel,是low-level的语义信息。NLP中解码出来的是单词,语义信息丰富的多。同时,NLP中,例如BERT,他的decoder就是MLP,但是CV中,decoder决定了latent representation的语义级别。


于是本文提出了非对称masked autoencoders(MAE)。整体结构如下,先遮,然后把可见的patch输入encoder,然后把masked tokens合并进去,接着一顿操作猛如虎,解码后补全图片。


Approach

1、Mask:与ViT类似,把图片切分成一个个小patch,然后根据uniform distribution随机mask掉一定比例的patch。

2、Encoder:直接用ViT,但是输入的是未mask的patch。这使得整张图片只有一小部分(未mask的部分)会被ViT处理,大大提高了效率。而mask的部分,会交给更轻量级的decoder来处理。

3、Decoder:解码过程加入了masked patch,同时加入了位置编码。decoder只在预训练的时候使用。所以decoder完全可以和encoder独立。本文的默认设置中就用了一个很小的decoder,平均每一个patch的计算量比encoder少了90%以上。

4、Reconstruction Target:本文做了两种实验,第一种是直接产出pixel,然后计算MSE。第二种是对每一个patch计算均值方差,然后归一化。实验发现,归一化处理后representation的质量有提升。

5、Simple Implementation:整个模型实现起来很简单。



ImageNet Experiment

往常这一部分我都会简略,自己看原文比较快,无非是demonstrate自己的模型有多牛逼,多好。但是这篇文章的实验部分挺有意思。简单地来写一下。

实验结果中,很神奇的一点就是,当mask比例在75%上下的时候,准确率非常好。反而当mask比例比较小的时候,效果不好。这点比较反直觉。个人推测可能的原因是,当mask比例太小的时候,模型无法学习到很多high-level的语义信息,导致其无法真正“理解”图片。而支持我这一猜想的证据是,该模型所做的图片补全看起来并不是简单的延长一下线条或者色块,而是对整幅图有深刻的理解,才能补全出来的。

Decoder Design

Decoder的部分也很有趣,并不是越大、越深,就越好,反而是合适的深度和宽度更能发挥作用。

主要的差别通过linear probing可以体现。Decoder需要有一定深度,因为autoencoder的最后几层应当是专注于重建,而不是识别。一个合理深度的decoder可以专注于重建工作,使得latent representations停留在一个更抽象的层面上。

Mask Token

上面提到,编码的时候,mask token不参与。实验中,如果让mask token也参与,不仅变慢了,准确率还下降了。这是因为预训练和部署之间存在了一个差异:预训练的时候给了他很多mask tokens,但是这些tokens并不存在于未被污染的图片中。


Conclusion

这篇文章提出了MAE这个架构,算是又一个NLP领域到CV领域的重要迁移。NLP之前有BERT和GPT大红大紫过,而现在这种mask的方法迁移到了CV任务上。全文看下来一个大公式都没有(这点挺神奇的,以往的论文基本都至少有两三个大公式)。虽然文章强调了自己的模型lightweight,但是ViT-Large有多大懂的都懂。希望未来能够找到一个更加轻量级的backbone。另外,文章对于具体训练的流程说的比较简略,大部分都在介绍模型的架构本身。比如如何pretrian,finetune,以及如何做linear probing的等等。但是抛开这些,从科研的角度来说,这是一个颇有价值的新突破。


——The  End——

推荐阅读


多模态机器学习综述


工作之后,顶会还重要吗?


Yann LeCun主讲,纽约大学《深度学习》2021春季课程放出,免费可看


如何看待何恺明最新一作论文Masked Autoencoders Are Scalable Vision Learners?


为了方便大家学习交流,我们建立了微信群,欢迎大家进群讨论。

你可以加我的微信邀请你进群,微商和广告无关人员请绕道,谢谢合作!


浏览 75
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报