前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >详解何恺明团队最新作品:源于Facebook AI的RegNet(附下载链接)

详解何恺明团队最新作品:源于Facebook AI的RegNet(附下载链接)

作者头像
计算机视觉研究院
发布2020-06-06 16:32:51
6140
发布2020-06-06 16:32:51
举报

算机视觉研究院专栏

作者:Edison_G

今天我们接着上一期RegNet继续分享,这期的分析主要理论较多,但是可以学习到很多网络设计的技巧和平时被我们忽略的技能,有兴趣的同学持续关注!

上次我们说到了AnyNet的设计空间,先回顾下:AnyNet设计空间。我们的重点是探索假定标准的固定网络块(例如,剩余瓶颈块)的神经网络结构。在我们的术语中,网络的结构包括一些元素,如块的数量(即网络深度)、块的宽度(即通道的数量)和其他块的参数(如瓶颈比率或组的宽度)。网络的结构决定了计算、参数和内存在整个网络计算图中的分布,是决定其准确性和效率的关键。

我们现在将这种方法应用于AnyNetX设计空间。

AnyNetXA

为了清晰起见,我们将最初的、不受约束的AnyNetX设计空间称为AnyNetXA。

AnyNetXB

我们首先测试AnyNetXA设计空间的所有阶段i的共享瓶颈比bi = b,并将得到的设计空间称为AnyNetXB。与之前一样,我们在相同的设置下从AnyNetXB取样和培训了500个模型。如下图(左)所示,AnyNetXA和AnyNetXB的edf在平均情况和最佳情况下实际上是相同的。这表示在耦合bi时没有精度损失。除了更简单之外,AnyNetXB更易于分析,参见下图(右侧)。

AnyNetXC

我们的第二个细化步骤紧跟着第一个步骤。从AnyNetXB开始,我们还为所有阶段使用共享的组宽度gi = g来获得AnyNetXC。与前面一样,EDFs几乎没有变化,请参见上图(中间)。

总的来说,AnyNetXC比AnyNetXA少了6个自由度,并且减少了近4个数量级的设计空间大小。有趣的是,我们发现g > 1是最好的(没有显示);我们将在后面对此进行更详细的分析。

AnyNetXD

接下来,我们将研究下图中AnyNetXC中好的和坏的网络的典型网络结构。

一种模式出现了:良好的网络具有不断增长的宽度。我们测试了wi+1≥wi的设计原则,并将此约束下的设计空间称为AnyNetXD。在下图(左)中,我们看到这极大地改进了EDF。稍后我们将讨论控制宽度的其他选项。

AnyNetXE

在进一步检查许多模型(未显示)后,我们观察到另一个有趣的趋势。除了阶段宽度wi随i增加外,对于最佳模型,阶段深度di也同样趋向于增加,尽管不一定是在最后阶段。尽管如此,在上图(右)中,我们测试了一个设计空间变体AnyNetXE,其中di+1≥di,并看到它也改善了结果。最后,我们注意到对wi和di的约束使设计空间减少了4!,与AnyNetXA相比O(107)的累积减少。

RegNet设计空间

为了进一步了解模型结构,我们在一个图中显示了来自AnyNetXE的最好的20个模型,见下图(左上)。对于每个模型,我们绘制每个块j的每块宽度wj,直到网络深度d(我们分别使用i和j来索引阶段和块)。

虽然在个别模型(灰色曲线)中存在显著的差异,但在总体上出现了一种模式。特别地,在相同的图中,我们显示了0≤j≤20时的wj = 48·(j+1)(实心黑色曲线,请注意y轴是对数的)。值得注意的是,这种琐碎的线性拟合似乎可以解释顶级模型网络宽度增长的总体趋势。然而,请注意,这个线性拟合为每个块分配了不同的宽度wj,而单个模型具有量化的宽度(分段常数函数):

要查看类似的模式是否适用于单个模型,我们需要一种策略来将一条线量化为分段常数函数。受AnyNetXD和AnyNetXE的启发,我们提出了以下方法。首先,我们引入一个块宽的线性参数化:

该参数化有三个参数:深度d、初始宽度w0 >和斜率wa > 0,并为每个区块j < d生成不同的区块宽度uj。为了量化uj,

