轻量级网络之MobileNet v2
前言
《MobileNetV2: Inverted Residuals and Linear Bottlenecks》
论文地址:https://arxiv.org/pdf/1801.04381.pdf
MobileNetV1是借鉴了VGG的结构,而MobileNetV2就借鉴了ResNet的结构。一些在MobileNet V1中介绍过的就不再V2中重复介绍了。
从论文名字上,就能看出MobileNetV2网络的主要创新点:
- 倒置残差结构
- 线性瓶颈结构
v2和v1的区别:
Inverted Residuals
为什么是倒置残差结构呢?如图所示:
V2在DW卷积之前新加了一个PW卷积。这么做的原因,是因为DW卷积由于本身的计算特性决定它自己没有改变通道数的能力,上一层给它多少通道,它就只能输出多少通道。所以如果上一层给的通道数本身很少的话,DW也只能很委屈的在低维空间提特征,因此效果不够好。现在V2为了改善这个问题,给每个DW之前都配备了一个PW,专门用来升维,定义升维系数t,这样不管输入通道数C是多是少,经过第一个PW升维之后,DW 都是在相对的更高维( t*C,这里t是扩张系数)进行着辛勤工作的。
Linear Bottlenecks
ReLU一定会带来信息损耗,而且这种损耗是没有办法恢复的,ReLU的信息损耗是当通道数非常少的时候更为明显。下图是作者给出的证明:
其输入是一个表示流形数据的矩阵,经过n个ReLU的操作得到Feature Map,然后试图通过Feature Map还原输入数据,还原的越像说明信息损耗的越少。从图中可以看出,当维度比较小时,ReLU的信息损耗非常严重,但是当特征维度比较大的时候,输入流形就能还原的很好了。
既然是ReLU导致的信息损耗,那么我们就将ReLU替换成线性激活函数;如果比较多的通道数能减少信息损耗,那么我们就使用更多的通道。
当然不能把ReLU全部换成线性激活函数,不然网络将会退化为单层神经网络,一个折中方案是在输出Feature Map的通道数较少的时候也就是bottleneck部分使用线性激活函数,由于第二个PW的主要功能就是降维,因此按照上面的理论,降维之后就不宜再使用ReLU6了。
网络结构
网络性能
图像分类:
目标检测:
是在手机上跑的,可见200ms的速度真的很快,能够在手机端使用。
目标检测的时候,竟然V1还好一点?估计是对于COCO数据集的目标检测网络,参数量少了性能还是受点影响。
欢迎交流,禁止转载!!
上一篇:轻量级网络之MobileNet v1
下一篇:轻量级网络之MobileNet v3