Transformers在计算机视觉领域中的应用【第2篇:MAE——BERT的CV版本】

目录

  • [1 介绍](#1 介绍)
  • [2 模型示意图](#2 模型示意图)
  • [3 MAE算法](#3 MAE算法)
  • [4 总结](#4 总结)

论文:Masked Autoencoders Are Scalable Vision Learners

代码:https://github.com/facebookresearch/mae

1 介绍

MAE是基于ViT的,将整个训练拓展到没有标号的数据上面,和BERT一样,通过完形填空来获取对图片的理解。MAE不是第一个将BERT拓展到CV上的工作,但是它很有可能是这一系列工作之中未来影响最大的一篇。因为BERT极大地加速了Transformer这个架构在NLP领域中的应用,所以MAE也会使得Transformer在CV上的应用更加普及一些。

文章标题是:带掩码的自编码器是一个可拓展的视觉学习器。标题里的Masked来自于BERT,可以理解成完形填空,每一次挖掉一些东西,然后去预测挖掉的东西。Autoencoder里的auto是"自"的意思,机器学习里有一类模型叫auto 自模型,例如自回归模型,这类模型的特点就是标号和图片,即y和x,是来自于同一个东西,比如说在语言模型里,我们每次用前面的词去预测下一个词,在另一个样本里面,这个预测的词也是标号,也会成为另一个样本的x本身,x和y都是来自于同样的句子里的词,所以叫做auto。

2 模型示意图

模型示意图如下图所示,一张图片输入进来,先把它切成一个个的小块,其中要被盖住的这些块涂成灰色,75%的图片都被盖住了。那些没有被盖住的块被直接拿出来,放到encoder里面,也就是ViT里面,得到每一个块对应的特征,然后拉长,把被盖住的块重新放回原来的位置,所有块输入到一个解码器中,解码器会去尝试把里面的像素信息全部重构回来,使得最后的target训练出来就是原始的没有被掩码盖住的图片。

示意图中编码器比解码器稍微高一点,意思是指主要的计算量都来自编码器,因为最重要的是对图片的像素进行编码,编码器只要去处理没有被盖住的图片,也就是说,一张图片只需要看到四分之一的像素即可,这样计算量稍微低一点。

这个示意图是做预训练时候做的事情,如果你想用这个模型来做计算机任务的话,只需要用它的编码器即可,不需要使用解码器,图片输入进来,不需要对它做掩码,直接切成这些patch,输入到编码器中,就能得到所有块的特征表示,就可以当成这张图片的特征表示,就可以用来做自己的任务了。

下图展示的是在ImageNet的验证集上,通过MAE构造出来的图片。左边一列是把图片80%的块都遮住,中间一列是MAE构造出来的图片,右边一列是原始图片。

3 MAE算法

整体流程和第2章节里提到的一样,这里介绍一下如何重构出原始的像素。

解码器的最后一层是一个线性层,如果一块图片是16×16的像素的话,那么这个线性层就会投影到维度是256的向量,然后再将它reshape成所想要的16×16的维度,就能还原出原始的像素信息了。

损失函数用的是MSE,和BERT一样,只在被盖住的块上面使用MSE,没有被盖住的不计算损失,因为输入已经看到了这些块的像素信息了。

简单实现:将所有的块shuffle后,保留前面25%的块,其他块丢掉;然后重新unshuffle还原回原来的顺序,这样在计算MSE的时候就能对应回原图来计算了。通过shuffle和unshuffle的操作,能使得我们不需要任何的稀疏的操作,在实现起来非常的快。

4 总结

这篇文章利用ViT来做跟BERT一样的自监督学习,在ViT的基础上提出了三点:

  1. 需要盖住更多的块,使得剩下的那些块,块与块之间的冗余度没那么高,这样整个任务就变得复杂一点。
  2. 使用Transformer架构的解码器,直接还原原始的像素信息,使得整个流程更加简单一点。
  3. 加上在ViT工作之后的各种技术,使得它的训练更加鲁棒一点。
相关推荐
卧式纯绿1 分钟前
每日文献(八)——Part one
人工智能·yolo·目标检测·计算机视觉·目标跟踪·cnn
巷9557 分钟前
OpenCV图像形态学:原理、操作与应用详解
人工智能·opencv·计算机视觉
深蓝易网36 分钟前
为什么制造企业需要用MES管理系统升级改造车间
大数据·运维·人工智能·制造·devops
xiangzhihong844 分钟前
Amodal3R ,南洋理工推出的 3D 生成模型
人工智能·深度学习·计算机视觉
阿linlin1 小时前
OpenCV--图像预处理学习01
opencv·学习·计算机视觉
狂奔solar1 小时前
diffusion-vas 提升遮挡区域的分割精度
人工智能·深度学习
资源大全免费分享1 小时前
MacOS 的 AI Agent 新星,本地沙盒驱动,解锁 macOS 操作新体验!
人工智能·macos·策略模式
跳跳糖炒酸奶1 小时前
第四章、Isaacsim在GUI中构建机器人(2):组装一个简单的机器人
人工智能·python·算法·ubuntu·机器人
AI.NET 极客圈2 小时前
AI与.NET技术实操系列(四):使用 Semantic Kernel 和 DeepSeek 构建AI应用
人工智能·.net
Debroon2 小时前
应华为 AI 医疗军团之战,各方动态和反应
人工智能·华为