点击我爱计算机视觉标星,更快获取CVML新技术


本文转载自机器之心。

选自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),因为此类网络仅需要极小的运行时,这在视频模型中尚属首例。

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

图 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 架构的示例:

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

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

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

Tiny Video Network 的技术细节

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

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

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

其中,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 在四个数据集上的性能。

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

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

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

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

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

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

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

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

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

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

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

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

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


视频理解学习群

学习交流视频理解、视频分类技术,扫码添加CV君拉你入群,如已为CV君其他账号好友请直接私信,

(请务必注明:视频):

喜欢在QQ交流的童鞋可以加52CV官方QQ群:805388940。

(不会时时在线,如果没能及时通过还请见谅)


长按关注我爱计算机视觉

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

  1. 深入了解超线程、双核CPU、双CPU与单CPU的区别

    深入了解超线程.双核CPU.双CPU与单CPU的区别 目前服务器市场可以说是新产品新技术层出不穷,光是服务器的核心CPU除了主频等参数外,最让人不明白的就是所谓的双核,电视报纸广告上也是频繁刊登双核服 ...

  2. 抖音优质短视频脚本怎么写?只需三步

    一个优质的抖音知识短视频,会具备什么特点呢?从抖音热门视频数据反馈,需要具备创作和呈现 2 个方面,以及其中的 6 个条件.本文作者运用实际案例,对优质短视频的这些要点进行了分析,一起来看一下吧. 看 ...

  3. 关于单CPU,多CPU上的原子操作

    所谓原子操作,就是"不可中断的一个或一系列操作" . 硬件级的原子操作: 在单处理器系统(UniProcessor)中,能够在单条指令中完成的操作都可以认为是" 原子操作 ...

  4. [ 操作系统 ] 假定在单CPU条件下有下列要执行的作业,用一个执行时间图描述在采用非抢占优先级算法时执行这些作业的情况;对于上述算法,各个作业的周转时间是多少?平均周转时间是多少?

    假定在单CPU条件下有下列要执行的作业: 作业 到达时间 运行时间 优先级 1 0 10 2 2 1 4 3 3 2 3 5(高) (1)用一个执行时间图描述在采用非抢占优先级算法时执行这些作业的情况 ...

  5. 双CPU与单CPU有什么区别,有什么优势?

    前言:这里的单 和 双 cpu不是指 单核 与 双核的问题,这两者不是一样的概念.核心(Die)又称为内核,是CPU最重要的组成部分.CPU中心那块隆起的芯片就是核心,是由单晶硅以一定的生产工艺制造出 ...

  6. 计算机cpu性能过剩吗,选购电脑如何避免CPU性能过剩、显卡不够用?只需记住一个口诀...

    随着科技发展越来越快,电脑行业的更新换代也越来越快,尤其是当你是一个"游戏党"或者"设计师"的时候,对于电脑的要求就会非常高.不过在升级机器还有选购机器的时候, ...

  7. XMR下的单CPU算力图,可用作当前2021年CPU算力的参考排名

    闲来无事,用excel VBA爬了一下XMRig的CPU算力(序号即为多CPU下的排名),但是算力表只有多CPU和单线程算力表格,重新计算了单CPU的XMR算力,详见下图.

  8. hp 服务器双cpu 无显示,HP z600 用双CPU点不亮?请问要设置那儿?单CPU是可以点亮的。...

    您好,感谢您选择惠普产品. 这款笔记本支持双CPU使用的,BIOS中的硬件设置中不需要其他设置,添加后开机通电会自动识别使用的:若无法开机,可能是与使用的处理器类型有关,单CPU添加时最好添加与原CP ...

  9. youtube视频转载到西瓜视频的过期方案,仅供参考的方案,给大家的灵感和作用

    注意:这并不能直接或间接使用,不违反相关规定,这是一个过期的方案,目前已经不适用 init.py: # 主函数 from keyboard import*;from pyautogui import* ...

最新文章

  1. flex 读取外部txt文件时候出现中文乱码现象
  2. HMAC(2)哈希运算消息认证码HMAC
  3. 如何让 Flutter 应用更好地使用 SVG?
  4. Java黑皮书课后题第3章:*3.3(代数:求解2*2线性方程)编写程序,提示用户输入a、b、c、d、e和f,然后显示结果
  5. TensorFlow学习笔记(二十二) tensorflow数据读取方法总结
  6. 关于Java成员变量、局部变量、方法,在JVM的内存空间分配
  7. 什么是Hadoop,怎样学习Hadoop
  8. IE、Chrome、Firefox 三大浏览器对比
  9. [藏]常用的匹配正则表达式和实例
  10. PCB布线规则自学笔记
  11. uniapp 微信小程序 分片 断点续传 大文件上传
  12. 无法打开键,请验证您对该键拥有足够的访问权限
  13. 初识Centos7.5
  14. 玩转前端 Video 播放器
  15. 笔记本合上盖子就断网怎么办?
  16. 马云:不要买房了,未来房子如葱!10年后最便宜的是房子车子,而最贵的是…...
  17. 实验二+070+胡阳洋
  18. JAVA蘑菇西餐,蘑菇的二十二种西餐做法,简单易上手,让你品尝不一样的风味...
  19. php file_put_contents 根目录权限,关于php:file_put_contents权限被拒绝
  20. WiFi 破解连接方式

热门文章

  1. QT 5 1 0 MinGW 的安装及使用
  2. 《汇编语言》王爽—第五章实验三详解
  3. linux 7修改主机名重启后不生效_Linux 中改变主机名的 4 种方法 | Linux 中国
  4. mvc4 html.dropdownlist,ASP.NET MVC4中使用Html.DropDownListFor的方法示例
  5. 中考数学不准使用计算机,中考数学蒙题技巧
  6. linux 命令查看块设备,系统运维|用 Linux blkid 命令查找块设备详情
  7. 上海java 开发培训_上海十大java培训
  8. unity3d collider自动调整大小_3dmax室内模型导入Unity3d快速烘焙光照【2020】
  9. python 快速排序_python-快速排序的两种方法
  10. 获取数据库时间相差8小时_JAVA 程序展示时间与数据表保存的时间相差了13个小时...