AI论文精读笔记-MAE

news2024/9/21 4:29:47

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上使用自监督训练的效果超过了之前的工作。简单的想法+非常好的实验结果+详细的实验决定了这是一个高质量的工作

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

苹果预计因Apple Intelligence引发设备升级潮

🦉 AI新闻 🚀 苹果预计因Apple Intelligence引发设备升级潮 摘要:据彭博社报道,摩根士丹利将苹果列为首选股票,预期Apple Intelligence发布将引发创纪录的设备升级。分析师Erik Woodring 将苹果目标股价上调至273美元…

前端开发(基础)

目录 一、Web前端项目初始化 环境准备 创建项目 前端工程化配置 引入组件库 开发规范 全局通用布局 基础布局结构 全局底部栏 动态替换内容 全局顶部栏 通用路由菜单 支持多套布局 请求 请求工具库 全局自定义请求 自动生成请求代码 全局状态管理 全局权限管…

电力调度台如何助力电力指挥中心更智慧

在现代电力系统的复杂运行环境中,电力调度台正逐渐成为电力指挥中心实现智慧化管理的关键力量。 电力调度台具备强大的信息集成与处理能力。它能够将来自不同监测系统、传感器和数据源的海量数据汇聚一处,包括电力设备的实时运行状态、电力负荷的动态变化…

应急靶场(4):Windows Server 2019 - Web3

目录 一、攻击者的两个IP地址 二、隐藏用户名称 三、黑客遗留下的flag【3个】 下载好靶场(前来挑战!应急响应靶机训练-Web3)并搭建好环境,使用帐号密码(administrator / xj123456)登录靶机。 一、攻击者的两…

张幼玲:心中有火,眼里有光照医路

在我们的传统社会中,男科医生这一职业往往被人们带着异样的眼光看待。然而,张幼玲却选择了这一领域,成为了一名专业男科医生。他以其丰富的临床经验、高超的医术和对患者的关爱,赢得了患者和社会的广泛赞誉。 张幼玲出生于一个中医…

ASP.NET Core----基础学习06----将所有数据在页面中显示 布局页面的使用

文章目录 1. 将数据以list的形式展示在页面中2. 布局页面的使用3. 自定义设置视图文件是否需要加载的JS 1. 将数据以list的形式展示在页面中 step1:在接口文件中添加新的方法GetAllStudents() step2:在mock的数据中添加方法GetAllStudents(&a…

7/13 - 7/15

vo.setId(rs.getLong("id"))什么意思? vo.setId(rs.getLong("id")); 这行代码是在Java中使用ResultSet对象(通常用于从数据库中检索数据)获取一个名为"id"的列,并将其作为long类型设置为一个对象…

Billu_b0x靶机

信息收集 使用arp-scan 生成网络接口地址来查看ip 输入命令: arp-scan -l 可以查看到我们的目标ip为192.168.187.153 nmap扫描端口开放 输入命令: nmap -min-rate 10000 -p- 192.168.187.153 可以看到开放2个端口 nmap扫描端口信息 输入命令&…

工作中项目git如何管理,冲突,push不上去如何解决

主要涉及的知识点 现在公司中一般的git仓库的管理方式是怎么样的代码为什么push不上线上仓库如何解决代码冲突 分支管理方式 git checkout -b 分支名字 是创建并切换到分支 git push origin 分支名字 推到远程仓库分支上 主流的git管理方式 共用一个仓库,不同…

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

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

解决宝塔Spring Boot项目获取不到环境变量的问题

问题描述 在使用宝塔面板管理Spring Boot项目时,可能会遇到代码无法获取 /etc/profile 文件中设置的Linux环境变量的问题。虽然在SSH终端中可以正常获取,但在通过宝塔面板启动的Spring Boot项目中,环境变量却无法被读取。 解决方案&#xf…

TS 入门(三):Typescript函数与对象类型

目录 前言回顾1. 函数类型a. 基本函数类型b. 可选参数和默认参数c. 剩余参数 2. 对象类型a. 基本对象类型b. 可选属性和只读属性 3. 类型别名和接口a. 类型别名b. 接口扩展 4. 类型推断和上下文类型a. 类型推断b. 上下文类型 扩展知识点:函数重载结语 前言 在前两章…

实验06 持续集成测试

知识点 集成测试定义 集成测试是将多个单元组合起来形成更大的单元,并测试它们是否能协同工作形成子系统。一种旨在暴露单元接口之间、组件/系统间交互或协同工作时所存在的缺陷的测试。 集成测试关注的问题 模块间数据传递是否正确。一个模块的功能是否影响另一…

[iOS]内存分区

[iOS]内存分区 文章目录 [iOS]内存分区五大分区栈区堆区全局区常量区代码区验证内存使用注意事项总结 函数栈堆栈溢出栈的作用 参考博客 在iOS中,内存主要分为栈区、堆区、全局区、常量区、代码区五大区域 还记得OC是C的超类 所以C的内存分区也是一样的 iOS系统中&a…

文章解读与仿真程序复现思路——电力自动化设备EI\CSCD\北大核心《考虑频率不同响应阶段的惯量评估优化策略》

本专栏栏目提供文章与程序复现思路,具体已有的论文与论文源程序可翻阅本博主免费的专栏栏目《论文与完整程序》 论文与完整源程序_电网论文源程序的博客-CSDN博客https://blog.csdn.net/liang674027206/category_12531414.html 电网论文源程序-CSDN博客电网论文源…

嵌入式人工智能(6-树莓派4B按键输入控制LED)

1、按键 按键的原理都是一样,通过按键开关的按下导通,抬起断开的情况,GPIO引脚来检测其是否有电流流入。GPIO有input()方法,对于GPIO引脚检测电流,不能让其引脚悬空,否则引脚会受周边环境电磁干扰产生微弱…

《昇思25天学习打卡营第15天|计算机视觉-SSD目标检测》

FCN图像语义分割&ResNet50迁移学习&ResNet50图像分类&ShuffleNet图像分类&SSD目标检测 SSD目标检测 模型简介 SSD,全称Single Shot MultiBox Detector,是Wei Liu在ECCV 2016上提出的一种目标检测算法。使用Nvidia Titan X在VOC 2007测…

重塑水利未来:智慧水利解决方案的探索与实践,从物联网、大数据到人工智能,科技如何赋能水利行业,实现智慧化管理与决策

本文关键词:智慧水利、智慧水利工程、智慧水利发展前景、智慧水利技术、智慧水利信息化系统、智慧水利解决方案、数字水利和智慧水利、数字水利工程、数字水利建设、数字水利概念、人水和协、智慧水库、智慧水库管理平台、智慧水库建设方案、智慧水库解决方案、智慧…

达梦数据库的系统视图v$systeminfo

达梦数据库的系统视图v$systeminfo 在达梦数据库(DM Database)中,V$SYSTEMINFO 是一个系统视图,用于显示数据库实例的系统信息。这个视图提供了关于数据库实例的运行状态、配置参数、资源使用情况等重要信息,对于数据…

linux端口,进程管理,主机状态监控

linux端口,进程管理,主机状态监控 一、端口 1、什么是端口?2、端口的划分2、查看端口占用 二、进程 1、什么是进程2、查看进程信息2、关闭进程 三、主机状态监控 1、查看资源占用2、磁盘信息监控3、查看网络情况 四、命令总结 一、端口 1、什么是端口…