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工作之后的各种技术,使得它的训练更加鲁棒一点。
相关推荐
fthux43 分钟前
装闭 RenoPit 源码解析(05):FastAPI与Celery如何执行AI装修分析
人工智能·ai·开源·github·open source·renopit
格数致用1 小时前
数据库设计与表结构详解|信息化项目全流程管理系统源码逐行精讲(五)
人工智能·政务·数据库设计·外键约束
罗西的思考1 小时前
【OpenClaw具身硬件】MiniClaw 阅读笔记---(1)基础
人工智能·算法·机器学习
DevUI团队1 小时前
从“即兴创作”到“规格先行”,华为云码道(CodeArts)代码智能体持续深耕企业级规范驱动开发能力
前端·人工智能·后端
论文避坑指南2 小时前
论文写作全流程AI合规边界:从选题到投稿的“红绿灯“清单
大数据·人工智能·深度学习
Dawson Zhu2 小时前
工业世界模型——基于AI Agent+数学仿真架构
人工智能·架构·agi
冬奇Lab2 小时前
开源项目第183期:Ontology Playground — 微软出品的本体论可视化学习工具,零后端、浏览器直接运行
人工智能·microsoft·开源
Wang's Blog2 小时前
AI Agent白手起家52: 从零搭建钉钉智能助手——资源准备与核心架构实现
人工智能·架构·钉钉
冬奇Lab2 小时前
代码库知识库系列(13):评测——怎么知道知识库够不够好
人工智能
字节跳动视频云技术团队2 小时前
把 AI 视频的钱花在刀刃上,不是每一刀上
人工智能·音视频开发