VideoMAE:简单高效的视频自监督预训练新范式|NeurIPS 2022(1)

简介: VideoMAE:简单高效的视频自监督预训练新范式|NeurIPS 2022
【新智元导读】本文将介绍南大、腾讯和上海人工智能实验室被NeurIPS 2022收录的工作。

论文链接:https://arxiv.org/abs/2203.12602代码和预训练权重已经在Github开源:https://github.com/MCG-NJU/VideoMAE目录
1. 背景介绍
2. 研究动机
3. 方法介绍
4. VideoMAE实现细节
5. 消融实验
6. VideoMAE的重要特性
7. 主要结果
8. 对社区的影响
9. 总结

背景介绍

视频自监督学习 (Video Self-supervised Learning) :不利用标签信息,通过设计自监督的代理任务,从视频数据中学习时空表征信息。现有的视频自监督预训练算法主要分为两大类: (1) 基于对比学习的自监督方法,如 CoCLR,CVRL等。(2 )基于时序相关代理任务的自监督方法,如 DPC,SpeedNet,Pace 等。动作识别 (Action Recognition) : 对给定剪裁过视频(Trimmed Video)进行分类,识别这段视频中人物的动作。目前的主流方法有 2D-based (TSN,TSM,TDN等) ,3D-based(I3D,SlowFast等) 以及 Transformer-based(TimeSformer,ViViT,MViT,VideoSwin等)。动作识别作为视频领域的基础任务,常常作为视频领域各种下游任务 (例如时序行为检测,时空动作检测) 的主干网络(Backbone),去提取整个视频级别或者视频片段级别的时空特征。动作检测 (Action Detection) : 该任务不仅需要对视频进行动作分类,识别这段视频中人物的动作,还要在空间范围内用一个包围框(bounding box)标记出人物的空间位置。动作检测在电影视频分析,体育视频分析等场景下有广泛的应用场景。

研究动机

自从2020年底视觉自注意力模型(Vision Transformer)被提出后,Transformer被广泛应用到了计算机视觉领域,并帮助改进了一系列计算机视觉任务的性能。然而,Vision Transformer需要利用大规模的带标签的数据集进行训练。最初,最原始的 ViT(Vanilla Vision Transformer)通过使用数亿张带标签的图像进行有监督形式的预训练才能获得良好的性能。目前的Video Transformer通常基于图像数据训练的Vision Transformer模型(如 TimeSformer,ViViT等)并且依赖大规模图像数据的预训练模型(例如 ImageNet-1K,ImageNet-21K,JFT-300M等)。TimeSformer,ViViT 均曾尝试在视频数据集中从头开始训练Video Transformer模型, 但是都不能取得令人满意的结果。因此,如何在不使用任何其他预训练模型或额外图像数据的情况下,直接在视频数据集上有效地训练Video Transformer,特别是最原始的ViT(Vanilla Vision Transformer),仍然是一个亟待解决的问题。需要注意的是,与图像数据集相比,现有的视频数据集的规模相对较小。例如,被广泛使用的Kinectics-400数据集只有20多万的训练样本,样本数量大约是ImageNet-21K数据集的1/50,JFT-300M数据集的1/1500,存在好几个数量级的差距。同时,相比训练图像模型,训练视频模型的计算开销也大了很多。这进一步增加了在视频数据集上训练Video Transformer的难度。最近,「掩码+重建」(masking-and-reconstruction)这种自监督训练范式在自然语言处理(BERT)和图像理解(BEiT,MAE) 中取得了成功。因此,我们尝试利用这种自监督范式在视频数据集上训练Video Transformer,并且提出了一种基于掩码和重建 (masking-and-reconstruction)这种代理任务的视频自监督预训练算法VideoMAE(Video Masked Autoencoder)。经过VideoMAE预训练的ViT模型能够在Kinetics-400和Something-Something V2这种较大的视频数据集,以及UCF101和HMDB51这种规模相对小的视频数据集上取得大幅优于其他方法的效果。

方法介绍

MAE概述

