Ilija Radosavovic等作者

超越EfficientNet,GPU上加速5倍,何恺明组CVPR 2020论文提出新型网络设计范式

近日,何恺明大神组又发了一篇新论文,提出了一种新的网络设计范式。与以往研究不同,他们没有专注于设计单个网络实例,而是设计出了参数化网络群的网络设计空间。这种新的网络设计范式综合了手工设计网络和神经架构搜索(NAS)的优点。在类似的条件下,他们设计出的网络超越了当前表现最佳的 EfficientNet 模型,在 GPU 上实现了 5 倍的加速。目前,该论文已被 CVPR 2020 接收。

论文链接:https://arxiv.org/pdf/2003.13678.pdf

引言

尽管神经架构搜索(Neural Architecture Search,NAS)的有效性已经得到了证明,但其范式依然存在限制。搜索结果往往是仅仅符合特定设置(如硬件平台)的单个网络实例。这在某些情况下足以但却不能帮助我们发掘出那些能够加深理解且泛化到新设置的网络设计准则。总之,我们需要创建一些易于理解、继承和泛化的简单模型。

在本文中,包括何恺明在内的几位 FAIR 研究者提出了一种新型网络设计范式,它能够充分结合手工设计和神经架构搜索的优势。他们不再将注意力放在单个网络实例的设计上,而是设计出了参数化网络群的设计空间。

既像手工设计一样,研究者追求可解释性,并且旨在发现通用设计准则以描述那些结构简单、运行良好且不同设置下均能适用的网络。又像神经架构搜索一样,研究者充分利用半自动化流程来帮助实现这些目标。

如下图 1 所示,研究者所采取的整体策略是渐进式地设计原始的、相对不受约束的简化版设计空间,同时保持或提升设计空间的质量。整体流程与手动设计类似,但提升到了数量级(population level),并且以网格设计空间的分布估计作为依据。

设计空间的设计示意图。

两个设计空间设计:AnyNet 和 RegNet

作为新型网络设计范式的实验平台,研究者的重点放在了探索网络结构(如宽度、深度、群组等)上,并假定标准模型包括 VGG、ResNet 和 ResNeXt。

具体而言,研究者首先创建了一个相对不受约束的设计空间,称之为 AnyNet。在这种设计空间中,宽度和深度可以实现跨阶段的自由改变。然后,他们通过人机回圈(human-in-the-loop)方法创建了一个由简单「规则」网络组成的低维设计空间,称之为 RegNet。RegNet 设计空间的核心原理很简单:各个阶段的宽度和深度由量化线性函数决定。与 AnyNet 相比,RegNet 设计空间的模型更简单、更容易解释以及更加浓缩的好模型。

通过在 ImageNet 数据集上使用单个网络块类型,研究者以一种低计算量、少迭代次数的方式设计了 RegNet 设计空间,然后验证了 RegNetS 设计空间可以泛化到更大的计算机制、调度长度(schedule length)和网络块类型。此外,设计空间设计的一大重要特性是它的解释性更强,并且可以使我们学到一些深刻见解。

通过分析,研究者得到一个有趣的发现,RegNet 设计空间不符合当前网络设计惯例。举例而言,他们发现,最佳模型的深度在不同的计算机制下依然保持稳定,并且没有用到瓶颈或反向瓶颈。

实验结果:较标准 ResNe(X)t 和 EfficientNet 均有显著提升

如下表 2 所示,研究者对 top RegNet 模型与现有网络在不同设置下的性能进行了对比。结果发现,RegNet 模型在移动机制下非常有效。他们希望这些简单的模型可以作为今后研究中的强大基线。

表 2:移动机制下 RegNet 模型与现有网络的性能对比。

如下表 3 所示,在所有度量指标上,RegNet 模型都较标准 ResNe(X)t 模型有了显著的性能提升。研究者特别强调了在固定激活函数上的性能提升,这是因为激活函数的数量能够对 GPU 等加速器上的运行时产生极大的影响。

表 3:RegNet 模型与标准 ResNe(X)t 模型的性能对比。

如下表 4 所示,研究者对不同计算机制下 RegNet 模型和 SOTA EfficientNet 模型进行了对比。结果显示,在类似训练设置和 flop 下,RegNet 模型优于 EfficientNet 模型,并且 GPU 上的速度提升 5 倍。此外,他们还测试了模型在 ImageNetV2 上的泛化能力。

表 4:在标准训练流程下,RegNet 模型与 SOTA EfficientNet 模型的对比。

最后,研究者注意到,网络结构是人们可以想到的形式最简单的设计空间设计。将注意力放在设计更丰富的设计空间上(如包含运运算符),则可能创建出更好的网络。但需记住一点,网络结构或许依然是此类设计空间的核心组件。

