【论文笔记】 【MAE】 Masked Autoencoders Are Scalable Vision Learners

Kaiming He
Link: [2111.06377] Masked Autoencoders Are Scalable Vision Learners (arxiv.org)
Code: https://github.com/facebookresearch/mae

1 Intro


在这里插入图片描述

盖住75%的patch,取剩余的patch输入encoder,没有mask的patch放在ViT输出相应的位置(蓝色),mask掉的部分只包含位置信息,然后输入decoder,还原出原图

在这里插入图片描述

跟BERT相比,在CV领域masked Autoencoding工作还很落后,为什么?

1、网络架构不同。之前CV中更多使用CNN,无法将mask或者位置编码很好地带入其中,不过现在ViT的提出解决了这个问题。

2、信息密度不同。在图像中冗余信息较多,mask掉一些像素并不会影响什么,或者通过简单地插值就可以还原。所以论文提出mask掉很高比例的区域的方法。

3、Decoder结构的区别。在BERT中,decoder的输出是高语义信心的,使用简单地MLP就能达到效果。而在CV中,重构出的像素是低语义信息的,通常需要更复杂的Decoder。

通过非对称的Encoder-Decoder架构,使用ViT-Large/Huge在Imagenet-1k上进行自监督学习就能达到很好地效果(87.8% acc on ImageNet-1k),且迁移学习效果也很好。

2 Method


使用的非对称的结构,在encoder部分只计算于没有被mask的部分。

2.1 Masking

与ViT一样,将原图分割成一个个小patch,服从均匀分布地随机采样出一些patch,使用一个高比例的mask,以此来消除冗余信息。

2.2 Encoder

是个ViT,输入只有没被mask的patch。patch经过线性投影并加上位置信息得到patch Embedding送入VIT blocks。

由于只有没有mask的patch会被送入encoder,所以大大降低了计算量

2.3 Decoder

Decoder使用一个小的ViT架构(计算量不到Encoder的10%),输入包含两部分:

(1)、Encoder的输出(没有mask的patch)

(2)、masked token(用一个共享的、可学习的向量表示)

给所有token加入位置信息。

Decoder只用于预训练阶段,图像表征提取还是使用Encoder

2.4 Reconstruction Target

Decoder结果是每个patch的像素值拉直(256d),再reshape回原始尺寸(16*16)。

损失函数在像素级别上使用MSE,只在被mask的token上计算损失(与BERT类似)

还探究了使用normalized target进行训练,结果有所提升

2.5 Simple implementation.

首先,将每个patch映射为patch Embedding(with Position Embedding),组成一个list;然后randomly shuffle 整个list,去掉后75%的部分,输入encoder。

得到encoder的输出后,将整个list进行unshuffle处理,还原原始的list顺序,再送入Decoder进行像素重构。

这样不需要有叙述操作,实现起来很快。

3 Experiment


3.1 ImageNet Experiments

在ImageNet-1K上进行自监督预训练,然后再进行finetune(end2end和linear probing)。

给ViT加上强正则后提升了效果

在这里插入图片描述

3.1.1 不同超参数

mask比例

在这里插入图片描述

网络架构超参

在这里插入图片描述

耗时

在这里插入图片描述

mask策略

在这里插入图片描述

epoch数量

在这里插入图片描述

3.1.2 与之前结果比

与有监督比

在这里插入图片描述

与无监督比

在这里插入图片描述

3.2 迁移学习

3.2.1 COCO 目标检测

在这里插入图片描述

3.2.2 ADE20K 语义分割

在这里插入图片描述

3.2.3 其他分类数据集

在这里插入图片描述

3.2.4 Pixels vs. tokens

在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值