天天看点

MobileNet_v2网络模型详解

1.概述

阐述MobileNet的网络结构。

十里桃园首发,转载请注明

V3已经出来,此文章已意义不大,请参考我的另外一篇对v3的详细解读:https://blog.csdn.net/weixin_37918890/article/details/105262735

  1. MobileNet Introduction

本文介绍MobileNet_v2网络结构。在MobileNet_v1中,应用了深度可分离卷积,使得神经网络在保持精度的同时,极大的降低了计算速度。

在MobileNet_v2中,提出了两个新的概念,即:倒置残差Inverted Residual 和线性瓶颈Linear Bottleneck。倒置残差主要用来增加图像特征的提取以提高精度,而线性瓶颈主要用来避免非线性函数的信息丢失。

  1. 线性瓶颈 Linear Bottlenecks

3.1.感兴趣流形

Manifold of Interest (翻译成目标特征描述域更贴切)

3.1.1

非线性函数ReLu

激活函数是在人工网络神经元上运行的函数,负责将神经元的输入映射到输出。经过几年的发展,传统使用的函数从Sigmoid渐渐的变为ReLU等非线性函数,以避免梯度消失的问题。

同时为了使RuLU函数在移动设备低精度的时候也能有很好的数值分辨率,对ReLU函数的激活范围加以限制,经实验表明ReLU的输出限制为6效果最好,这样限制后的函数重新命名为ReLU6。

但是ReLU系列激活函数在第二象限具有丢失信息的缺点,例如RELU6函数图像如下图.1,可以看出在横坐标小于0时,其输出的纵坐标值恒为0。

MobileNet_v2网络模型详解

之所以说信息丢失,是因为在x小于0的时候输出的y值不能通过反函数算出x值。通俗地来讲,每一副自然图像,是一个被神经网络理解的n维特征之集合,对之做ReLU运算,再做逆运算对比结果可以看出计算的特征和复原的原先特征的差别。

3.1.2信息丢失

MobileNet_v2网络模型详解

如上图,Input表示输入的特征分布,通过ReLU6嵌入到多维空间,按不同的维度可以表示的如后续的图像序列。可以看出在维度为2、3时其信息丢失严重,而在维数增加的过程中,渐变为高度非凸,易于陷入局部最优,从而影响神经网络性能。

鉴于此,MobileNet作者提出一种名为Linear Bottleneck的方案,其实质是一种线性映射,以解决信息丢失问题。

3.2.线性映射Linear

Bottleneck

线性映射基于神经网络卷积,神经网络卷积在这里介绍三种:1,传统卷积;2,深度可分离卷积(MobileNet_v1);3,带Linear Bottleneck的深度可分离卷积(MoibleNet_v2)

MobileNet_v2网络模型详解
MobileNet_v2网络模型详解
MobileNet_v2网络模型详解

图.3、图4所介绍的卷积在先前文档中已经阐述过,值得注意的是,相比于先前文档,MobileNetV2中在DepthWise前加了一层PointWise,也就是说,在MoibleNetv2中,其深度可分离卷积为 PointWise + DepthWise + PointWise,而先前文档中的深度可分离卷积结构为 DepthWise +PointWise,可以理解为增加了特征维度以更好的表达图像特征。

图.5表征的是带有Linear

Bottleneck的深度可分离卷积,其中带斜杠的方块为不含有非线性函数的层。可以看出前两个卷积均应用了ReLU非线性函数,只有在最后一次卷积使用线性函数,这可能会被人误解为先用了ReLU已经造成了信息丢失,即使后续运用了线性结构也于事无补。其实不然,因为在Linear Bottleneck以前有一次维度扩展,信息的存储维度在很大程度上被拔高。这样以来,那些误以为被丢失的信息其实还存在于高维通道之中。最后的线性层,则保留了这些信息进入下一层神经网络。相较之下,其相对于纯非线性层的网络模型,在保持了更好的信息感兴趣流形。

MobileNet_v2网络模型详解

如图.6所示,回想先前文档讲述的残差块,暂时不考虑快捷链接,只考虑残差块其余结构,若把传统的残差块比作一个沙漏,那么在MobileNe_v2中的倒置残差块可以被比为一个梭子。其先进行了维度扩展,以保持更高的信息维度,提高最终深度模型精确度,同时使用了线性Bottleneck在一定程度上保证了模型的最终精确度不下降。

  1. 倒置残差 Inverted Residuals

在先前文档<物体识别文档-NO.2-深度残差.docx>中,对残差块之所以存在,其原因描述为了达到降低计算量,以达到超深层网络可行的目的。

在MobileNet_v2中,改变了运用残差模块的初衷,但是保留了残差网络的灵感,其可行性可做以下解释:1,MobileNet_v2网络不深,缺乏用残差块大范围缩减计算量的必要性。2,反向残差在另一方面增加了信息维度,这对精确度的保持和提升有促益。其倒置残差块结构如下:

MobileNet_v2网络模型详解
MobileNet_v2网络模型详解

如图.7、图.8,图解了MobileNet网络的基本单元,即倒置残差块。本层的输入也为上层输出,输入的Bottleneck经过下图.9中的卷积过程生成下层所需的Bottleneck。

MobileNet_v2网络模型详解

具体来说卷积过程,倒置残差卷积主要分三个部分: PointWise1、DepthWise、PointWise2。

PointWise1为点卷积,即将图像生成一个高维信息域,其激活函数为如图10,为ReLU,而后用DepthWise卷积进行各个通道的单独卷积,此刻由于维度较高又没有降维操作,故激活函数也选用的ReLU函数。最后一层为点卷积,涉及到降维操作,故没有用ReLU以避免信息丢失。

MobileNet_v2网络模型详解
MobileNet_v2网络模型详解

图.10.2倒置残差块图解2.b 倒置残差模块

如上图.10,与传统深度残差相同,其引入了快捷链接概念,以避免梯度消失的现象产生。传统深度残差模块类似一个沙漏,而MobileNet_v2提出的倒置残差模块则类似一个梭子,保证了信息的保持。

  1. 网络结构

MobileNet的核心由17个Bottleneck组成,MobileNet的网络模型如下图.11,其中t意指在残差块中扩展的维度。c为输出的维数,也可用来判断卷积核的个数。s为卷积的步长,亦可用来判断下采样的倍数。n是当前行操作被重复应用n次,值得注意的是,下采样和通道维数变换只在每行的第一次行操作时采取,为了更直白的理解网络模型,给出图.12。

MobileNet_v2网络模型详解
MobileNet_v2网络模型详解

如上图.12,因网络比较复杂,采用彩色绘图的方式,颜色相同的图像分辨率为同一副图像/特征map。上图每一行为一层,共21层,为MobileNet的基本网络结构。

继续阅读