Masked Autoencoders Are Scalable Vision Learners
论文地址:https://arxiv.org/pdf/2111.06377.pdf
1. 一些乱七八糟的知识
关于Autoencoder:样本的x,y都来自于一个东西。比如在语言模型里面用前面的词来预测下一个词。
1. Motivation
- 在计算机视觉领域还是依赖大量有标注的图片。在NLP领域有许多表现很好的自监督模型。例如GPT和BETR。但是BETR作用在视觉领域表现不佳。原因可能如下:
- “掩码”策略在卷积中,kennel很难区分边界。
- 信息密度不一样,图片的话如果只是简单去掉一些像素块,只需要对临近的像素做个插值就可以了。MAE选择去掉一些高比率的patch。
- 在NLP领域需要还原的是词,具有比较高级的语义信息,可能使用一个MLP就能还原出来。但是在视觉领域需要还原的是像素。
2.Contribution
- 随机盖住图片里的一些patch然后重构这些patch。
- 不对称的编码器解码器结构,编码器只作用在可见的patch,解码器是轻量解码器可以重构原始图片。
- 使用ViT-Huge模型在ImageNet-1K上最好精度达到87.8%(只使用小的数据集,用自监督的方法可以达到比较好的训练精度。)
3. Method
3.1 核心思想
预训练:随机盖住图片里的一些patch(例如盖住75%)->图片中的可见patch作为输入,输入到编码器->将图像patch拉平成一个序列,可见patch被填入编码信息。被mask的patch可能就只有一些位置信息->然后解码器重构这些patch。
训练阶段:解码器被丢弃,编码器被应用于未被破坏的图像的识别任务。
3.2 Method
Masking:随机采样少量块,剩下的全部盖住,这样信息冗余少。
MAE encoder:ViT encoder,但是只作用在可见patch里面。
MAE decoder:可见patch经过编码器后的潜表示+不可见的patch(没有进入编码器)——通过一个共享的可以学到的向量表示。是另外一个Transformer,所以需要加入位置信息。decoder只在预训练的时候使用。
Reconstruction target:解码器最后一层是线性层,线性层将一个patch投影到一维。损失用的是MSE(只在mask patch上做损失)。也可以对mask patch做归一化使其在数值上更稳定。
Simple implementation:对于输入的patch打乱一下,然后取前25%(based on masked ratio)送入编码器。在解码的时候要附上和以前长度一样的patch序列(编码器输出+masked patch——用一个可学习的向量表示)。然后再unshuffle一下,还原到原来的顺序。
4. Experiment
4.1 Main Properties
训练方案:先在ImageNet-1K数据集上做自监督的预训练(图片无标号),然后在同样的数据集上做有标号的监督训练——有两种方案,第一种是做end-to-end的微调(允许更改所有参数);第二种是linear probing(允许该最后一层的线性输出层 )。
Baseline:ViT-large(ViT-L/16)
results:
- 第一列ViT原始设置,第二列加入一些正则化,最后一列就是MAE做预训练再在ImageNet上做微调。
MAE ablation experiments:
- ft:fine tune,lin:linear probing
- Decoder width:每一个token表示成多长的向量。
- ©表,编码器不加入盖住的patch,精度反而更高,计算量更少。
- (d)表,在重构时使用MSE并加入normalization效果是最好的。dVAE token是BEiT的做法。用VAE把每一个patch映射到一个离散token上。使其可以像BERT一样做预测。
- (e)表,怎么做数据增强。按随机大小裁剪效果最好。对于数据增强不敏感
- (f)表,采样策略(随机采样,block,按照格点)。可视化如下:
- 默认情况是:解码器的深度为8,宽度为512,重建目标为非正常化像素,数据增强为随机调整大小的裁剪,遮蔽率为75%,预训练长度为800 epochs。默认设置以灰色标记。
Masking ratio:
高遮蔽率(75%)对微调(顶部)和线性探测(底部)都很有效。在本文的所有图中,Y轴是ImageNet-1K的验证准确性(%)。
Wall-clock time:
使用ViT-L,而且解码器只使用一层Transformer的时候精度也不错,时间也是最少的(加速了3.7倍)。使用ViT-H也是使用一层解码器,速度是最快的。加速是相对于编码器有掩码标记的条目而言的(灰色)。
Training schedules:
4.2 Comparisons with Previous Results
1. Comparisons with previous results on ImageNet- 1K.
预训练数据是ImageNet-1K训练集(除了BEiT的标记器是在250M DALLE数据上预训练的)。所有的自监督方法都是通过端到端的微调进行评估的。
2. MAE pre-training vs. supervised pre-training(ViT)
4.3 在迁移学习上的效果
1. COCO object detection and segmentation
2. ADE20K semantic segmentation
3. 重构原始像素VS BEiT重构用dVAE学出来的标号比
在精度差不多的情况下,重构原始像素更简单。