何恺明团队的“视频版本MAE”,高效视频预训练!Mask Ratio高达90%时效果也很好!...

182c2975526d5c31ac0584bdf4a738ac.png

文 | 小马
源 | 我爱计算机视觉

本篇文章分享论文『Masked Autoencoders As Spatiotemporal Learners』,由何恺明团队提出视频版本的 MAE,进行高效视频预训练!Mask Ratio 高达 90% 时效果很好!

详细信息如下:

251f7150c7a5234b7df2ce97a23f6c68.png

论文链接:
https://arxiv.org/abs/2205.09113

项目链接:尚未开源

a2b3d4f7f9a8061313d847818de78402.png1.摘要03c338d5074c56cb5da24f9d91cd5235.png

本文研究了Masked Autoencoders(MAE)在概念上对视频时空表示学习的简单扩展。作者随机mask视频中的时空patch,并学习Autoencoders以像素为单位重建它们。

有趣的是,本文的MAE方法可以学习强表示,几乎没有时空诱导偏置,时空不可知随机的mask表现最好。作者观察到,最佳掩蔽率(mask ratio)高达90%(而图像的掩蔽率为75%),这支持了该比率与数据信息冗余相关的假设。较高的掩蔽率会造成较大的加速比例。作者使用vanilla Vision Transformers报告了几个具有挑战性的视频数据集的竞争结果。

通过实验,作者观察到,MAE的表现大大优于有监督的预训练。此外,作者还报告了在真实世界中未经处理的Instagram数据上进行训练的结果。本文的研究表明,masked autoencoding的一般框架(BERT、MAE等)可以是一种使用最少领域知识进行表征学习的统一方法。

d644a6a87a15de1c776ad6084dcd0b12.png2.Motivation517d7483fd54a04552edb60540051354.png

深度学习社区正在经历一种趋势,即统一解决不同领域问题的方法,如语言、视觉、言语等。在架构方面,transformer已成功地引入计算机视觉,并被确立为语言和视觉的通用构建块。对于自监督表征学习,BERT中的去噪/屏蔽自动编码(masked autoencoding)方法已被证明对从图像中学习视觉表征有效。为了统一方法,针对特定问题只引入了较少的领域知识,这促使模型几乎完全从数据中学习有用的知识。

9da0a5ecce570de0d075d6397321b84a.png

遵循这一理念,作者研究将MAE扩展到时空表征学习问题。本文的方法很简单:作者随机屏蔽视频中的时空patch,并学习自动编码器来重建它们(如上图)。本文的方法具有最小的领域知识:唯一的时空特异归纳偏差是embedding patch及其位置;所有其他组件对问题的时空性质都是不可知的。

特别是,本文的编码器和解码器都是普通的视觉Transformer,没有分解或层次结构,本文的随机mask采样对时空结构是不可知的。本文的方法预测像素值,并且不使用额外的问题特定tokenizer。简而言之,本文的方法简单地应用于时空patch集。尽管归纳偏差最小,但本文的方法取得了强有力的实证结果,表明可以从数据中学习有用的知识。

f2dafdeff8db519290bd171b7d2a8bb9.png

MAE的文献中假设,掩蔽自动编码方法中的掩蔽率(即移除token的百分比)与问题的信息冗余有关。例如,自然图像比语言具有更多的信息冗余,因此最佳掩蔽率更高。本文对视频数据的观察支持这一假设。作者发现,视频的MAE最佳掩蔽率为90%(如上图所示),高于对应图像的75%掩蔽率。这可以理解为自然视频数据在时间上相关的结果。极端的情况是,如果一个视频有T个相同的静态帧,则对所有时空patch进行1/T的随机采样将显示出大部分静态帧。因为在自然视频中,慢动作比快动作更容易发生,所以根据实验观察,掩蔽率可能非常高。

