【论文阅读】Masked Autoencoders Are Scalable Vision Learners

news2024/12/24 9:29:02

Masked Autoencoders Are Scalable Vision Learners

引用: He K, Chen X, Xie S, et al. Masked autoencoders are scalable vision learners[C]//Proceedings of the IEEE/CVF conference on computer vision and pattern recognition. 2022: 16000-16009.

论文链接: [2111.06377] Masked Autoencoders Are Scalable Vision Learners

代码链接: GitHub - facebookresearch/mae: PyTorch implementation of MAE

简介

在硬件快速发展的帮助下,今天的模型可以很容易地过度拟合100万张图像,并开始需要数亿张(通常无法公开访问)标记的图像。这种对数据的需求已经在自然语言处理(NLP)中通过自我监督的预训练成功解决。这些解决方案基于GPT 中的自回归语言建模和BERT中的掩码自编码,在概念上很简单:它们删除了一部分数据并学习预测删除的内容。这些方法现在可以训练包含超过一千亿个参数的可泛化 NLP 模型。因此,掩码自动编码器的想法是自然的,也适用于计算机视觉。

在这里插入图片描述

掩码自动编码器(Masked Autoencoder,MAE)是用于计算机视觉的可扩展自监督学习器。MAE 的思路很简单:随机屏蔽输入图像的某些块并重建缺失的像素。与自然语言相反,图像是具有高度空间冗余的自然信号——例如,缺失的补丁可以从相邻的补丁中重新覆盖,而对零件、对象和场景的高级理解很少。因此,屏蔽很高比例的随机补丁在很大程度上减少了冗余,并创造了一项具有挑战性的自我监督任务。首先,MAE提出了一种非对称编码器-解码器架构,该架构的编码器仅在patches的可见子集(没有掩码的tokens)上运行,以及一个轻量级解码器,该解码器从潜在表示和掩码tokens重建原始图像。其次,屏蔽输入图像的很大一部分,例如75%,会产生一个不平凡且有意义的自我监督任务。在仅使用 ImageNet-1K 数据的方法中,普通的 ViT-Huge 模型实现了最佳的准确率 (87.8%)。下游任务中的传输性能优于监督预训练,并显示出有希望的扩展行为。

Approach

在这里插入图片描述

MAE是一种简单的自动编码方法,在给定其部分观测的情况下重建原始信号。MAE包括一个编码器,将观察到的信号映射到潜在表示,一个解码器,从潜在表示重建原始信号。与经典的自动编码器不同,MAE采用了非对称设计,允许编码器仅对部分观察到的信号进行操作(无掩码标记),并采用了轻量级解码器,该解码器根据潜在表示和掩码标记重新构建完整信号。

  • Masking:参考ViT,将图像划分为规则的非重叠补丁。然后,对补丁的子集进行采样,并屏蔽(即移除)剩余的补丁。采样策略很简单:按照均匀分布对随机补丁进行采样,而不进行替换,称之为“随机抽样”。具有高掩蔽比的随机采样(即去除的补丁的数量)在很大程度上消除了冗余,因此产生了一个无法通过从可见的相邻补丁进行外推来轻松解决的任务。均匀分布防止了潜在的中心偏移(即,在图像中心附近有更多的掩模斑块)。最后,高度稀疏的输入为设计高效编码器创造了机会。

  • MAE encoder编码器使用ViT,但仅适用于可见的、未掩码的补丁。就像在标准ViT中一样,编码器通过添加位置嵌入的线性投影嵌入补丁,然后通过一系列Transformer块处理结果集。然而,编码器只对全集的一小部分(例如,25%)进行操作。掩码的补丁被移除;不使用掩码tokens。

  • MAE decoder解码器的输入是由(i)编码的可见补丁和(ii)掩码tokens组成的全部tokens的集合。每个掩码token是一个共享的、学习的向量,指示要预测的掩码补丁的存在。将位置嵌入添加到这个完整集合中的所有标记;如果没有这一点,掩码tokens将没有关于它们在图像中的位置的信息。解码器仅在预训练期间用于执行图像重建任务(仅使用编码器生成图像表示以供识别)。因此,解码器架构可以独立于编码器设计的方式灵活设计。

  • Reconstruction targetMAE 通过预测每个掩码补丁的像素值来重建输入。解码器输出中的每个元素都是表示补丁的像素值向量。解码器的最后一层是线性投影,其输出通道数等于补丁中的像素值数。解码器的输出被重塑以形成重建的图像。损失函数计算像素空间中重建图像和原始图像之间的均方误差 (MSE)使用归一化像素作为重建目标可以提高实验中的表示质量。具体来说就是计算一个补丁中所有像素的平均值和标准差,并使用它们来规范化这个补丁。

