前言
《Designing Network Design Spaces》 论文地址:https://arxiv.org/pdf/2003.13678.pdf 代码:https://github.com/facebookresearch/pycls 何恺明团队在CVPR 2020上发布的论文,提出了RegNet。在相同的训练设计和FLOPs的条件下,RegNet的精度超越了之前最SOTA的EfficientNet,并且在GPU上的速度比EfficientNet快5倍。EfficientNet中分辨率、深度、宽度对网络的性能影响是相互作用的。CNN卷积神经网络之EfficientNet
近些年来,NAS(Neural Architecture Search)网络搜索技术非常火,但这对计算资源要求很高。包括这篇论文中的RegNet也有使用到NAS技术。但之前的一些有关NAS的论文都是在给定的设计空间(designed search space)中通过搜索算法去搜索出一组最佳参数组合。但在这篇论文中作者要探究的是如何去设计设计空间(design design spaces)并发现一些网络的通用设计准则。
设计思路
AnyNet设计空间
AnyNet设计空间是这篇论文中提出的最原始的设计空间,网络的主体就是由三部分组成(stem,body,head)。其中stem和head是固定不变的,stem就是一个普通的卷积层。head就是分类网络中常见的分类器,由一个全局平均池化层和全连接层构成。网络中最主要的就是body部分,body是由4个stage堆叠组成,而stage是由一系列block堆叠组成。但block的详细结构以及参数并没有做任何限制。论文作者说,根据他们的经验将block设计为带有分组卷积的残差结构。 这一路限制下来,搜索空间迅速下降,有点概率统计基础的可以很容易得到下面的结果:
其实作者还将原来AnyNetX设计空间的维度d从16个维度减少到6个维度,大小接近10个数量级。 此外,最后一个RegNet,作者认为,一个stage里的所有block的w通道数应该是一致的。
网络结构
RegNetY=RegNetX+SE,RegNetY在block中的3x3 Group Conv后接了个SE(Squeeze-and-Excitation)模块。CNN卷积神经网络之SENet
实验结果
RegNet和现有的SOTA移动端模型的性能对比: RegNet和ResNet、ResNext模型的对比结果,与ResNet差不多的计算量下,RegNet性能更好(但是感觉跟ResNext不相上下):😃
RegNet和SOTA EfficientNet 模型的对比结果:
消融实验结论
-
固定深度: 作者观察到顶级模型的深度相当稳定(~20个块)。比较在不同的flops区间使用固定深度,对每个模型进行了100个epoch的训练。令人惊讶的是,在平均和最佳情况下,在所有的flops区间,固定深度网络可以与深度不同的网络的性能相匹配。 -
更少的阶段: 在高flops区间,最佳的REGNET模型在第四阶段有很少的块(一个或两个)。因此,作者在6.4GF下测试只要3个阶段的网络,训练100个epochs。结果观察到三阶段网络的性能相当差。然而,我们注意到,为了使三阶段网络运行良好(留作将来的工作),可能需要额外的改变(例如,在网络stem或head)。 -
反向瓶颈: 使用反向瓶颈(b<1,即先升维再降维)会降低性能。 -
Swish与ReLU: 最近的许多方法使用Swish激活函数,作者使用Swish和ReLU研究RegNetY。发现Swish在低flops下优于ReLU,但在高flops下,ReLU更好。有趣的是,如果g被限制为1(深度可分离卷积),Swish的性能要比ReLU好得多。这表明深度可分离卷积和Swish的交互作用是有利的,尽管根本原因还不清楚。
上一篇:CNN卷积神经网络之EfficientNet
|