设计空间设计

AnyNet 设计空间

AnyNet 设计空间的基本基本网络设计非常简单。给定一个输入图像,一个包含简单主干的网络,然后是执行大部分计算的网络主体,最后是预测输出类别的网络头(见下图 3a)。研究者保持主干和头固定并尽可能简单。他们关注网络主体的结构,这是决定网络计算量和准确度的核心。

图 3:本文设计空间中模型的一般网络结构。

网络主体由 4 个阶段(stage)组成,运行时分辨率逐渐降低(见图 3b)。每个阶段由一系列相同的块组成(见图 3c)。

总的来说,对于每个阶段 i,自由度包括块的数量 d_i、块的宽度 w_i 和其他块参数。虽然总体结构很简单,但 AnyNet 设计空间中可能存在的网络总数是巨大的。

此项研究中的实验大多使用包含分组卷积的标准残差 bottleneck 块,如下图 4 所示。研究者将其称之为 X block,构建在其上的 AnyNet 设计空间就被称为 AnyNetX。虽然 X block 非常简单,但结果显示,它在网络结构得到优化时非常有效。

图 4:X block 基于标准残差 bottleneck 块。

在 AnyNetX 上,研究者的目的是:1)简化设计空间的结构;2)提高设计空间的可解释性;3)提高或保持设计空间质量;4)保持设计空间中的模型多样性。

现在将上述方法应用到 AnyNetX 设计空间中。

研究者将起初不受约束的 AnyNetX 设计空间命名为 AnyNetXA。

首先,他们测试了 AnyNetXA 设计空间的所有阶段 i 的共享 bottleneck 比例 b_i = b,并将得到的设计空间称为 AnyNetXB。

与之前一样,他们在相同的设置下从 AnyNetXB 采样并训练了 500 个模型。如图 5(左)所示,AnyNetXA 和 AnyNetXB 的 EDF 在平均情况和最佳情况下实际上是相同的。这表示在耦合 b_i 时没有准确度损失。除了更简单之外,AnyNetXB 更易于分析,参见图 5(右侧)。

第二个改进步骤紧挨着第一个。从 AnyNetXB 开始,研究者为所有阶段使用共享的组宽度 g_i = g 来获得 AnyNetXC。

与前面一样,EDF 几乎没有变化,请参见图 5(中)。总的来说,AnyNetXC 比 AnyNetXA 少了 6 个自由度,设计空间大小减少了近 4 个数量级。有趣的是,他们发现 g > 1 是最好的。

接下来,他们研究了 AnyNetXC 中良好和不好的网络的典型网络结构。一种模式出现了:良好的网络具有不断增长的宽度。研究者测试了 w_i+1≥w_i 的设计原则,并将此约束下的设计空间称为 AnyNetXD。在图 7(左)中可以看到这极大地改进了 EDF。

在进一步检验多个模型后,研究者观察到另一个有趣的趋势。除了阶段宽度 w_i 随 i 增加外,对于最佳模型,阶段深度 d_i 也同样趋向于增加,尽管不一定是在最后阶段。

在图 7(右)中,研究者测试了一个设计空间变体 AnyNetXE,其中 d_i+1≥d_i,并看到它的结果也得到了改善。最后,他们注意到对于 w_i 和 d_i 的约束使设计空间减少了 4!,与 AnyNetXA 相比累计减少了 O(10^7)。

RegNet 设计空间

经过一系列的设计步骤,研究者得到了一个简化的设计空间,它只包含名为 RegNet 的常规网络结构。

RegNetX 的误差 EDF 见图 9(左)。在维护最佳模型的同时,RegNetX 中的模型在平均误差方面要优于 AnyNetX。如图 9(中)所示,研究者测试了两个进一步的简化。首先,使用 w_m = 2(两个阶段之间增加一倍的宽度)可以稍微改进 EDF,但是研究者注意到使用 w_m≥2 的性能更好。其次,他们进一步测试设置 w_0 = w_a,将线性参数化简化为 u_j = w_a·(j + 1)。有趣的是,这样做的效果更好。然而,为了保持模型的多样性,研究者没有施加任何限制。最后,如图 9(右)所示,研究者展示了 RegNetX 的随机搜索效率要高得多,只搜索 32 个随机模型就可能得到好的模型。

下表 1 显示了设计空间大小的大致情况(对于 RegNet,研究者通过量化其连续参数来估计大小)。在设计 RegNetX 时,他们将原始 AnyNetX 设计空间从 16 个维度缩减为 6 个维度,大小缩减接近 10 个数量级。但是,研究者注意到,RegNet 仍然包含各种各样的模型,可以针对各种设置进行调优。

