研究背景

我们之前介绍了 ViT(传送门),在 ViT 模型中我们也知道了他想要有超过 CNN 的效果的话就需要在超大数据集上进行预训练,在 ImageNet 1K 的效果其实并没有 ResNet 好。这样的话,如果我们需要重新对 ViT 进行训练的话,他的效率是不高的。于是这篇 MAE 在 ViT 的方法上进行了优化,让我们能够在 ImageNet 1K 上也取得较好的效果。当然我们也可以简单的把 MAE 理解为 CV 界的 BERT 模型。下图就简单的介绍了 MAE 的操作是怎么样的。

问题

深度学习在 CV 领域中由于硬件的快速增长,现有的模型很容易在一百万张图片的数据集中出现过拟合的现象,并且开始需要数亿张带有标记的数据,但是这些数据通常是不会进行公开的,比如 ViT 预训练的 JFT-300M 数据集。对于数据集获取难的问题,我们首先想到的是不是可以使用自监督的方法,毕竟这就是在 NLP 中解决的方法,BERT 中的掩码自动编码器,他们就是删除了一部分数据并学习预测删除的内容,这就可以训练包含超过1000亿个参数的可泛化 NLP 模型。那 CV 领域中能否使用这种屏蔽自编码器的架构呢,当然是可以的,但是 CV 和 NLP 领域之间的掩码自动编码有什么不同呢,主要是有以下几个方面。

架构不同

CV 的架构在过去十年中都是卷积网络占据主导地位,而卷积网络通常都是在规则的网格上运行。但是这种情况下怎么去对掩码位置信息进行表示呢,由于 NLP 中掩盖的是以词为单位,一个词就是一个单位,但是在图像中的话,CNN 是不断的移动的,没有办法进行掩码的表示。当然在 ViT 出来以后,这个架构的差距就已经得到解决了。

信息密度不同

语言是人类生成的具有高度语义和信息密集度的信号,所以当我们训练一个模型去预测每个句子中的缺失词的时候,模型可以很好的训练复杂的语言理解。相反,图像中是具有大量的空间冗余的自然信号–比如可以通过从相邻的块中恢复删除的部分块,而并不需要去理解整张图像的全局信息。但是 MAE 中就提出了随机出大部分的块,将他们都进行掩码操作,这样的话就可以让模型能够通过全局的信息将图像还原,很大程度上面减少了冗余。下图就是论文中还原的图像效果,我们可以感觉的出来,还原的效果还是不错的,而且75%的掩码率的情况下还原情况还是比较好的。

重建文本和图像不同

在视觉中,解码器重建像素,其输出的语义级别上低于普通的识别任务的,但是在语言中,解码器预测包含了丰富的语义信息的缺失词。所以在 BERT 模型和 ViT 模型中最后只是使用了一个简单的 MLP ,但是 MAE 的论文中我们需要使用到解码器来对像素进行重建。

方法

而 MAE 是从输入图像中屏蔽了随机的块,并通过 Transformer 模块重建像素空间中缺失的块,他具有非对称编码器-解码器设计。编码器只对那些没有掩码标记的块进行操作,将观察到的图像信号映射到潜在表示,而解码器只是一个轻量级的解码器(如同 BERT 中的 MLP 是一样的),用来通过潜在表示和掩码标记重建图像。当然我们真正去使用 MAE 的时候就只需要编码器就可以提取出潜在表示用于后续的工作。

Masking

通过 ViT 我们知道可以将图像划分为规则的非重叠块。然后对块进行随机采样,将得到的子集进行屏蔽。由于 MAE 具有很高的屏蔽率,在一定程度上消除了冗余,从而创建了一个无法简单通过相邻可见块推断来轻松解决的任务。并且均匀分布防止了潜在的中心偏差(即图像的中心附近会有更多的屏蔽块)。

MAE encoder

MAE 的编码器上一个只作用于可见未屏蔽块的 ViT,和标准 ViT 中一样,MAE 的编码器通过添加位置嵌入来添加位置信息,然后通过一系列的 Transformer 块处理。但是和 ViT 不一样的是,MAE 的编码器只会对整个集合的一小部分(25%)的数据进行操作。这样的话我们就可以仅使用一小部分的计算资源来训练非常大的编码器。

MAE decoder

而 MAE 的解码器的输入是一个完整的图像 Token 集合(包含了可见未屏蔽的块和 Mask Token),MAE 的解码器将整个集合中的所有标记都加上位置嵌入。然后解码器也是另一系列的 Transformer 模块。
然而 MAE 解码器仅在预训练期间用于执行图像重建任务。由于 MAE 是独立于编码器设计的解码器架构,所以可以使用轻量级的编码器进行预训练,这样就显著减少了预训练的时间。最后使用一个线性投影,将其的输出通道数等于块中的像素数量,最后 reshape 成图像大小。MAE 对像素空间中的重建像素和原始像素之间使用均方误差(MSE)进行计算。

消融实验

MAE 论文的作者进行了几组消融实验:

Masking ratio

