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


本文转载自机器之心。

选自谷歌博客

者:Michael S. Ryoo、AJ Piergiovanni

参与:王子嘉、Geek AI

近年来,针对图像任务的神经网络架构搜索(NAS)逐渐成为了各大研究机构和业界关注的「明星技术」。然而,针对视频理解的神经网络架构搜索却由于其在时空上的复杂性而鲜为研究人员所涉及。

近日,来自谷歌机器人的研究科学家 Michael S. Ryoo 和实习研究员 AJ Piergiovanni 连续发文介绍了他们在视频理解网络 NAS 方面的工作,对于该领域的研究具有很强的引领作用。

视频理解是一个极具挑战性的问题。因为视频包含时空(Spatio-temporal)数据,所以需要通过特征表征同时提取其静态表观信息和画面动态信息。这不仅对于自动理解视频的语义内容(如网络视频分类或体育活动识别)是必不可少的,而且对于机器人的感知和学习也十分关键。与人类相类似,机器人摄像头的输入一般很少是对世界的「静态快照」,而是连续的视频。

现在的深度学习模型的性能在很大程度上依赖于它们的网络架构。用于处理视频的卷积神经网络(CNN)一般是手动地将人们熟知的二维架构(如 Inception 和 ResNet)扩展成三维架构,或者是通过精心设计一种将静态表观信息和画面动态信息融合在一起的双流 CNN 架构(two-stream CNN)而实现的。然而,设计一个能够充分利用视频中的时空信息的理想视频架构仍然是一个有待探索的问题。

对于图像任务来说,尽管用于探索性能优秀的网络架构的神经架构搜索(NAS)方案(如 Zoph 等人发表的「Using Machine Learning to Explore Neural Network Architecture」,与 Real 等人发表的「Using Evolutionary AutoML to Discover Neural Network Architectures」)已经被广为研究,但是用于视频任务的神经网络架构的自动优化方案(machine-optimized neural architectures)尚未被研究。用于视频的 CNN 通常需要大量的计算和内存,因此设计一种既能表征其独特的属性,又能进行有效搜索的方法非常困难。

为了应对这些挑战,我们针对更理想的视频理解网络架构的自动搜索进行了一系列研究。

我们展示了三种不同的神经架构演化算法:学习层及其模块配置的 EvaNet,学习多流连接的 AssembleNet,以及构建计算高效的简洁网络的 TinyVideoNet。

我们开发的视频架构在多个公共数据集上的性能明显优于现有的手动设计的模型,并证明了我们的网络运行时间可减少至 1/10 至 1/100。

EvaNet:第一批进化的视频结构

我们在 ICCV 2019 上提出了「Evolving Space-Time Neural Architectures for Videos」(EvaNet),这是对于视频神经网络架构搜索设计的首次尝试。

  • 论文链接:https://arxiv.org/abs/1811.10636;

  • GitHub 链接:https://github.com/goog-research/goog-research/tree/master/evanet

EvaNet 是一个模块级的架构搜索方法,主要关注查找时空卷积层的类型以及它们的最佳串行或并行计算配置。本算法使用带有突变操作符的演化算法进行搜索,迭代地更新结构的「种群」。这使得对搜索空间的并行化的、更高效的探索成为了可能,也是视频架构搜索考虑不同时空层及其组合的必要条件。EvaNet 中开发了多个模块(在网络中的不同位置)来生成不同的架构。

我们的实验结果证实了通过演化异构模块获得的此类视频 CNN 架构的优点。该方法发现,由多个并行层组成的重要模块效率通常是最高的,因为它们比手动设计的模块更快,性能更好。

另一个值得注意的方面是,由于使用了演化策略,我们获得了许多性能相似但结构各异的架构,并且无需进行额外的计算。对这些模型进行集成可以进一步提高他们的性能。由于它们的并行特性,即使是集成模型也比(2 + 1)维的 ResNet 这样的标准视频网络在计算上更加高效。

EvaNet 产生的不同架构示例。每个大彩色框和小的彩色框都代表一个网络层,框的颜色代表其类型:蓝色代表三维卷积,橙色代表(2 + 1)维卷积,绿色代表 iTGM,灰色代表最大池化,紫色代表平均,粉色代表 1x1 的卷积。各个层一般会被分组成模块(大一点的框)。每个框中的数字表示卷积核(filter)的大小。

AssembleNet:建立更强更好的(多流)模型

