MobileNet系列

MobileNet是用在移动端的轻量级CNN,本文简单介绍MobileNet V1到V3的版本。

MobileNet V1

  • 主要特点:把卷积拆分为Depthwise和Pointwise两部分(深度可分离卷积Separable convolution),用步长为2的卷积代替池化。
  • Depthwise和Pointwise图解:

假设有 N × H × W × C N \times H \times W \times C N×H×W×C的输入,普通卷积是做 k k k个3x3的卷积,且same padding, s t r i d e = 1 stride=1 stride=1,输出为 N × H × W × k N \times H \times W \times k N×H×W×k。depthwise是将此输入分为 g r o u p = C group=C group=C组,然后每组做一次卷积,相当于收集了每个channel的特征,输出依然是 N × H × W × C N \times H \times W \times C N×H×W×C。pointwise是做 k k k个普通的1x1卷积,相当于收集了每个点的特征。depthwise+pointwise的输出也为 N × H × W × k N \times H \times W \times k N×H×W×k

  • 普通卷积和MobileNet卷积对比如下图所示。计算一下两者的参数量:

    • 普通卷积为: C × k × 3 × 3 C \times k \times 3 \times 3 C×k×3×3

    • depthwise+pointwise: C × 3 × 3 + C × k × 1 × 1 C \times 3 \times 3 + C \times k \times 1 \times 1 C×3×3+C×k×1×1

    • 压缩率为 d e p t h w i s e + p o i n t w i s e c o n v = 1 k + 1 3 × 3 \frac{depthwise+pointwise}{conv}=\frac{1}{k} + \frac{1}{3 \times 3} convdepthwise+pointwise=k1+3×31

  • 进一步压缩模型:引入了width multiplier,所有通道数乘以 α ∈ ( 0 , 1 ] \alpha \in (0,1] α(0,1](四舍五入),以降低模型的宽度。

MobileNet V2

  • 主要特点:引入残差结构;采用linear bottenecks + inverted residual结构,先升维后降维;使用relu6(最大输出为6)激活函数,使模型在低精度计算下有更强的鲁棒性。
  • linear bottenecks + inverted residual结构如下图所示。
    • V2版本依然是使用depthwise和pointwise,不同的是在depthwise前加了一个1x1卷积来扩大通道数目扩张系数为 t t t,即通道数目扩大 t t t倍,以增加特征丰富性。在pointwise之后再加1x1卷积将通道数目压缩至原输入的数目。
    • V2版本去掉了第二个1x1卷积之后的激活函数,称为linear bottleneck。作者认为激活函数在高维空间能够有效地增加非线性,但在地位空间会破坏特征。

  • 与残差模块的对比:
    在这里插入图片描述

  • V2网络结构:

MobileNet V3

  • 主要特点:引入SE(squeeze and excitation)结构;使用hard swish激活函数;头部卷积通道数量由32变为16;V2在预测部分使用了一个bottleneck结构来提取特征,而V3用两个1x1代替了这个操作;结构用NAS技术生成
  • SE轻量级注意力结构,如下图所示。在depthwise后加入SE模块,首先globalpool,然后1x1卷积将其通道压缩为原来的1/4,然后再1x1卷积扩回去,再乘以SE的输入。SE即提高了精度,同时还没有增加时间消耗。

  • 尾部修改:

  • hard swish激活函数如下所示。swish激活函数可以提高精度,但计算量比较大,作者用relu近似模拟,称为hard swish

s w i c h x = x ⋅ σ ( x ) h − s w i s h [ x ] = x R e L U 6 ( x + 3 ) 6 \Bbb{swich} x=x \cdot \sigma(x) \\ \Bbb{h-swish}[x]=x\frac{ReLU6(x+3)}{6} swichx=xσ(x)hswish[x]=x6ReLU6(x+3)

img

  • v2头部卷积为32x3x3,作者发现可以改为16,保证了精度且降低了延时时间。

  • 网络结构搜索,借鉴了MansNet和NetAdapt,这部分以后再详细补充。

  • 网络结构:

img

img

参考文献

[1] https://zhuanlan.zhihu.com/p/35405071

[2] https://blog.youkuaiyun.com/mzpmzk/article/details/82976871

[3] https://www.cnblogs.com/darkknightzh/p/9410540.html

[4] https://blog.youkuaiyun.com/DL_wly/article/details/90168883

[5] https://blog.youkuaiyun.com/Chunfengyanyulove/article/details/91358187

[6] https://www.jianshu.com/p/9af2ae74ec04

  • https://www.cnblogs.com/dengshunge/p/11334640.html
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值