实验

MAE 在 ImageNet-1K (IN1K) 训练集上进行自我监督预训练。然后,进行监督训练,通过(i)端到端微调或(ii)线性探测来评估表示。

在这里插入图片描述
在这里插入图片描述

75%的比率适用于线性探测和微调。这种行为与BERT形成鲜明对比,BERT的典型掩码率为15%。在计算机视觉方面,掩码率也远高于相关著作(20%至50%)。该模型推断缺失的补丁,以产生不同但合理的输出(图 4)。它使物体和场景的格式塔变得有意义,这不能简单地通过延伸线条或纹理来完成。假设这种类似推理的行为与学习有用的表征有关。
在这里插入图片描述

更长的训练计划会带来明显的改善。

在这里插入图片描述

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

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

相关文章

2024 Python3.10 系统入门+进阶(二):Python编程环境搭建

目录 一、Windows安装Python1.1 下载并安装 Python1.2 测试安装是否成功 二、Linux系统安装Python(新手可以跳过)2.1 基于RockyLinux系统安装Python(编译安装)2.2 基于Ubuntu系统安装Python(编译安装) 三、如何运行Python程序?3.1 Python 交互式编程3.2 编写Python源…

基于Spring Boot+Vue的社区医院管理系统

末尾获取源码作者介绍:大家好,我是墨韵,本人4年开发经验,专注定制项目开发 更多项目:CSDN主页YAML墨韵 学如逆水行舟,不进则退。学习如赶路,不能慢一步。 目录 一、项目简介 一、研究背景 二…

【FAQ】BSV区块链代码库常见问题解答

​​发表时间:2024年2月27日 BSV区块链协会上线了JavaScript和TypeScript SDK(即“标准开发工具包”)。TypeScript SDK旨在为开发者提供新版统一核心代码库,让开发者可以在BSV区块链上便捷地进行开发,尤其是开发那些可…

02分布式搜索引擎ES

elasticsearch查询 1.DSL查询文档1.1.DSL查询分类1.2.全文检索查询1.3.精准查询1.4.地理坐标查询1.5.复合查询 2.搜索结果处理2.1.排序2.2.分页2.3.高亮2.4.总结 3.RestClient查询文档3.1.快速入门3.2.match查询3.3.精确查询3.4.布尔查询3.5.排序、分页3.6.高亮 1.DSL查询文档 …

【开源】SpringBoot框架开发个人保险管理系统

目录 一、摘要1.1 项目介绍1.2 项目录屏 二、功能模块2.1 登录注册模块2.2 保险档案模块2.3 保险订单模块2.4 保险理赔模块 三、系统展示四、核心代码4.1 查询保险产品4.2 新增保险预定4.3 订单支付4.4 新增理赔单4.5 查询保险理赔 五、免责说明 一、摘要 1.1 项目介绍 基于J…

ArcGIS Pro、R和INVEST:三位一体的生态系统服务评估框架

生态系统服务是指生态系统所形成的用于维持人类赖以生存和发展的自然环境条件与效用,是人类直接或间接从生态系统中得到的各种惠益。联合国千年生态系统评估(Millennium ecosystem assessment,MA)提出生态系统服务包括供给、调节、…

Go微服务实战——服务的监控与链路追踪(监控数据可视化)

链路追踪背景 对于早期系统或者服务来说,开发人员一般通过打日志的方式来进行埋点(常用的数据采集方式),然后再根据日志系统和性能监控定位及分析问题。对于单体的应用通过日志系统完全可以定位到问题,从而排查异常。…

Docker系列

目录 练习:去DockerHub搜索并拉取一个Redis镜像 练习:去DockerHub搜索并拉取一个Redis镜像 目标: 1)去DockerHub搜索Redis镜像 2)查看Redis镜像的名称和版本 3)利用docker pull命令拉取镜像 查看是否…

数据仓库的魅力及其在企业中的应用实践

数据仓库,这一创新性的概念来自于比尔恩门,从1980年代末提出以来,便凭借其独特的架构设计和强大的数据处理能力,在全球商业领域中掀起了一场革命。它不仅是解决企业海量数据存储和查询需求的关键技术,更是推动企业实现…

