13 MAE 论文精读:Masked Autoencoders 如何让 ViT 学会自监督预训练?(Masked Autoencoders Are Scalable Vision Learners)
前言
在前面的章节中,我们已经系统梳理了 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 复杂度:
因此计算量会明显下降。这也是 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
通常采用:
也就是:MSE Loss
不过注意:MAE 只计算 masked patch 的重建损失。
即:visible patch 不计算 loss,因为 visible patch 已经输入模型。
真正重要的是:模型能否恢复缺失区域。
AtomGit 是由开放原子开源基金会联合 CSDN 等生态伙伴共同推出的新一代开源与人工智能协作平台。平台坚持“开放、中立、公益”的理念,把代码托管、模型共享、数据集托管、智能体开发体验和算力服务整合在一起,为开发者提供从开发、训练到部署的一站式体验。
更多推荐
所有评论(0)