掩蔽率越高,实际解决方案越有效。MAE仅对可见token应用编码器之后,90%的掩蔽率将编码器时间和内存复杂性降低到<1/10。结合一个小型解码器,MAE预训练与编码所有token相比,理论上可以减少7.7倍的计算量。事实上,计算量大到数据加载时间成为新的瓶颈;即便如此,作者还是记录到了4.1倍的wall-clock加速。如此显著的加速对于大规模且耗时的视频研究非常重要。

作者报告了在各种视频识别数据集上的强大结果。MAE预训练极大地提高了泛化性能:在Kinetics-400上,与从头开始的训练相比,它将ViT-Large的准确率提高了13%,而总的来说,它需要更少的wall-clock训练时间(预训练加上微调)。本文的MAE预训练可以大大超过其监督的预训练对手。通过使用vanilla ViT,本文的方法与以前采用更多领域知识的SOTA法相比,取得了具有竞争力的结果。作者还报告了使用MAE对100万个随机、未经处理的Instagram视频进行预训练的结果。这些结果表明,在一个统一的框架下,视频的自监督学习可以以类似于语言和图像的方式进行。

b100a4f6fcef88df3babfc83b64adf8a.png3.方法ff3d5f00a64b6cd25e8a41d652629f6a.png

本文的方法是MAE对时空数据的简单扩展,目标是在通用和统一的框架下开发该方法,尽可能少地使用领域知识。

Patch embedding

根据原始ViT,给定一个视频片段,作者将其划分为一个规则的网格,其中包含时空中不重叠的patch。patch通过线性投影进行铺展和嵌入。位置嵌入添加到嵌入patch中。patch和位置嵌入过程是唯一具有时空感知的过程。

Masking

2dfe6cb83d2fb93026c4c1926083f787.png

作者从嵌入的patch集中随机抽取patch。这种随机抽样与时空结构无关,如上图a。这种结构不可知的采样策略类似于1D中的BERT和2D中的MAE。

MAE中假设最佳掩蔽率与数据的信息冗余相关。对于非结构化随机掩蔽,BERT对语言使用了15%的掩蔽率,而MAE对图像使用了75%的掩蔽率,这表明图像比语言有更多的信息冗余。本文对视频的实证结果支持这一假设。作者观察到视频的最佳掩蔽率为90%。这符合通常的假设,即由于时间相干性,自然视频比图像具有更多的信息冗余。下图显示了本文方法在掩蔽率为90%和95%的未知验证数据上的MAE重建结果。

时空不可知采样可以比结构感知采样策略更有效。如上图b和c所示,仅空间或仅时间采样可能保留较少的信息,并产生非常困难的预训练任务。例如,掩蔽率为87.5%的8帧仅进行时间采样意味着只保留一帧,这就提出了一项非常具有挑战性的任务,即仅在给定一帧的情况下预测未来和过去。作者观察到,结构感知采样的最佳掩蔽比通常较低。相比之下,时空不可知采样更好地利用了有限数量的可见patch,因此允许使用更高的掩蔽率。

ef1db6d23cede9954cd0aa791e7bd1d2.png

Autoencoding

我们的编码器是一种普通的ViT,仅适用于可见的嵌入patch集。这种设计大大减少了时间和内存复杂性,并带来了更实用的解决方案。90%的掩蔽率将编码器复杂度降低到<1/10。本文的解码器是另一种基于编码patch集和一组mask token的联合的普通ViT。解码器特定的位置嵌入被添加到此集合中。因为解码器被设计成比编码器小,所以虽然解码器处理整个集合,但其复杂性小于编码器。在本文的默认设置中,与完全编码相比,整个autoencoder的复杂度降低了7.7倍。

解码器预测像素空间中的patch。原则上,可以简单地预测一个完整的时空patch(例如,t×16×16);在实验中,作者发现预测patch的单个时间片(16×16)是足够的,这样可以保持预测层的大小可控。本文预测了原始像素或其每个patch的归一化值。训练损失函数是预测与其目标之间的均方误差(MSE),在未知patch上求平均值。编码器和解码器对问题的时空结构不可知。与SOTA结构相比,本文的模型没有层次结构或时空分解,只依赖于全局自注意力,从数据中学习有用的知识。