MAE采用一种非对称编码器-解码器架构来进行掩码和重建的自监督预训练任务。一张 224x224分辨率的输入图像首先被分成大小为 16 ×16 的非重叠的视觉像素块(token)。每个像素块(token)会经过块嵌入(token embedding)的操作被转化为高维特征。MAE采用较高的掩码比率 (75%) 随机遮盖掉一部分的像素块(token)。经过掩码操作后,将剩余的像素块送到编码器(encoder)中进行特征提取。紧接着,将编码器提取出来的特征块与另一部分预设的可学习的像素块(learnable token)进行拼接,构成和原始输入图像尺寸一样大的特征。最后,利用一个轻量级的解码器(decoder),基于这部分特征重建原始的图像(实际实验过程中,重建目标的是经过归一化的像素块(normalized token) 。

视频数据的特性

与图像数据相比,视频数据包含了更多的帧,也具有更加丰富的运动信息。本节会先分析一下视频数据的特性。

对视频数据不同掩码策略的示例

时序冗余性

视频数据中包含着密集的图像帧,这些图像帧包含的语义信息随时间变化得非常缓慢。由此可见,视频中密集连续的彩色图像帧是高度冗余的,如图所示。这种冗余性可能在实现MAE的过程中造成两个问题。首先,如果采用原始视频的密集帧率(例如 30 FPS)进行预训练,则训练效率会非常低。因为这种设置会使得网络更多地关注数据中的静态表象特征或者一些局部变化缓慢的运动特征。其次,视频中的时序冗余性会极大地稀释了视频中的运动特征。因此,这种情况会使得在正常掩码率(例如,50% 到 75%)下,重建被掩码的像素块的任务变得相对简单。这些问题会影响作为编码器的Backbone在预训练的过程中提取运动特征。

时序相关性

视频可以看作是由静态图片随着时间的演化生成的,因此视频帧之间也存在语义的对应关系。如果不针对性地设计掩码策略,这种时序相关性可能会增加重建过程中的「信息泄漏」的风险。具体来说,如图所示,如果使用全局随机掩码或随机掩码图像帧,网络可以利用视频中的时序相关性,通过「复制粘贴」相邻帧中时序对应位置的未被遮蔽的像素块来进行像素块重建。这种情况下一定程度上也能完成代理任务,但是可能会导致VideoMAE仅仅能学习到较低语义的时间对应关系特征,而不是高层抽象的语义信息,例如对视频内容的时空推理能力。为了缓解这种情况,需要设计一种新的掩码策略,使重建任务更加具挑战性,这样才能让网络更好地学习视频中的时空特征表示。

VideoMAE方法介绍

VideoMAE的整体框架为了解决前文中视频预训练过程中采用掩码和重建(masking-and-reconstruction)这种任务时可能遇到的问题,我们在VideoMAE中引入一些新的设计。时序下采样根据前文中对视频中密集连续帧中存在的时序冗余性的分析,因此在VideoMAE中选择采用带有时序间隔的采样策略来进行更加高效的视频自监督预训练。具体来说,首先从原始视频中随机采样一个由 $t$ 个连续帧组成的视频片段。然后使用带有时序间隔采样将视频片段压缩为帧,每个帧包含个像素。在具体的实验设置中,Kinetics-400 和 Something-Something V2 数据集上的采样间隔 分别设置为4和2。

时空块嵌入

在输入到编码器中之前,对于采样得到的视频片段,采用时空联合的形式进行像素块嵌入。具体来说,将大小为视频片段中大小为的视觉像素视为一个视觉像素块。因此,采样得到的视频片段经过时空块嵌入(cube embedding)层后可以得到个视觉像素块。在这个过程中,同时会将视觉像素块的通道维度映射为。这种设计可以减少输入数据的时空维度大小,一定程度上也有助于缓解视频数据的时空冗余性。带有极高的掩码比率的管道式掩码策略为了解决由视频数据中的时序冗余性和时序相关性导致的「信息泄漏」问题,本方法选择在自监督预训练的过程中采用管道式掩码策略。管道式的掩码策略可以将单帧彩色图像的掩码方式自然地在整个视频的时序上进行拓展,即不同的帧中相同空间位置的视觉像素块将被遮蔽。具体来说,管道式掩码策略可以表示为 。不同的时间t共享相同的值。使用这种掩码策略,相同空间位置的token将总是会被掩码。所以对于一些视觉像素块(例如,不同掩码策略的示例图第 4 行的包含手指的像素块),网络将无法在其他帧中找到其对应的部分。这种设计这有助于减轻重建过程中出现「信息泄露」的风险,可以让VideoMAE通过提取原始视频片段中的高层语义信息,来重建被掩码的token。相对于图像数据,视频数据具有更强的冗余性,视频数据的信息密度远低于图像。这种特性使得VideoMAE使用极高的掩码率(例如 90% 到 95%)进行预训练。值得注意的是,MAE的默认掩码率为75% 。实验结果表明,使用极高的掩码率不仅能够加速预训练(仅有 5% 到 10% 的视觉像素块被输入到编码器中),同时能够提升模型的表征能力和在下游任务中的效果。时空联合自注意力机制前文中提到了VideoMAE采用了极高的掩码率,只保留了极少的token作为编码器的输入。为了更好地提取这部分未被遮蔽的token的时空特征,VideoMAE选择使用原始的ViT作为Backbone,同时在注意力层中采用时空联合自注意力(即不改变原始ViT的模型结构)。因此所有未被遮蔽的token都可以在自注意层中相互交互。时空联合自注意力机制的级别的计算复杂度是网络的计算瓶颈,而前文中针对VideoMAE使用了极高掩码比率策略,仅将未被遮蔽的token(例如10%)输入到编码器中。这种设计一定程度上可以有效地缓级别的计算复杂度的问题。

VideoMAE实现细节

VideoMAE框架的具体设计细节上图展示了VideoMAE采用的编码器和解码器的具体架构设计(以ViT-B为例)。我们在下游的四个视频动作识别数据集和一个动作检测数据集上对VideoMAE进行评估。这些数据集关注视频中不同方面的运动信息。Kinetics-400 是一个大规模的 YouTube 视频数据集,包含了大约 30 万个剪裁过的视频片段,涵盖了 400 个不同的动作类别。Kinetics-400 数据集主要包含日常生活中的活动,并且某些类别与交互对象或场景信息高度相关。Something-Something V2数据集中的视频主要包含了不同对象执行相同动作,因此该数据集中的动作识别更加关注运动属性而不是对象或场景信息。其中训练集大约包含 17 万个视频片段,验证集大约包含 2.5 万个视频片段。UCF101 和 HMDB51 是两个相对较小的视频动作识别数据集。UCF101的训练集大约包含 9500 个视频,HMDB51的训练集大约包含 3500 个视频。实验过程中,我们首先在训练集上使用VideoMAE对网络进行自监督预训练,紧接在训练集上对编码器(ViT)进行有监督形式的微调,最后在验证集上对模型的性能进行评估。对于动作检测数据集AVA,我们首先会加载Kinetics-400数据集上训练好的模型,对编码器(ViT)进行有监督形式的微调。

消融实验

本节在Something-Something V2和Kinetics-400数据集上对VideoMAE进行消融实验。消融实验默认采用输入为16帧的原始的ViT模型。同时在微调后进行评估时,在 Something-Something V2 上选择2个视频片段和3次裁剪进行测试,在Kinetics-400上选择5个视频片段和3次裁剪进行测试。


解码器设计

轻量级解码器是VideoMAE中的一个关键组件。表(a) 中展示了使用不同深度的解码器的实验结果。与MAE不同,VideoMAE中更深的解码器可以取得更好的性能,而深度较浅的解码器可以有效地降低 GPU 的显存占用。认情况下解码器的层数设置为 4。遵循MAE的经验性设计,VideoMAE中解码器的通道宽度设置为编码器的通道宽度的一半(例如,以ViT-B作为编码器时,解码器的通道宽度设置为384)。

掩码策略

在使用 75% 的掩码比例下,将不同的掩码策略与管道式掩码策略进行比较。如表(b)所示,全局随机掩码和随机掩码图像帧的性能劣于管道式掩码策略。这可能是由于管道式掩码策略可以一定程度上缓解了视频数据中的时序冗余性和时序相关性。如果将掩码比率增加到 90% ,VideoMAE的在Something-Something上的性能可以进一步从 68.0% 提升到 69.6%。VideoMAE中掩码策略和的掩码比率的设计可以使遮蔽加重建成为更具有挑战性的代理任务,强制模型学习到更加高层的时空特征。

重建目标

这里比较了VideoMAE中的重建目标,结果在表(c)中。首先,如果只使用视频片段中的中心帧作为重建目标,VideoMAE在下游任务中的性能会大大降低。同时,VideoMAE对采样间隔也很敏感。如果选择重建更密集帧的视频片段,其结果会明显低于默认的经过时序下采样的视频片段。最后还尝试从经过时序下采样的视频片段中重建视频片段中更加密集的帧,但这种设置会需要解码更多的帧,使得训练速度变慢,效果也没有很好。

预训练策略

这里比较了VideoMAE中的预训练策略,结果展示在表(d)中。与之前方法(TimeSformer,ViViT)的实验结论类似,在Something-Something V2 这个对运动信息更加敏感的数据集上从头开始训练ViT并不能取得令人满意的结果。如果利用大规模图像数据集(ImageNet-21K)上预训练的ViT模型作为初始化,能够获得更好的准确度,可以从 32.6% 提升到 61.8% 。而使用在 ImageNet-21K 和 Kinetics-400 上预训练的模型进一步将准确率提高到 65.2%。而利用VideoMAE从视频数据集本身预训练得到的ViT,在不使用任何额外的数据的条件下,最终能达到 69.6% 的最佳性能。Kinetics-400 上也有相似的结论。

预训练数据集

这里比较了VideoMAE中的预训练数据集,结果展示在表(e)中。首先按照MAE的设置,在 ImageNet-1K 上对ViT自监督预训练 1600 epoch。然后利用I3D中的策略,将 2D 块嵌入层膨胀为3D 时空块嵌入层,并在视频数据集上微调模型。这种训练范式可以超过从头有监督训练的模型。紧接着,将MAE预训练的模型与在 Kinetics-400 上VideoMAE预训练的ViT模型的性能进行了比较。可以发现VideoMAE可以实现比MAE更好的性能。然而这两种预训练模型均未能取得比仅在Something-Something V2 数据集上进行自监督预训练的VideoMAE更好的性能。由此可以分析,预训练数据集和目标数据集之间的领域差异可能是一个重要问题。

预训练轮次

预训练的总轮次在VideoMAE中的影响在消融实验中,VideoMAE预训练的总轮次默认设置为800。我们尝试在Kinetics-400 和 Something-Something V2数据集上对预训练轮次进行深入探究。根据图中的结果,采用更长的预训练轮次在两个数据集上都可以带来持续的增益。

VideoMAE的重要特性

VideoMAE是一种数据高效的学习器

VideoMAE与MoCov3在下游不同视频动作识别数据集上的性能比较先前很多工作对视频自监督预训练进行了广泛的研究,但这些方法主要使用卷积神经网络作为Backbone,很少有方法去研究中基于ViT的训练机制。因此,为了验证基于ViT的VideoMAE对视频自监督预训练的有效性,我们对两种基于ViT的训练方法进行了比较:(1) 从头开始有监督训练模型,(2) 使用对比学习方法 (MoCo v3)进行自监督预训练。根据实验结果,可以发现VideoMAE明显优于其他两种训练方法。例如,在数据规模最大的 Kinetics-400 数据集上,VideoMAE比从头开始训练的准确率高出大约 10%,比 MoCo v3 预训练的结果高出大约6%。VideoMAE卓越的性能表明,掩码和重建(masking-and-reconstruction)这种自监督范式为ViT提供了一种高效的预训练机制。与此同时值得注意的是,随着训练集的变小,VideoMAE与其他两种训练方法之间的性能差距变得越来越大。值得注意的是,即使HMDB51数据集中只包含大约3500个视频片段,基于VideoMAE 的预训练模型仍然可以获得令人非常满意的准确率。这一新的结果表明VideoMAE是一种数据高效的学习器。这与对比学习需要大量数据进行预训练的情况不同。VideoMAE的数据高效的特性在视频数据有限的场景下显得尤为重要。

VideoMAE与MoCov3在Something-SomethingV2数据集上的效率分析我们还进一步比较了使用VideoMAE进行预训练和使用MoCo v3预训练的计算效率。由于使用掩码加重建这种极具挑战性的代理任务,每次迭代过程网络只能观察到10%的输入数据(90%的token被遮蔽),因此VideoMAE需要更多的训练轮次数。极高比例的token被遮蔽这种设计大大节约了预训练的计算消耗和时间。VideoMAE预训练800轮次仅仅需要19.5小时,而 MoCo v3 预训练300轮次就需要 61.7 小时。

极高的掩码率

掩码比率在VideoMAE中的影响极高的掩码率是VideoMAE中的核心设计之一。我们在 Kinetics-400 和 Something-Something V2 数据集上对此设计进行了深入探究。根据图中的结果,当掩码比率非常高时,即使是 95%时,网络在下游视频动作识别任务的这两个重要数据集上仍然能表现出极佳的性能。这个现象与自然语言处理中的 BERT 和图像的MAE中的存在巨大的不同。视频数据中存在时序冗余性和时序相关性,使得VideoMAE相比于图像数据和自然语言,能够进行极高的掩码比率的操作。我们还对经过预训练的VideoMAE的重构示例进行了可视化。从图中可以发现,即使在极高的掩码率下,VideoMAE也可以产生令人满意的重建结果。这意味着VideoMAE能够学习和提取出视频中的时空特征。

泛化和迁移能力:数据的质量与数量

VideoMAE与MoCov3在较小数据集上的特征迁移能力的性能比较为了进一步研究VideoMAE学习到的特征,本节对经过预训练的VideoMAE的泛化和迁移能力进行了评估。上表中展示了在 Kinetics-400 数据集上进行预训练的VideoMAE迁移到 Something-Something V2、UCF101 和 HMDB51数据集上的效果。同时,表中也展示了使用 MoCo v3 进行预训练的模型的迁移能力。根据表中的结果,利用VideoMAE进行预训练的模型的迁移和泛化能力优于基于 MoCo v3 进行预训练的模型。这表明VideoMAE能够学习到更多可迁移的特征表示。在 Kinetics-400 数据集上进行预训练的VideoMAE比直接在 UCF101 和 HMDB51 数据集上直接进行预训练的VideoMAE效果好。但是在 Kinetics-400 数据集上进行预训练的模型在 Something-Something V2 数据集上的迁移能力较差。

相关文章
|
机器学习/深度学习 人工智能 自然语言处理
Informer:用于长序列时间序列预测的新型Transformer
Informer:用于长序列时间序列预测的新型Transformer
2186 0
Informer:用于长序列时间序列预测的新型Transformer
|
算法 计算机视觉 开发者
镜头边界检测(上)| 学习笔记
快速学习镜头边界检测(上),介绍了镜头边界检测(上)系统机制, 以及在实际应用过程中如何使用。
镜头边界检测(上)| 学习笔记
|
存储 物联网 网络性能优化
|
10月前
|
机器学习/深度学习 编解码 物联网
极致的显存管理!6G显存运行混元Video模型
混元 Video 模型自发布以来,已成为目前效果最好的开源文生视频模型,然而,这个模型极为高昂的硬件需求让大多数玩家望而却步。魔搭社区的开源项目 DiffSynth-Studio 近期为混元 Video 模型提供了更高效的显存管理的支持,目前已支持使用24G显存进行无任何质量损失的视频生成,并在极致情况下,用低至 6G 的显存运行混元 Video 模型!
765 12
|
10月前
|
机器学习/深度学习 算法 TensorFlow
深度学习中的自编码器:从理论到实践
在这篇文章中,我们将深入探讨深度学习的一个重要分支——自编码器。自编码器是一种无监督学习算法,它可以学习数据的有效表示。我们将首先介绍自编码器的基本概念和工作原理,然后通过一个简单的Python代码示例来展示如何实现一个基本的自编码器。最后,我们将讨论自编码器的一些变体,如稀疏自编码器和降噪自编码器,以及它们在实际应用中的优势。
|
12月前
|
人工智能 人机交互 语音技术
让大模型能听会说,国内机构开源全球首个端到端语音对话模型Mini-Omni
【10月更文挑战第2天】国内研究机构提出的Mini-Omni是一个端到端的音频对话模型,实现了实时语音交互,标志着全球首个开源的端到端语音对话模型。通过文本引导的语音生成方法和批处理并行策略,Mini-Omni在保持语言能力的同时,实现了流畅的语音输出。研究团队还引入了VoiceAssistant-400K数据集进行微调,提升了模型性能。尽管如此,Mini_Omni在语音质量、计算资源需求及伦理监管方面仍面临挑战。论文详见:[链接]。
533 3
|
Dubbo Java 关系型数据库
SpringCloud - Eureka服务注册与发现核心概念
SpringCloud - Eureka服务注册与发现核心概念
208 0
|
SQL 消息中间件 Kafka
Flink sql 问题之主动使数据延时一段时间如何解决
Apache Flink是由Apache软件基金会开发的开源流处理框架,其核心是用Java和Scala编写的分布式流数据流引擎。本合集提供有关Apache Flink相关技术、使用技巧和最佳实践的资源。
740 2
|
机器学习/深度学习 数据采集 算法
Python机器学习库scikit-learn在Anaconda中的配置
Python机器学习库scikit-learn在Anaconda中的配置
347 1
|
机器学习/深度学习 人工智能 编解码
VideoMAE:简单高效的视频自监督预训练新范式|NeurIPS 2022(2)
VideoMAE:简单高效的视频自监督预训练新范式|NeurIPS 2022
652 0