在 NLP 领域,BERT 的 Masked Language Modeling(MLM)已成为最成功的自监督学习范式之一:随机遮掉部分 token,训练模型用上下文恢复它们。这种"预测缺失信息"的训练方式非常高效,并且可以产生强大的可迁移表示。
视觉领域长期以来一直希望复制这一范式,但面临两个难点:
-
像素空间冗余极高:遮掉少量 patch 往往仍能直接利用局部纹理恢复;
-
计算代价太大:若对每个 patch 都做复杂的重建,训练成本巨大。
Masked AutoEncoder(MAE) 的提出(He et al., 2021)给出了一个极为简洁、且实践效果极强的解决方案:
在预训练阶段,遮掉大量输入 patch(通常 75%),只将可见 patch 输入编码器;再用一个轻量解码器重建被遮挡的像素。
从"遮住大部分信息"出发,MAE 意外地取得了极高的效率与非常强的下游迁移能力,成为 Vision Transformer(ViT)时代最重要的预训练方法之一。
1. MAE 的核心思想:编码器只看可见部分
MAE 的结构可以拆成两部分:
-
Encoder(编码器):只处理可见 patch
-
Decoder(解码器):接收 encoder 输出 + mask token,重建完整图像
这意味着编码器不需要为被遮挡的 patch 做计算,从而带来惊人的计算节省。
1.1 与传统 AutoEncoder 的关键区别
传统 AutoEncoder 会输入完整图像,然后压缩再恢复。MAE 的不同在于:
-
输入是 严重缺失的(例如只保留 25% patch)
-
编码器不负责补齐缺失信息,只负责学习可迁移表示
-
解码器只作为 预训练"辅助头",下游可以丢弃
这种结构上的"非对称性"(Asymmetric)是 MAE 极其高效的关键原因。
2. MAE 的模型流程(以 ViT 为 backbone)
假设输入图像被切成 N 个 patch(比如 224×224 图像切成 16×16 patch,则 N = 14×14=196):
-
随机选择 75% patch mask 掉
-
剩余 25% patch → 输入编码器(ViT encoder)
-
编码器输出 latent 表示
-
解码器将 latent + mask token 拼接成 N 个 token
-
解码器输出对每个 patch 的像素重建
-
用 MSE 损失在像素空间做重建监督
3. 为什么 MAE "遮住越多越好"?
MAE 最令人印象深刻的结论之一是:
Mask 比例越高(比如 75%),预训练效果反而更好。
这在很多早期自监督方法中不成立。原因主要有两点:
3.1 视觉信号冗余高,低 mask 任务太简单
遮掉 15% 或 30% patch 时,模型容易凭借局部纹理轻松补齐缺失,学到的表示更偏局部,泛化较弱。
3.2 高 mask 强迫模型学习"全局语义结构"
遮掉 75% patch 时,剩余内容不足以简单插值恢复,模型必须利用语义结构和长程依赖推断缺失区域,从而迫使 encoder 学到更强的"语义级"表示。
4. MAE 的损失函数:像素重建为何不"低级"?
MAE 使用的是非常朴素的像素级 MSE:

其中 M表示被遮挡的 patch 集合。
很多人会疑惑:像素重建不是很"低级"吗?为什么它能产生强表征?
关键在于:
被遮挡比例极高时,像素重建不再是局部纹理插值,而是语义推断问题。
换句话说,MAE 的"像素损失"不是浅层任务,因为任务难度由 mask ratio 提升到了语义层面。
5. MAE 与其他自监督方法的对比
| 方法 | 目标 | 特点 | 训练代价 |
|---|---|---|---|
| SimCLR / MoCo | 对比学习 | 需要大 batch 或 memory bank | 中高 |
| BYOL / DINO | non-contrastive | 需要动量教师,稳定训练技巧 | 中 |
| BEiT | token 重建 | 需要 VQ tokenizer | 高 |
| iBOT | token + 区域 | 强,但复杂 | 高 |
| MAE | 像素重建 | 极简、可扩展、超高遮挡比例 | 低 |
MAE 的优势非常明显:
-
不需要教师网络
-
不需要负样本
-
不依赖额外 tokenizer
-
结构简单、训练稳定
-
对大模型尤其友好(越大越强)
6. 工程细节:MAE 为什么如此高效?
6.1 计算成本主要在 Encoder
Transformer 的复杂度是 ,对 token 数非常敏感。
MAE 只让 encoder 处理 25% patch:
-
token 数从 196 → 49
-
注意力计算减少到原来的 (49/196)^2 ≈1/16
这使得 MAE 可以大规模训练 ViT-L、ViT-H 等超大模型,而成本可控。
6.2 Decoder 可以很小
解码器仅用于重建,因此可以设计得非常浅:
-
encoder:12~32 layers
-
decoder:4~8 layers
预训练结束后 decoder 通常直接丢弃。
7. 下游迁移:MAE 为什么适合做通用视觉表征?
MAE 的预训练输出通常用于:
-
ImageNet 分类(fine-tuning)
-
目标检测(COCO)
-
语义分割(ADE20K)
-
视觉语言模型(作为视觉 backbone)
-
多模态预训练(如 CLIP-style 搭配)
MAE 的一个非常好的性质是:
encoder 学到的是"补全语义结构"的能力,因此具有很强的泛化性。
8. MAE 的局限与后续演进
虽然 MAE 强大,但也有一些常见讨论点:
8.1 对低层细节任务的帮助有限
重建目标是像素,可能偏向学习结构而不是纹理,某些依赖细粒度纹理的任务需要额外设计。
8.2 纯像素重建可能存在模糊化
MSE 会导致重建"平均化"倾向,因此一些后续工作引入:
-
更强的目标函数(perceptual loss)
-
token-level reconstruction(BEiT 风格)
-
更复杂 mask 策略
8.3 典型后续工作
-
MAE 改进版:如更强 decoder、更合理 mask、蒸馏
-
VideoMAE:扩展到视频时空 patch
-
Multi-modal MAE:扩展到多模态补全
MAE 的思想已经成为"通用 masked modeling"范式的一部分,持续影响后续研究。
9.如何在实践中使用 MAE?
如果目标是训练一个可迁移的视觉 backbone,MAE 是非常靠谱的选择。实践建议:
-
mask ratio:75% 是经验最优
-
encoder 用标准 ViT
-
decoder 保持轻量
-
大规模训练时,优先用 AdamW + cosine schedule
-
下游任务:推荐 full fine-tuning(尤其 ViT 大模型)
10. 总结:MAE 的本质是什么?
一句话总结 MAE:
MAE 用"高比例遮挡 + 非对称编码-解码"让视觉预训练回归极简,却达到了极强表征能力与极高训练效率。
它是 ViT 时代最具代表性的自监督方法之一,也让"masked modeling"成为视觉领域新的基础范式。