论文链接: EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks.
代码链接: tensorflow.
简介
加深扩大神经网络(model scaling up)可以有效提升模型的准确率,但是计算资源是有限的。本文讨论了在有限的运算资源下,通过增加深度(网络层数)、增加宽度(每层通道数)、增加图像分辨率三种网络扩张方式的叠加来达到最优准确率。该方法称为compound scaling method。该拓宽网络的方法附加于现有的state of art级网络可以有效提高准确率。基于GPipe的EfficientNet-B7在ImageNet达到了84.4% top-1 / 97.1% top-5的准确率,并且比现有的卷积网络小8.4x,快6.1x。EfficientNet家族在其他数据集上也达到了state of art的结果,CIFAR-100 (91.7%), Flowers (98.8%)等。
传统Scaling up的方法
传统的model scaling只改变网络的某一个部分的大小。如Figure 2中的b、c、d分别拓宽了网络的宽度、深度、分辨率。这三种方法在一定范围内都可以有效提高模型准确率。但是scale up到一定程度后,模型的准确率很难再继续增长了,如Figure 3。
三种方法分别存在的问题
- 增加深度(depth): 梯度消失
- 增加宽度(width): 在较浅的网络中难以抓取一些高阶特征
- 增加分辨率(resolution): 准确率增长减缓
于是,论文提出了复合使用三种scaling的方法来进一步提升准确率。
Compound Scaling方法
depth、width、resolution分别增长如下
d e p t h ( d ) = α ϕ depth(d) = \alpha^{\phi} depth(d)=α