EfficientNet原理详解:用智能缩放的卷积神经网络获得精度增益( 二 )
这意味着 , 为了提高准确度 , 网络的规模应该部分由三个维度的组合来贡献 。 上图中的经验证据证实了这一点 , 在上图中 , 针对不同的深度和分辨率设置 , 网络的精度随着宽度的增加而建模 。
结果表明 , 只缩放一维(宽度)快速停滞的精度增益 。 然而 , 这与层数(深度)或输入分辨率的增加相结合 , 可以增强模型的预测能力 。
这些观察在某种程度上是预期的 , 可以用直觉来解释 。 例如 , 如果输入图像的空间分辨率增加 , 那么卷积层的数量也应该增加 , 以便接收域足够大 , 能够覆盖现在包含更多像素的整个图像 。 这就引出了第二个观察结果:
2:为了追求更高的精度和效率 , 在进行卷积时 , 网络宽度、深度和分辨率等各维度的平衡至关重要 。
缩放的方法卷积神经网络可以被认为是各种卷积层的叠加或组合 。 此外 , 这些层可以划分为不同的阶段 。 例如 ResNet有五个阶段 , 每个阶段中的所有层都具有相同的卷积类型 。 因此 , 一个CNN可以用数学表示为:
文章插图
N表示网络
i代表阶段号码,
F?代表卷积操作第i阶段,
L代表的 F??阶段的重复次数
H?W?C?代表阶段的输入张量形状 。
可以推导出的方程1,L?控制网络的深度,C?负责网络的宽度而H?和W?影响输入分辨率 。 由于搜索空间巨大 , 要找到一组好的系数来缩放每一层的尺寸是不可能的 。 因此 , 为了限制搜索空间 , 作者制定了一套基本规则 。
缩放模型中的所有层/阶段都将使用与基线网络相同的卷积操作
所有的图层必须以恒定的比例均匀缩放
建立这些规则后 , 可参数化为:
文章插图
式中 , w、d、r为尺度网络宽度、深度、分辨率系数;F??L??,??,??,??是预定义的参数基线网络 。
作者提出一个简单的,但有效的缩放技术,使用一个复合系数?统一规模网络的宽度、深度和分辨率有规则的方式:
文章插图
?是一个用户定义,全局比例因子(整数)控制多少资源可用而α,β,γ决定如何将这些资源分配给网络深度、宽度,分别和分辨率 。 卷积操作的FLOPS 与d, w, r的FLOPS 成正比 , 因为将深度加倍将使FLOPS 加倍 , 而将宽度或分辨率加倍将使FLOPS 几乎增加四倍 。 所以,扩展网络使用方程3将增加总FLOPS (αβγ22)^? 。 因此,为了确保总FLOPS 不超过2 ^?,约束(αβγ22)≈2 。 这意味着 , 如果我们有两倍的可用资源 , 我们可以简单地使用复合系数2的一次方 。
参数α,β,γ-可以确定使用网格搜索通过设置?= 1,发现导致最好的精度的参数 。 一旦发现,这些参数可以是固定的,和复合系数?可以增加变大,但更精确的模型 。 这就是效率网- b1到效率网- b7的构造方式 , 名称后面的整数表示复合系数的值 。
结果这项技术使得作者能够制作出比现有的ConvNets精度更高的模型 , 同时也极大地减少了整体FLOPS 和模型尺寸 。
文章插图
EfficientNet 与现有网络在ImageNet挑战中的比较
该标度方法具有通用性 , 可与其他结构相结合 , 有效地对卷积神经网络进行标度 , 提高了标度精度 。
文章插图
引用:· EfficientNet CML 2019
· MobileNet v2 CVPR 2018
· GPipeNIPS 2019
作者:Armughan Shahid
【EfficientNet原理详解:用智能缩放的卷积神经网络获得精度增益】deephub翻译组
- 编程猫领衔,9家编程app测评一览详解
- 详解m3u8协议
- 随机森林(Random Forest)算法原理
- Django实战016:django中使用redis详解
- C/C++协程学习笔记丨C/C++实现协程及原理分析视频
- redis 数据类型详解 以及 redis适用场景场合
- 五种IO模型详解
- 安卓面试必备的JVM虚拟机制详解,看完之后简历上多一个技能
- 这样和妻子解释:Java动态代理机制详解(JDK和CGLIB
- 详解command设计模式,解耦操作和回滚