MAE(论文阅读):Masked Autoencoders are scalable vision learners

news2024/9/22 13:45:36

Masked Autoencoders Are Scalable Vision Learners

研究问题:
    本文主要介绍了掩码自编码器( MAE, Masked autoencoders)是视觉领域中可扩展的自监督学习算法。MAE具体操作为随机屏蔽输入image中的patchs,再重建丢失的像素。其基于两个核心操作。第一个是建立不对称的编码器-解码器架构,编码器只对没有屏蔽掉的patchs操作,轻量化的解码器通过潜在表示和屏蔽令牌重建原始图像。第二是发现了一种屏蔽图像patchs的高比例,比如75%。结合这两个操作使我们能够高效地训练大模型,加速了训练过程且提高了准确率。在下游任务的迁移性优于有监督的预训练。

Abstract

本文主要介绍了掩码自编码器( MAE, Masked autoencoders)是视觉领域中可扩展的自监督学习算法。MAE具体操作为随机屏蔽输入image中的patchs,再重建丢失的像素。其基于两个核心操作。第一个是建立不对称的编码器-解码器架构,编码器只对没有屏蔽掉的patchs操作,轻量化的解码器通过潜在表示和屏蔽令牌重建原始图像。第二是发现了一种屏蔽图像patchs的高比例,比如75%。结合这两个操作使我们能够高效地训练大模型,加速了训练过程且提高了准确率。在下游任务的迁移性优于有监督的预训练。

一.Introduction

第一段:深度学习领域已经见证了模型容量和性能持续增长的爆炸性变化。由于硬件发展的支持,从原来的需要借助数亿张不公开的标签数据发展为现在轻松地过拟合出百万张图片。
第二段:NLP领域中处理对数据依赖的问题。在NLP领域中,自监督的训练方法已经解决了对数据依赖的方法,该方法基于GPT中的自回归语言模型和BERT中自掩码编码方法,其概念非常简单,就是随机屏蔽一部分数据后再学习预测出缺失的部分。该方法可以训练包含一千亿参数的可泛化NLP模型。


第三段:介绍掩码自编码器,以及该方法为什么在NLP和CV领域之间不同的原因。带掩码的自编码器是一种去噪编码器的常用方法,在CV中应用很好。在BERT之前视觉领域就有很多关于该方法的研究,但是该方法在CV领域仍然落后与NLP领域。以下为带掩码的自编码器在两个领域中不同的原因:
(1)架构不同。在CV领域,CNN在过去十年中一直占据主导地位,并且在CNN中添加掩码令牌和位置编码都有困难,后边的ViT已经解决了这个问题。
(2)语言和图像中信息密度不同。语言是人制造的且信息密度非常高,相反图片具有很多自然符号和烦杂的信息。在语言中,训练一个模型去预测一个句子中缺失的几个词就会诱发对整个句子的复杂性的理解,而在视觉中,利用周围的patches去重建被屏蔽的patch只产生很少的理解。为了解决这个不同且学习有效的特征,采用随机高比例地屏蔽patches,这种策略就减少的冗余且提高了对图像的整体理解。
(3)解码器在将潜在表示映射回输入的作用不同。在视觉中,解码器恢复缺失像素,对图像很少的语义理解,相反在文本中,需要恢复具有很强语义信息的词,所以需要理解文本。
第四段:简单概括MAE。MAE中具有不对称的编码器-解码器架构,编码器随机地屏蔽掉输入图像的patches,解码器根据潜在表示和掩码令牌恢复缺失的图像。在不对称的编码器-解码器架构中,将掩码令牌加入到轻量级解码器中大大减少了计算量。同时遮掩比(75%)既提高了精度,又使得编码器只需要处理一小部分patches,减少了训练时间和内存损耗。
第五段:展示结果以及在其他任务方面的迁移性。

二.Related Work

第一段:Masked Language modeling(掩码语言模型)和自回归模型,例如GPT的自回归语言模型和BERT的掩码语言建模在NLP领域都取得了很大的成功。这些方法都是保留输入序列的一部分,去预测缺失的部分。这些方法具有很强的扩展性且已经证明可以广泛应用到各种下游任务中去。
第二段:Auto encoders(自编码器)是学习表示中一种经典的方法。其中编码器将输入映射到潜在表示,解码器恢复输入信息。去噪自编码器是一种破坏输入信号,学习恢复输出信号的自编码器。MAE就是一种去噪自编码器。
第三段:掩码图像编码
第四段:Self-supervised learning(自监督学习)

三.Approach

