目录

非对称的编码-解码架构:

方法

流程

编码器

解码器

Partial Fine-tuning

图像MAE

MixMIM

Uniform Masking

HiViT

视频MAE

VideoMAE

多模态MAE

M3AE


https://github.com/facebookresearch/mae

分别是提供了可视化demo,微调代码,预训练代码

  • Visualization demo

  • Pre-trained checkpoints + fine-tuning code

  • Pre-training code

随机遮盖输入图片的子块,重建丢失像素

由MAE预训练的模型具有很好的泛化性能

非对称的编码-解码架构:

编码器的输入为没有被mask的子块;

解码器为轻量级

(解码器仅在图像重建的预训练中起作用,因此解码器设计可独立于编码器,且灵活和轻量级),

输入为编码器的输入和被mask部分的位置信息,

输出为待重建的丢失像素的值。

方法

与经典自编码器不同之处在于:

采用了非对称设计,

使编码器仅依赖于 部分观测信息  (无需掩码token信息,BERT需要),

轻量解码器则直接与 所得隐式表达掩码token  进行原始信号重建

流程

  1. 对图片切分 patch, 随机挑选少部分(比如文中25%)作为网络输入;
  2. 输入通过 encoder 得到对应编码后的 encoded patches
  3. 将 encoded patches 还原到对应的原始位置,并在缺失的部分补上 masked patches
  4. 送入 decoder, 每个 decoder 预测对应 patch 的图像像素点;
  5. 计算预测的像素和原始图片的像素之间 MSE 作为 loss。(损失函数则采用了MSE,注:类似于BERT仅在掩码块计算损失。)
  6. 取训练完的模型的 encoder 部分作为下游任务的 basemodel 并在下游任务下 finetune。

编码器

采用ViT架构,但仅作用于可见的未被Mask的块。

先通过 Linear Projection 编码图片,

再加上位置编码

随后送入一堆连续的 Transformer Block 里面。

编码器的输出将通过reshape构建重建图像

Reconstruction target  该MAE通过预测每个掩码块的像素值进行原始信息重建 。

由于该编解码仅在较小子集块(比如25%)进行处理,且未用到掩码Token信息。

这就使得可以训练一个非常大的编码器 。

解码器

输入包含:整个图片 patches 集合

(1) 编码器的输出;

(2) 掩码token。

每个 mask tokens 都是一个共享的、学习的向量,它指示了这里有一个待预测的 tokens

位置嵌入添加到这个完整 image patch 集合中的所有 tokens

解码器同样包含一系列Transformer模块。

解码器的最后一层为线性投影层(Linear Projection),其输出通道数等于每个块的像素数量

MAE解码器 仅在  预训练阶段  用于  图像重建,编码器  则用来生成用于  识别  的图像表达 。

解码器的设计可独立于编码设计,具有高度的灵活性

其重建目标为每个掩码块的规范化像素值 。

计算每个块的均值与标准差,对该块进行归一化,采用归一化的像素作为重建目标提升表达能力。

Simple implementation  MAE预训练极为高效:

1.通过  线性投影Linear Projection  与 位置编码  对每个输入块生成token

2.随机置换(random shuffle)token序列  并根据  掩码比例masking ratio移除 最后一部分token;

3.完成编码后,把 unmasked patches 输出到 Encoder 中,得到这些 tokens 的表征.

在编码块中插入掩码token并反置换(unshuffle)得到全序列token以便于与target进行对齐;

4.把 Encoder 的输出,结合 masked tokens (可学习的向量),执行 unshuffle操作恢复顺序,再一起输入到 Decoder 中。将解码器作用于上述全序列token。

正如上所述:MAE无需稀疏操作。此外,shuffle与unshuffle操作非常快,引入的计算量可以忽略。

分类有ImageNet数据,检测有COCO数据,分割有ADE数据

Partial Fine-tuning

提出了一种 Partial Fine-tuning 的新套路,它不同于之前人们常用的 Linear Probing (只训练最后一层线性分类器的参数) 和 Fine-tuning (训练所有层的参数)

Partial Fine-tuning 是指 只训练最后模型的若干层的参数

图像MAE

MixMIM

论文标题:

MixMIM: Mixed and Masked Image Modeling for Efficient Visual Representation Learning

论文地址:

https://arxiv.org/abs/2205.13137

论文动机:

现有 MIM 方法通常使用特殊符号 [MASK] 替换部分输入 token,并旨在恢复原始图像块。

然而,使用 [MASK] 符号会导致两个问题。

一方面,预训练中使用的 [MASK] 符号从未出现在微调阶段,导致预训练微调不一致。

另一方面,预训练网络在处理非信息性 [MASK] 符号时浪费了大量计算,使得预训练效率低下。

