MAE (Masked Autoencoders):自监督学习的视觉预训练方法详解
引言
Masked Autoencoders (MAE) 是何恺明等人在2021年提出的一种革命性自监督学习方法。它巧妙地将自然语言处理中BERT的掩码语言建模思想迁移到计算机视觉领域。MAE 的核心思路是:随机遮挡图像中高达 75% 的小块(patch),然后训练一个模型来重建这些被遮挡的部分。在这个过程中,模型被迫学习图像的深层结构信息,从而获得强大的视觉表征能力。这一方法大幅推动了自监督学习在视觉领域的发展,并为 Vision Transformer(ViT)的预训练提供了一种全新的高效范式。
📂 所属阶段:第二阶段 — 深度学习视觉基础(视觉Transformer 篇)
🔗 相关章节:Swin Transformer · Vision-Language 多模态
1. MAE 核心思想与动机
1.1 自监督学习的兴起
自监督学习是当前深度学习的一个重要方向,它的目标是利用海量无标注数据,让模型自己构造监督信号进行预训练。这一思路受到以下几个动因的强烈推动:
- 数据效率:避免昂贵且耗时的人工标注,可以直接复用互联网或工业界中大量公开或私有的无标签图像。
- 成本效益:无需专业标注团队,大幅降低 AI 模型的开发成本。
- 泛化能力:模型能够从无约束的自然数据中学习到更通用的底层视觉特征,而不仅仅局限于某个特定标注任务。
- 可扩展性:天然适配大规模数据集与大模型训练。随着数据量和模型参数量增长,性能可以持续提升。
1.2 MAE 的创新点
MAE 的成功主要来源于三项关键技术创新:
- 不对称编码器-解码器架构:编码器只处理那些没有被遮挡的可见 patch(计算量降低约 75%),因此非常轻量高效;而解码器则需要处理所有的 patch,专门负责重建被遮挡的图像内容。
- 高比例随机掩码:采用 75% 的极端随机遮挡比例,迫使模型必须理解图像中不同区域之间的全局语义关联,而不能简单依赖局部的纹理填充。
- 轻量级像素级重建目标:直接预测被遮挡 patch 的原始 RGB 像素值,不需要额外引入预训练的 VAE(变分自编码器)或 Tokenizer 等辅助模块,实现简单且训练稳定。
2. MAE 架构详解
2.1 不对称编码器-解码器设计
编码器基于标准的 Vision Transformer(ViT),但只保留了对未掩码 patch 的处理逻辑。它负责将可见的 patch 压缩成高维特征表示,核心模块包括 patch 嵌入、位置编码和 Transformer 编码层。
以下代码展示了 MAE 编码器的具体实现:
2.2 MAE 解码器设计
解码器虽然整体比编码器更轻量,但它需要处理包括被遮挡 patch 在内的全部 196 个 patch,因此对重建任务的关注更为集中。解码器的关键组件包括:
- 一个线性映射,将编码器输出的高维特征映射到解码器使用的较低维度。
- 一个可学习的掩码 token,用来占位所有被遮挡的 patch。
- 完整的位置嵌入,保证无论 patch 是否被遮挡,模型都能知道它们在原始图像中的位置。
- 若干 Transformer 层,用于融合可见 patch 的信息并推断被遮挡区域的内容。
- 一个线性投影层,将每个 patch 的特征映射回原始像素值(例如 16×16×3 的 RGB 值)。
3. 掩码策略与完整模型
3.1 随机高比例掩码实现
MAE 的掩码策略看似简单,但对训练至关重要。具体做法是:对每个样本,随机打乱所有 patch 的顺序,然后选择前面的部分作为保留的可见 patch,剩下的为遮挡 patch。为了能够让解码器正确恢复原始图像块的位置,还需要保存一个“还原索引”,用于将被遮挡的 token 放回原始顺序。
3.2 MAE 完整模型与训练流程
完整模型将编码器、解码器以及损失计算封装在一起。训练时,损失仅计算在被遮挡的 patch 上,并且默认采用标准化像素损失(即对每个 patch 的像素做均值方差归一化后再计算 MSE),这可以进一步提升模型的稳定性和最终性能。
4. 预训练与下游应用
4.1 预训练要点
在实际预训练中,推荐使用 AdamW 优化器,并配合学习率预热和余弦退火策略。数据增强只需使用简单的随机缩放裁剪和水平翻转,无需复杂的数据增广操作,因为 MAE 自身的高比例掩码已经提供了极强的正则化效果。
4.2 微调步骤
预训练完成后,将模型应用到下游任务(如图像分类、目标检测等)一般分为以下步骤:
- 提取编码器:丢弃训练时使用的解码器,只保留 MAE 的 ViT 编码器部分。
- 添加任务头:例如在 ImageNet 分类任务中,在编码器输出的类别 token 后接一个线性层,映射到 1000 个类别。
- 微调策略:可以先用线性探测(Linear Probe)的方式,冻结编码器参数只训练分类头;然后解冻全部参数进行端到端的全量微调,以获得最佳效果。
4.3 使用 timm 库加载预训练模型
借助 timm 库,你可以非常方便地加载预训练好的 MAE 模型并提取图像特征,无需从头编写上述所有代码。
总结
MAE 通过高比例随机掩码 + 不对称编码器-解码器 + 像素级重建这一简洁组合,成功地将 NLP 领域的掩码建模思想迁移到了计算机视觉中。它显著提升了 Vision Transformer 在下游任务中的性能(例如,ImageNet Top-1 准确率从纯监督 ViT-B 的 82.2% 提升到了 MAE 预训练后 ViT-B 的 83.6%)。该方法实现简单、数据效率高,目前已经成为现代视觉 Transformer 预训练的一种标配范式。
💡 扩展阅读

