MobileNetV2: Inverted Residuals and Linear Bottlenecks
主要贡献有2点:
1,提出了逆向的残差结构(Inverted residuals)
由于MobileNetV2版本使用了残差结构,和resnet的残差结构有异曲同工之妙,源于resnet,却和而不同。
由于Resnet没有使用depthwise conv,所以,在进入pointwise conv之前的特征通道数是比较多的,所以,残差模块中使用了0.25倍的降维。而MobileNet v2由于有depthwise conv,通道数相对较少,所以残差中使用 了6倍的升维。
总结起来,2点区别
(1)ResNet的残差结构是0.25倍降维,MobileNet V2残差结构是6倍升维
(2)ResNet的残差结构中3*3卷积为普通卷积,MobileNet V2中3*3卷积为depthwise conv
MobileNet v1,MobileNet v2 有2点区别:
(1)v2版本在进入3*3卷积之前,先进行了1*1pointwise conv升维,并且经过RELU。
(2)1*1卷积出去后,没有进行RELU操作
2,提出了线性瓶颈单元(linear bottlenecks)
Why no RELU?
首选看看RELU的功能。RELU可以将负值全部映射为0,具有高度非线性。下图为论文的测试。在维度比较低2,3的时候,使用RELU对信息的损失是比较严重的。而单维度比较高15,30时,信息的损失是比较少的。
MobileNet v2中为了保证信息不被大量损失,应此在残差模块中去掉最后一个的RELU。因此,也称为线性模块单元。
MobileNet v2网络结构:
其中,t表示通道的扩大系数expansion factor,c表示输出通道数,
n表示该单元重复次数,s表示滑动步长stride
其中bottleneck模块中,stride=1和stride=2的模块分别如上图所示,只有stride=1的模块才有残差结构。
结果:
MobileNet v2速度和准确性都优于MobileNet v1