我们可以将每个块的wj转换为我们的每个阶段的格式,只需计算具有恒定宽度的块的数量,即每个阶段i的块宽度wi = w0·w im,块数量di = P j 1[bsj e = i]。当只考虑四个阶段网络时,我们忽略了引起不同阶段数的参数组合。

上图就是RegNetX设计空间。

我们通过拟合来自AnyNetX的模型来测试这个参数化。特别地,在给定的模型中,我们通过设置网络深度d并在w0、wa和wm上执行网格搜索来计算拟合,从而最小化每个块宽度的预测与观察的平均日志比(用efit表示)。来自AnyNetXE的两个顶级网络的结果下图所示(右上角)。量化的线性拟合(虚线)是这些最佳模型(实线)的良好拟合。

接下来,我们通过AnyNetXE绘制AnyNetXC中每个网络的拟合错误efit与网络错误,如上图(底部)所示。首先,我们注意到每个设计空间中最好的模型都具有良好的线性拟合。实际上,经验引导法给出了一个接近于0的efit窄频带,它可能包含每个设计空间中最好的模型。其次,我们注意到efit从AnyNetXC到AnyNetXE的平均性能得到了改善,这表明线性参数化自然地对wi和di的增加施加了相关的约束。

为了进一步检验线性参数化,我们设计了一个只包含线性结构模型的设计空间。特别地,我们通过6个参数来指定网络结构:d, w0, wa, wm(以及b, g),给定这些参数,我们通过Eqn来生成块的宽度和深度。我们将最终的设计空间称为RegNet,因为它只包含简单的、常规的模型。我们对d < 64、w0、wa < 256、1.5≤wm≤3和b、g进行采样(根据AnyNetXE上的efit设置范围)。

我们通过拟合来自AnyNetX的模型来测试这个参数化。特别地,在给定的模型中,我们通过设置网络深度d并在w0,佤邦和wm上执行网格搜索来计算拟合,从而最小化每个块宽度的预测与观察的平均日志比(用efit表示)。来自AnyNetXE的两个顶级网络的结果如上图所示(右上角)。量化的线性拟合(虚线)是这些最佳模型(实线)的良好拟合。

上图(左)显示了RegNetX的EDF错误。在维护最佳模型的同时,RegNetX中的模型具有比AnyNetX更好的平均错误。在上图(中间)中,我们测试了两个进一步的简化。首先,使用wm = 2(两个阶段之间的宽度加倍)稍微提高了EDF,但是我们注意到使用wm≥2性能更好(稍后将展示)。其次,我们测试设置w0 = wa,进一步将线性参数化简化为uj = wa·(j + 1),有趣的是,这样做的效果更好。然而,为了保持模型的多样性,我们不施加任何限制。最后,在上图(右)中,我们展示了RegNetX的随机搜索效率要高得多;只对∼32随机模型进行搜索可能会得到好的模型。

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

设计空间泛化

我们在只有一个块类型的低计算、低历元训练机制中设计了RegNet设计空间。然而,我们的目标不是为单一的设置设计一个设计空间,而是发现可以推广到新设置的网络设计的一般原则。

在上图中,我们将RegNetX设计空间与AnyNetXA和AnyNetXE在更高的flops、更高的epoch、5级网络和各种块类型(在附录中进行了描述)下进行了比较。在所有情况下,设计空间的顺序是一致的,使用RegNetX > AnyNetXE > AnyNetXA。换句话说,我们没有看到过度拟合的迹象。这些结果很有希望,因为它们表明RegNet可以泛化到新的设置。5阶段的结果表明,正则RegNet结构可以推广到更多的阶段,其中AnyNetXA具有更多的自由度。

分析RegNetX设计空间

接下来,我们将进一步分析RegNetX设计空间,并回顾常见的深度网络设计选择。我们的分析产生了与流行实践不匹配的惊人见解,这使我们能够用简单的模型获得良好的结果。

由于RegNetX设计空间拥有高度集中的优秀模型,对于以下结果,我们将转换为抽样较少的模型(100个),但对它们进行更长时间的培训(25个epoch),学习率为0.1(参见附录)。我们这样做是为了观察网络行为中更细微的趋势。

RegNet趋势