通过下图我们可以发现在不同的遮蔽率下准确是有所不同的,在75%的遮蔽率下我们可以发现不论是微调还是线性探测都能得到较好的成绩。然后我们可以发现线性探测和微调对于遮蔽率遵循着不同的趋势。对于线性探测(只调最后一层)我们可以发现,准确率随着遮蔽率的增加稳步上升。但是对于微调,准确率对遮蔽率并不敏感,对于所有的遮蔽率都有很好的效果,在40%-80%都能得到比较好的效果。

Mask token

在论文中,我们可以发现在编码器的架构中 MAE 是没有使用 Mask token 的,通过下图我们可以发现当在编码器中使用了 Mask token 的话,他的效果会更差,并且训练速度大大减少,对于 75% 的遮蔽率来说加速可以大于4倍的,原因就是自注意力机制复杂度是O(n^2)的。并且由于内存大大减小,MAE 就可以训练更大的模型或者是通过大批量训练加快训练速度。

Data augmentation

通过下图我们可以得知在随机大小裁剪的时候效果最好,加入颜色抖动后会使效果降低。并且我们可以看到不进行任何数据增强他的效果也是很好的,所以 MAE 并不会依赖于数据增强。

Mask sampling strategy

从下图我们可以得知简单的随机采样的效果是最好的,并且允许更高的遮蔽率,不仅提供了更大的加速优势,还有较好的准确性。

总结

其实 MAE 的思想其实是很简单的,就是利用 ViT 在 CV 中去实现 BERT 一样的自监督模式,并且通过 Transformer 架构的解码器去直接还原原始的像素信息,简化流程,最后能在 Image-1K 的数据集上使用自监督学习取得了比之前更好的效果。这样的话就让我们能够思考如何使用 Mask 去得到更快的训练速度以及更加丰富的数据集去应用于 CV 领域。

Masked Autoencoders相关推荐

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

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

  2. 如何看待何恺明最新一作论文Masked Autoencoders?

    来源 | 知乎问题 地址 | https://www.zhihu.com/question/498364155 编辑 | 机器学习算法与自然语言处理 原问题:如何看待何恺明最新一作论文Masked A ...

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

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

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

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

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

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

  6. 【读点论文】Masked Autoencoders Are Scalable Vision Learners 完型填空应用到视觉处理上

    Masked Autoencoders Are Scalable Vision Learners 本文表明,掩蔽自动编码器(MAE)是计算机视觉的可扩展自监督学习器. 本文的MAE方法很简单:通过屏蔽 ...

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

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

  8. 【点云处理之论文狂读前沿版7】—— Masked Autoencoders for Point Cloud Self-supervised Learning

    Masked Autoencoders for Point Cloud Self-supervised Learning 摘要 1.引言 3. Point-MAE 3.1 Point Cloud Ma ...

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

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

  10. 论文阅读VideoMAE: Masked Autoencoders are Data-Efficient Learners for Self-Supervised Video Pre-Training

    VideoMAE: Masked Autoencoders are Data-Efficient Learners for Self-Supervised Video Pre-Training 文章目 ...

最新文章

  1. 运维企业专题(6)LVS高可用与负载均衡中篇——VS/TUN模式配置详解
  2. VK Cup 2012 Qualification Round 2 C. String Manipulation 1.0 字符串模拟
  3. 使用WebStor快速检查你组织网络中的所有网站相关安全技术
  4. PAT甲级题目翻译+答案 AcWing(链表)
  5. android开发之图表
  6. ActiveMQ的介绍及使用实例.
  7. android 强制全屏,[Android]设置Activity为全屏显示的两种方法
  8. tomcatSupplement(1)tomcat启动脚本分析(以Windows平台为例)
  9. iOS打开沙盒html,iOS WKWebView加载本地/沙盒HTML及css、images
  10. cmd模式下如何从c盘转换到其他盘
  11. bzoj1996 [Hnoi2010]chorus 合唱队 区间dp
  12. 马来游记(2)- 漂浮云顶间。。。
  13. python 判断类是否有某个属性_python判断对象某个属性的方法有哪些
  14. 媒体查询以及flexbox,响应式图片
  15. LINUX上用Robot截屏得到全黑之分析
  16. 《细说PHP》分页源代码
  17. Linux C编程(五) 之 gdb详解
  18. 兰州大学百年校庆--风雨百年萃英路
  19. Java编程那些事儿70——抽象类和接口(三)
  20. 计算机系统组装音乐制作型,电脑音乐制作系统、设备购买方案

热门文章

  1. python 期货现货差价监测_大宗商品现货数据不好拿?商品季节性难跟踪?Python爬虫一键解决没烦恼...
  2. VS2015 密钥 专业版和企业版
  3. Error: [$injector:unpr] Unknown provider: $scopeProvider - $scope -错误解决方案
  4. Unity Transform 检视器快速复制粘贴
  5. vue 项目中页面打印实现(去除页眉页脚)
  6. Swoole 介绍以及三步快速安装 swoole 教程
  7. 单元测试中Assert详解-xUnit
  8. 计算机卡慢解决方法,电脑很卡怎么办,详细教您电脑很卡很慢应该怎么解决
  9. hdu 2066 一个人的旅行 (多源最短路 )
  10. #第二章 数理文化的起源2.1文化概述