当使用较大的掩蔽比时,这些问题变得更加严重。

虽然 MAE 不存在上述问题,因为它丢弃了 mask token,并且只在轻量级解码器中使用了 [MASK] 符号。

此外,目前 MAE 只适用于标准的 ViT 架构,如何使用 MAE 有效地预训练具有局部域操作的层次 ViT 架构,例如 Swin Transformer,仍然是一个问题。

方法介绍:

为了解决上面的问题,作者提出了 MixMIM,该结构吸收了 BEiT 和 MAE 的优点。

如上图所示,给定训练集中的两幅随机图像,

MixMIM 创建了一幅以随机混合 mask 为输入的混合图像,

并训练一个层次 ViT 来重建两幅原始图像以学习视觉表示。

由于作者在 encoder 中没有采用 mask token,

因此大大缩短了预训练和微调之间的 gap,也消除了处理 mask token 所需要的时间,提高了计算效率。

编码器在进行 attention 计算时,作者用了 attention mask,阻断了跨图片 token 之间的交互。

在解码阶段,作者通过 attention mask 分别去除图像的 token,并进行图像重建。

Uniform Masking

论文标题:

Uniform Masking: Enabling MAE Pre-training for Pyramid-based Vision Transformers with Locality

论文地址:

https://arxiv.org/abs/2205.10063

代码地址:

https://github.com/implus/UM-MAE

论文动机:

MAE 中最有影响力的设计之一是非对称编码器-解码器体系结构。

与接收整个 patch token 序列的解码器部分不同,编码器部分仅将可见图像 patch(通常仅占总 patch 的 25%)作为输入。

有趣的是,这种设计不仅显著降低了预训练的复杂性,而且还获得了优异的微调性能。

然而,非对称结构的成功应用依赖于 Vanilla Vision Transformer(ViT)的“全局”特性,其自注意机制可以对离散图像块的任意子集进行推理。

虽然目前金字塔结构的 ViT 通过引入局部窗口操作,取得了非常好的结果,但 MAE 并不能在金字塔结构的 ViT 上进行应用。

因为每个局部窗口中可见元素的数量通常不相等,这妨碍了基于窗口的操作的有效并行计算。

为了成功地对具有局部性的基于金字塔的 VIT 进行 MAE 预训练(即采用有效的不对称结构),

作者提出了包含均匀采样(US)和二次掩蔽(SM)步骤的 Uniform Masking(UM)策略。

方法介绍:

本文的 Uniform Masking(UM)策略如上图所示,

主要分为两个步骤:

第一步为均匀采样(US),使用均匀约束对 25% 的可见图像 patch 进行采样,这样,每个窗口将会留下 25% 的 token。

与 MAE 中采用的随机采样相比,均匀采样(US)对均匀分布在 2D 空间上的图像块进行采样,使其与具有代表性的基于金字塔的 VIT 兼容。

然而,通过相邻的低级别图像统计信息为像素重建提供更简单的方式,US 潜在地降低自监督任务的挑战性。这已经在 MAE 中得到证明。

为了解决这一问题,作者进一步提出了二次掩蔽(SM)策略,

该策略为在第一步均匀采样后的特征图上进行随机 mask。

与完全丢弃 mask token 的均匀采样阶段不同,SM 通过使用共享 mask token 来保持 mask patch,以确保基于金字塔的 VIT 与位置的兼容性。

通过随机 mask token,大大提高了自监督任务的难度,从而提供了更好的自监督效果。

HiViT

论文标题:

HiViT: Hierarchical Vision Transformer Meets Masked Image Modeling

论文地址:

https://arxiv.org/abs/2205.14949

论文动机:

最近,掩蔽图像建模(MIM)为视觉 Transformer 的自监督预训练提供了一种新的方法。

高效实现的一个关键思想是在整个目标网络(编码器)中丢弃掩蔽图像 patch(或 token),这要求编码器是普通视觉 Transformer(例如 ViT)。

但是分层视觉 Transformer(例如 Swin Transformer)在形成视觉输入方面具有潜在更好的特性。在本文中,作者将分层视觉 Transformer 的操作分成了三种类型:“单元内操作”、“全局单元间操作”和“局部单元间操作”。

标准 Transformer 包含其中的两种操作:

单元内操作”(即 patch embedding、LayerNorm、MLP)和“全局单元内操作”(即全局自注意力)。

因此可以丢弃单元的空间坐标,并且可以将单元序列化以进行高效计算。

但是层次视觉 Transformer 还包括局部单元间操作(如,shifting-window self-attentions, patch merging),这需要基于单元的空间坐标进行额外判断,并妨碍序列化以及移除 mask 单元。

方法介绍:

作者观察到,“局部单元间操作”对识别性能的贡献不大——真正有意义的是层次设计(即多尺度特征图)。