设计空间泛化

开发团队仅在 single block 的类型中以低计算量,low-epoch 的训练环境中设计 RegNet 设计空间。但是,其本质并不是仅仅为单一环境去设计 RegNet,目的是探索可以覆盖至新型网络设计的一般原理。

如下图,在更高的 flops、epochs、5-stage 网络以及各类 block types 下,将 RegNetX 的设计空间与 AnyNetXA 和 AnyNetXE 进行了对比。

在所有情况下,设计空间的对比顺序都较为一致,RegNetX > AnyNetXE > AnyNetXA。换句话说,就目前为止看不到任何过拟合的迹象,也因此证明了 RegNet 是可以泛化至各类新设置中去。同时,5-stage 的结果表明,RegNet 的常规结构可以泛化至更多的 Stages 中,而其中的 AnyNetXA 也会具有更多的自由度。

作者信息

这篇论文的作者共有 5 位,均来自 Facebook AI Research(FAIR)。

其中,论文一作 Ilija Radosavovic 现于伦敦帝国理工学院任本科助教,同时本人也是帝国理工 CS 专业研究生毕业,此前在 Facebook 实习。

Raj Prateek Kosaraju:双硕士学位,毕业于佐治亚理工及斯坦福,现担任 FAIR 研究工程师。

Ross Girshick:UC Berkeley 博士后,现也就职于 FAIR,主要研究视觉感知以及视觉推理方向。

Kaiming He:何恺明大神在此就不赘述了,第一篇论文「Single ImageHaze Removalusing Dark Channel Prior」就被 CVPR 选为年度最佳论文。此外,机器之心也有过大神相关的报道解读,不熟悉的朋友可以翻看历史记录自行复习。

Piotr Dollar:加州大学圣迭戈校博士,FAIR 的 Research Manager,此前在微软也是从事相关方向的研究。

理论CVPR 2020神经架构搜索NAS何恺明
1
相关数据
微软机构

微软是美国一家跨国计算机科技公司,以研发、制造、授权和提供广泛的计算机软件服务为主。总部位于美国华盛顿州的雷德蒙德,最为著名和畅销的产品为Microsoft Windows操作系统和Microsoft Office办公室软件,以及Xbox的游戏业务。微软是美国《财富》杂志2015年评选的世界500强企业排行榜中的第95名。

https://www.microsoft.com/en-us/about
何恺明人物

Facebook AI Research研究科学家。Residual Net提出者。

激活函数技术

在 计算网络中, 一个节点的激活函数定义了该节点在给定的输入或输入的集合下的输出。标准的计算机芯片电路可以看作是根据输入得到"开"(1)或"关"(0)输出的数字网络激活函数。这与神经网络中的线性感知机的行为类似。 一种函数(例如 ReLU 或 S 型函数),用于对上一层的所有输入求加权和,然后生成一个输出值(通常为非线性值),并将其传递给下一层。

感知技术

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

调度技术

调度在计算机中是分配工作所需资源的方法。资源可以指虚拟的计算资源,如线程、进程或数据流;也可以指硬件资源,如处理器、网络连接或扩展卡。 进行调度工作的程序叫做调度器。调度器通常的实现使得所有计算资源都处于忙碌状态,允许多位用户有效地同时共享系统资源,或达到指定的服务质量。 see planning for more details

VGG技术

2014年,牛津大学提出了另一种深度卷积网络VGG-Net,它相比于AlexNet有更小的卷积核和更深的层级。AlexNet前面几层用了11×11和5×5的卷积核以在图像上获取更大的感受野,而VGG采用更小的卷积核与更深的网络提升参数效率。VGG-Net 的泛化性能较好,常用于图像特征的抽取目标检测候选框生成等。VGG最大的问题就在于参数数量,VGG-19基本上是参数量最多的卷积网络架构。VGG-Net的参数主要出现在后面两个全连接层,每一层都有4096个神经元,可想而至这之间的参数会有多么庞大。

参数技术

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

过拟合技术

过拟合是指为了得到一致假设而使假设变得过度严格。避免过拟合是分类器设计中的一个核心任务。通常采用增大数据量和测试样本集的方法对分类器性能进行评价。

随机搜索技术

机器之心机构

机器之心,成立于2014年,是国内最具影响力、最专业、唯一用于国际品牌的人工智能信息服务与产业服务平台。目前机器之心已经建立起涵盖媒体、数据、活动、研究及咨询、线下物理空间于一体的业务体系,为各类人工智能从业者提供综合信息服务和产业服务。

https://www.jiqizhixin.com/
量化技术

深度学习中的量化是指,用低位宽数字的神经网络近似使用了浮点数的神经网络的过程。

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