首发:AIWalker
作者:HappyAIWalker
标题&作者团队
本文是FAIR的Piotr Dollar与Ross Girshick等人(PS:Kaiming呢?)在模型缩放方面的一次系统性探索。首先,对现有的模型缩放(单一维度缩放、复合维度缩放等)进行了分析,不仅分析了不同维度缩放与FLOPs、Parameters以及Activations之间的关系,同时分析了它们与实际推理速度之间的关系。然后,在前述分析的基础上了提出了本文的快速缩放策略并在EfficientNet、RegNetY、RegNetZ等模型上进行了验证。相比EfficientNet中的复合缩放,本文所提缩放策略取得了更快的推理速度。原文链接为:https://arxiv.org/pdf/2103.06...
Abstract
在这篇文章中,我们对CNN模型缩放策略进行了分析,即如何对基线模型进行缩放以赋予其更大的计算复杂度进而具有更强的表达能力。现有的缩放策略主要包含提升模型宽度、深度以及分辨率,然而现有的不同缩放策略中的均衡考量尚未得以充分理解。现有的分析主要聚焦于精度-FLOPs的相互影响,然而,正如我们要证实的:不同的缩放策略会影响模型的参数量、activation,进而导致截然不同的实际推理速度。
我们在实验中返现一个令人经验的结论:不同的缩放策略会导致具有相似精度的网络,但具有变化很大的属性。这就促使我们提出了一种简单Fast Compound Scaling
策略:主要对模型宽度进行缩放,而深度与分辨率的缩放次之。当前主流的模型缩放策略会导致的模型activation提升,而我们所提出的FCS策略则仅带来的模型activation提升,同时取得更好的模型精度。更少的activation往往会当前内存带宽受限设备(如GPUs)上带来更好的加速。更确切的讲,我们希望该工作能一种框架用于不同计算约束下的模型缩放策略分析。
image-20210312103036770
以上图为例,我们可以看到,接下来的内容也将针对这些发现进行分析并提出一种新的缩放策略。
- 有不同的缩放策略可以得到具有相似精度的模型,同时具有相同的FLOPs。
- 有不同的缩放策略可以导致高精度模型,见上图top;
- 朝着固定FLOPs调整的不同模型缩放策略可以导致截然不同的推理时间,见上图右下;
- 不同的缩放策略会导致不同的activations增长比例,见上图左下;
Complexity of Scaled Models
接下来,我们将提出一种广义框架用于分析不同网络缩放策略的复杂度,一种简单而直观,且对于理解和扩展模型缩放极为有效。
Complexity Metrics
模型的有三个非常相关的属性:flops(计算量)、parameters(参数量)以及activations(卷积张量元素数)。计算量与参数量是两种常见的度量准则,然而参数量是独立于模型输入分辨率的,故而难以真正反映模型的推理速度。由于我们需要研究不同输入分辨率的模型,所以我们会进行参数量的统计,但主要聚焦于计算量与卷积张量元素数。
卷积张量元素数鲜少收到关注,但对于模型的推理速度起着关键作用,因此,我们将对缩放与其之间的相互影响进行仔细分析。
Network Complexity
Complexity of Simple Scaling
我们定义Simple Scaling
为单一维度的缩放,即仅对宽度w、深度d或者分辨率r进行缩放。此外,我们还定义缩放因子为s用于提升模型的FLOPs。下表给出了不同维度缩放时导致的FLOPs方面的差异对比。
image-20210312112114853
从上表我们可以看到:当FLOPs缩放s时,调整w则会仅仅导致的计算量提升。这个发现对于如我们如何设计新的缩放策略非常关键。
Complexity of Compound Scaling
与简单缩放对立的则是复合缩放,即同时在多个维度进行缩放调整。复合缩放是EfficientNet一文提出,相比简单缩放,复合缩放取得了更高的精度。
image-20210312121856771
上表给出了不同复合缩放配置导致的计算量、参数量以及acts的提升。如果我们对三个维度进行均匀缩放,那么不同维度对应的缩放比例则分别是,此时flops在每个维度提升分别为,进而导致s倍率的计算量提升。有意思的是,复合缩放中的参数[1.2,1.1,1.15]恰好与这里s=2时的均匀缩放非常接近。
Complexity of Group Width Scaling
目前许多优秀模型重度依赖组卷积与深度卷积。此时我们额外定义组卷积的组数为g,其复杂度可以描述为:
image-20210312131528493
上午给出了组卷积缩放的三个基本策略对比。未得到与常规卷积类似的缩放行为,通道宽与组宽都需要缩放。因此,如无其他说明,我们对g的缩放正比于w。此外需要注意:当对g进行缩放时需要确保w可以被g整除。
Runtime of Scaled Models
本文的目标在于:设计一种缩放策略生成更快、更高精度的模型。在前面的内容中,我们对参数量、计算量以及activation的不同缩放策略进行了分析。接下来,我们将对这些度量参数与推理速度之间的相关性分析。
image-20210312132121858
上图给出了大量模型(EfficientNet-B0,RegNetZ, RegNetY)在不同缩放策略下的推理速度、计算量、参数量、activation之间的关系图。从中我们可以看到:
- FLOPs与参数量只能
弱
预测模型的推理速度; - activations则可以
强
预测模型推理速度。
上述观察引导我们采用Activation作为模型推理耗时的代理,具体来讲,对于缩放版模型,其推理速度与activation的Pearson相关性,而其他两个度量则较低(0.86和0.56)。
Fast Compound Model Scaling
由于模型的推理速度与activation具有强相关性,因此我们旨在设计一种缩放策略以最小化activation提升。
正如前面Table1-Table3所示,通过提升通道宽度与组宽度可以带来最小的activation提升。事实上,知名的Wide-ResNet在推理速度方面就极为高效。然而,更快的网络queries并不能总是得到比更深、高分辨率网路更高的性能。
为解决上述问题,我们引入了Fast Compound Model Scaling
策略,思路极为简单:主要对模型宽度进行提升,同时对深度和分辨率进行小幅提升。我们引入缩放策略参数,定义:
image-20210312134227262
上表给出了不同下的缩放策略对比,可以看到:
- 当时,只需要对宽度进行调整,导致最低的activations;
- 当是,对需要对深度与分辨率进行调整,导致最高的aitivations;
- 当时,对应均匀复合缩放,即EfficientNet一文的复合缩放。
我们探索的最有意思的缩放位于,也就是说:我们所指的快速缩放对应了接近1。如无特殊说明,我们默认,表示为。
Experiments
在这里,我们以EfficientNet、RegNetY、RegNetZ为基线模型对本文所提的缩放策略进行实验对比。关于RegNetY与RegNetZ的模块结构示意图可参考下图(区别在于RegNetY中b=1,RegNetZ中的b=1/4)。更详细的结构可参考原文。
image-20210312135228281
训练信息:SGD(momentum=0.9),标签平滑,mixup、AutoAugment、SWA、混合精度。GradualWarmup。BatchSize=1024,学习率。
image-20210312140606671
上表给出了EfficientNet作为基线模型时模型精度与我们复现的精度对比。在后面的对比中,我们采用2x(即200epoch)训练模型进行对比。同时,下表给出了RegNetY与RegNetZ的复现精度对比。
image-20210312140802071
Simple & Compound Scaling
image-20210312141024703
上图给出了EfficientNet在不同缩放策略下的精度-推理速度对比。正如所预期的,dwr缩放策略取得最佳精度,但速度比w缩放更慢。同时可以看到:dwr与原始的复合缩放在精度-推理方面基本相当,而dwr无需针对每个独立的缩放因子进行优化调整。
image-20210312141436420
上图给出了RegNetY-500MF与RegNetZ-500MF基线模型上的对比,我们可以看到相似的结论:dwr可以取得最强的精度。
Fast Scaling
接下来,我们对本文所提的策略有效性进行分析。正如前文所提到:当接近1时,模型的activation提升最小,进而可以得到最快的模型。我们采用作为默认参数。
image-20210312141606181
上图给出了EfficientNet在不同缩放策略(即不同)下的精度-速度方面的对比。可以看到:
- 对于所有不同的,模型的精度基本相当,但比的稍高;
- dWr缩放的速度与w缩放接近,但比dwr稍快。
image-20210312142136436
上图给出了RegNet在不同缩放策略下的性能对比。可以看到:dWr取得了最佳的精度-速度;此外,我们还可以看到:RegNet的w缩放要比EfficientNet更有效(这与g的协同缩放有关)。
Scaling versus Search
与此同时,我们不禁要问:缩放所得到的模型随机搜索得到模型孰优孰劣呢?
image-20210312142407906
上表给出了三个配置下的缩放模型与搜索模型的对比,可以看到:
- 在4x训练下,RegNetY-4GF的搜索模型能以0.6%精度优于缩放模型;
- 在4x训练下,RegNetZ-4GF的搜索模型精度仅比缩放模型高0.1%;
- 高精度模型的缩放并不总是意味着可以得到一个最优模型,但是对于不便于优化的模型直接缩放仍是一种很有用的策略;
- 相比缩放模型,搜索模型具有更少的参数量。
Comparison of Large Models
image-20210312143333965
上图给出了将不同模型缩放到16GF时的精度-推理速度的对比。可以看到:
- 模型排序与flop基本一致,RegNetZ取得了最佳精度;
- 所有通过dWr得到的模型均比原始EfficientNet更快;
- RegNetY与RegNetZ的最高与最低精度误差从500MF时的2.2%收缩到了16GF时的0.8%;
- 混合缩放策略可以可以进一步减少这种gap;
- RegNetY是最快的模型。
image-20210312143811526
上表还给出了4GF、16GF以及其他baseline的对比。尽管RegNetY具有更高的Flops,但RegNetY-4GF缩放得到的16GF模型哟啊比EfficientNet-B4更快。这说明了flops之外其他准则的重要性。
推荐阅读
- CVPR2021|超分性能不变,计算量降低50%,用于low-level加速的ClassSR
- TNT|为充分利用局部与全局结构信息,华为诺亚提出全新Transformer:TNT
- 金字塔Transformer,更适合稠密预测任务的Transformer骨干架构
本文章著作权归作者所有,任何形式的转载都请注明出处。更多动态滤波,图像质量,超分辨相关请关注我的专栏深度学习从入门到精通。