单CPU处理1s视频仅需37ms、GPU仅需10ms,谷歌提出TVN视频架构

选自arXiv

作者:AJ Piergiovanni等机器之心编译参与:魔王、杜伟

谷歌机器人团队利用进化算法,获得低计算成本、高性能的视频网络架构 TVN,该网络运行高效,速度可达之前视频模型的 100 倍。

视频理解是计算机视觉领域中的重要问题,它有很多应用,如视频自动标注、行为识别和机器人感知。视频理解对自动智能体在现实世界中的应用有重大影响,目前它仍是一道难题。现有的解决方案计算成本高昂,最快速的算法需要在强大的 GPU 上运行才能处理超过 0.5 秒的视频片段。

为了解决该问题,谷歌机器人团队提出使用进化算法,自动设计出以原来计算成本的一部分提供相当性能的网络(即低计算成本、高性能)。具体来说,谷歌研究者提出了一种为视频理解任务设计「微」神经网络(tiny neural network)族的通用方法。
论文链接:https://arxiv.org/abs/1910.06961v1

这些微神经网络可实现相当高的准确率,且运行高效,可实时或者以更快的速度运行。它们在一块 CPU 上处理约 1 秒的视频片段需要 37-100 ms,在一块 GPU 上仅需 10 ms,速度是当前模型的 100 倍(见下图 1、2)。研究者将这些网络称为 Tiny Video Networks (TVN),因为此类网络仅需要极小的运行时,这在视频模型中尚属首例。

单CPU处理1s视频仅需37ms、GPU仅需10ms,谷歌提出TVN视频架构

图 1:TVN 与之前方法的性能相当,但它在 CPU 上处理一个视频仅需 37 ms,在 GPU 上所需时间为 10 ms。TVN 的速度是当前视频模型的 100 倍,如 (2+1)D ResNet-101。

单CPU处理1s视频仅需37ms、GPU仅需10ms,谷歌提出TVN视频架构

图 2:TVN 和主流 (2+1)D 视频理解模型在 Moments-in-Time (MiT) 数据集上的运行时和模型准确率对比情况。

之前的方法为什么那么慢?

视频理解是非常活跃的研究领域,存在大量成功的方法。架构搜索是新兴领域,近期也出现很多方法,其中大部分面向图像和语言理解领域。这些之前的方法中没有一个可为视频理解领域构建高效架构。其主要原因在于,视频的内容量大,需要更多处理,而架构搜索是时间密集过程,因此将架构搜索应用于视频领域需要费很大功夫,且在很多情况下计算成本高昂。

Tiny Video Network 为什么那么高效?

谷歌的这项研究解决了上文提到的两个问题,他们提出的新方法能够输出实时视频架构,从而实现高效搜索,无需过多计算资源。此外,如此快速的网络也为视频理解在现实生活应用(如在线机器人系统、手机等)中的部署和科研开发提供了机会。

对于视频理解领域而言,如此高效的网络前所未见,因为视频包含的内容远远多于图像,且包含很多耗费算力的元素。这使得优化视频模型成为难题,之前的研究没有找到准确率和运行时均得到优化的小型神经架构。

该研究的贡献如下:

  • 首个学习视频高效网络(TVN)的方法。TVN 是已知最快速的视频网络,在 CPU 和 GPU 上的运行速度均优于实时速度;
  • 架构搜索方法不仅解决了视频处理问题,同时能够输出快速准确的模型;
  • 微模型进一步扩展后可得到最快速模型,其性能堪比当前最优模型。

该研究学得的模型架构 TVN 与典型的视频架构不同,前者的卷积层更少;TVN 偏好轻量级元素,如 2D 池化、门控层、挤压和激励层(squeeze-and-excitation layer)。与之相反,现有的视频理解模型通常包含计算密集层,如 3D 卷积。有趣的是,TVN 通常不倾向于使用流行的非局部模块(non-local block module,Wang et al. 2018),因为该模块计算成本高且所获得的性能低。下图 3 为 TVN 架构的示例:

单CPU处理1s视频仅需37ms、GPU仅需10ms,谷歌提出TVN视频架构

图 3:使用架构进化方法得到的 TVN 示例,它包含多个具备不同配置的模块。

此外,该方法使得以低成本探索视频架构成为可能,这也表明未来的视频架构工作会更加高效,计算负担也会更小。

研究者在四个流行的视频理解数据集上进行了实验,它们分别是:Moments in time 数据集、HMDB 数据集、Charades 数据集和 MLB-YouTube 数据集。该研究提出的网络在这四个数据集上均取得了堪比(或稍低于)当前最优模型的性能,但前者的运行时仅为后者的一部分。上图 2 展示了 TVN 的准确率-运行时曲线,在该区域内没有其他模型的一席之地。

Tiny Video Network 的技术细节

研究者没有使用手动设计架构的方式,而是在巨大的搜索空间内执行架构搜索,实现自动架构设计。

研究者搜索输入分辨率的最优组合,包括空间(宽高)和时间(帧数)、层数、层类型(如池化、卷积等),及其配置(卷积核大小、步幅等)。他们使用进化算法,因为该算法可以执行并行评估,允许群体中多个个体网络发生突变,且能够使用不可微目标函数高效探索不规则搜索空间,比如运行时。

为了学习新的高效视频架构,研究者最大化以下公式,其中输入为定义网络架构的变量/参数集。N 表示网络配置,θ 表示网络的可学习参数(|θ| 表示网络中的参数数量),P 是控制网络最大规模的超参数。R(N_θ) 计算网络在设备上的运行时,其中 N 是网络,θ是网络权重值,R 是最大期望计算运行时。