总:介绍MAE,MAE与传统的自编码器的相同和不同。和传统的自编码器一样,MAE包含编码器和解码器,编码器将给定的观测值映射到潜在表示(可以理解为在语义空间上的一种表示),解码器根据潜在表示重建原始信号。和传统的编码器不同在于含有不对称的编码器-解码器架构,编码器可以仅仅处理未被屏蔽掉的信号,大大减少了计算复杂度,而轻量级解码器根据潜在表示和掩码令牌重建原始信号。

Masking

学习ViT中操作,将图片打散成若干不重叠的patches。再按照随机分布来对patches进行采样,进而屏蔽掉其他的patches。采用较高的遮掩比例既大大减少的数据冗余,减少计算量,又避免了通过邻近patches简单恢复缺失patch的问题。均匀分布也避免了中心缺失。
MAE Encoder:
是一个仅对未被屏蔽的输入信号进行操作的ViT。和标准的ViT一样,对输入的图片进行线性编码,后加上位置编码,最后通过一系列的ViT块对数据操作。这里的编码器仅需要处理未被屏蔽掉的信号,大大减少计算量,这就可以再较少的内存和计算量上训练更大的编码器。

MAE Decoder

解码器的输入是输入信号中未被屏蔽的部分和掩码令牌的总和。所有的掩码令牌都是共享的,其学习的向量就是被屏蔽掉的掩码令牌预测的向量。最后需要对所有的令牌(屏蔽掉和未屏蔽掉的)加上位置编码,否则掩码令牌就会没有在原始图像的位置信息。由于解码器只在预训练过程中用于重建图像,所以可以用一种独立于编码器且灵活的方式涉及,使解码器更窄、更浅,这样所有的令牌进入一个轻量级的解码器就会大大减少预训练的时间。

Reconstruction target

MAE通过预测像素值来为每一个被屏蔽的patch重构输入。解码器输出的每个元素都是代表一个patch的像素值向量。解码器的最后一层是线性投影层,其输出通道的个数就是patch中像素值的个数。对解码器的输出重构得到重构图像。损失函数在像素空间中计算重构图像和原始图像的均方误差,类似于BERT,只计算被屏蔽的patches。本文还研究了一种变体,其重构目标为每一个被屏蔽patch归一化的结果。具体操作是对每一个屏蔽的patch求均值和平方差,用其对该patch归一化,后表示效果更好。

Simple implementation

MAE的预训练非常简单,不需要任何稀疏操作。首先,为每个Patch生成令牌(穿过线性投射层并添加位置编码)。然后打乱这个序列,按照遮掩比例屏蔽掉一部分的Patches,这个过程对编码器相当与取样而非替换,减少计算。编码完成后,往已经编码的patches中添加掩码令牌,此时不打乱顺序并且使其和目标令牌对齐。解码器应用于整个序列。

四.ImageNet Experiments

先在ImageNet-1K上做自监督预训练,再在同样的数据集上做有标号的监督训练。有两种方法:(1)基于end to end 的微调,允许改模型中所有可学习参数(2)linear probing:只允许改最后一层的线性输出层

4.1. Main Properties

A.讲解表1:

ft表示所有可以学习的参数都跟着调,lin表示只调最后一个线性层
(1)表a表示解码器的深度(transformer的块数):前者比较贵,但是效果比较好。
(2)表b表示解码器的宽度(每个token表示成多长的一个向量):结果显示512比较好
(3)表c表示在编码器中要不要加入被盖住的那些块。结果显示,不加入掩码的patches,精度反而更高一些,而且计算量更少。
(4)表d表示重构目标对比。
(5)表e表示做数据增强:对比不做、按照固定大小裁剪、随机裁剪图片和加颜色的变化。结果表示简单的随机大小裁剪效果就很好,所以MAE对数据增强不敏感。
(6)表f讲的是采样策略。随机采样、按块采样和按网格采样。随机采样这种做法最简单,效果也最好。

B.掩码率

掩码率越大,不管是对fine-tune也好,还是对于只调最后一层来讲也好,效果都是比较好的。特别是只调最后一层的话,对掩码率相对来讲更加敏感一点。

C.在ImageNet-1k上训练1000个数据轮的话,仍然有精度的提升,说明在一直训练的情况下,过拟合也不是特别严重

4.2. Comparisons with Previous Results

和前人工作相比,MAE效果是最好的。

4.3. Partial Fine-tuning

五.Transfer Learning Experiment
六.Discussion and Conclusion

扩展性好的简单算法是深度学习的核心。在NLP领域中,自监督学习可以从指数型缩放模型中取得良好的效果。但在CV领域中,尽管无监督学习取得了很大的进步,但是实际的预训练范式仍然是监督学习。在本文中提出自编码器,类似于NLP领域中自监督方法。
另一方面,我们需要注意到语言和图像是不同类型的信号,而其中的差异需要认真对待。语言是含有完整的语义信息的,而图片的patch没有完整的语义信息。所以MAE重构像素并非语义。

