Michael S. Ryoo、AJ Piergiovanni作者王子嘉、Geek AI参与

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

近年来,针对图像任务的神经网络架构搜索(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

理论视频理解视频NAS谷歌
1
相关数据
深度学习技术

深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法,至今已有数种深度学习框架,如卷积神经网络和深度置信网络和递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。

池化技术

池化(Pooling)是卷积神经网络中的一个重要的概念,它实际上是一种形式的降采样。有多种不同形式的非线性池化函数,而其中“最大池化(Max pooling)”是最为常见的。它是将输入的图像划分为若干个矩形区域,对每个子区域输出最大值。直觉上,这种机制能够有效的原因在于,在发现一个特征之后,它的精确位置远不及它和其他特征的相对位置的关系重要。池化层会不断地减小数据的空间大小,因此参数的数量和计算量也会下降,这在一定程度上也控制了过拟合。通常来说,CNN的卷积层之间都会周期性地插入池化层。

权重技术

线性模型中特征的系数,或深度网络中的边。训练线性模型的目标是确定每个特征的理想权重。如果权重为 0,则相应的特征对模型来说没有任何贡献。

感知技术

知觉或感知是外界刺激作用于感官时,脑对外界的整体的看法和理解,为我们对外界的感官信息进行组织和解释。在认知科学中,也可看作一组程序,包括获取信息、理解信息、筛选信息、组织信息。与感觉不同,知觉反映的是由对象的各样属性及关系构成的整体。

参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

最大池化技术

最大池化(max-pooling)即取局部接受域中值最大的点。

神经网络技术

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

卷积神经网络技术

卷积神经网路(Convolutional Neural Network, CNN)是一种前馈神经网络,它的人工神经元可以响应一部分覆盖范围内的周围单元,对于大型图像处理有出色表现。卷积神经网路由一个或多个卷积层和顶端的全连通层(对应经典的神经网路)组成,同时也包括关联权重和池化层(pooling layer)。这一结构使得卷积神经网路能够利用输入数据的二维结构。与其他深度学习结构相比,卷积神经网路在图像和语音识别方面能够给出更好的结果。这一模型也可以使用反向传播算法进行训练。相比较其他深度、前馈神经网路,卷积神经网路需要考量的参数更少,使之成为一种颇具吸引力的深度学习结构。 卷积网络是一种专门用于处理具有已知的、网格状拓扑的数据的神经网络。例如时间序列数据,它可以被认为是以一定时间间隔采样的一维网格,又如图像数据,其可以被认为是二维像素网格。

准确率技术

分类模型的正确预测所占的比例。在多类别分类中,准确率的定义为:正确的预测数/样本总数。 在二元分类中,准确率的定义为:(真正例数+真负例数)/样本总数

活动识别技术

活动识别旨通过对代理人的行为和环境条件的一系列观察来识别一个或多个代理人的行为和目标。

推荐文章
暂无评论
暂无评论~