贵州省二级分类土地利用数据(矢量)

贵州省,地处中国西南腹地,地貌属于中国西南部高原山地,境内地势西高东低,自中部向北、东、南三面倾斜,平均海拔在1100米左右。贵州高原山地居多,素有“八山一水一分田”之说。全省地貌可概括分为&#xff1…

双向链表、单双向链表比较、双向链表的基本操作

我要成为嵌入式高手之3月20日数据结构第三天!! ———————————————————————————— 双向链表 双向链表与单向链表的区别:双向链表中的结点的指针域包含前驱结点的地址,而单向链表的结点中指针域只有后驱结…

PyTorch 深度学习(GPT 重译)(六)

十四、端到端结节分析,以及接下来的步骤 本章内容包括 连接分割和分类模型 为新任务微调网络 将直方图和其他指标类型添加到 TensorBoard 从过拟合到泛化 在过去的几章中,我们已经构建了许多对我们的项目至关重要的系统。我们开始加载数据&#xf…

RK3399 android10 移植SiS-USB触摸驱动

一,SiS USB触摸简介 SiS USB 触摸屏通常是一种外接式触摸屏设备,通过 USB 接口连接到计算机或其他设备上。这种触摸屏设备可以提供触摸输入功能,用户可以通过手指或触控笔在屏幕上进行操作,实现点击、拖动、缩放等操作。 SiS USB…

腾讯云GPU云服务器简介_GPU服务器购买指南_GPU云服务器操作

腾讯云GPU服务器是提供GPU算力的弹性计算服务,腾讯云GPU服务器具有超强的并行计算能力,可用于深度学习训练、科学计算、图形图像处理、视频编解码等场景,腾讯云百科txybk.com整理腾讯云GPU服务器租用价格表、GPU实例优势、GPU解决方案、GPU软…

学点儿Java_Day7_在实体类当中IDEA无法进行单元测试(@Test没有启动按钮)

在敲代码体会继承和访问修饰符的时候忽然遇到了单元测试不管用的情况,表现为没有启动按钮   经过一番折腾,发现我的测试是在具有构造函数的实体类Person当中进行的,当我把所有的构造函数删除后,启动按钮又出来了,加…

Pycharm实用快捷键

Pycharm实用快捷键 1.代码/函数提示2.查找同一变量位置3.添加类型提示4.一键代码规范化5.任意位置切换到下一行6.快速运行7.多行快速注释8.展开/折叠代码块9.全局搜索10.变量用过的地方11.快速包围12.跳到文件成员13.在项目内查找14.快速选中15.导入优化16.扩展 / 缩小选中17.复…

【SQL】1141. 查询近30天活跃用户数(常规写法;date_add())

前述 mysql中date_add()函数的使用 题目描述 leetcode题目&#xff1a;1141. 查询近30天活跃用户数 Code 写法一 select activity_date as day, count(distinct user_id) as active_users from Activity where activity_date > 2019-06-27 and activity_date < 2019…

北斗短报文+4G应急广播系统:全面预警灾害信息 构建安全美好乡村

建设社会主义新农村是确保小康社会宏伟目标如期实现的必然要求&#xff0c;是构建和谐社会的重要内容。针对现代农业发展的要求&#xff0c;通过完善专业化监测预报技术&#xff0c;提高精细化的灾害监测预警能力&#xff0c;建设广覆盖的预警信息发布网络&#xff0c;建设有效…

Linux快速入门,上手开发 01.学习路线

少时曾许凌云志&#xff0c;当取世间第一流 再见少年拉满弓&#xff0c;不惧岁月不飓风 —— 24.3.20 1.Linux的发展历史 2.VM虚拟机的Linux初体验 3.图形化页面设置系统——快速上手 4.命令行操作——向专业前进 5.核心操作命令——必知必会&#xff08;管理企业级权限/定位b…

【web算法】列车车厢重排问题

💝💝💝欢迎来到我的博客,很高兴能够在这里和您见面!希望您在这里可以感受到一份轻松愉快的氛围,不仅可以获得有趣的内容和知识,也可以畅所欲言、分享您的想法和见解。 推荐:kwan 的首页,持续学习,不断总结,共同进步,活到老学到老导航 檀越剑指大厂系列:全面总结 jav…