AI论文精读笔记-MAE

1. 论文基本信息

  • 论文标题:Masked Autoencoders Are Scalable Vision Learners

  • 作者:Kaiming He∗,† Xinlei Chen∗ Saining Xie Yanghao Li Piotr Doll ́ ar Ross Girshick

  • 发表时间和期刊:19 Dec 2021; arxiv

  • 论文链接:Masked Autoencoders Are Scalable Vision Learners (arxiv.org)

2. 研究背景和动机

  • 研究背景:NLP领域中,基于自回归的语言模型(GPT中)和带掩码的自编码器(BERT中)取得了极大的成功,它们的思想是:移除数据中的部分内容并通过学习来预测被移走的内容,例如BERT中的类似于完形填空的任务。这些方法可以使得训练一个千亿参数级别的模型。

  • 研究动机:那么在视觉任务中,能否采用类似BERT的方法来处理呢?首先作者提出问题:what makes masked autoencoding different between vision and language?,即在视觉和语言两方面上带掩码的自编码器有什么不同呢?作者从三个角度回答了这个问题:

(1)架构上的差异。CV中是以卷积网络为主导,通过卷积核扫遍图片提取特定的信息,类似“mask token”这样的信息不方便加进去,而在NLP中MASK可以作为一个特定的词,会一直保存下来。ViT(Vision in Transformer)的出现减轻了架构差异这个阻碍。

(2)信息密度的不同。语言是人类产生的,带有一定的语义并具有非常高的信息密度;而图片是一种自然信号并有一定的信息冗余,比如即使遮住图片中某一小块,也可以根据邻近的块中风景、人像等信息将其补全。因此在学习中为了克服这种差异并学到有用的特征,作者采用了一种方法:遮盖掉图片中大部分的块,如遮盖比例达到75%。

(3)如(2)所说,NLP中单词信息密度是较高的,而图片中的像素语义特征程度较低,因此decoder的作用在视觉和语言上也是不同的。个人理解是decoder在视觉任务上重建的是像素级别块,相比单词来说语义特征更低,因此需要一个复杂的decoder架构来解决,做一个比较大的解码器。

3. 主要贡献

MAE的思路是:mask掉图片的一部分patch,并重建这些mask掉的块。两点核心设计:

(1)设计了一个非对称式的encoder-decoder架构,encoder只操作那些可见的patch块部分,并得到一些图片的潜在表示;而decoder从那些不可见的(也即被mask的图像块)以及encoder的输出这两部分中重建原始图像块。MAE架构如下图所示,可以注意到decoder比encoder更为轻量级,灰色块代表被mask掉的:

(2)mask掉图像的大部分块(如75%的遮盖率)可以创造一个有意义的自监督学习任务。仅使用剩余的少部分图像信息进行训练。这种策略不仅降低了计算成本,而且增强了模型的重建能力。MAE通过其创新的掩码策略和简洁的模型架构,展示了在自监督学习领域的巨大潜力。

4. 方法和模型

下图展示了重建图片的具体情况,每一个三元组中,左侧代表masked image,中间是MAE重建的结果,右侧是原始图片:

(1)Masking:把图像分成一系列的patch块,并随机mask掉一些patch块,下图为不同mask比率对重建图片的影响:

(2)MAE encoder:encoder是一个ViT但是只作用在没有被遮住的块,encoder会对patch进行线性投影再添加位置编码,由于只作用在小部分patch(mask比率为75%时,encoder只处理剩余的25%),减少了计算并节约内存。

(3)MAE decoder:MAE 的解码器仅在预训练过程中用于执行图像重建任务(仅使用编码器来生成用于识别的图像表示)。因此,解码器架构可以灵活设计,与编码器设计无关。作者尝试了非常小的解码器,它们比编码器更窄、更浅。

(4)Reconstruction target:MAE 通过预测每个被掩码块的像素值来重建输入。解码器输出中的每个元素都是一个代表块的像素值向量。解码器的最后一层是一个线性投影,其输出通道数等于一个块中的像素值数量。解码器的输出被重塑为一个重建图像。损失函数计算重建图像和原始图像在像素空间中的均方误差(MSE),并仅在被掩码的块上计算损失,类似于 BERT。

5. 实验和结果

略~

6. 讨论和未来工作

