枢纽
数据集ImageNet

MAE:盖住 75% 的图,让 ViT 学会「脑补」

Kaiming He, Xinlei Chen, Saining Xie, Yanghao Li, Piotr Dollár, Ross Girshick(Facebook AI Research)。CVPR 2022 · arXiv:2111.06377 (2021)。 self-supervisedvision transformerpretraining

🧠 一句话心智模型:把一张图切成 16×16 的 patch,随机抹掉 75%,让 ViT 从剩下的 25% 「脑补」出原图。盖得这么狠才有效——因为图像信息高度冗余,遮少了模型只会顺着纹理「外推」,根本没学会什么是物体。这条「非对称 encoder-decoder」的简单 trick,让 ViT 在 ImageNet 上第一次跑通了 NLP 那种「越大越强」的 scaling 故事。

🎯 为什么重要:CV 自监督的「BERT 时刻」

NLP 早就在用 BERT/GPT 的「掩码预测」做自监督预训练,模型越大、效果越好,一路 scale 到百亿参数。但 CV 一直没跟上——直到 2021 年,自监督视觉的主流还是 对比学习(MoCo、SimCLR),靠的是「两个视角一致」,严重依赖数据增强,而且没有那种「越大越涨」的爽快曲线。

核心矛盾:为什么 NLP 的 BERT 路线搬到图像一直不灵?论文 §1 给了三个深层原因—— (i) CNN 时代不易塞 mask token(架构问题,ViT 之后已解);
(ii) 图像信息冗余远高于语言——一句话去掉几个词,要真的懂语言才能填;但一张图去掉一块 patch,顺着相邻像素就能猜个八九不离十,模型不需要学语义
(iii) 像素重建是低语义任务,所以 decoder 在 CV 里比在 NLP 里更重要(BERT 的 decoder 是个 MLP 就够)。

MAE 的答案是直接正面解决 (ii) 的冗余问题——把 mask 比例拉到 75%,让"顺着纹理外推"不再够用,逼模型理解整体结构和语义。

💡 核心思想:非对称 encoder-decoder + 极高 mask 比例

MAE 的结构极其简单(论文 Fig.1):encoder 是个大 ViT,只吃可见的 25% patch;decoder 是个轻量 ViT,吃「可见 patch + mask token」重建像素。预训练完后 decoder 丢掉,只留 encoder 接下游任务。

输入图(切成 6×6 = 36 patch) 深色 = 可见 (~25%),浅色 = mask (~75%) 只保留可见 patch Encoder 大 ViT (ViT-L/H) 24 层, 1024-d ✗ 不含 mask token 省算力 = scale 的前提 latent +mask token Decoder 小 ViT 8 层, 512-d 只在预训练用 下游任务丢弃 像素重建 (MSE) loss 只算 mask patch 关键 trick:非对称 encoder 只看 25% patch(省 3.3× FLOPs)→ 大模型也训得起;decoder 处理全部 token 但很小(占 <10% 算力)
图 1:MAE 架构(对应论文 Fig.1)。:随机抹掉 75% patch;:大 encoder 只处理可见 patch;:小 decoder 用 mask token 重建像素。预训练完后 decoder 丢弃。

训练 loss 极简——只在 mask patch 上算 MSE,跟 BERT 一样「不计算可见部分」(论文 §3)。重建目标默认是每个 patch 的像素值(可选 per-patch 归一化,效果略好)。

🛠️ 4 个关键设计(消融全部验证过)

设计做法为什么必要(论文 Table 1 消融)
① 高 mask 比例 75%随机均匀采样、无替换地移除 75% patchlinear probing 在 75% 达到峰值(73.5%),差距可达 ~20%(54.6% vs 73.5%)。关键洞察:图像冗余,必须遮狠一点。BERT 只遮 15% 是因为语言不冗余
② 非对称 encoder-decoderencoder 不见 mask token,只看 25%;decoder 小(<10% FLOPs/token)encoder 加 mask token → linear probing 掉 14 个点(73.5→59.6),且训练慢 3.3×。非对称是 scaling 的前提
③ 像素重建(不需 tokenizer)直接回归像素值,MSE loss不依赖 dVAE(BEiT 需要 250M 图像预训练 tokenizer)。per-patch 归一化像素 ≈ dVAE token(Table 7),但简单得多
④ 几乎不需数据增强只用 random resized crop(可选翻转),不用 color jitter甚至不增强都能 work;contrastive 不增强直接崩。因为每次 mask 就是新样本,mask 本身即增强
🔮 直觉:为什么 mask 比例要 75% 这么高?
论文 §1 (ii) 说:"Images are natural signals with heavy spatial redundancy—a missing patch can be recovered from neighboring patches with little high-level understanding." 如果只遮 30%,模型顺着相邻像素「外推」就完了,根本不需要理解「这是一只狗」。遮到 75%,相邻可见 patch 不够用,模型被迫建立"物体级"的整体理解——这正是 Fig.2-4 里那些"脑补出完整狗/船/人脸"的重建结果的来源。

