EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks (2019)论文笔记
论文链接: EfficientNet: Reformulating Model Scaling in Convolutional Neural Networks.
代码链接: tensorflow.
摘要
- 简介
- 传统Scaling up的方法
- Compound Scaling方法
简介
通过扩大神经网络的结构来提高模型性能,在现有计算能力限制下研究了三种扩张方式:添加更多的层(深度)、增加通道数量(宽度)以及提升分辨率(图像尺寸)。这些方法被统称为复合缩放方法(compound scaling method)。基于GPipe优化后的EfficientNet-B7在ImageNet数据集上实现了93.2% 的top-1准确率与97.1% 的top-5准确率,在参数规模上仅为现有方案的8.4倍,在速度上则快了6.1倍。该系列模型在其他测试集上同样取得了令人瞩目的成绩:CIFAR-100分类任务达到91.7% 的top-1准确率,在Flowers数据集上的表现更是达到了98.8% 的高精度水平。
传统Scaling up的方法

传统的model scaling主要局限于单个网络模块的优化调整。具体而言,在Figure 2所示的例子中,b部分侧重于提升网络宽度,b部分则专注于增强网络深度,c部分则致力于优化网络分辨率.采用这三种策略,在特定范围内均能显著提升模型性能.然而,当实施scale up策略达到一定规模时,模型性能将难以实现持续性优化,如图3所示.

三种方法分别存在的问题
- 当深度增加时可能会导致梯度衰减严重(梯度消失)的问题
- 网络结构过于简单无法有效捕捉高阶特征(width: 在较浅的网络中难以抓取一些高阶特征)
- 提高分辨率可能导致分类精度提升受限(resolution: 准确率增长减缓)
于是,论文提出了复合使用三种scaling的方法来进一步提升准确率。
Compound Scaling方法
深度、宽度和分辨率分别按照以下方式增长:depth(d) = \alpha^{\phi};width(w) = \beta^{\phi};resolution(r) = \gamma^{\phi};满足约束条件\alpha \cdot \beta^{2}\cdot\gamma^{2}\approx 2且\alpha \geq 1, \beta \geq 1, \gamma \geq 1。总计算量的FLOPS按指数形式增长至(\alpha\cdot\beta^{2}\cdot\gamma^{2})^{\phi}。
在计算FLOPS的过程中,w和r的平方是由于特征图与输入图均为a \times a的形式所导致的。

As shown in Figure 4, the compound scaling approach achieves more favorable outcomes compared to the single scaling method.
在代码实现过程中,EfficientNet可以在基线模型上加入关键的scaling系数来提升性能。
