轻量化网络之MobileNet
- MobileNet的出现动机
- 神经网络的两个发展方向
- 现有的缩减模型的方法
- MobileNet论文使用的方法
- 应用领域
- 最终成果
- MobileNet结构
- 标准卷积块和深度可分离卷积块的对比
- 深度可分离卷积
- MobileNet超参数
- MobileNet v2创新点
- MobileNet v3创新点
MobileNet的出现动机
① 为了追求更高的准确率,自AlexNet依赖,神经网络更加倾向于更深,更复杂的设计机构,这就导致对GPU的需求提高,但往往现实生活中很难达到。
② 在实际生活中,识别任务更需要是在有限的计算环境下实时计算。因为基本都是在移动端进行的。例如:自动驾驶,机器人视觉,增强现实。
神经网络的两个发展方向
- 轻量化
SqueezeNet
MobileNet
shuffleNet
Xception - 网络深度
AlexNet
VGGNet
GoogleNet
ResNet
DenseNet
SENet
现有的缩减模型的方法
① 模型压缩:在已经训练好的模型上进行压缩,使得网络携带更少的网络参数
② 直接训练一个小型网络:从改变网络结构出发,设计出更高效地网络计算方式,从而使得网络参数减少的同时,不损失网络的性能。
MobileNet论文使用的方法
- 提出了一类新型网络架构,根据应用需求与资源限制(延迟,大小),构建相匹配的小型网络
- MobileNets主要致力于优化延迟,但也可以产生小型网络
- MobileNets主要基于深度可分离卷积构成,通过设计两个超参数,实现准确率和延时性之间的平衡
应用领域
- 目标检测
- 人脸属性识别
- 细粒度分类
- 大规模的地理定位
最终成果
在ImageNet数据集上,与VGG16相比,通过降低0.9%的准确率,却使得参数量整整减少了三十倍。
若是在更小的MobileNet结构下,与AlexNet相比,准确率不仅提升,参数量还减少了四十多倍。
MobileNet拥有更小的体积,更少的计算量,更高的精度。在轻量化级神经网络模型成为可能。
MobileNet结构
dw表示深度卷积
深度可分离卷积是两层,由一个Conv dw和一个1 x 1卷积构成。所以整个MobileNet网络是由一组普通卷积加上十三组深度可分离卷积组成。所以总共是1+13x2+1=28层。
标准卷积块和深度可分离卷积块的对比
深度可分离卷积
为了与深度可分离卷积形成对比,首先介绍***标准卷积***。
输入特征:DF x DF x M
卷积核 K:Dk x Dk x M x N
输出特征G:DF x DF x N
分析卷积过程从两方面:空间和通道
空间:从卷积过程可以观察到,每一次的卷积其实是卷积核区域和输入特征的特点区域进行一个稀疏的连接,他并不是对所有的输入特征的区域依次进行全部的连接,所以说他是一个稀疏的连接。从绿色的线中可以看出。也就是说他在空间上是稀疏连接的。
通道:输出特征的每一个像素值都是通道与通道之间的密集连接的结果,所以通道之间普通卷积是一种密集连接的过程。
深度可分离卷积
输入特征F:DF x DF x M
输出特征G:DF x DF x N
卷积过程
深度卷积:深度卷积都是通道数为一的卷积核,负责一个通道。
点卷积:逐点卷积卷积核大小为1 x 1 x M,每次卷积一个像素的区域。
深度卷积只是进行空间上的探索,很多特征在通道之间是有丰富的联系的,所以需要有一个卷积操作把各种通道之间的信息打通。所以因此引入点卷积。
深度卷积在空间上与普通卷积是一样的,但是在通道上是一个卷积核只负责一个通道
1X1卷积在空间上是一对一的关系,在通道上是密集连接的结果。
K:卷积核
F:待卷积的特征
i和j:像素的位置
m:第几层通道
M:某个卷积核的第M个通道
N:有N个卷积核
Feature size:DF X DF
在深度卷积中不考虑不同的通道之间对应的联系,他是一个卷积核一个通道。
算力消耗表示的就是卷积的运算量
DK:卷积核的size
一个像素点所需要的计算是DK X DK X M
一共有DF X DF X N个像素点
运算量之比:N和DK越大,比值越小。也就是说,输出的通道数越多,卷积核的size越大,那么整个算力消耗的减小相对于标准型来说就会越多,越有效果。
MobileNet超参数
两个超参数
MobileNet v2创新点
(1)Linear Bottlenecks
还有争议:我理解就是一个低维矩阵和一个高维矩阵相乘,升维后用relu滤掉负值,再用这个高维矩阵的逆恢复回原矩阵,有损失
(2)Inverted residuals逆残差结构
ResNet:一个bottleneck是由一个1x1卷积(降维)+3x3卷积+1x1卷积(升维)
MobileNet v2:一个bottleneck是由一个1x1卷积(升维)+3x3卷积+1x1卷积(降维)
(3)网络结构
MobileNet v3创新点
① 新的**函数:
② 引入SENet
压缩操作:
顺着空间维度来进行特征的压缩,将每个特征的二维通道变成实数,原本是
W X H X C,现在每一层的通道都变成一个实数,也就是 1 X 1 X C ,这个实数从某种程度上是具有全局的感受野,并且输出的维度和输入的特征通道数相匹配,它表征着在特征通道上享用全局分布,而且使得靠近输入层也可以获得全局感受野。
激励步骤:
这个其实类似于循环网络中门的机制,通过一个参数w来为每一个特征通道生成权重,可以图内具有不同的颜色,代表着不同的权重,权重大的表示我这一层的特征需要重视它,尽可能的保留它,权重小的也就是表示这一层的特征不重要,那么就可以忽视它或者是给它很小这种注意力。
V3相较于v2的创新点:
一句话就是最后一个bottleneck降维处理的替代,减少了11%的运行时间,操作次数减少了三千万。