我们在下图中展示了在整个触发器中RegNetX参数的变化趋势。值得注意的是,最佳模型的深度在不同区域(左上)是稳定的,最优深度为∼20块(60层)。这与在更高的翻背越高的体制中使用更深的模式的惯例形成了对比。我们还观察到,最佳模型使用的瓶颈比b为1.0(上-中),这有效地消除了瓶颈(在实践中经常使用)。接下来,我们观察到好模型的宽度倍增器wm为∼2.5(右上角),这与流行的跨阶段加倍宽度的方法相似,但并不完全相同。其余参数(g、wa、w0)随复杂度增加而增加(底部)。

复杂性分析

除了flops和参数之外,我们还分析了网络激活,我们将其定义为所有conv层的输出张量的大小(我们在下图(左上角)中列出了常见conv操作符的复杂性度量)。虽然激活不是测量网络复杂性的常用方法,但它会严重影响内存限制硬件加速器(例如,gpu、TPUs)上的运行时,参见下图(顶部)。在下图(底部)中,我们观察到,对于总体中的最佳模型,激活随flops的平方根增加而增加,参数线性增加,由于运行时对flops和激活的依赖性,最好同时使用线性和平方根项进行建模。

RegNetX受限

利用这些发现,我们改进了RegNetX设计空间。首先,根据上上张图 (top),我们令b = 1, d≤40,wm≥2。其次,我们限制参数和激活,如上图(底部)所示。这将生成快速、低参数、低内存的模型,而不会影响准确性。在下图中,我们使用这些约束对RegNetX进行了测试,并观察到约束的版本在所有的触发器状态下都是优越的。

替代设计选择

现代移动网络通常采用倒置瓶颈(b < 1)提出了[M. Sandler, A. Howard, M. Zhu, A. Zhmoginov, and L.-C.Chen. Mobilenetv2: Inverted residuals and linear bottlenecks. In CVPR, 2018]随着切除conv(g = 1)。在下图(左),我们观察到倒置瓶颈略有降低了EDF,切除conv执行更糟糕的是相对于b = 1, g≥1进一步分析(见文章的附录)。接下来,在[M. Tan and Q. V. Le. Efficientnet: Rethinking model scalingfor convolutional neural networks. ICML, 2019]的启发下,我们测试了下图(中间)中变化的分辨率,[M. Tan and Q. V. Le. Efficientnet: Rethinking model scalingfor convolutional neural networks. ICML, 2019]发现缩放输入图像分辨率是有帮助的。与[M. Tan and Q. V. Le. Efficientnet: Rethinking model scalingfor convolutional neural networks. ICML, 2019]相反,我们发现对于RegNetX,固定的224×224分辨率是最好的,即使在更高的flops。

最后,我们使用流行的挤压-激励(SE) op来评估RegNetX(我们将X+SE缩写为Y,并将最终的设计空间称为RegNetY)。在上图(右)中,我们看到RegNetY产生了良好的收益。

与现有网络的比较

我们现在比较的顶级模型从RegNetX和RegNetY设计空间在各种复杂的状态,对ImageNet的艺术状态。我们使用小的大写字母来表示单个的模型,例如REGNETX。我们还在模型后面加上了触发器机制,例如400MF。对于每个触发器机制,我们从RegNet参数的25个随机设置(d、g、wm、wa、w0)中选出最佳模型,并在100个epoch时对top模型进行5次再训练,以获得可靠的误差估计。

上图分别显示了每种翻牌制度的最高REGNETX和REGNETY模型。除了上面分析的简单线性结构和趋势外,我们还观察到一个有趣的模式。即高阶触发器模型在第三阶段积木数量较多,在最后阶段积木数量较少。这与标准RESNET模型的设计类似。此外,我们观察到群宽度g随着复杂度的增加而增加,但是深度d对于大型模型来说是饱和的。

我们的目标是执行公平的比较,并提供简单且易于复制的基线。我们注意,以及更好的架构,最近的报道在网络性能是基于增强培训设置和正规化方案(见下表)。我们的重点是评估网络架构,我们表现的小心控制的实验设置在同样的培训。特别是,为了与经典作品进行公平的比较,我们没有使用任何培训时间的增强。

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-06-03,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 计算机视觉战队 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档