简单且可扩展的算法是深度学习的核心。在NLP中,简单的自监督学习方法使得模型规模呈指数级增长而受益。在计算机视觉领域,尽管自监督学习有所进展,但实用的预训练范式主要是监督式的。在本研究中观察到,在 ImageNet 和迁移学习中,自编码器——一种类似于 NLP 技术的简单自监督方法提供了可扩展的好处。自监督学习在视觉领域可能正在走上一条与 NLP 类似的轨迹。 另一方面,注意到图像和语言是性质不同的信号,这种差异必须谨慎处理。图像没有像词语那样的语义分解。我们没有尝试去除对象,而是去除随机块,这些块很可能不会形成语义片段。同样,我们的 MAE 重建像素,这些像素不是语义实体。然而,观察到 MAE 推断出复杂的、整体的重建,这表明它已经学习了许多视觉概念,即语义。我们假设这种行为是通过 MAE 内部丰富的隐藏表示发生的。我们希望这种观点能激发未来的研究工作

7. 个人理解和反思

在引言中,从“提出问题”到“回答问题”再到“提出我的想法”这种写作方式值得借鉴,结论中提到的“简单”是相对而言的,是基于ViT提出来的。利用ViT做BERT一样的自监督学习,盖住更多的块使得剩下的块之间的冗余度没有那么高;使用transformer架构的解码器直接还原原始的像素信息,使得整个流程更加简单。在ImageNet-1K上使用自监督训练的效果超过了之前的工作。简单的想法+非常好的实验结果+详细的实验决定了这是一个高质量的工作

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/800586.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Golang | Leetcode Golang题解之第237题删除链表中的节点

题目: 题解: func deleteNode(node *ListNode) {node.Val node.Next.Valnode.Next node.Next.Next }

基于Python+Flask+SQLite的网易云音乐评论情感分析系统

FlaskSQLite 基于PythonFlaskSQLite的网易云音乐评论情感分析系统 项目主要依赖前端:tailwindcss,Echart,后端主要是Flask,系统的主要支持登录注册,Ecahrt构建可视化 支持一键切换暗黑主题 blueprints组织页面 skle…

目标检测--X-anylabeling使用自己的模型自动标注

一、x-anylabeling安装教程 x-anylabeling安装教程——软件安装教程——X-AnyLabeling 安装与自动标注 二、x-anylabeling使用自己的模型标注(YOLOv5 v6.0) 2.1 训练权重.pt转onnx 环境配置 将requiements.txt中export部分的注释恢复 然后pip insta…

C语言 ——— 大/小端存储模式的介绍及判断

目录 何为大端小端 如何测试当前机器是大端还是小端 编写代码,判断当前机器的字节序 何为大端小端 大端字节序存储模式:数据的低位字节的内容 存放在 内存的高地址 中,数据的高位字节的内容 保存在 内存的低地址 中 小端字节序存储模式&am…

[ACM独立出版] 2024年虚拟现实、图像和信号处理国际学术会议(VRISP 2024,8月2日-4)

2024年虚拟现实、图像和信号处理国际学术会议(VRISP 2024)将于2024年8月2-4日在中国厦门召开。 VRISP 2024将围绕“虚拟现实、图像和信号处理”的最新研究领域,为来自国内外高等院校、科学研究所、企事业单位的专家、教授、学者、工程师等提供…

Java基础之应用向jar包sdk注册回调函数实例(十)

简介: CSDN博客专家,专注Android/Linux系统,分享多mic语音方案、音视频、编解码等技术,与大家一起成长! 优质专栏:Audio工程师进阶系列【原创干货持续更新中……】🚀 优质专栏:多媒…

GNSS技术干货(34):天灵灵 地灵灵 不如C/N0灵

在GPS接收机研发测试过程中,作为硬件射频工程师最关心的测试项目是传导载噪比C/N0(carrier-to-noise ratio)值,因为它是非常重要的参数指标,可以评估接收机端收到的卫星信号强度,反映硬件射频链路的质量&am…

降Compose十八掌之『突如其来』| Graphics Modifiers

公众号「稀有猿诉」 原文链接 降Compose十八掌之『突如其来』| Graphics Modifiers 在Jetpack Compose中创建自定义绘制内容的方式不止一种,除了前面提到的通过Canvas函数的方式以外,还可以通过Modifier的几个扩展函数更为灵活实现一些的自定义内…

SpringBoot+Vue实现简单的文件上传(Excel篇)

SpringBootVue实现简单的文件上传 1 环境 SpringBoot 3.2.1&#xff0c;Vue 2&#xff0c;ElementUI 2 页面 3 效果&#xff1a;只能上传xls文件且大小限制为2M&#xff0c;选择文件后自动上传。 4 前端代码 <template><div class"container"><el…

Python爬虫速成之路(4):BeautifulSoup