b3d630cec195390d06178789ae37042b.png4.实验2d4d6ac53b5825edc137bffb4d0c979f.png

Performance

d1509f040d363cf15d32558df4990b05.png

上图展示了使用标准ViT-L将MAE预训练与无预训练(即从头开始的训练)进行比较的结果。相比之下,使用MAE预训练800个epoch,相同ViT-L达到84.4%的准确率,与从头开始的训练相比,绝对值大幅增加13.0%。这一差距远大于图像识别任务的差距(∼ 3%),表明MAE预训练更有助于视频识别。

除了精度增益外,MAE预训练还可以降低总体训练成本,800 epoch MAE预训练仅需35.8小时。由于预训练,需要16.3小时的短时间微调,可以获得良好的精度。总体训练时间可以比从头开始的训练更短。这表明MAE是一种实用的视频识别解决方案。

Ablation experiments

d802c3295263193ff3ad1c0d48ce8402.png

上图显示了掩蔽率与预训练周期的联合影响。90%的比例效果最好。95%的比例表现得出奇地好,如果训练足够长的时间,这可以会赶上。较高的掩蔽率导致编码器编码的token较少;为了更全面地查看,作者绘制了编码token总数和准确率的影响(上图右侧)。在这一衡量标准下,90%和95%的比率表现密切。

0ea46a884cb7a20438f3648f36145099.png

上表展示了不同mask策略的实验结果,可以看出随机采样的效果最好。

894c78d5e196f75421ef5e727693110c.png

图展示了不同重建目标的实验结果。

997ac55b7439191c221f78ef370f8c58.png

上图展示了加入不同数据增强的实验结果。

285d41f35c73a67c5498f765db8428dc.png

由于本文的方法计算速度快,需要采用重复采样来减少数据加载开销。上表报告了其影响。重复使用2到4次可将wall-clock速度提高1.8倍或3.0倍,因为加载和解压缩的文件可重复使用多次。

e68b97dd1d39ba2883b10ef605d78879.png

上表展示了Decoder深度和宽度的影响。

278e88be55a93907a1444825d5d3361f.png

上表研究了不同数据集的预训练,并将其迁移到各种下游任务。

32331e6b651522632fb95e706b7fffe7.png

上表展示了用于MAE预训练的真实Instagram数据。作者对每一组MAE进行200、400和800个epoch的预训练,并比较了K400上的微调精度。模型为ViT-L。

86964218cef66b8d72c25e0abb974c2b.png5.总结46cef7fe6a216c31de79d11c301c4fc3.png

作者探索了MAE对视频数据的简单扩展,得出了一些有趣的观察结果:

  1. 用最小的领域知识或归纳偏差学习强表示是可能的。这符合ViT工作的idea。与BERT和MAE类似,视频上的自监督学习可以在概念统一的框架中解决。

  2. 本文的实验表明,掩蔽率是一般掩蔽自动编码方法的一个重要因素,其最佳值可能取决于数据的性质(语言、图像、视频等)。

  3. 作者报告了关于真实世界、未经评估数据的预训练的结果。

尽管得到了这些观察结果,但仍然存在一些悬而未决的问题。本文研究的数据规模比语言对应的数据规模小几个数量级。虽然本文的方法在很大程度上提高了自监督学习的效率,但高维视频数据仍然是扩展的主要挑战。

97b8e5969b68259aae58b0b9ab6edfc5.png后台回复关键词【入群

加入卖萌屋NLP、CV、搜推广与求职讨论群

后台回复关键词【顶会

获取ACL、CIKM等各大顶会论文集!

adc3c3479f15fc8bafc240fbf4d17183.gif b96798cfcad6fe9fe910c84e29d485af.png

[1]https://arxiv.org/abs/2205.09113

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

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

相关文章

剑指Offer - 面试题45. 把数组排成最小的数(字符串排序)

1. 题目 输入一个正整数数组&#xff0c;把数组里所有数字拼接起来排成一个数&#xff0c;打印能拼接出的所有数字中最小的一个。 示例 1: 输入: [10,2] 输出: "102"示例 2: 输入: [3,30,34,5,9] 输出: "3033459"提示: 0 < nums.length < 100 说明…