创新点

1.写论文时,题目二选一:Scalable(模型大) OR Efficient(算法很快)。可以借鉴文章题目“**是**”,采用读者角度,将文章结论浓缩成title。
2.视觉方面的论文有图片是加分项。
3.本文采用问答式结构,问问题-回答问题-介绍出自己的观点。由于在架构上拓展少,所以回到最本质的问题,将BERT从NLP引入到CV领域中困难之处。一般的写作一定要讲清楚为什么这样做。
4.相关工作部分,需要清楚介绍别人做的和自己做的区别。
5.目前发现,一般很大的模型需要巨大的数据集来训练,如果加上合适的正则化,小的数据集也可以取得不错的效果。

知识点补充

1.自编码器:包含编码器和解码器。编码器用于将输入映射到潜在表示,解码器用于恢复输入。MAE(Masked Autoencoder)和DAE (Denoising Autoencoder)都是自编码器的变种。MAE是屏蔽掉部分输入信息,要求模型来恢复缺失部分;DAE是在输入信息中添加噪声训练模型,要求模型在恢复数据时去除噪声。
2.自***,自编码器、自回归模型:表示x和y来自于同一个东西。比如在语言模型中,预测的词和输入都是来自于该句子中的词。

核心结论

不对称的编码器-解码器结构+高比例的屏蔽图像patches
MAE的算法利用vit来做和BERT一样的自监督学习,本文在vit基础之上提出了前两点:
    一是需要盖住更多的块,使得剩下的那些块,块与块之间的冗余度没有那么高,这样整个任务就变得复杂一点
    二是使用一个transformer架构的解码器,直接还原原始的像素信息,使得整个流程更加简单一点
    三是加上vit工作之后的各种技术,使得它的训练更加鲁棒一点。

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

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

相关文章

HTML5大作业三农有机,农产品,农庄,农旅网站源码

文章目录 1.设计来源1.1 轮播图页面头部效果1.2 栏目列表页面效果1.3 页面底部导航效果 2.效果和源码2.1 源代码 源码下载万套模板,程序开发,在线开发,在线沟通 作者:xcLeigh 文章地址:https://blog.csdn.net/weixin_4…

浅谈Canal原理

canal [kə’nl],译意为水道/管道/沟渠,主要用途是基于 MySQL 数据库增量日志解析,提供增量数据 订阅 和 消费。应该是阿里云DTS(Data Transfer Service)的开源版本。 Canal与DTS提供的功能基本相似: 基于…

python Requests库7种主要方法及13个控制参数(实例实验)

文章目录 一、Requests库的7种主要方法二、kwargs:控制访问的13个参数 一、Requests库的7种主要方法 序号方法说明1requests.request():提交一个request请求,作为其他请求的基础2requests.get():获取HTML网页代码的方法3requests.head()&…

内网隧道——隧道技术基础

文章目录 一、正向连接与反向连接1.1 正向连接1.2 反向连接 二、端口转发三、端口映射四、端口复用五、代理和隧道的区别六、常见隧道穿透分类 环境: kali:192.168.92.6,MSF v6.3.25 win7:192.168.92.7 一、正向连接与反向连接 1…

python实现误差扩散、Floyd-Steinberg 抖动、有序抖动、Riemersma 抖动算法

误差扩散、Floyd-Steinberg 抖动、有序抖动、Riemersma 抖动算法 1.误差扩散算法详解算法步骤Floyd-Steinberg 算法公式Python 实现详细解释优缺点 2.有序抖动算法详解算法步骤Bayer矩阵公式Python 实现详细解释优缺点 3.Riemersma 抖动算法详解算法步骤公式Python 实现详细解释…

网络编程中的TCP和UDP

什么是TCP协议 TCP( Transmission control protocol )即传输控制协议,是一种面向连接、可靠的数据传输协议,它是为了在不可靠的互联网上提供可靠的端到端字节流而专门设计的一个传输协议。 面向连接 :数据传输之前客户端和服务器端必须建立连…

人工智能与语音识别:技术进步与应用前景

引言 人工智能(AI)作为当今科技进步的核心驱动力,正在各个领域展现其变革力量。其中,语音识别技术作为人工智能的重要应用之一,已经深入到我们的日常生活和工作中。从智能助手如Siri、Google Assistant,到智…

最新版kubeadm搭建k8s(已成功搭建)