因此,为了使分层视觉 Transformer 能够适合 MAE 的训练,作者删除了“局部单元间操作”,从而形成了一个简单的分层视觉 Transformer。

在层次视觉 Transformer 中,通常有四个不同分辨率的阶段,其中第三阶段的层数最多,称之为主阶段。

作者移除了 Swin Transformer 的最后一个阶段,并去掉了所有局部单元间窗口注意力,只在主阶段保留 token 之间的全局注意力。

在实现中,作者将最后一个阶段合并到主阶段,以保持模型的 FLOPs 不变。早期阶段的局部窗口注意力被具有相同 FLOPs 的 MLP 所取代。

通过这些修改,作者删除了层次视觉 Transformer 中所有冗余的“局部单元间操作”。本文提出的 HiViT 结构如上图所示。由于去除了局部窗口的操作,HiViT 就能够进行 MAE 的预训练。

视频MAE

VideoMAE

论文标题:

VideoMAE: Masked Autoencoders are Data-Efficient Learners for Self-Supervised Video Pre-Training

论文地址:

https://arxiv.org/abs/2203.12602

代码地址:

https://github.com/MCG-NJU/VideoMAE

论文动机:

本文大致策略和图片 MAE 类似,但是通过将 MAE 运用在视频数据上得到了几个重要的发现:

1)极高的掩蔽率(即 90%-95%)仍然可以产生良好的 VideoMAE 性能。

2) VideoMAE 在非常小的数据集上取得了非常好的结果,而无需使用任何额外数据。

3) 在 VideoMAE 中,数据质量比数据量更重要。

方法介绍:

Pipeline 如上图所示。相比于图片 MAE,视频 MAE 在时间维度上可能存在更高的冗余,由于视频的语义在时间维度上变化缓慢,相邻帧的内容通常非常相似,因此如果不采用特殊的 mask 策略,模型可能很容易从相邻帧学到重建的知识,降低了自监督训练任务的难度。

因此,对于时间冗余,作者采用了非常高的 mask ratio 从视频中删除时间立方体。

由于采用了非对称的编码器-解码器结构,极高的 mask ratio 也大大降低了预训练的计算成本。

此外,为了考虑时间的相关性,作者采用了 tube masking strategy,以减少重建过程中的信息泄露风险。

多模态MAE

M3AE

论文标题:

Multimodal Masked Autoencoders Learn Transferable Representations

论文地址:

https://arxiv.org/abs/2205.14204

论文动机:

目前多模态数据的自监督学习主要是基于对比学习的方法,如 CLIP。

但是对比学习方法会根据使用的数据增加引入抽样偏差,这会降低下游任务的性能。

此外,这些方法仅限于成对的图像文本数据,无法利用广泛可用的未成对数据。

随着 Mask Modeling 在 CV 和 NLP 领域的广泛应用,作者尝试在多模态数据上进行 Mask Modeling 来自监督学习,进而提出了多模态掩蔽自动编码器(M3AE),它通过 mask token 预测来学习视觉和语言数据的统一编码器。

方法介绍:

本文提出的 M3AE 结构如上图所示。

M3AE 的第一步是将语言和图像组合为一个序列,对于文本,作者将其转换为了一系列离散 token;

对于图像,作者和 ViT 一样将其转换为了一系列 patch token。

然后,作者从均匀分布中采样了 s 个随机子集,并移除其他子集。

作者对文本 token 和图像 token 都应用了高掩蔽率,以消除信息冗余,并使任务变得非常困难,无法通过从可见的相邻 token 进行外推轻松解决。

与 MAE 一样,M3AE 由编码器和解码器组成,编码器只接受未掩蔽语言 token 和图像 token 作为输入。

两个模态都加了相应的位置编码。此外,为了区分模态,作者还添加了模态特定的嵌入。可学习的 CLS 嵌入被预先设置到序列的开头。

然后,通过编码器中一系列 Transformer 块对组合语言和图像嵌入进行处理,以获得最终的编码表示。

将一系列可学习的 token 加入到编码器的输出中,得到完整的 token 集合,并向完整的 token 集合中添加位置嵌入。

完成的 token 集合通过解码器处理之后,作者采用了两个线性投影输出头来计算重建,从而进行自监督任务。

参考链接:

深度分析何恺明新作MAE:通向CV大模型_极市平台的博客-CSDN博客

Masked Autoencoders Are Scalable Vision Learners 论文研读_herosunly的博客-CSDN博客

​一文看尽MAE最新进展!恺明的MAE已经提出大半年,目前发展如何?