Spring Boot整合MyBatis

最近项目原因可能会继续开始使用MyBatis&#xff0c;已经习惯于spring-data的风格&#xff0c;再回头看xml的映射配置总觉得不是特别舒服&#xff0c;接口定义与映射离散在不同文件中&#xff0c;使得阅读起来并不是特别方便。 Spring中整合MyBatis就不多说了&#xff0c;最近…

谷歌放弃Tensorflow,全面拥抱JAX

文 | Matthew Lynley源 | 机器之心编辑部TensorFlow 大概已经成为了谷歌的一枚「弃子」。2015 年&#xff0c;谷歌大脑开放了一个名为「TensorFlow」的研究项目&#xff0c;这款产品迅速流行起来&#xff0c;成为人工智能业界的主流深度学习框架&#xff0c;塑造了现代机器学习…

LeetCode 第 20 场双周赛(294 / 1541,前19.07%,第1次全部通过)

文章目录1. 比赛结果2. 题目LeetCode 5323. 根据数字二进制下 1 的数目排序 easyLeetCode 5324. 每隔 n 个顾客打折 mediumLeetCode 5325. 包含所有三种字符的子字符串数目 mediumLeetCode 5326. 有效的快递序列数目 hard1. 比赛结果 第一次全部做出来了&#xff0c;提前6分钟…

Spring Boot中的缓存支持(二)使用Redis做集中式缓存

上一篇介绍了在Spring Boot中如何引入缓存、缓存注解的使用、以及EhCache的整合。 虽然EhCache已经能够适用很多应用场景&#xff0c;但是由于EhCache是进程内的缓存框架&#xff0c;在集群模式下时&#xff0c;各应用服务器之间的缓存都是独立的&#xff0c;因此在不同服务器…

NLP开源数据集汇总

源 | 极市平台本文汇总了几个NLP相关的开源数据集&#xff0c;均附有下载链接。CASIA手写数据集数据集地址&#xff1a;http://m6z.cn/6pFPtCCASIA-HWDB-T&#xff1a;一个从中文手写数据库CASIA-HWDB收集的触摸字符数据库。所有接触的字符&#xff08;或字符串&#xff09;都用…

LeetCode 1360. 日期之间隔几天(闰年判断)

1. 题目 请你编写一个程序来计算两个日期之间隔了多少天。 日期以字符串形式给出&#xff0c;格式为 YYYY-MM-DD&#xff0c;如示例所示。 示例 1&#xff1a; 输入&#xff1a;date1 "2019-06-29", date2 "2019-06-30" 输出&#xff1a;1示例 2&…

“我要做小小瑶大人的狗!”

小轶&#xff1a;这真的是白鹡鸰写的作为21世纪新时代人格健全&#xff0c;精神独立&#xff0c;心理健康的有志青年&#xff0c;总有那么几个时刻&#xff0c;会让我们情不自禁&#xff0c;眼泪从嘴角流下地呐喊着&#xff1a;“我是XXX的狗&#xff01;”啊&#xff01;这诚恳…

Spring Boot中的缓存支持(一)注解配置与EhCache使用

随着时间的积累&#xff0c;应用的使用用户不断增加&#xff0c;数据规模也越来越大&#xff0c;往往数据库查询操作会成为影响用户使用体验的瓶颈&#xff0c;此时使用缓存往往是解决这一问题非常好的手段之一。Spring 3开始提供了强大的基于注解的缓存支持&#xff0c;可以通…

LeetCode 1361. 验证二叉树(图的出入度)

1. 题目 二叉树上有 n 个节点&#xff0c;按从 0 到 n-1 编号&#xff0c;其中节点 i 的两个子节点分别是 leftChild[i] 和 rightChild[i]。 只有 所有 节点能够形成且 只 形成 一颗 有效的二叉树时&#xff0c;返回 true&#xff1b;否则返回 false。 如果节点 i 没有左子节…

