自监督论文阅读系列:
【自监督论文阅读 1】SimCLR
【自监督论文阅读 2】MAE
论文地址:https://arxiv.org/pdf/2111.06377.pdf
github代码地址:https://github.com/facebookresearch/mae
沐神B站视频讲解地址(看这个视频就够了):https://www.bilibili.com/video/BV1sq4y1q77t/?spm_id_from=333.1007.top_right_bar_window_history.content.click&vd_source=e768911f41969985adfce85914bfde8f
论文题目:Masked Autoencoders Are Scalable Vision Learners
论文作者: Kaiming He, Xinlei Chen,Saining Xie, Yanghao Li, Piotr Doll´ar, Ross Girshick
这篇文章,展示了在计算视觉领域,masked的自编码器(简称MAE)是一个可拓展的自监督学习器。
MAE的架构是比较简单的:随机mask图像块,然后重构失去的图像块,主要由两个设计构成:
基于以上设计,可以高效且有效的训练大模型,结果如下:
深度学习架构、能力都在不断的增长,在硬件快速增长的帮助下,模型很容易拟合100万张图像,并且开始像数亿张图像进军,当然,这些图像通常是公开,且未标注的。
NLP在自监督学习领域取得巨大成功,比如GPT、BERT(masked 的自编码器)等等,在概念上都是比较简易的:移除一定概率的内容,学习预测这些内容。这些方法可以训练超过1000亿个参数的广义NLP模型。
由于BERT取得巨大成功,masked的自编码器(MAE)应用到图像领域也引起了极大的兴趣,但是,视觉领域的自编码方法的进展仍然落后NLP。
是什么导致MAE在视觉和语言任务上的不同?作者做如下解答:
基于以上分析,本文提出了一个简单、有效、可拓展的masked 自编码器(MAE), 可以应用到视觉表征学习中,结构如下图所示:
下图展示了mask后的还原信息(PS: 这么少的图像patch, 都能有效还原,明显超过人类了)
masked 语言模型,比如Bert、GPT等,在NLP都取得了巨大的成功,并且是可拓展的,表明了预训练的表征可以应用到众多下游任务中。这些方法都是在输入队列中,移除一部分,然后预测消失的内容。
自编码器是表征学习里很经典的方法:
像PCA、K-means都是一定形式的自编码器, Denoising autoencoders (DAE) 是一个很典型的自编码器:在输入信号中添加噪声,然后重构原始输入,未损坏的信号。
本文方法也相当于一定形式的噪声,但是在很多方面与经典的DAE有所不同。
通过mask图像学习特征表示,比如DAE。 受NLP领域的成功,iGPT、BEiT等将Vit成功应用到视觉领域。与本文效果特别接近的是,BEiT提出学习一个离散的tokens,然后每个patch还原这些tokens.
这里MAE则是直接还原原始像素信息,更简单实现。
自监督学习通常聚焦于不同的pretext任务。
最近对比学习比较火:通常是在两个或者更多的view上建模图像的相似度,然后对比学习非常依赖数据增强,这个本文的自动编解码,追求的是不同的方向。
具体流程在 2.2中已经介绍,这里描述一下各个设计的意义:
随机大比例Mask图像块,约75%.
高比例随机采样patch的好处:
编码器就是一个Vit模型,但是仅用于可见的图像块中(没有masked的),和标准的ViT模型一样, 本文的编码器也是经过一个线性头+位置编码得到编码向量,再送入到一系列的Transform 的Block中,得到潜在表征。
编码器仅应用在小比例的图像块中(大约25%),这个就使得,可以训练一些大的编码器。
解码器输入由两部分组成:可见图像的编码信息和 mask的token
解码器就是一个新的Transform, 对mask的图像块加入了位置信息。(PS:论文中,对没有mask的图像块,并没有再次加入位置信息,我猜测可能编码的时候,已经有位置信息在里面了)
decoder的输出就是一个全连接,然后reshape成重建的图像,使用MSE损失,并且仅作用在被masked的图像块上。
实现方式:
还强调了预测归一化后的像素是效果是最好的(即预测均值和方差)
做了一些实验,所有层都微调 和冻结特征表征层,仅微调线性层,一些总结如下:
这里是和MoCo V3比较的,从表上看,MAE在4层之前,效果就超过了全部微调的MoCoV3.