前言

在前面的章节中,我们已经系统梳理了 Vision Transformer 主干网络的发展过程:

ViT→ DeiT→ PVT→ PVTv2→ Swin Transformer

这一阶段主要解决的是:Transformer 如何成为优秀的视觉 backbone?

但是,当 backbone 结构逐渐成熟之后,一个新的问题开始出现:Transformer 能不能像 NLP 中的 BERT 一样,通过海量无标签数据进行自监督预训练?因为现实世界中的图像数据非常多,但真正带人工标注的数据其实很有限。例如:

ImageNet:只有 100 万级标注图像
互联网:存在数十亿张无标签图像

如果模型只能依赖人工标注训练,那么训练成本会越来越高。

因此,研究者开始思考:能否让 ViT 从无标签图像中自动学习视觉表示?

这就是:Self-Supervised Learning(自监督学习)

在 NLP 中,BERT 的成功已经证明:通过 Masked Token Prediction,Transformer 可以从海量无标签文本中学习强大的语义表示。

于是,视觉领域也开始尝试:能不能把“Mask 一部分输入,再让模型恢复”的思想迁移到图像?

而 MAE(Masked Autoencoders)就是这一方向中最重要的工作之一。

MAE 的核心思想非常简单:

随机遮挡图像中的大量 patch,只让 ViT 编码剩余少量可见 patch,然后让模型恢复原始图像。但正是这个看似简单的方法,彻底改变了视觉 Transformer 的预训练方式。

1 什么是 MAE?

MAE 的全名是:Masked Autoencoders Are Scalable Vision Learners


论文由 Kaiming He 等人提出。MAE 的核心思想可以一句话概括:随机遮挡大部分图像 patch,让模型恢复被遮挡内容。其灵感直接来源于 NLP 中的:BERT Masked Language Modeling


例如:I love deep learning
Mask 后:I love [MASK] learning
模型需要预测:deep


MAE 做的事情类似。例如原图:
🐱🐱🐱🐱
🐱🐱🐱🐱
🐱🐱🐱🐱
🐱🐱🐱🐱
随机 mask 75% patch 后:
⬛🐱⬛⬛
⬛⬛🐱⬛
🐱⬛⬛⬛
⬛⬛⬛🐱
模型需要根据剩余 patch 恢复完整图像。
这就是:Masked Image Modeling

2. MAE 的核心思想

MAE 的设计其实非常“反直觉”。传统视觉任务通常认为:

输入信息越完整越好

但 MAE 反而:

故意删除大量输入信息

而且删除比例非常高:

75%

也就是说:

只保留 25% patch

这是 MAE 最关键的设计之一。

因为如果 mask 太少:恢复任务太简单

例如:

猫脸旁边还是猫脸

模型只需要简单插值。

而高比例 mask 会迫使模型:理解整体语义结构

例如:这是猫耳朵→ 中间可能是猫脸→ 下方可能是身体

也就是说:MAE 被迫学习高级语义表示。

3. MAE 整体结构

MAE 的整体结构如下:

Image
  ↓
Patch Embedding
  ↓
Random Masking
  ↓
Visible Patches
  ↓
ViT Encoder
  ↓
Latent Features
  ↓
Lightweight Decoder
  ↓
Reconstructed Image

核心由两部分组成:

模块    作用
Encoder    编码可见 patch
Decoder    恢复完整图像

这里有一个非常重要的设计:Encoder 只处理可见 patch。这是 MAE 高效的关键。

3. MAE 为什么采用高比例 Mask?

这是 MAE 最核心的问题之一。论文中,MAE 采用:

75% masking ratio

即:

196 个 patch
→ 只保留 49 个

如果是 ViT-B/16:

224×224 图像
→ 14×14=196 个 patch

mask 后:

只输入约 49 个 patch

3.1 为什么高 Mask 更好?

因为图像有很强空间冗余。

例如:

天空区域
草地区域
背景区域

邻近 patch 很相似。如果只 mask 少量 patch:

模型不需要真正理解图像

而高 mask 会迫使模型:

学习全局语义
学习目标结构
学习上下文关系

这和 NLP 中的 BERT 很像。


3.2 高 Mask 还能降低计算量

这是 MAE 特别巧妙的地方。因为:

encoder 只处理可见 patch

所以:

token 数大幅减少

例如:

196 → 49

Attention 复杂度:

                               O(N^{-2})

因此计算量会明显下降。这也是 MAE 能扩展到超大模型的重要原因。

4. 为什么 encoder 只输入可见 patch?

这是 MAE 和很多早期方法最大的区别。很多早期 Masked Image Modeling 方法:

mask token 也输入 encoder。例如:

visible patch
+
mask token

一起进入 Transformer。

但 MAE 发现:没必要。

因为:mask token 本身没有真实信息

因此 MAE 直接:丢弃 masked patch

Encoder 只看:visible patches

这样有两个巨大好处。

计算量更低:因为 token 数更少。Attention 复杂度降低非常明显。

Encoder 更专注语义建模:Encoder 不需要处理大量空 token,因此,Encoder 更像语义提取器而 Decoder 才负责恢复细节

这其实是一种:

语义建模
+
像素恢复

分工。

5. MAE 的 Decoder 是怎么设计的?

MAE 的 decoder 很轻量。因为论文发现:

真正重要的是 encoder 学到的表示。

所以 decoder 不需要特别强。MAE 的 decoder 通常:

层数较少
维度较小
计算量较低

它的输入包括:

encoder 输出
+
mask token

decoder 会把:

visible patch feature

和:

mask token

拼接回完整序列,然后恢复原图。

6. MAE 的重建目标是什么?

MAE 的目标是:重建原始像素。

即:Pixel Reconstruction

通常采用:

                      L = \| x - \hat{x} \|^2

也就是:MSE Loss

不过注意:MAE 只计算 masked patch 的重建损失。

即:visible patch 不计算 loss,因为 visible patch 已经输入模型。

真正重要的是:模型能否恢复缺失区域。

Logo

AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。

更多推荐