论文简介
- 地址:MobileNetV2: Inverted Residuals and Linear Bottlenecks。
- 论文提出了一种
inverted residual structure
的网络结构,借鉴residual nwtwork
的思想,但是其中的卷积branch是首先扩展,再压缩,防止RELU造成数据信息的坍塌。 - 论文基于
MMNet V2
,展开了detection和semantic segmentation的实验,泛化能力很好。
introduction
- 论文主要的contribution就是提出了一个新的layer模块:
inverted residual with linear bottleneck
。它会将低维的输入表征首先expand到高维空间中,然后使用depthwise convolution进行滤波,最后再映射到低维表征空间中。 - 在进行卷积操作时,和mobilenet V1相同,将常规的卷积拆分为depthwise和pointwise的convolution,减少计算量。
- 提出的模型非常适合移动设备,因为inference过程中,没有很大的tensor,参数量也很小。
method
depthwise separable convolution
- 跟mobilenet V1中的操作相同,将regular convolution拆分开,减少参数量,具体可以看之前的mobilenet中的介绍。
Linear Bottlenecks
- 作者做了一些实验,验证了,在低维空间中,RELU会造成低维数据坍塌,而在高维空间中,则不会造成这种问题(没有使用公式等去证明)。
- 在之前的V1中,引入超参数,可以调节通道的数量,但是此时如果在feature layer后面加上一个RELU激活函数等,会导致信息丢失,为了避免这种问题,V2在低维的bottleneck输出时,后面不加上RELU激活函数,相当于直接经过线性处理之后输出,因此是
Linear Bottlenecks
。
Inverted residuals
- 在传统的residual结构中,输入会首先经过1X1的pointwise convolution和RELU,之后再经过3X3的depthwise convolution和RELU,最后再经过1X1的pointwise convolution和RELU,得到最终的branch输出。在这个过程中feature layer首先进行姜维,然后再升维到和输入的维度相同,再和输入直接相加,得到最终
residual block
的输出。(使用residual而非VGG的原因是防止网络层中的参数0对输出没有影响) inverted residual
是首先对输入的维度进行expand,升到高维空间,经过RELU之后,在经过DWise和RELU,与输入相加之后,得到inverted residual
的输出。这个维度扩展的系数称为expansion factor
。这会避免在降维时造成信息的缺失。- 理解的reference:https://blog.csdn.net/u014380165/article/details/79200958
model architecture
- 论文中是
Table 2
。
experiment
- 作者做了目标分类,基于SSD,开发了SSDLite用于detection,基于Deeplabv3用于语义分割,速度很快的同时,精度也没有太大的降低,泛化能力很好。