[MAE]Masked Autoencoders掩膜自编码器相关推荐

  1. PyTorch笔记 - MAE(Masked Autoencoders) PyTorch源码

    欢迎关注我的CSDN:https://blog.csdn.net/caroline_wendy 本文地址:https://blog.csdn.net/caroline_wendy/article/de ...

  2. 李沐精读论文:MAE 《Masked Autoencoders Are Scalable Vision Learners》

    论文:Masked Autoencoders Are Scalable Vision Learners 别再无聊地吹捧了,一起来动手实现 MAE(Masked Autoencoders Are Sca ...

  3. 自监督学习之掩码自动编码器(Masked Autoencoders, MAE)——音频识别方面

    自监督学习之掩码自动编码器(Masked Autoencoders, MAE)--音频识别方面 1.参考文献 <Masked Autoencoders that Listen> 2.背景 ...

  4. Masked Autoencoders Are Scalable Vision Learners(MAE)

    VIT论文解读:Vision Transformer(ViT)_NLP_wendi的博客-CSDN博客 论文链接:Masked Autoencoders Are Scalable Vision Lea ...

  5. MAE 论文《Masked Autoencoders Are Scalable Vision Learners》

    <Masked Autoencoders Are Scalable Vision Learners>带掩码的自编码器是一个可拓展的视觉学习器,听名字就明白一二,应该是在编码器部分加上了 m ...

  6. 【论文和代码阅读】Masked Autoencoders Are Scalable Learners (MAE)

    写在最前面 先贴一下MAE的论文链接 https://arxiv.org/pdf/2111.06377.pdfhttps://arxiv.org/pdf/2111.06377.pdf紧随其后的是代码复 ...

  7. 如何从数学角度解释何恺明新作Masked Autoencoders (MAE)?

    何恺明最新一作论文 Masked Autoencoders(MAE)为自监督学习方法带来了一场革命,自提出以来,在 AI 领域内得到了极大的关注.MAE 不仅在图像预训练上达到了 SOTA 性能,更是 ...

  8. 「Masked Autoencoders」MAE算法相关及后续工作整理

    参考链接:https://zhuanlan.zhihu.com/p/518608011 (MAE, Kaiming He et al.)由于其从丰富的未标记数据中学习有用表示的能力而重新引起了人们的兴 ...

  9. (七十六):Masked Autoencoders Are Scalable Vision Learners

    (七十六):Masked Autoencoders Are Scalable Vision Learners Abstract 1. Introduction 2. Related Work 3. M ...

  10. Masked Autoencoders Are Scalable Vision Learners 论文研读

    NLP CV Transformer ViT BERT MAE 文章目录 1. 标题 2. 摘要 3. 模型架构 4. 结论 1. 标题   Masked Autoencoders Are Scala ...

最新文章

  1. R语言使用car包的outlierTest函数通过假设检验的方法检测回归模型中的异常值(outlier)、输出异常值对应的统计量、p值以及Bonferonnii校正p值
  2. error;It could not find or load the Qt platform plugin “windows”
  3. android asmack和xmpp的关系,Android即时通讯开发之XMPP (一)初识XMPP协议和asmack
  4. 《Android传感器开发与智能设备案例实战》——第1章,第1.2节Android的巨大优势...
  5. 网络实验环境搭建--1.工具及搭建思路
  6. X210串口配置与stdio移植
  7. E. Party Company(树上问题)
  8. 使用 Eclipse 建立包的时候,“name”下可选项“Create package-info.java”的作用是什么?
  9. 转载:EM算法的最精辟讲解
  10. 032-IDUtils 工具类模板
  11. cad填充图案乱理石_cad采矿制图时遇到问题的完美解决方法
  12. 基于容器的虚拟化资源调度系统的架构设计
  13. oracle产生连续的数字
  14. 重装系统Win7步骤和详细教程
  15. Phaser用法详解
  16. 大哥大佬们这个怎么改成 成功
  17. 跨境电商卖家应该知道的3个社交媒体营销策略
  18. Git 学会git,探索GitHub,掌握新知识 (二)
  19. 会计面试经常会被提问的11个问题!!
  20. 怎样在一台电脑里访问其他电脑里的虚拟机

热门文章

  1. 基础了解虚拟 DOM
  2. Java毕业设计_智能快递柜的设计与实现
  3. 9GAG客户端,五一3天尽心之作,Just Android Design!(开源)+毛玻璃效果
  4. python click 函数
  5. amoeba mysql_详解如何利用amoeba(变形虫)实现mysql数据库读写分离
  6. 小颗粒积木步骤图纸_loz小颗粒钻石积木拼图图纸谁有
  7. win10硬盘锁怎么解除_win10如何使用bitlocker解锁硬盘加密
  8. LollipopGo分布式架构--DB反向代理服务器设计
  9. .NET实现Wap飞信协议
  10. 百度搜索正式升级冰桶算法5.0!