深度学习论文精读(4):MobileNetV2
论文地址:MobileNetV2: Inverted Residuals and Linear Bottlenecks
参考博文1:https://zhuanlan.zhihu.com/p/33169767
参考博文2:https://zhuanlan.zhihu.com/p/33075914
参考博文3:https://blog.youkuaiyun.com/u014380165/article/details/79200958
文章目录
1 总体介绍
- 在移动端或嵌入式设备上使用CNN存在困难,对模型大小、计算力都有限制。
- 深度学习模型通常模型较大,计算力需求过高。难以部署在移动端或嵌入式设备上。
- 提出了使用depth-wise separable convolutions (深度可分离卷积结构) 构建的小权重DNN的精简构架。在MobileNetV1中介绍过了。
- 提出了linear bottleneck和inverted residual进行改进。
- 起到的效果:
- 相似的模型大小,比MobileNetV1效果更好。
2 linear bottleneck
- 对于RelU输出结果为非0的情况,Relu只是一个简单的线性变换。
- RelU在 “input manifold处于输入空间的低维子空间” 的前提下,可以保留input manifold的信息。
- 即:ReLU这样的非线性激活不能在所有情况下保留输入信息。
- 论文中对于ReLU在各个维度下信息的保留情况作了下图的说明。可以看到高维情况下能更好的保留信息。
- 理解:对原始input先升维,再恢复到原始图片。升维大时(最右边两张图片),恢复的图片效果越好。
- 内在联系:ReLU会使feature中的负值置0,且这一过程是不可逆的。因此当维度较小时,进行ReLU会损失较多的feature,降低网络对信息的利用率。而先进行升维之后再进行ReLU,则可有有效地减少信息的丢失。
3 inverted residual
3.1卷积结构演变
- (a)标准3*3卷积
- (b)Depthwise Separable Convolution
- (c)在b的基础上增加了一层bottleneck层(虚线表示没有ReLU)
- (d)Inverted residuals结构
- 实际上,c和d可以认为是相同的。(若干个c相连,与若干个d相连,除了两头的结构有点区别,中间部分都一样)
3.2 inverted residual block
- ResNet中的residual block与本文中的inverted residual block的对比:
- (a)中residual block进行的卷积流程为11降维,3 * 3卷积,11升维。
- (b)中inverted residual block进行的卷积流程为11升维,3 * 3 Depthwise Convolution,11降维(通道数过少不再进行ReLU激活)。
- 直观的形象上来看,ResNet 的微结构是沙漏形,而 MobileNet V2 则是纺锤形,刚好相反。
- 文中这么做的理由正如前一节的linear bottleneck提到的,低维情况下进行非线性激活会丢失过多信息,因此,将提取信息的卷积放在升维之后的空间中进行,并在低维时放弃非线性激活。
- inverted residual block具体结构
- h,w,k:高,宽,通道。s:步长。t:升维系数。
3.3 ReLU6
ReLU6就是普通的ReLU但是限制最大输出值为6(对输出值做clip),这是为了在移动端设备float16的低精度的时候,也能有很好的数值分辨率,如果对ReLU的激活范围不加限制,输出范围为0到正无穷,如果激活值非常大,分布在一个很大的范围内,则低精度的float16无法很好地精确描述如此大范围的数值,带来精度损失。
4 MobileNetV2结构
4.1 卷积层结构
采用inverted residual block。其中非线性激活函数采用ReLU6。
- 步长为1时,先进行1*1卷积升维,再进行depth-wise convolution提取信息,再通过不进行激活的1 *1卷积降维,并将input与output相加,形成残差结构。
- 步长为2时,因为input和output的尺寸不符,因此不添加残差结构,其余均一致。
4.2 总体结构
除第一个卷积层外,均使用inverted residual block。
5 总结
- 发现了在特征通道较少时,进行非线性激活会导致网络效果变差。因此提出了linear bottleneck。
- 根据linear bottleneck和残差网络的优异性能,提出了inverted residual block。
另外,发现对于MobileNetV1中的调节通道数的超参数width-multiplier不作用于最后一层卷积,效果会更好。(直观理解是,保留的信息多了,效果肯定更好。同时因为只是最后一层,不会增加太多的参数和计算量。)
单词整理:
- specturm 光谱
- sematic segmentation 语义分割
- expansion 膨胀,扩张
- intermediate 中间
- decoupling 去耦
- expressiveness 表现
- tailored 量身定做(tailor 裁缝)
- pursue 追求
- vein 静脉
- glimpse 一瞥
- mainfold 多种,复写(复写本)
- capture 捕获
- exploid 利用
- curve 曲线
- inevitably 必将
- correspond 相当于,对应
- empirical 经验
- crucial 关键
- capacity 容量
- warrent 保证