单CPU处理1s视频仅需37ms、GPU仅需10ms,谷歌提出TVN视频架构

其中,F 是适应度函数。在此案例中,F 衡量训练模型在验证集上的准确率。

研究者通过进化搜索来优化公式 1。注意,由于运行时和参数量的约束,该函数不可微。尽管一些研究尝试将运行时变为可微操作,但这需要估计每个操作在目标设备上的运行时。为简单起见,谷歌研究者选择使用进化算法,因为它可以轻松适配不同设备,并为参数量(如模型大小)添加约束,这对于移动应用来说尤为重要。此外,搜索空间设计好后,其他超参数无法调整,如学习率或损失缩放因子。

在实验部分我们可以看到,进化算法发现了非常高效、准确的架构。注意,由于搜索中考虑的每个架构都很高效,因此搜索本身的计算成本低于其他神经架构搜索方法。

进化方法

研究者使用具备离散突变算子的锦标赛选择进化算法(tournament selection evolutionary algorithm)作为搜索方法。

由于搜索空间很大,研究者首先生成 200 个随机网络,其中一部分性能很差。在对这些网络进行评估后,他们遵循锦标赛选择算法,从目前的 200 个网络中随机选择 50 个,选取其中性能最好的一个作为「母体」(parent)。然后随机改变该网络的一部分,从而对该网络应用离散突变运算(discrete mutation operaton)。

突变

突变运算仅随机选取了网络的一部分并进行随机改变。它可以是输入分辨率、模块数,或者模块内的层配置。

对新网络进行评估后,将其添加到当前网络群体中,删除其中性能最差的一个。将这一过程重复 1000 次。每个模型经历了 10000 次迭代训练,由于速度很快,因此平均训练时间为大约 1.5 小时。使用并行训练后,搜索可在一天内完成。

实验

研究者实施了以下实验:

在 4 个数据集上对比 TVN 模型和当前最优结果。注意,之前的视频理解工作很少涉及算法运行时,因此研究者额外添加了当前基线方法及其运行时。对搜索空间添加不同约束,得到具备不同性能和运行时的 TVN。研究者尝试扩展 TVN 以提升性能,同时维持原有的速度。

下表 1、2、3、4 分别展示了 TVN 在四个数据集上的性能。

单CPU处理1s视频仅需37ms、GPU仅需10ms,谷歌提出TVN视频架构

表 1:TVN 和基线模型 (2+1)D ResNets、当前最优结果 † (Monfort et al. 2018) 在 Moments-in-time 数据集上的性能对比情况。TVN 以部分计算成本实现了相似的性能。

单CPU处理1s视频仅需37ms、GPU仅需10ms,谷歌提出TVN视频架构

表 2:TVN 与当前最优模型在 MLBYouTube (RGB-only) 数据集上的性能对比情况。

单CPU处理1s视频仅需37ms、GPU仅需10ms,谷歌提出TVN视频架构

表 3:TVN 与当前最优模型在 Charades 数据集上的性能对比情况。

单CPU处理1s视频仅需37ms、GPU仅需10ms,谷歌提出TVN视频架构

表 4:TVN 与当前最优结果在 HMDB (RGB-only) 数据集上的性能对比情况。

下图 4 展示了多个模型的运行时和参数量对比情况。

单CPU处理1s视频仅需37ms、GPU仅需10ms,谷歌提出TVN视频架构

图 4:TVN 和其他模型的运行时(上)和模型参数量(下)对比情况。

为了确定时间信息对性能的影响,研究者将 TVN-2 所用的帧数从 4 增加到 8 和 16。结果见下表 5:

单CPU处理1s视频仅需37ms、GPU仅需10ms,谷歌提出TVN视频架构

研究者还发现,进化搜索比随机搜索更有效(见下图 5),因为该案例中的大型搜索空间包含很多性能差的网络。

单CPU处理1s视频仅需37ms、GPU仅需10ms,谷歌提出TVN视频架构

图 5:对视频网络搜索空间执行随机搜索 vs 进化搜索。研究发现,进化搜索能够更快地得到更好的模型。

研究者扩展了 TVN,进一步展示了模型性能。下表 6 对比了原版 TVN-1 和具备更高空间分辨率、更大宽度(每一层中的卷积核大小)、更大深度(每个模块的重复次数)的 TVN 模型的性能。

单CPU处理1s视频仅需37ms、GPU仅需10ms,谷歌提出TVN视频架构

表 6:在 Moments in Time 数据集上扩展 TVN 模型后得到的不同方法。

基于 EfficientNet 的研究发现,研究者从各个维度扩展了 TVN-1,如输入分辨率、宽度和深度。下表 7 对比了扩展后的网络和当前最优结果。TVN-1 EN 即为扩展后的 TVN-1 模型,它能够获得与规模更大模型相当的性能,且运行非常高效。

单CPU处理1s视频仅需37ms、GPU仅需10ms,谷歌提出TVN视频架构

表 7:基于 EfficientNet 系数,在 MiT 数据集上扩展 TVN-1 模型,得到 TVN-1 EN,并与当前最优模型进行对比。

本文为机器之心编译,转载请联系本公众号获得授权。
✄------------------------------------------------加入机器之心(全职记者 / 实习生):[email protected]投稿或寻求报道:[email protected]广告 & 商务合作:[email protected]

相关推荐