近年来,针对图像任务的神经网络架构搜索(NAS)逐渐成为了各大研究机构和业界关注的「明星技术」。然而,针对视频理解的神经网络架构搜索却由于其在时空上的复杂性而鲜为研究人员所涉及。
近日,来自谷歌机器人的研究科学家MichaelS.Ryoo和实习研究员AJPiergiovanni连续发文介绍了他们在视频理解网络NAS方面的工作,对于该领域的研究具有很强的引领作用。
视频理解是一个极具挑战性的问题。因为视频包含时空(Spatio-temporal)数据,所以需要通过特征表征同时提取其静态表观信息和画面动态信息。这不仅对于自动理解视频的语义内容(如网络视频分类或体育活动识别)是必不可少的,而且对于机器人的感知和学习也十分关键。与人类相类似,机器人摄像头的输入一般很少是对世界的「静态快照」,而是连续的视频。
现在的深度学习模型的性能在很大程度上依赖于它们的网络架构。用于处理视频的卷积神经网络(CNN)一般是手动地将人们熟知的二维架构(如Inception和ResNet)扩展成三维架构,或者是通过精心设计一种将静态表观信息和画面动态信息融合在一起的双流CNN架构(two-streamCNN)而实现的。然而,设计一个能够充分利用视频中的时空信息的理想视频架构仍然是一个有待探索的问题。
对于图像任务来说,尽管用于探索性能优秀的网络架构的神经架构搜索(NAS)方案(如Zoph等人发表的「UsingMachineLearningtoExploreNeuralNetworkArchitecture」,与Real等人发表的「UsingEvolutionaryAutoMLtoDiscoverNeuralNetworkArchitectures」)已经被广为研究,但是用于视频任务的神经网络架构的自动优化方案(machine-optimizedneuralarchitectures)尚未被研究。用于视频的CNN通常需要大量的计算和内存,因此设计一种既能表征其独特的属性,又能进行有效搜索的方法非常困难。
为了应对这些挑战,我们针对更理想的视频理解网络架构的自动搜索进行了一系列研究。
我们展示了三种不同的神经架构演化算法:学习层及其模块配置的EvaNet,学习多流连接的AssembleNet,以及构建计算高效的简洁网络的TinyVideoNet。
我们开发的视频架构在多个公共数据集上的性能明显优于现有的手动设计的模型,并证明了我们的网络运行时间可减少至1/10至1/100。
EvaNet:第一批进化的视频结构
我们在ICCV2019上提出了「EvolvingSpace-TimeNeuralArchitecturesforVideos」(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:SearchingforMulti-StreamNeuralConnectivityinVideoArchitectures(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相当。
TinyVideoNetworks:最快的视频理解网络
论文链接:https://arxiv.org/abs/1910.06961
为了使视频CNN模型在现实世界的设备上(如机器人所需的设备)上能够正常运行,必须进行实时、高效的计算。但是,要在视频识别任务上取得目前最先进的结果,需要非常大的网络,通常具有数十到数百个卷积层,这些卷积层将被应用于大量的输入帧上。这也就导致了这些网络的运行时间通常很长,对长度为1秒的视频片段进行识别至少需要在现在的GPU上运行500+ms以上的时间,在CPU上则至少需要2000+ms。
在TinyVideoNetworks中,我们通过自动设计的网络取得了不错的性能,而其计算成本却大大降低。
我们的TinyVideoNetworks(TinyVideoNets)有很高的准确率和运行效率,能够以实时或更高的速度高效运行。要想识别大约1秒钟的视频片段,在CPU上只需要运行37至100ms,在GPU上只需要运行10ms,比以前手动设计的网络快了数百倍。
我们通过在架构的演化过程中明确定义模型运行时间,并限制算法探索的搜索空间(同时包括空间和时间分辨率以及通道大小),大大减少了计算量,从而实现了性能的提升。
下图说明了TinyVideoNet发现的两种简单但非常有效的网络架构。有趣的是,本算法学习到的模型架构比经典的视频架构的卷积层数更少:因为TinyVideoNetworks更倾向于轻量级元素,例如二维池化,门控层和挤压激发(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在视频理解任务中有很好的研究前景。