论文阅读——MAE

Masked Autoencoders Are Scalable Vision Learners

  • 1. 一些乱七八糟的知识
  • 1. Motivation
  • 2.Contribution
  • 3. Method
    • 3.1 核心思想
    • 3.2 Method
  • 4. Experiment
    • 4.1 Main Properties
    • 4.2 Comparisons with Previous Results
    • 4.3 在迁移学习上的效果

论文地址: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 核心思想

论文阅读——MAE_第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
论文阅读——MAE_第2张图片

  • ft:fine tune,lin:linear probing
  • Decoder width:每一个token表示成多长的向量。
  • ©表,编码器不加入盖住的patch,精度反而更高,计算量更少。
  • (d)表,在重构时使用MSE并加入normalization效果是最好的。dVAE token是BEiT的做法。用VAE把每一个patch映射到一个离散token上。使其可以像BERT一样做预测。
  • (e)表,怎么做数据增强。按随机大小裁剪效果最好。对于数据增强不敏感
  • (f)表,采样策略(随机采样,block,按照格点)。可视化如下:

论文阅读——MAE_第3张图片

  • 默认情况是:解码器的深度为8,宽度为512,重建目标为非正常化像素,数据增强为随机调整大小的裁剪,遮蔽率为75%,预训练长度为800 epochs。默认设置以灰色标记。

Masking ratio
论文阅读——MAE_第4张图片

高遮蔽率(75%)对微调(顶部)和线性探测(底部)都很有效。在本文的所有图中,Y轴是ImageNet-1K的验证准确性(%)。

Wall-clock time
论文阅读——MAE_第5张图片

使用ViT-L,而且解码器只使用一层Transformer的时候精度也不错,时间也是最少的(加速了3.7倍)。使用ViT-H也是使用一层解码器,速度是最快的。加速是相对于编码器有掩码标记的条目而言的(灰色)。

Training schedules
论文阅读——MAE_第6张图片

4.2 Comparisons with Previous Results

1. Comparisons with previous results on ImageNet- 1K.
论文阅读——MAE_第7张图片
预训练数据是ImageNet-1K训练集(除了BEiT的标记器是在250M DALLE数据上预训练的)。所有的自监督方法都是通过端到端的微调进行评估的。

2. MAE pre-training vs. supervised pre-training(ViT)
论文阅读——MAE_第8张图片

4.3 在迁移学习上的效果

1. COCO object detection and segmentation
论文阅读——MAE_第9张图片

2. ADE20K semantic segmentation
论文阅读——MAE_第10张图片

3. 重构原始像素VS BEiT重构用dVAE学出来的标号比
论文阅读——MAE_第11张图片

在精度差不多的情况下,重构原始像素更简单。

你可能感兴趣的:(论文阅读,Transformer,算法,人工智能,计算机视觉,tensorflow)