MobileNetv1网络详解

背景:

传统卷积网络,内存需求大、运算量大导致无法在移动设备以及嵌入式设备上运行

MobileNet网络是由Google团队在2017年提出的,专注于移动端或者嵌入式设备中的轻量级CNN网络。相比于传统卷积神经网络,在准确率小幅降低的前提下大大减少了模型参数与运算量。(相比于VGG16准确率减少了0.9%,但模型参数只有VGG的1/32)

网络亮点:

Depthwise Convolution(DW卷积,大大减少运算量和参数数量)

增加了两个超参数\alpha(控制卷积核个数),\beta(控制输入图像的大小)

DW卷积:

传统卷积:

对于输入特征矩阵深度为3的特征矩阵,使用4个卷积核卷积,每个卷积核的深度都与输入特征矩阵的深度相同(输入特征矩阵的深度为3,卷积核的深度也为3),输出特征矩阵的深度由卷积核个数决定,为4

总结:

卷积核channel=输入特征矩阵channel

输出特征矩阵channel=卷积核个数

DW卷积:

每一个卷积核的深度为1,并不像传统卷积中卷积核的深度为特征矩阵的深度;每一个卷积核只负责与输入特征矩阵的一个channel进行卷积运算,得到相应的输出矩阵的channel;

每一个卷积核只负责一个channel,因此采用的卷积核个数应与卷积核深度相同;每一个卷积核与输入特征矩阵的一个channel进行卷积之后得到一个输出矩阵的channel,那么输出矩阵的深度与卷积核的个数相同,也与输入矩阵的channel相同。

总结:

卷积核的深度(channel)=1,一个卷积核只负责输入特征矩阵的一个channel维度

输入特征矩阵的channel=卷积核个数=输出特征矩阵channel

Depthwise Separable Conv:

深度可分的卷积操作

由两部分组成,DW卷积和PW卷积

Pointwise conv:

PW卷积就是普通卷积,卷积核大小为1;每个卷积核的深度为输入矩阵的深度相同,输出矩阵深度与卷积核个数相同

深度可分卷积相比普通卷积节省了多少参数:

普通卷积:

通过普通卷积得到的深度为4的特征矩阵

D_{F}:输入矩阵的高和宽

D_{K}:卷积核的大小

M:输入特征矩阵的深度

N:输出特征矩阵的深度,对应卷积核的个数

计算公式:

G:K卷积核i j位置下的第m个通道

n:有n个卷积核

ij:像素的位置

计算量:

普通卷积一共有N\cdot D_{F}\cdot D_{F}个像素,每一个像素都要计算D_{K}\cdot D_{K}\cdot M次,也就是对应原图感受野的大小

D_{K}\cdot D_{K}\cdot M\cdot N\cdot D_{F}\cdot D_{F}

DW操作和PW操作:

通过DW、PW操作得到深度为4的特征矩阵

计算公式:

计算量:

将改变大小和改变深度两件事分离开

D_{K}\cdot D_{K}\cdot M\cdot D_{F}\cdot D_{F}+M\cdot N\cdot D_{F}\cdot D_{F}

对比计算量:

\frac{1}{N}+\frac{1}{D_{K}^{2}},一般都为3*3的卷积核,化简得到\frac{1}{N}+\frac{1}{9}

在理论上普通卷积得计算量是深度可分卷积计算量的8~9倍

MobileNet v1网络模型结构:

1个标准卷积层

13个深度可分离卷积(每层包含两个卷积操作:一个 3x3 深度卷积 和一个 1x1 逐点卷积)

1个全局平均池化层

1个全连接层

1个softmax层

卷积块特点:

引入深度可分离卷积,将普通卷积替换为深度卷积和点卷积

除第一个卷积层和最后全连接层之外,所有卷积层后都有BN,ReLU相连

降采样方式:

方法:

步长设置:在某些卷积层中,设置步长为 2。在卷积操作时,输入特征图的每个位置会跳过 1 个像素,从而在特征图的空间维度上减少输出的尺寸(即降采样)。

使用深度可分离卷积:能有效地进行降采样,还能提取特征,计算量相对较小,更加适合在资源有限的环境下使用。

作用:

减少信息损失

提高效率

超参数:

Width Multiplier \alpha

宽度超参数

输入维度变化:M->\alpha M

输出维度变化:N->\alpha N

将卷积核的个数减少后,准确率没有大幅下降,但对于模型参数减少了很多

Resolution Multiplier\beta

分辨率超参数

特征图尺寸: D_{F}\cdot D_{F} ->\beta D_{F}\cdot \beta D_{F}

减少输入图像的大小,可以保证在准确率降低很小的前提下,大幅减少运算量

作用:

实现准确性和延时性的平衡

缺点:

DW卷积在训练完之后部分卷积核会废掉,大部分参数为“0”

针对此缺点,在MobileNet v2中有改善

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值