📊 结果:vanilla ViT-H 87.8%(ImageNet-1K SOTA)

维度数字(溯源论文)
ImageNet-1K 微调精度ViT-B/16: 83.6 · ViT-L/16: 85.9 · ViT-H/14: 86.9 · ViT-H/14@448: 87.8%(Table 3)
vs 从头训ViT-L 从头训 82.5%(我们的实现)→ MAE 微调 50 epoch 后 85.9%。微调 epoch 只有从头训的 1/4
vs 其他自监督全面超过 DINO / MoCo v3 / BEiT;比 BEiT 简单(无需 tokenizer)、快 3.5×/epoch
训练加速非对称设计下,整体 FLOPs ×1/3.3,wall-clock 2.8× ~ 4.1× 加速(Table 2)
线性探测 vs 微调linear probing 不如 MoCo v3,但部分微调(只调 4 个 block)就反超(Fig.9)——说明 MAE 学的是非线性但更强的特征
迁移到 COCO 检测/分割ViT-L: APbox 53.3(+4.0 vs 监督预训练);ADE20K 语义分割 mIoU 53.6(+3.7)(Table 4, 5)
迁移到 iNaturalistViT-H448: 83.4(2017)/ 86.8(2018)/ 88.3(2019),均超以往最佳(Table 6)
训练时长不饱和linear probing 在 1600 epoch 仍未饱和(Fig.7)——可继续 scale
关键洞察:Fig.8 是 MAE 最有力的图——越大的模型,MAE 相对于监督预训练的增益越大。这正是 NLP 里早就看到的 scaling 曲线,MAE 第一次让 CV 也走上了同一条路。论文结论:"Self-supervised learning in vision may now be embarking on a similar trajectory as in NLP."

🌐 在领域中的位置

对比学习(MoCo / SimCLR / DINO) BEiT(mask + dVAE tokenizer) MAE(mask 像素,非对称)⭐ MAE-style scale up(ViT-22B / SAM) masked image modeling 成为 CV 自监督主流

MAE 是 CV 自监督的「BERT 时刻」——它证明了:「掩码预测 + 大 ViT」这条路在 CV 也走得通,而且不需要对比学习、不需要数据增强工程、不需要 tokenizer,简单到不可思议。它的思想后来被继承到 SAM(分割基础模型)、ViT-22B、以及各种多模态预训练(如 VideoMAE、MaskFeat)中。在机器人/具身智能里,MAE 也是视觉编码器预训练的事实标准之一(RP1、OpenVLA 等都以 MAE-style 或其衍生作为 backbone 预训练)。

❓ 常见误区

MAE 的"重建像素"听起来很底层,它真的能学到语义吗?

能,而且这是论文最反直觉的发现。Fig.4 用 75% mask 训出来的模型,给它 95% mask 它也能脑补出合理的物体——这说明它学到了"物体/场景"级别的整体理解,不是单纯的纹理外推。论文 §6:「we observe it has learned numerous visual concepts, i.e., semantics」。

为什么不像 BEiT 一样预测 token?

Table 7 直接对比了:用 per-patch 归一化的像素 vs dVAE token,在 ImageNet、COCO、ADE20K 上差异 statistically insignificant(< 0.2%)。但用像素不需要 250M 图像预训练 dVAE,简单太多。这是 MAE "simple is scalable" 哲学的体现。

那为什么 linear probing 反而不如 MoCo v3?

MAE 学的是强但非线性的特征。linear probing 强制用线性头,正好卡在它的短板上。但只要微调一个 Transformer block,精度就从 73.5% 跳到 81.0%;微调 4 个就接近全微调(Fig.9)。论文建议:linear probing 不是评估表征质量的唯一指标

75% mask 在 BERT 里只用 15%,为什么差这么多?

正是因为语言不冗余、图像冗余。BERT 遮 15% 已经逼模型理解语法;MAE 遮 15% 模型顺着纹理就猜中了,啥也学不到。论文 §1 (ii) 的核心观察。

MAE 用在 RL / 机器人上意义是什么?

机器人策略网络里的视觉编码器,最忌讳过拟合到 ImageNet 标签。MAE 这种不依赖标签、不依赖增强的预训练,能提供更通用的视觉表征,被广泛用作具身智能系统的视觉 backbone(或在机器人数据上直接做 MAE-style 预训练,如 RPT、VC-1 等)。