kubeadm搭建k8s(已成功搭建) 环境配置 主节点 k8s-master:4核8G、40GB硬盘、CentOS7.9(内网IP:10.16.64.67) 从节点 k8s-node1: 4核8G、40GB硬盘、CentOS7.9(内网IP:10…

n5.Nginx 常见模块

Nginx 常见模块 4.1 Nginx 四层访问控制4.2 Nginx 账户认证功能4.3 自定义错误页面4.4 自定义错误日志4.5 检测文件是否存在4.6 长连接配置4.7 作为下载服务器配置4.8 作为上传服务器4.9 限流限速4.10 Nginx 状态页 4.1 Nginx 四层访问控制 访问控制基于模块ngx_http_access_m…

【一刷《剑指Offer》】面试题 37:两个链表的第一个公共结点

力扣对应题目链接:160. 相交链表 - 力扣(LeetCode) 牛客对应题目链接:两个链表的第一个公共结点_牛客题霸_牛客网 (nowcoder.com) 核心考点 :单链表理解,临界条件判定。 一、《剑指Offer》对应内容 二、分…

Python酷库之旅-第三方库Pandas(036)

目录 一、用法精讲 111、pandas.Series.item方法 111-1、语法 111-2、参数 111-3、功能 111-4、返回值 111-5、说明 111-6、用法 111-6-1、数据准备 111-6-2、代码示例 111-6-3、结果输出 112、pandas.Series.xs方法 112-1、语法 112-2、参数 112-3、功能 112-…

快速了解死锁及如何解决死锁问题

目录 什么是死锁? 死锁代码示例 产生死锁的条件: 死锁的危害: 如何解决死锁问题? 1、预防死锁(破坏上述4个产生死锁的条件): 2、银行家算法 3、死锁的检测、解除 4、采用超时机制 什么…

C语言 ——— 写一个函数,调整 整型数组 中 奇数偶数的顺序

目录 题目要求 代码实现 题目要求 创建一个整型数组 自定义函数实现:调整该数组中数字的顺序,使得数组中所有的奇数位于数组的前半部分,数组中所有的偶数位于数组的后半部分 举例: 输入的整型数组为:[234,24,45,…

计算机网络知识点面试总结3

#来自ウルトラマンゼロ(赛罗) 1 数据链路层功能 数据链路层在物理层提供的服务的基础上向网络层提供服务,其最基本的服务是将源自网络层来的数据可靠地传输到相邻节点的目标机网络层,其主要作用是加强物理层传输原始比特流的功能。…

嵌入式面试总结

C语言中struct和union的区别 struct和union都是常见的复合结构。 结构体和联合体虽然都是由多个不同的数据类型成员组成的,但不同之处在于联合体中所有成员共用一块地址空间,即联合体只存放了一个被选中的成员,结构体中所有成员占用空间是累…

nginx基本原理

进程模型 当nginx启动之后,会有一个master进程和多个worker进程。默认是一个worker进程。 master进程的作用:接收来自外界信号,向各worker进程发送信号,监控worker进程的运行状态,当worker进程在异常情况下退出后&am…

Golang | Leetcode Golang题解之第242题有效的字母异位词

题目&#xff1a; 题解&#xff1a; func isAnagram(s, t string) bool {if len(s) ! len(t) {return false}cnt : map[rune]int{}for _, ch : range s {cnt[ch]}for _, ch : range t {cnt[ch]--if cnt[ch] < 0 {return false}}return true }

系统架构设计师教程 第3章 信息系统基础知识-3.6 办公自动化系统(OAS)-解读

系统架构设计师教程 第3章 信息系统基础知识-3.6 办公自动化系统&#xff08;OAS&#xff09; 3.6.1 办公自动化系统的概念3.6.1.1 办公活动3.6.1.1 办公自动化的概念 3.6.2 办公自动化系统的功能3.6.2.1 事务处理3.6.2.1.1 单机系统3.6.2.1.2 多机系统 3.6.2.2 信息管理3.6.2.…

科研绘图系列:R语言雨云图(Raincloud plot)

介绍 雨云图(Raincloud plot)是一种数据可视化工具,它结合了多种数据展示方式,旨在提供对数据集的全面了解。雨云图通常包括以下几个部分: 密度图(Density plot):表示数据的分布情况,密度图的曲线可以展示数据在不同数值区间的密度。箱线图(Box plot):显示数据的中…

大模型实战—大模型赋能网络爬虫

大模型赋能网络爬虫 简单来说,网页抓取就是从网站抓取数据和内容,然后将这些数据保存为XML、Excel或SQL格式。除了用于生成潜在客户、监控竞争对手和市场研究外,网页抓取工具还可以用于自动化你的数据收集过程。 借助AI网页抓取工具,可以解决手动或纯基于代码的抓取工具的…