因为MAE关注到这篇文章,感觉非常赞。原作者也在知乎哦 @董力 ,大家快去关注大佬。
BEIT预训练的概述:在预训练之前,先通过VAE重建学习一个 "图像分词器"。根据学到的视觉词汇,将图像进行分词,变成离散的视觉词汇。在预训练期间,每个图都会变成图像块和视觉词汇。我们随机地遮蔽一定比例的图像块(图中的[M])。用一个特殊的词向量[M]表示它们。然后,这些图像块输入vision Transformer。预训练任务的目的是预测原始图像的视觉词汇。根据被遮蔽的图像的编码向量来预测原始图像的视觉词汇。
为什么要构建视觉词表:直接使用像素级的自动编码器进行视觉预训练会促使模型关注短距离的依赖性和高频的细节(Ramesh等人,2021)。BEIT通过预测离散的视觉词汇克服了上述问题,它将细节总结为高层次的抽象。
自答一波,近期,关于vision transformer的无监督研究也可谓是一波爆发:
在这众多的工作中,还是微软提出的BEiT更为亮眼,因为从方法上看它这里的masked image modeling和NLP中的Bert非常相似,和现在主流的对比学习完全不同,我觉得BEiT最重要的是引入了DALL.E中的Tokenier使图像转变为visual tokens,这就让masked image modeling更加容易实现了。其实之前ViT也尝试过masked patch prediction,不过只是简单地预测patch的mean color,效果并不出色,而BEiT的效果明显上了一个大台阶,刷新了一波SOTA。(不过BEiT只给了finetune的效果,貌似没有给linear probing结果)
其实关于masked image modeling,商汤的MST和微软的另外一篇工作EsViT也涉及了。这两篇工作都是借鉴了Facebook的工作DINO,DINO采用的是自蒸馏方法来无监督训练,在效果上ViT-B/8在ImageNet的linear probing达到了80.1,超过之前的无监督学习方法。
而商汤的MST是将DINO的自蒸馏和masked token方法结合在一起了,不过这里的masked部分是mask部分patchs,训练的pretext task是重建图像,在同等条件下效果超过DINO。
微软的EsViT是在DINO的基础上提出了一个region level task,这个task是模拟Bert中的MLM任务,对于每个patch token,其soft label由teacher给出,studet只需要使prediction接近teacher给出的target即可。一个非常重要的点是EsViT可用于训练mutil-stage模型,比如Swin Transformer。在效果上,基于Swin-B/W = 14的EsViT在ImageNet上linear evaluation为81.3,超过之前所有的无监督方法:
相信,未来会有更多关于vision transfomer的无监督工作!