在论文「AssembleNet: Searching for Multi-Stream Neural Connectivity in Video Architectures (https://arxiv.org/abs/1905.13209)」中,我们研究了一种将具有不同输入模态(如 RGB 和光流)的不同的子网络和时间分辨率融合在一起的新方法。

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

AssembleNet 是一系列可学习的网络架构,它们提供了一种学习跨输入模态的特征表征之间「连通性」的通用方法,同时针对目标任务进行了优化。

我们提出了一种通用方法,可以将各种形式的多流 CNN 表征为有向图,并结合一个高效的演化算法来探索高级网络连接。这样做是为了从视频中学习到更好的关于静态表观和动态画面视觉线索的特征表征。

与以前使用后期融合或固定中间融合的手工设计的双流模型不同,AssembleNet 可以演化出很多过度连接、多流且多分辨率的架构,并通过对连接权重的学习引导突变。我们正首次研究具有各种中间连接的四流架构——每个 RGB 和光流都有 2 个流,每个流具有不同的时间分辨率。

下图展示了一个 AssembleNet 架构示例,它是通过对一组随机初始化的多流架构进行 50 到 150 轮的演化发现的,我们在两个非常流行的视频识别数据集 Charades 和 Moments-in-Time(MiT) 上测试了 AssembleNet。AssembleNet 在 MiT 上的性能位列第一,准确率超过 34%。在 Charades 中它的表现更让人吃惊,平均准确率(mAP)达到了 58.6%,而之前为人所知的最佳结果是 42.5% 和 45.2%。

使用 MiT 数据集进行演化的代表性 AssembleNet 模型。一个节点对应一个时空卷积层模块,每条边代表它们的连通性。较暗的边缘意味着较强的连接。AssembleNet 是一组可学习的多流架构,针对特定目标任务进行优化。

在 Charades(左)和 MiT(右)数据集上,将 AssembleNet 与最先进的手动设计的模型进行了比较。AssembleNet-50 与 AssembleNet-101 的参数量和双流 ResNet-50 与 ResNet-101 相当。

Tiny Video Networks:最快的视频理解网络

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

为了使视频 CNN 模型在现实世界的设备上(如机器人所需的设备)上能够正常运行,必须进行实时、高效的计算。但是,要在视频识别任务上取得目前最先进的结果,需要非常大的网络,通常具有数十到数百个卷积层,这些卷积层将被应用于大量的输入帧上。这也就导致了这些网络的运行时间通常很长,对长度为 1 秒的视频片段进行识别至少需要在现在的 GPU 上运行 500+ ms 以上的时间,在 CPU 上则至少需要 2000+ ms。

在 Tiny Video Networks 中,我们通过自动设计的网络取得了不错的性能,而其计算成本却大大降低。

我们的 Tiny Video Networks(TinyVideoNets)有很高的准确率和运行效率,能够以实时或更高的速度高效运行。要想识别大约 1 秒钟的视频片段,在 CPU 上只需要运行 37 至 100 ms,在 GPU 上只需要运行 10 ms,比以前手动设计的网络快了数百倍。

我们通过在架构的演化过程中明确定义模型运行时间,并限制算法探索的搜索空间(同时包括空间和时间分辨率以及通道大小),大大减少了计算量,从而实现了性能的提升。

下图说明了 TinyVideoNet 发现的两种简单但非常有效的网络架构。有趣的是,本算法学习到的模型架构比经典的视频架构的卷积层数更少:因为 Tiny Video Networks 更倾向于轻量级元素,例如二维池化,门控层和挤压激发(squeeze-and-excitation)层。此外,TinyVideoNet 能够同时优化参数和运行时间,以提供可用于未来网络探索的高效网络。

经过演化得到的 TinyVideoNet(TVN)架构,可以最大限度地提高识别性能,同时将计算时间保持在限制时间之内。例如,TVN-1(上面一列)在 CPU 上的运行时间为 37 毫秒,在 GPU 上的运行时间为 10 毫秒。TVN-2(下面一列)在 CPU 上的运行时间为 65 毫秒,在 GPU 上的运行时间为 13 毫秒。

左图是 TinyVideoNet 模型与以前的模型的 CPU 运行时间对比图,右图是 TinyVideoNet 模型与(2+1)维 ResNet 模型关于运行时间和模型准确率的对比图。值得注意的是,TinyVideoNets 的点只占了这个时间—准确率空间的一小部分(这部分空间中不存在其它模型),也就是说 TinyVideoNets 可以非常迅速地找到准确率很高的架构。

结语

据我们所知,这是关于视频理解神经网络架构搜索第一项研究。我们用新型演化算法生成的视频架构在公共数据集上的表现要远远超过最著名的手动设计的 CNN 架构。我们还证明了通过学习得到计算效率高的视频模型(TinyVideoNets)是可行的。这项研究开辟了新的研究方向,并说明自动演化的 CNN 在视频理解任务中有很好的研究前景。

原文链接:https://ai.googleblog.com/2019/10/video-architecture-search.html


视频理解学习群

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

(请务必注明:视频):

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

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


长按关注我爱计算机视觉

比手工模型快10~100倍,谷歌揭秘视频NAS三大法宝相关推荐

  1. 量子计算机,开启中国速度比人类历史上第一台电子管计算机和晶体管计算机运行速度快10—100倍...

    原标题:量子计算机,开启中国速度比人类历史上第一台电子管计算机和晶体管计算机运行速度快10-100倍 3日,科研人员在中科院量子信息和量子科技创新研究院上海实验室内调整操作台上的激光干扰器.新华社记者 ...

  2. spark写出分布式的训练算法_利用 Spark 和 scikit-learn 将你的模型训练加快 100 倍...

    在 Ibotta,我们训练了许多机器学习模型.这些模型为我们的推荐系统.搜索引擎.定价优化引擎.数据质量等提供动力.它们在与我们的移动应用程序交互时为数百万用户做出预测. 当我们使用 Spark 进行 ...

  3. TinyBERT搜索: 比BERT快10倍,小20倍

    关注上方"深度学习技术前沿",选择"星标公众号", 资源干货,第一时间送达! TinyBERT是谷歌开发的新模型,与传统BERT相比,它快10倍,小20倍,可在 ...

  4. 本科生新算法打败NeRF,不用神经网络照片也能动起来,提速100倍

    万万没想到,把照片变3D这件事,离了神经网络也是这般丝滑. 而在此之前,新视角合成这方面的"大牛",是近两年大火的NeRF(神经辐射场). 它是一个简单的全连接神经网络,使用2D图 ...

  5. 什么?Redis 的 QPS 是 MySQL 的 100 倍?

    前言 原来总听别人说 Redis 读写性能优越适合做缓存,而 MySQL 则不行,那么你有真正了解过他们的读写差距吗?小匠同样也有这个疑问,到底他们的性能差多少?于是就有了这篇文章. 测试环境配置 U ...

  6. 10年后6G将问世,速度有望比5G快100倍

    5G还未全面铺开,6G已"跃跃欲试". 前不久,华为内部员工社区平台"心声社区"刊登了该公司创始人任正非于本月上旬接受<经济学人>采访的纪要.在采访 ...

  7. seq2seq模型_推断速度达seq2seq模型的100倍,谷歌开源文本生成新方法LaserTagger

    使用 seq2seq 模型解决文本生成任务伴随着一些重大缺陷,谷歌研究人员提出新型文本生成方法 LaserTagger,旨在解决这些缺陷,提高文本生成的速度和效率. 选自arXiv,作者:Eric M ...

  8. 推断速度达seq2seq模型的100倍,谷歌开源文本生成新方法LaserTagger

    选自arXiv 作者:Eric Malmi等 机器之心编译 序列到序列(seq2seq)模型给机器翻译领域带来了巨大变革,并成为多种文本生成任务的首选工具,如文本摘要.句子融合和语法纠错.模型架构改进 ...

  9. 碾压谷歌量子霸权!中国量子计算原型机 九章 问世,比超级计算机快百万亿倍...

    量子优越性实验并不是一个一蹴而就的工作. " 作者 | 李帅飞 在量子计算领域,我国再次实现了里程碑式的重大突破! 12 月 4 日,中国科学技术大学宣布,该校中国科学技术大学潘建伟.陆朝阳 ...

最新文章

  1. xgboost重要参数2为主但不全要参照1
  2. LSTM还没「死」!
  3. 为什么WEB-INF外的jsp无法根据cookie享受国际化
  4. 【教女朋友学网络系列3】之手把手教她明白交换机的基本原理
  5. java-二分查找树的实现
  6. vue实现todo功能(一):搭建vue-webpack环境
  7. TCP为什么是四次挥手
  8. jar bat dos窗口 隐藏
  9. TCP/IP详解学习笔记(1)
  10. Eclipse 使用常见问题汇总
  11. Java 面向对象和封装
  12. [转载] 知乎日报接口
  13. 浏览器中的 HTTP 请求从发起到结束经历的所有阶段
  14. forEach(BiConsumer action)方法遍历Map集合
  15. 这15个网站,为设计师提供用不完的免费素材
  16. MATLAB调用ANSYS进行有限元分析
  17. spider_study 1
  18. 3月16日----3月20日一年级课程表
  19. Mac鼠标光标消失怎么办?苹果电脑鼠标指针不显示的解决方法
  20. Redis(五)Redis内存维护方案(过期策略及淘汰策略)

热门文章

  1. Docker学习三:Docker 数据管理
  2. 小程序【笔记001】框架和配置文件
  3. linux 驱动日志,Linux上的自由空间驱动的日志轮换?
  4. filepermission java,Java FilePermission getActions()方法与示例
  5. vnc远程无法关闭窗口_vnc远程画面不能控制,vnc远程画面控制不了是什么原因?原因详解...
  6. matlab求逆矩阵_MPU6050姿态解算2-欧拉角amp;旋转矩阵
  7. math库是python语言的数学模块_Python 数学模块(Math)
  8. 百科园c语言题库第八章南信大,C语言上机题库百科园第3章!南信大!.doc
  9. linux 查看emmc分区表_如何查看闪存类型?UFS与F2FS简易科普
  10. python 获取网页表格数据_python实战4获取tushare数据