哪怕不看作者我也很喜欢这篇paper,忍不住分享一下我喜欢这篇paper的原因以及一些思考:
不管这篇文章有没有所谓的“novelty”,能引发我的思考让我觉得有follow的价值就是好文章。
我一般判断看一篇方法类文章将来是否有影响力从下面三个角度(重要程度依次递减)
(1) 惊人程度,Surprise
研究的目的就是探索前人不知道的知识,挖掘新的信息。我认为MAE在这点上很棒,它告诉了我直接reconstruct image原图也可以做到很work,这改变了我们绝大多数人的认知(之前iGPT没有很work; 其他答案提的BEIT也并不是reconstruct原图,而是reconstruct feature)。
在NLP reconstruct效果很好是因为文字本身就是highly semantic,所以模型预测的目标信息量大,而噪音小; 图片相比而言语意信息密度低,如果模型要完全预测对目标的话就要浪费capacity去model那些不重要的玩意儿。因此我一直觉得reconstruction这个学习目标不太对。
但这篇文章似乎是换了种方式来解决这个问题(个人偏见),就是压根就没想让模型完全恢复原图,MAE只输入很少的patch,那无论如何也恢复不了原图。同时我们都知道,相比高频信号而言,神经网络更擅长抓住低频的信号。高频是局部细节,低频更多是high level semantics。所以netwok最后可能以fit低频信号为主学到了high-level feature? 论文里面的visualization看起来也比较契合。
以前CovNets时代做不了,如果把mask的图丢给convnet,artifacts太大了,预训练时候模型时既得费劲入管mask out掉的region,预训练完了后还造成了跟后面完整图片的domain gap,吃力不讨好,我之前用convnet试过这种mask patch的相关的东西,结果乱七八糟的不work。但MAE里Transformer可以很好避开这个坑,太妙了。我的导师也评价说我们AI的ecosystem一直在变,所以方法的有效性和相对优越性也在evolve,不是一层不变的。
还有一个小点是MAE也让我学到了linear acc和fine-running acc可以完全uncorrelated甚至反过来。之前就看到有论文讨论linear和fine-tuning关联并不强,但没想到能差别这么大。以后的evaluation都得变了⋯⋯看来做实验不能盲目follow之前的metric了…
(2) 简单性 simplicity
这篇文章非常idea非常简单,实现起来也快捷,有趣的是文章里面一个公式都没放哈哈。我受导师的影响,认为在保持核心idea不变的情况下,或者说surpriseness不变的情况下,我们应该最小化系统的复杂度。因为越简单,也会愈发凸显惊讶程度。害,说起来我最开始接触科研老想着瞎加玩意儿,即使现在也经常做加法而不是减法,确实比较菜…
(3) 通用性 generality
其实(2)和(3)我也不确信哪个更重要,有时候(2)和(3)也相辅相成,越简单越通用。无疑MAE在(3)也做的很棒,几乎影响所有vision里面的recognition类别的任务,不过这也是做representation learning这方向的好处…死磕基础问题。
所以,综合这几点我觉得无疑是visual representation learning今年最有影响力的文章…像这种能改变我的认知,启发我更多思考的文章,对我来说就是好的novel的。novelty应该不只是technical这个维度…
P.S. 看到有个答案说KM的研究品味不高,我完全不敢同意,每个人喜好做不同类型的工作罢了,在做方法算法这块,KM的的品味绝对是最top的,传闻就有做graphics的很solid的教授评价他: whatever this guy touches become gold。当然如果不是方法类的研究,而是要做一件从0到1的事,或者挖坑带领大家前进,那影响力就不能从这三个标准来看了,得看vision了
何恺明yyds,我就是个无情的翻译机器。
本文表明,遮蔽自动编码器(MAE)是计算机视觉中可扩展的自监督学习器。咱MAE方法很简单:我们随机对输入图像块进行遮蔽,并重建缺失的像素。它基于两个核心设计。首先,我们开发了一个非对称的编码器-解码器架构,其中的编码器只对可见的图像块子集进行操作(without mask tokens),同时还有一个轻量级的解码器,从latent representation和mask tokens中重建原始图像。其次,我们发现,对输入图像的高比例进行遮蔽,例如75%,是一个非常有意义的自监督学习任务。耦合这两种设计使我们能够有效地训练大型模型:我们提高了训练速度(3倍或更多)并提高了准确率。该方法允许学习具有良好泛化能力的大容量模型:例如,在只使用ImageNet-1K数据的方法中,一个原版的ViT-Huge模型达到了最好的准确性(87.8%)。在下游任务中的转移性能优于有监督的预训练,显示出了巨大的潜力。
We ask: what makes masked autoencoding different between vision and language?
我们试图从以下几个方面来回答这个问题 从以下几个方面来回答这个问题。
(i) 架构不同。在视觉方面。卷积网络在过去十年中占主导地位。卷积通常在规则的网格上计算的,而要把mask tokens或位置向量整合到卷积网络中并不简单。然而,这个架构上的差距已经被Vision Transformers (ViT) 解决,应该不再会是个障碍。
(ii) 语言和视觉之间的信息密度是不同的。和视觉的信息密度不同,语言是人类产生的信号,是高度语义和信息密集的。当训练一个模型来预测每个句子中仅有的几个缺失的单词,这项任务似乎能引起复杂的语言理解。相反,图像是具有严重空间冗余的自然信号。例如,一个缺失的图像块可以从邻近的图像块中恢复出来,而不需要什么高级的对部件、物体和场景的语义理解。为了克服这种差异并鼓励学习有用的特征,我们展示了一个简单的策略在计算机视觉中具有良好的效果:随机遮蔽非常多的图像块。这种策略在很大程度上减少了冗余,并创造了一个具有挑战性的自监督任务,需要超越低层次图像统计,而进行语义理解。下面来点图,给你们点感觉,咱的重建任务是怎么做的。
(iii) 自动编码器的解码器,将 latent representation映射回输入,在重建文本和图像之间扮演着不同的角色。在视觉中,解码器重建像素,因此其输出的语义水平低于普通的识别任务。比普通识别任务的语义水平低。这与语言不同,在语言中,解码器预测的是包含丰富语义信息的缺失词。虽然在BERT中,解码器可以非常简单(例如一个MLP),但我们发现,对于图像来说,解码器的设计在决定所学的 latent representation的语义水平方面起着关键作用。
咱的MAE有一个不对称的编码器和解码器设计。咱的编码器只对可见的图像块进行计算,而咱的解码器是轻量的,在咱非对称编码器-解码器中,将Mask tokens转移到小的解码器,导致计算量大大减少。在这种设计下,一个非常高的掩蔽率(如75%)可以实现双赢的局面:它在优化精度的同时,允许编码器只处理一小部分(如25%)的图像块。这可以使整个预训练时间减少3倍或更多,同样也可以减少内存消耗。使我们能够轻松地将咱的MAE扩展到大型模型。
咱的MAE通过预测每个被遮蔽的图像块的像素值来重建输入。解码器输出中的每个元素都是代表一个图像块的的像素值的向量。解码器的最后一层是一个线性投影,其输出通道的数量等于一个图像块的中像素值的数量。解码器的输出被重塑以形成一个重建的图像。咱的损失函数计算重建图像和原始图像在像素空间中的平均平方误差(MSE)。咱只在被遮蔽的图像块上计算损失,类似于BERT。
ViT-Large. 我们在消融研究中使用ViT-Large(ViT-L/16)作为backbone。下图是基线与微调MAE的比较。微调训练了50轮,从头训训练了200轮。
观察到几个有趣的特性。
遮掩率:下图显示了遮蔽率对性能的影响。最佳遮蔽率令人惊讶地高,达到了75%。而在BERT中遮蔽率通常只有15%。此外,咱的遮蔽率也比其他工作高,它们通常只有20%-50%。
Mask token:没有Mask token更好更快。
重建目标:带归一化像素点、不带归一化像素点,96维PCA向量和dVAE token。实验证明带归一化的像素点是最吼滴。
数据增强:MAE不怎么需要数据增强,相比对比学习强烈依赖数据增强。
遮蔽采样策略:随机采样是最好滴
训练方式:训练1600轮没见饱和,真滴牛逼。相比MoCo 300轮后就饱和了。额滴神啊,1600轮这要训练多久...
就写这些吧,论文很长,翻译不动了。感兴趣的同学自己去看吧~
趁着写论文的间歇来写个回答,讲几个感想:
1. 除了idea和实验方面的天赋,还想说恺明对于技术趋势的敏锐性和革命前夕的神准把握方面实在太牛了。一直觉得创新本身不是最重要的,更重要的是带来改变领域走向的理解或者技术,恺明这篇论文无疑是会达到这一成就的,MoCo和Mask R-CNN也是如此,大巧无工,但真的改变了领域。
2. 过去我们过于看重linear probe这个指标,MAE无疑会改变这一现状,以及让我们重新去看待contrastive learning和mask image modeling的未来。很巧的是,一年前,我们NLC组的同事Hangbo Gao、 @董力 以及韦福如和我们提到要做和MAE类似路线的方法:BEIT,那时还觉得这个路线的方法学到的特征会太low-level,没想到半年后他们居然搞出来了,结果非常惊艳,事实上也改变了我的认知。MAE这个工作无疑也会让BEIT也大火起来, 尽管过去4、5个月BEIT其实在小范围内已经很受关注,但它受到的关注显然小于它实际的贡献。恺明大神这次的论文,让这个方向工作的重要性得到了应有的证明。
https:// ancientmooner.github.io /doc/self-supervised-learning-cv-valse.pdf
3. 看到恺明Intro里的一句话:”The idea of masked autoencoders, a form of more general denoising autoencoders [48], is natural and applicable in computer vision as well. Indeed, closely related research in vision [49, 39] preceded BERT.” 要特别赞一下这句话,其实也是有共鸣的,今年在RACV上讲了一个态度比较鲜明(或者极端吧。。)的talk,说要“重建CV人的文化自信”,就拿它作为其中一个例子:Mask Image Modeling或者视觉里叫Inpainting的方法在CV里做的蛮早的,在BERT之前就已经有一些。
RACV2021观点集锦 | 视觉transformer 从主干encoder 到任务decoder: 现状与趋势 (qq.com)
4. 想再次感叹一下,CV和NLP以及更多领域的融合看来真的是大势所驱了,希望不同领域的人多多合作,一起来搞事情。前几天见到董力和福如,他们提到有个多模态的工作因为挂了Arxiv不能投ACL了,我提议他们投CVPR,不晓得他们最后是什么决定。无论如何,CV的会议是很开放和包容的,理论的、偏工程的、交叉的、基于toy data做的,只要有点意思都有机会被接收,相信这也是CV领域能够长期这么繁荣的重要原因之一。在AI各个子领域技术趋同的背景下,它们之间的联系和跨界也会越来越紧密,这正是CV这个社区体现开放和包容心态的时候,吸引更多NLP的同仁们加入CV或者交叉研究中,以及我们自己去尝试给其他AI子领域进行贡献的时候,最终的目标就是和各个领域一起共舞,共同推进AI的进展。
恺明总能做出很新很有效的让人震惊的文章,这篇又是一个力作。要知道凯明最近已经很少发一作的文章了。
这篇文章推翻了之前视觉自监督领域的统领范式(NLP里面确实用的比较多,但是CV里面用的并不多),提出了简单本质有效的自监督方法:基于mask和autoencoder的恢复方法。
下面一起来赏析一下恺明的历史性工作。模型非常简单,上图一目了然。就是把图片中一部分像素遮盖掉,然后用autoencoder来恢复。这样无监督学习到的表征可以用于多个下游任务中。
这篇文章的效果也非常惊艳,下图可以看到,在验证集上仅仅通过很少的像素点就可以恢复出有意义的图像。
特别是95%遮挡的情况,简直让人拍案叫绝!
这篇文章的数字效果也非常好,在imagenet上面,用新的框架超过了之前的所有方法,特别是对于大模型预训练,有更好的效果。
针对说这篇论文不novel的,我下面来进行一个逐一反驳。有新的质疑也可以在评论区提出,我会补充。对novelty的有效质疑必须满足以下条件:
1、要针对这篇文章的核心论点评估是否novel(利用生成网络进行大规模恢复式预训练这一点),而不是说抓住某个侧面跟已有方法比较是否novel(比如什么这个也是mask modeling之类的,你咋不说这个文章也是deep learning呢)。
2、要指出具体的文献,而不是泛泛而谈这个跟之前哪个思路很像。要知道kaiming的resnet之前也有人提出过短路,faster rcnn也有同期的很像的工作。但是并不妨碍这两篇在vision领域的影响力。
下面针对几个论文具体谈谈区别:
1、 BEiT[1]这篇是同期工作,也是比较像的。恺明的工作的主要区别是用一步预训练而不是BEiT中的先学dictionary,再学恢复的两步式做法,更加简单高效。恺明也跟这篇论文加了个比较,发现masked autoencoders表现更好。
2、MST[2]这篇也算同期工作,这个工作利用了两个网络,一个teacher,一个student,用了两个loss,一个是监督的交叉熵函数loss,一个是恢复的loss。虽然同样是masked modeling,但是恺明的网络更加简单高效本质。
3、说跟NLP里面的BERT[3]很像的,首先这是两个领域,视觉的图片是二维的,像素点也高。举个具体的例子,我们很容易在NLP里面学到,“我X篮球“中的X是“打”这个字,但是在vision当中,当大部分像素点被遮盖的时候,还能学到这种恢复能力吗?
其次,模型也跟BERT有明显差别的,BERT只用了encoder,但这是一个encoder+decoder的模型,差别很大。
另外,BERT采用了多个任务一起学习的方式,才达到很好的效果,kaiming这篇仅仅采用了masked prediction这一种方式,就达到了比之前文章好的效果,属实经验。要知道之前的vision pretraining都是加很多很重的pretext任务,才能达到很好的效果。但kaiming这个简单粗暴,一个任务搞定!
最后,ViT不也是transformer从NLP搬到CV领域么,然而它毫无疑问是非常非常杰出的工作。关键是得要站在本领域看,这个技术的应用是否新。有些人觉得,这不就是个搬迁,但是自己多试试就知道,大部分的idea搬迁过来都是不适用/不那么有效的(参考下面iGPT这种粗暴的搬迁方式),真的搬迁过来能推翻统领了一个领域多年的方法,还是非常不容易的!
4、说跟NLP里面的RoBERTa[4]很像的,RoBERTa用了大量的预训练数据,比BERT更甚,才达到更好的效果。而kaiming这篇是纯粹的单数据集预训练。RoBERTa也印证了单纯用masked prediction是最有效的与训练方式,这点结论与kaiming的相吻合。其余部分的区别,跟BERT一样。还是那句老话,人家大佬敢提出简单粗暴的方式,并能证明work,其余人想做到这一点并不容易。
5、iGPT[5]这篇也是在CV里面做mask预训练的,但是从结果上看,iGPT只有72.0%,还是用了大量外部数据,但是kaiming的最好的结果有87.8%,一般的网络也有80%+,还没有使用外部数据!要知道imagenet上面,一两个点都是很关键的。这正说明,简单的用mask预训练在CV里面是很难work的。我们来详细看看区别:
首先,iGPT没有使用encoder+decoder,这是非常关键的技术点。
其次,iGPT采用的是初始BERT的预测下一个token是什么的任务,而不是mask prediction。
从实验上看,iGPT也没有做classification之外的下游任务,可能效果也不理想。
总体来说,idea层面不能说之前人没想到过,只能说之前人做的没kaiming有效。这一点已经贡献很大了。因为可能有很多新的研究者看到之前不太work的文章,会想:哦原来尝试过了,这个idea不行。然后就放弃了投入这个方向。但是kaiming证明了,这个idea是可以work的,这个方向是promising的。这本身是一个很好的“拨乱反正”的贡献。
今天想着想着,就有个疑问了,借楼向大家提问一下。
首先,根据MAE论文的消融实验,我们可以看到50%的mask ratio效果也挺好了,并且encoder加入[M]的finetune性能其实也不会降多少(这里都只关心finetune)
然后,如果encoder加入[M],其实跟decoder也就没啥差别了,所以这种情况下整个MAE模型就是一个多了几层的ViT模型而已。总的来说就是:一个多了几层的ViT,加50%的mask ratio,去重构原图,应该是能起到还不错的预训练效果(至少finetune性能有80%+吧)
然而,上面说的预训练配置,在ViT的原始论文就出现过,但是效果明显差了一截:
虽然两者也不能说完全相同,但我觉得该get到的point已经get到了,所以问题来了,原始ViT的预训练效果为啥会差呢?
整个学界被linear probe这个评价方式带歪了两年的时间。
linear probe其实就相当于只让finetune最后一层,也就是说倒数第二层就必须得有很强的分类能力了(注意是分类能力,并不一定是特征表达能力)。
contrastive learning本身就是做的类似于分类的metric learning任务,在linear probe这个指标上太占便宜了。而MAE方法是做图像重建的,就算能提取到很好的语义特征,离分类能力也还是有一定的距离。
现在回过头来看,只能finetune最后一层实在没什么道理,本来网络就是整体优化来达到最终目标的,就算是做分类,也不可能只有最后一层在起作用。整体finetune才符合神经网络的运行模式。
大牛们在挖坑的同时,真的要好好考虑清楚evaluation protocol,一将无能累死三军啊。
kaiming的MAE和年初的CLIP可能是今年CV领域唯二的重磅文章,有预感MAE会成为CV领域和BERT地位相当的一篇文章。
从BERT和MAE的形态上来说,都引入了mask机制来做无监督预训练,但是又因为vision和language两种模态上本质的不同,导致mask的设计上和整体框架上有所区别。从NLP的Transformer到BERT,然后到CV的ViT、BEiT,CV领域的无监督预训练经历了漫长的探索,直到MAE的出现,才逐渐感觉到CV的大规模无监督预训练开始走向正轨。
本文先捋顺NLP和CV相关文章之间的关系脉络,然后探讨一下BEiT和MAE的关系,最后探讨一下BERT和MAE的关系。
BERT和MAE的关系图。橙色虚线表示NLP和CV跨领域启发,绿色实线表示领域内启发。
Transformer是整个大规模无监督预训练的开端,Transformer改变了原有Seq2Seq的串行计算的方式,通过矩阵并行计算大幅度提升了长距离依赖的计算效率,并且由于整个框架完全采用attention,Transformer的拟合能力空前绝后。
BERT得益于Transformer强大的计算效率,构造一种类似完形填空的proxy task,可以将不同NLP任务的语料一起拿来做无监督预训练,然后将预训练好的transformer encoder应用于下游任务。
ViT巧妙的将图片构造成patch序列,可以将patch序列送入原始的transformer encoder进行图像分类,ViT直接启发了Transformer和BERT在CV领域的正确打开方式。
iGPT应该是第一个应用BERT-like的mask方式做CV领域无监督预训练的工作。iGPT把图片resize构建resize序列,同时将resize序列当作监督信号,可以直接使用BERT进行CV的无监督预训练,这给予了cv领域极大的想象空间。
BEiT对iGPT无监督预训练方法进行了改进,借鉴ViT的思路,将图片构建成patch序列,并且通过一个tokenizer得到visual token,用学习的方式得到更精确的监督信号,避免了resize导致的大量信息丢失。
重头戏来了!MAE做的更为极致,设计了一个encoder-decoder预训练框架,encoder只送入image token,decoder同时送入image token和mask token,对patch序列进行重建,最后还原成图片。相比于BEiT,省去了繁琐的训练tokenizer的过程,同时对image token和mask token进行解耦,特征提取和图像重建进行解耦,encoder只负责image token的特征提取,decoder专注于图像重建,这种设计直接导致了训练速度大幅度提升,同时提升精度,真称得上MAE文章中所说的win-win scenario了。
BEiT如今的处境就如同当年NLP的ELMO的处境,碰上MAE如此完美的方法,大部分影响力必然会被MAE给蚕食掉。BERT对整个大规模无监督预训练的发展影响巨大,MAE可能是NLP和CV更紧密结合的开始。
mask autoencoder在cv领域中起源于denoising autoencoder(DAE),iGPT和BEiT实际上都包含了DAE的思想(DAE是bengio在08年提出来的,DAE认为对输入加噪声,模型可以学习到更鲁棒的特征),MAE则略有不同,将image token和mask token解耦,encoder只对image token进行学习,mask token只在decoder图像重建中使用。
MAE整体上是一个encoder-decoder框架,encoder只对visible patches进行处理,decoder同时处理image token和mask token,得到重建序列,最后还原成图片。其中visible patches是通过shuffle所有patches然后采样前25%得到的(即mask ratio为75%),decoder的输入image token和mask token通过unshuffle还原顺序,并且都需要添加positional embedding来保持patch的位置信息。
通过简单设计,MAE在mask ratio高达95%的时候,仍然能够还原出强语义的信息。
MAE文章中的fig2还有一行小字,意思是说之所以不把visible patches和reconstruction patches合起来显示,就是为了让你们看看我们的算法有多强,蚌埠住了。
接下来看一看最精彩的实验部分
Masking ratio
这是MAE最为关键的实验,随着mask ratio的增加,fine-tuning和linear probing的精度竟然逐渐攀升,直到75%的mask ratio还不大幅度掉点,这个实验结论跟之前的工作相差甚远(BEiT的mask ratio是40%),违背直觉的结论往往是推动领域进步的开始。
Decoder design
MAE对decoder的depth和width进行探索,发现depth和width并不起决定性作用,最后MAE为了兼顾linear probing精度选择8个blocks,512-d作为默认配置。
Mask token
MAE在encoder部分做mask token的消融实验,发现同时在encoder送入image token和mask token会导致fine-tuning和inear probling掉点,尤其是linear probling掉了10几个点,并且计算量增加了3.3倍,该实验表明encoder使用mask token会导致encoder的提取特征能力减弱。
Reconstruction target
MAE对reconstruction target做了消融实验,发现基于token的target相比于基于pixel的target不占优势,带norm的pixel的target同时在fine-tuning和linear-tuning达到最优,表明基于token的target存在信息丢失问题。
Data augmentation
通过data augmentation的消融实验,表明MAE对于数据增强的需求并不强烈,在较弱的数据增强下,反而能够取得最好的精度,推测是因为重建任务本身就不需要强烈的数据增强,过于强烈的数据增强会导致信息失真。
Mask sampling strategy
尝试不同的mask采样策略,发现随机采样效果是最好的,这也挺符合直觉的,随机采样得到的visible patches组合多样性更好。
Training schedule
通过增加训练的epoch,MAE在fine-tuning和linear probing上可以持续提升精度,并且直到1600epoch还未见到衰退现象,说明了MAE抽象语义信息的能力之强。
Comparisons with self-supervised methods
和之前self-supervised方法进行比较,MAE在只使用ImageNet-1K(IN1k)的情况下,更具优势,并且在使用ViT-H488的backbone上取得了只使用IN1k的最好精度。
Comparisons with supervised pre-training
MAE和supervised pre-training的进行比较,发现MAE大幅度超过只使用IN1K的supervised pre-training,而且和使用JFT300M的supervised pre-training相差不多。
Partial Fine-tuning
MAE进一步指出linear probling指标对于非线性能力强的深度学习来说是不合理的。为了用更合理的指标评估深度学习的非线性能力,MAE建议使用partial fine-tuning的评价指标。使用partial fine-tuning评价指标,发现MAE在微调0层的时候,不如MoCov3,当微调层数大于0层的时候,MAE开始逐渐超过MoCov3的精度,这个实验证明了MAE的非线性能力很强,同时也说明了linear probling指标的不合理性。
Transfer Learning Experiments
将MAE的encoder迁移到下游任务中,通过COCO和ADE20K两个数据集,证明了MAE迁移目标检测和语义分割任务的优越性。
同时MAE也比较了一下pixel和token的target对于下游任务的影响,实验发现token的target对于下游任务来说也同样没有优势,甚至会轻微掉点。
下面试图解释一下MAE能work的4点原因:
还有一个小细节
重建loss只作用在mask token上,这会提升0.5个点,这个设计使得image token和mask token的解耦更加彻底,试想一下,如果image token也计算重建loss,这会导致encoder的输出和decoder没办法完全解耦,image token的重建loss梯度会回传到encoder上,导致encoder将一部分注意力分散到了重建任务上,增加了encoder的学习难度。
image token和mask token解耦对于encoder的影响
这里我画了一个图来解释一下image token和mask token解耦对于encoder的影响。
image token和mask token同时送入encoder,相当于是将两个不同的高维空间映射到一个低维空间中,假设image token映射到了一个低维空间中,那么encoder就需要分散出一部分的注意力将mask token映射到同一个空间。而MAE的encoder只对image token进行映射,这个映射空间不要对mask token进行迁就,能够尽可能的得到干净的语义特征,提高了encoder的上限。
BERT vs MAE
MAE最有意思的点是通过mask ratio揭示了vision和language两种模态之间本质差异。
将BERT和MAE的框架进行比较,MAE多了一个decoder重建的过程,并且mask token只用于decoder。BERT的和MAE的encoder功能性有所不同,BERT的功能性更类似于MAE的decoder重建,通过上下文来预测mask信息,而MAE的encoder主要是为了得到好的特征表达,用于图像信息的高度抽象。正是由于language本身就是高度抽象的信息,只需要通过encoder进行重建即可,而vision本身有大量的冗余信息需要先通过encoder获得高度抽象的信息,然后再通过decoder进行重建。另外,NLP大多数的下游任务和BERT的预测mask信息是兼容的,而CV大多数的下游任务不需要重建,而是为了获得高度抽象信息(比如图像分类、目标检测、语义分割),也就是只需要encoder。
另外讲一下mask ratio和模型复杂度还有特征表达之间的关系。
实际上,随着mask ratio的上升,模型复杂度逐渐降低(正则逐渐上升),而特征表达能力上,是先上升后下降的过程。一开始mask ratio比较低,噪声比较大,学到的特征不够干净,特征表达能力弱,随着mask ratio的增加,噪声逐渐减小,特征表达能力逐渐增加,直到mask ratio过大,不能从剩余的特征中学到合适的特征表达(ps:对于MAE来说是encoder的模型复杂度随着mask ratio逐渐降低,decoder的模型复杂度随着mask ratio是逐渐上升的)。
这也能解释为什么vision是高mask ratio(75%),而language是低mask ratio(15%)。上面也说到language本身就是高度抽象的信息,而vision是带有大量冗余的信息,也就是说特征表达能力最强的最优mask ratio,language会更小,vision会更大。因为language噪声更小,需要通过更多的上下文信息推理相互关系,而vision需要减少冗余信息的噪声,通过更小的模型复杂度学到真正的语义信息。
mask ratio其实是在找最适合数据的模型复杂度,mask越多,模型越简单,mask越少,模型越复杂。
Reference
[1] Masked Autoencoders Are Scalable Vision Learners
[2] BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding
[3] BEIT: BERT Pre-Training of Image Transformers
[4] Generative Pretraining from Pixels
[5] Extracting and composing robust features with denoising autoencoders
[6] AN IMAGE IS WORTH 16X16 WORDS: TRANSFORMERS FOR IMAGE RECOGNITION AT SCALE
[7] Attention Is All You Need
[8] http://jalammar.github.io/illustrated-bert/
欢迎关注Smarter,构建CV世界观
欢迎加入Smarter交流群,添加微信「cjy094617」,备注「学校-方向」即可
好久没看知乎,忽然首页看到这个问题点进来,突然看到一位大神的回答,大受启发,但是不知道为什么,大神又默默把回答删除了……(难道这就是传说中的“神物自晦”吗?黑人问号?)
正文:
这篇paper,比起最后的result,不知道大家有没有思考过其中提到的一个重要问题:为什么MAE是在遮mask掉60%-70%的部分时在最后的任务时才会取得最佳呢?
从人类的视觉角度看来,当一副图片只剩下几个色块时,比如下图最右方时,这是什么东西我们人类可能都无法判断,更勿谈恢复原图像了,但是通过机器学习,我们竟然能够从几个方块恢复整个图块,这是多么神奇?!
而且通过这些方式,还能提升后续机器判别物体的能力,这又是多么神奇?
但是,如果换一种角度来想,这一切就并不奇怪了。
对于每一位机器学习初学者来说,绕不开的一课,一定是线性回归模型。
线性回归是这样的,对于N个点,我们需要找到一条线,让损失函数最小。
从信息容量的角度,我们是在用少量的参数,描述更大量的数据。
乙方抽象上说,我们寻找一条充分且最佳概括这些点的规律。
当数据变得复杂,我们就不能用简单的线性来概括,而是要升级到更复杂的自回归模型,乃至深度学习模型了。
但是本质依然是不变了,那就是用“小数据”来描述“大数据”,抽象“大数据”中的“规律”。
可是,这跟transform,bert,GPT乃至于今天的MAE有什么关系呢?
答案很简单,借用佛家“佛见一粒米,大如须弥山”的话。
不要把线性回归的点,看成一个点,要把它看成包含着一个N维矢量的小球。
线性回归模型,通过已有的N个点,预测下一个点的y值。
深度学习模式,通过N个矢量vector,预测下一个矢量vector。
如果你接受这个思想,你就会看到,不论nlp中一段文字,还是cv中一副图片,它都可以抽象成一个N个矢量的线性序列。
BERT:通过前后的序列,预测中间部分的“vector”。
GPT:通过前面的序列,预测下一部分的“vector”。
CV任务(补全):通过部分点的RGB序列,预测下一部分的“RGB”。
PS:这就是那位删回答大神的回答的核心思想。
如果你接受这种观念,那么就会理解某一些问题。
一直以来,将NLP中那种“预训练+Fineturn”的模式迁移到CV的想法一直都有,可是效果并不是很理想。
问题在哪里?
文字是少数据,而高信息密度的,所以BERT使用15%的mask比例已经足以。
而图像是多数据,而低信息密度的。
换句话说,要实现一些任务,根本不需要抽象的概念,不需要high-level feature,深度网络有大量投机取巧的办法。
换句话说,就是在”线性回归”中,模型要预测下一个点,它根本不需要找到全局的那根线,而是只需要“局部”预测“局部”即可。
回到本文一开始提到的那个问题,MAE为什么对小方块的mask率需要那么高?超过了此前所有人的想象。
因为图像中信息冗余是如此之大,在自回归中,“点”是如此之多,以至于我们需要删除70%以上的“点”,才能实现正确的“自回归”。
如果把大模型的预测性训练(pre-train)看做是提升模型对于数据的抽象理解能力。
那么信息密度越大,我们需要mask的即越少。
信息密度越稀疏,我们需要mask的比例即越多,仅此而已。
回到NLP大火的Prompt……
为什么对于大模型,我们需要Prompt呢?答案很简单,对于自回归模型,我们给出信息不够。
你连下一个点的X值都不告诉我,让我怎么去预测它的Y值呢?
要说凯明大神MAE最大的贡献是什么,我觉得最大的贡献一定是,它开发了一众CVer乃至NLPer的想象力。
比如处理数据,在图片上预先留出一个空白方块,做高mask率的Encoder训练大参赛MAE,训练之后……
该方块填成红色,生成的图片上面就会出现一串奇怪的文字。
该方块填成绿色,生成的图片上面就会生成大大小小的方框和文字。
该方块填成蓝色,生成的图片上面就会出现五颜六色的颜色。
……
香否?
===========
我一直相信,如同脆弱的肉体一般,人类的智力一定是有一个极限的。
除非打造出机器和人工智能,这才能超越自我。
也一直相信,CV和NLP的两个领域的合一,是人类掌握更先进人工智能的必经之路。
就如同物理学史中,电学与磁学统一的伟大一般。
毕竟——
谁愿意报了CV的课,还要学NLP的课时,竟然被人告知,还要另外交钱呢?!
非常有意思的文章,有意思的不仅仅在本章内容本身,还有超越文章的部分,而且其实还有很多写作细节很有趣。
首先先说文章,首先是文章告诉大家的东西。
但是! 我觉得这篇文章不止于此,他带给读者非常大的想象力,这让我觉得他可能已经超越了oral,甚至best paper都不奇怪。
所以,语言和视觉被统一,生成和检测被统一,那这个范式的想象力可就超越了这篇文章本身了。
最后,这篇文章有一些比较有意思的写作。
第一段开门见山,指名道姓先diss一下Vit。。hhh大佬真有底气。我也非常赞同,谷歌的文章总是大力出奇迹(真是气死人)。
2. 我虽然没发表,但是我先自引一下
虽然这个引用在补充材料,但是看得出来kaiming真的非常自信。文章虽然没写完,但是我先引了。