-
- mobilenetv3网络特点及主干
(1)使用mobilenetv3模型的优势:
1 .添加了Squeeze-and-Excitation 结构在,通过训练的过程中自行分配权重在 feature map上,从而达到更好的效果。
2 .其次,Nonlinearities在非线性激活这块采用了h-wish在层数较深的那基层中, 也就是基于ReLU6的修改版。
3.与v2相比,相对减少在最后,在7×7avgpool之前的channel数,在不太大影响 accuracy的同时,精简了支出。
4 .隐藏的修改,想对于mobilenet V2, V3启用 5×5的deepwise卷积。借鉴于nasnet。
- mobilenetv3模型的改进
1.引入SE结构
在bottlenet结构中加入了SE结构,并且放在了depthwise filter之后,如下图。因为SE结构会消耗一定的时间,所以在含有SE的结构中,将expansion layer的channel变为原来的1/4,既提高了精度,同时还没有增加时间消耗。并且SE结构放在了depthwise之后。

2.修改尾部结构:
在mobilenetv2中,在avg pooling之前,存在一个1x1的卷积层,目的是提高特征图的维度,更有利于结构的预测,将其放在avg pooling的后面,首先利用avg pooling将特征图大小由7x7降到了1x1,降到1x1后,然后再利用1x1提高维度,这样就减少了7x7=49倍的计算量。并且为了进一步的降低计算量,直接去掉了前面纺锤型卷积的3x3以及1x1卷积,进一步减少了计算量,就变成了如下图第二行所示的结构,将其中的3x3以及1x1去掉后,精度并没有得到损失。这里降低了大约15ms的速度。

3.修改channel数量
修改头部卷积核channel数量,mobilenet v2中使用的是32 x 3 x 3,改为16后,在保证了精度的前提下,降低了3ms的速度。
4.非线性变换的改变
h-swish非线性在保持精度的情况下带了了很多优势,首先ReLU6在众多软硬件框架中都可以实现,量化时避免了数值精度的损失,运行快。这一非线性改变将模型的延时增加了15%。但它带来的网络效应对于精度和延时具有正向促进,剩下的开销可以通过融合非线性与先前层来消除。
使用h-swish替换swish,这次在其基础上,为速度进行了优化。swish与h-swish公式如下所示,由于sigmoid的计算耗时较长,特别是在移动端,这些耗时就会比较明显,所以使用ReLU6(x+3)/6来近似替代sigmoid。利用ReLU有几点好处
- 可以在任何软硬件平台进行计算
- 量化的时候,它消除了潜在的精度损失,使用h-swish替换swith,在量化模式下提 高大约15%的效率,
- h-swish在深层网络中更加明显。

4.NAS 搜索全局结构(Block-wise Search)
(1)采用平台感知NSA(网络可伸缩架构,Architectures for Scalable)方法来寻找全局网络结构,类似MnasNet-A1,使用基于Rnn-based的控制器和分解层次搜索空间。
(2)另外需要针对轻量模型进行优化,我们用一个多目标奖励

来近似pareto最优解,根据目标延迟TAR为每个模型m平衡模型精度ACC(m)和延迟LAT(m)。
- 我们遵循对于小模型,随着延迟的增加,精度的变化会更加显著。因此用较小的权重因子w =-0.15 (vs原始w=-0.07[41])来弥补不同的延迟的更大精度变化。
- 从头训练了一个新的架构搜索,找到了初始的seed模型,然后应用NetAdapt和其他优化来获得最终的MobilenetV3-Small模型。
5.NetAdapt 搜索层结构(Layer-wise Search)
- 用一个NetAdapt算法来搜索每个层的卷积核个数以及其他优化方法。
- 最终目的:是在符合latency衰减的Net集合中,选取

(精度变化/延时变化)大的网络,即希望拿到精度大延时小的网络。
- 算法流程:给定一个K conv and FC layers的网络Net0,在每一步的结构更改中,需要减少一个给定个值deltaR,然后调整每层的卷积核数,生成一个Net_simp集合,从中找到目标延时的网络。保持循环,直到满足给定条件,然后finetune网络。
- V3用了两种减少latency的方法来产生网络:
- 减少expansion layer的size(就是用1x1 conv对通道数扩大的那一层);
- 减少所有共享相同bottleneck size模块的瓶颈(就是resiudal链接的那一个模块),仍然保持residual链接模式。
289

被折叠的 条评论
为什么被折叠?



