轻量级网络模型之EfficientNet

系列文章目录

=======================================================
专题-端侧机器学习

第一节 端侧机器学习框架Tensorlfow Lite
第二节 轻量级网络模型之MobileNet系列
第三节 轻量级网络模型之ShuffleNet
第四节 轻量级网络模型之EfficientNet
第五节 Android应用APP: 基于MobileNet和EfficientNet的图像分类模型

=======================================================


参见文章: EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks

导读

该文章也是研究计算资源受限场景下的网络模型设计, 然而与以往的众多研究思路不同(以往的研究大都是先提出一个高效的Building block, 然后再利用该building block来设计模型, 例如:MobileNet v1, MobileNet v2ShuffleNet, MnasNet等), 这篇文章研究的是: 计算资源受限场景下, 在各个Stage的building block确定的前提下, 如何同时优化模型的深度depth, 模型的宽度width以及模型的输入分辨率resolution从而使得模型获得最高的精度。这是一个非常有意思的研究问题, 如果该问题得以解决,则可以应用到其他各种各样的baseline卷积网络中以提升其精度。

值得注意的是,尽管之前已经有文章从单个因素出发, 研究其对模型Accuracy的影响 (例如: MobileNet v1中的width multipler实际上就是用来调控模型的宽度),但是,还尚未由文章系统地考虑这三个因素

文章要点

1.提出了一种新的缩放方法: 通过一个简单但十分有效的符复合系数来统一地缩放depth, width, resolution的尺寸。
2.通过神经网络架构搜索NAS设计了baseline model, 并将该缩放方法应用后, 在提升精度的同时所需的参数两大大减少。 并且该缩放方法应用到其他模型(MobileNet, ResNet等)上也有很好的效果。

模型结构优化

Baseline model: EfficientNet

baseline 的设计借鉴了MnasNet: 通过多目标NAS来同时优化Accuracy和FLOPS, 优化目标为:
在这里插入图片描述
其中: T为目标FLOPS, 参数w用于trade off AccuracyFLOPS
下表是EfficientNet-B0的配置: 在这里插入图片描述
每一行代表一个包含Li 层的stage i, 其中每层的输入分辨率为 Hi x Wi, 输出通道数为Ci

该网络中的building block实际上是这篇文章中提出的mobile inverted bottleneck MBConv, 同时作者还在其基础上添加了channel方向的自注意力机制: Squeeze and Excitation

: **
1.MobileNet V3中也是用NAS, 也是借鉴了MnasNet这篇文章。
2.MobileNet V3 中在其building block中也添加了Squeeze and Excitation自注意力机制机制。

复合模型缩放方法

这篇文章最核心的就是所提出的复合缩放方法,用于求解: 资源约束条件下, width, depth, resolution的最优组合从而获得最优模型。

两个Observation:
(1) 放大网络的 width, depth, resolution中的任意一个参数都能够提升模型的Accuracy, 但是随着网络越来越复杂,Accuracy的提升效果越来越不明显。
(2) 为了获得更好的AccuracyEfficiency, 在缩放过程中, 非常有必要同时考虑width, depth, resolution, 而不是只考虑其中任意一个因素。

这两个Observations 为 符合模型缩放方法的提出铺平了道路。

问题形式化定义

一个基本的事实:经典的卷积网络结构一般由多个Stage组成, 每个Stage中所有的层配置完全相同。例如ResNet。基于此,卷积网络可以定义如下:
在这里插入图片描述
其中, F i L i F_{i}^{Li} FiLi 表示Stage i 中层Fi重复Li次这样一个操作, 层Fi的输入尺寸为<Hi, Wi, Ci>。 之前已经提过,这篇文章的重点不像其他文章一样探索怎么设计Fi, 而是在Fi已经确定前提下(可以看作是简化问题复杂度的一个假设), 探索如何扩展网络width (i.e. Ci), depth (i.e.Li), resolution (i.e. Hi, Wi)以最求最大Accuracy。即使这样搜索空间依然很大,为了进一步减小搜索空间, 假设所有的层以相同的常数缩放。 这样一来,待优化的参数减少为3个, 优化问题如下:
在这里插入图片描述
其中待求解的d, w, r 分别表示baseline网络的depth, width, resolution的缩放系数。

复合缩放方法

作者提出使用复合系数 ϕ \phi ϕ来统一地缩放width, depth, resolution的缩放系数w, d, r, 具体如下:
在这里插入图片描述
其中 α \alpha α, β \beta β, λ \lambda λ 为常数,可以通过grid search来确定。

再来分析上面公式中的约束是怎么来的
目标是在资源有限的条件下如何将额外的资源分配给w, d, r, α ≥ 1 \alpha \geq 1 α1, β ≥ 1 \beta \geq 1 β1, λ ≥ 1 \lambda \geq 1 λ1很好理解, ϕ = 1 \phi=1 ϕ=1时表示相应的参数不变,实际上就是baseline 模型。

在常规convolution中, FLOPS与d, w 2 w^{2} w2, r 2 r^{2} r2 成正比, 具体将, 将d增加1倍,则FLOPS变为原来的2倍; 将w, r分别增加1倍,则FLOPS变为原来的4倍。 , d ⋅ w 2 ⋅ r 2 = 2 d \cdot w^{2} \cdot r^{2}=2 dw2r2=2 实际上限制了 α \alpha α, β \beta β, λ \lambda λ 这3个参数的搜索空间, 卷积架构中卷积操作的计算代价基本上可以反映整个模型的计算代价, 这样一来意味着: FLOPS变为原来的 2 ϕ 2^{\phi} 2ϕ 倍, 可以看到,该约束实际上是FLOPS约束的具体化。

应用该方法的具体步骤为:
在这里插入图片描述
计算资源越多, 则 ϕ \phi ϕ 的可取值的上限就越大。 如果直接在 α \alpha α, β \beta β, λ \lambda λ 参数空间上搜索,则搜索的代价太高, 作者提出的方法克服了这个问题先在一个小的网络上进行小的grid search , 然后将其固定, 再通过比例系数$\phi$来统一调节

结果分析

在这里插入图片描述
可以看到, 在FLOPS相同的前提下, 相比于单一调节其中一个因素, compound scaleing 极大提升了Accuracy。
在这里插入图片描述
可以看到 这种compound scaling 方法在经典的convolution 网络上也具有良好的表现。

在这里插入图片描述
可以看到, 采用所提出的EfficientNet作为baseline 网络, 再结合compound scaling 方法 ( ϕ \phi ϕ 取值从小到大,FLOPS相应增大, 依次得到: EfficientNet-B0, EfficientNet-B1, EfficientNet-B2, EfficientNet-B3, EfficientNet-B4, EfficientNet-B5, EfficientNet-B6, EfficientNet-B7), 最终的模型效果相比于其他经典的方法准确率更高而参数两更少。

代码资源

1.原作者代码,https://github.com/tensorflow/tpu/tree/master/models/official/efficientnet

总结

未完待续。

References

1.EfficientNet: Rethinking Model Scaling for Convolutional Neural Networks
2.MnasNet: Platform-aware neural architecture search for mobile.

  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

MasterQKK 被注册

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值