hello hello~ &#xff0c;这里是绝命Coding——老白~&#x1f496;&#x1f496; &#xff0c;欢迎大家点赞&#x1f973;&#x1f973;关注&#x1f4a5;&#x1f4a5;收藏&#x1f339;&#x1f339;&#x1f339; &#x1f4a5;个人主页&#xff1a;绝命Coding-CSDN博客 &a…

【JVM基础01】——介绍-初识JVM运行流程

目录 1- 引言&#xff1a;初识JVM1-1 JVM是什么&#xff1f;(What)1-1-1 概念1-1-2 优点 1-2 为什么学习JVM?(Why) 2- 核心&#xff1a;JVM工作的原理&#xff08;How&#xff09;⭐2-1 JVM 的组成部分及工作流程2-2 学习侧重点 3- 小结(知识点大纲)&#xff1a;3-1 JVM 组成3…

实践致知第16享:设置Word中某一页横着的效果及操作

一、背景需求 小姑电话说&#xff1a;现在有个word文档,里面有个表格太长&#xff08;如下图所示&#xff09;&#xff0c;希望这一个设置成横的&#xff0c;其余页还是保持竖的&#xff01; 二、解决方案 1、将鼠标放置在该页的最前面闪烁&#xff0c;然后选择“页面”》“↘…

京东.Vision首登苹果Vision Pro 背后的技术探索

去年6月&#xff0c;苹果正式发布首款头显设备Apple Vision Pro&#xff0c;今年6月28号&#xff0c;Apple Vision Pro正式在中国发售。京东.Vision作为首批原生应用登陆Vision Pro平台&#xff0c;首期以家电家居与潮流数码产品作为切入口&#xff0c;未来将逐步拓展至全品类&…

07:串口通信二

串口编程 1、与波特率之相关的寄存器2、PCON寄存器3、SCON寄存器4、配置的代码分析5、向PC发送一段字符串6、PC机向单片机发送字符控制LED1灯的亮灭 1、与波特率之相关的寄存器 如图&#xff0c;与串口通信相关的寄存器主要是SCON和PCON寄存器。 2、PCON寄存器 SMOD&#xff1…

CentOS搭建邮件服务器:DNS配置方法技巧?

CentOS搭建邮件服务器的流程&#xff1f;如何高效使用CentOS&#xff1f; 在当今数字化时代&#xff0c;邮件服务器的需求日益增加。为了确保邮件能够顺利送达&#xff0c;正确的DNS配置是必不可少的一环。AokSend将详细介绍在CentOS搭建邮件服务器过程中&#xff0c;如何进行…

PyCharm软件初始化配置

安装完pycharm后&#xff0c;需要对其进行个性化设置&#xff0c;分别设置方法如下 目录 一、修改主题二、修改默认字体和大小三、设置拖动滚轮改变字体大小四、常见快捷键 一、修改主题 1、界面右上角点击红框的内容 2、选择Theme选项 3、选择对应的主题 第一二个是白色主题…

怎样去除视频上的水印和文字,视频水印文本移除教程

在观看和分享视频时&#xff0c;我们经常会遇到带有水印或额外文字的情况。这些标记有时是为了版权保护&#xff0c;有时则是平台的标识&#xff0c;但在某些情况下&#xff0c;它们可能会干扰视频的观赏体验。本文将向你介绍常见的视频水印类型以及如何使用简鹿水印助手去除这…

让AI语言模型自由飞翔:LangChain框架的奇妙世界

今天&#xff0c;我将为大家揭开一项令人激动的技术——LangChain。想象一下&#xff0c;如果能将人工智能的强大能力与我们日常使用的数据和工具无缝连接&#xff0c;那将开启怎样崭新且无限的可能&#xff01; LangChain&#xff0c;一个专为大型语言模型设计的框架&#xf…

C语言 ——— 调试的时候如何查看当前程序的变量信息

目录 调试前/后的调试窗口 ​编辑 调试窗口 --- 监视 调试窗口 --- 内存 调试窗口 --- 调用堆栈 调试前/后的调试窗口 调试前的调试窗口&#xff1a; 调试前的调试窗口是没有显示的&#xff0c;只有在调试的时候才会有相对应的调试窗口 调试后的调试窗口&#xff1a…

windows下环境变量开启方式

第一种方法&#xff1a; 使用快捷键打开“运行”对话框&#xff1a;按下 Win R 组合键&#xff0c;这将打开“运行”窗口。 输入系统属性命令&#xff1a;在“运行”窗口中输入 sysdm.cpl 然后按回车键。这将打开“系统属性”对话框。【sysdm.cpl是"System Data Manager…