微软:我已把显存优化做到了极致,还有谁?

文 | 王思若大家好&#xff0c;我是王思若。17年6月Google提出了Transformer架构&#xff0c;这篇目前Citation 4.3万的文章开启了大规模预训练模型时代。或者&#xff0c;更精确的从18年OpenAI和Google分别基于其中的Decoder和Encoder发布的大规模预训练模型GPT1和BERT开始&am…

Spring Boot中使用JavaMailSender发送邮件

相信使用过Spring的众多开发者都知道Spring提供了非常好用的JavaMailSender接口实现邮件发送。在Spring Boot的Starter模块中也为此提供了自动化配置。下面通过实例看看如何在Spring Boot中使用JavaMailSender发送邮件。 快速入门 在Spring Boot的工程中的pom.xml中引入sprin…

LeetCode 1362. 最接近的因数

1. 题目 给你一个整数 num&#xff0c;请你找出同时满足下面全部要求的两个整数&#xff1a; 两数乘积等于 num 1 或 num 2以绝对差进行度量&#xff0c;两数大小最接近 你可以按任意顺序返回这两个整数。 示例 1&#xff1a; 输入&#xff1a;num 8 输出&#xff1a;[3…

光子神经网络登上nature,图像识别速度降至1纳秒

文 | Alex&#xff08;凹非寺&#xff09;源 | 量子位比深度神经网络速度还快的是什么&#xff1f;或许光子DNN可以回答这个问题。现在&#xff0c;美国研究者开发的一个光子神经网络(photonic deep neural network&#xff0c;PDNN)&#xff0c;让图像识别仅需1纳秒。1纳秒是什…

LeetCode 1363. 形成三的最大倍数(贪心,难)

1. 题目 给你一个整数数组 digits&#xff0c;你可以通过按任意顺序连接其中某些数字来形成 3 的倍数&#xff0c;请你返回所能得到的最大的 3 的倍数。 由于答案可能不在整数数据类型范围内&#xff0c;请以字符串形式返回答案。 如果无法得到答案&#xff0c;请返回一个空…

Spring Boot中使用Spring Security进行安全控制

我们在编写Web应用时&#xff0c;经常需要对页面做一些安全控制&#xff0c;比如&#xff1a;对于没有访问权限的用户需要转到登录表单页面。要实现访问控制的方法多种多样&#xff0c;可以通过Aop、拦截器实现&#xff0c;也可以通过框架实现&#xff08;如&#xff1a;Apache…

这篇寒门博士论文致谢火了:回首望过去,可怜无数山

源 | 奔流新闻兰州晨报 记者 邢剑扬、安之若素德之至 微信平台、澎湃新闻“可怜无数山”近日&#xff0c;一位甘肃籍博士的论文致谢和回望“火”了&#xff0c;有网友称读后“泪眼婆娑&#xff0c;戳到了灵魂”&#xff0c;也有网友评价“一字一句&#xff0c;熠熠生辉”。“回…

Spring Boot中的事务管理

什么是事务&#xff1f; 我们在开发企业应用时&#xff0c;对于业务人员的一个操作实际是对数据读写的多步操作的结合。由于数据操作在顺序执行的过程中&#xff0c;任何一步操作都有可能发生异常&#xff0c;异常会导致后续操作无法完成&#xff0c;此时由于业务逻辑并未正确…

C++类对象排序operator重载操作

类内默认含有this指针&#xff0c;bool operator(const T& a)类外则需要写两个参数&#xff0c;bool operator(const T& a, const T& b) class People { public:string name;int id;People(string n, int i):name(n),id(i){}bool operator(const People& a){r…

鹅厂计算机视觉,世界第二??

编 | 好困 桃子源 | 新智元腾讯的计算机视觉能力首次进入全球Top2的评分排名&#xff01;Gartner最新发布的2022年度《Magic Quadrant for Cloud AI Developer Services》是业内权威的云计算评估报告之一&#xff0c;评估对象包括亚马逊、微软、谷歌等全球云厂商。在核心产品能…