改进MobileNet的图像分类方法研究
高淑萍 , 赵清源 , 齐小刚 , 程孟菲     
西安电子科技大学 数学与统计学院,陕西 西安 710126
摘要:针对神经网络结构的特征提取能力不足以及在包含复杂图像特征的数据集上分类准确率不高的问题,本文提出了一种对MobileNet神经网络的改进策略(L-MobileNet)。将原标准卷积形式替换为深度可分离卷积形式,并将深度卷积层得到的特征图执行取反操作,通过深度卷积融合层传递至下一层;采用Leaky ReLU激活函数代替原ReLU激活函数来保留图像中更多的正负特征信息,并加入类残差结构避免梯度弥散现象。与6种方法进行对比,实验结果表明:L-MobileNet在数据集Cifar-10、Cifar-100(coarse)、Cifar-100(fine)和Dogs vs Cats上平均准确率和最高准确率都取得了最佳结果。
关键词卷积神经网络    图像分类    特征提取    MobileNet    深度可分离卷积    激活函数    Leaky ReLU    残差结构    
Research on the improved image classification method of MobileNet
GAO Shuping , ZHAO Qingyuan , QI Xiaogang , CHENG Mengfei     
School of Mathematics and Statistics, Xidian University, Xi’an 710126, China
Abstract: This paper proposes an improved strategy for the MobileNet neural network (L-MobileNet) because the feature extraction ability of a neural network structure is insufficient, and the classification accuracy is not high on the dataset containing complex image features. First, the original standard convolution form is replaced by the depth separable convolution form, and the feature map obtained from the deep convolution layer is reversed and transferred to the next layer through the deep convolution fusion layer. Second, the leaky ReLU activation function is used to replace the original ReLU activation function to retain more positive and negative feature information in the image, and residual structure is added to avoid the gradient diffusion phenomenon. Finally, the experimental results showed that when compared with six methods, L-MobileNet achieved the best results in the datasets of Cifar-10, Cifar-100 (coarse), Cifar-100 (fine), and Dogs vs Cats.
Key words: convolutional neural network    image classification    feature extraction    MobileNet    depth separable convolution    activation function    Leaky ReLU    residual structure    

图像分类是通过涵盖在图像里的不同特征信息来对图像集进行归类,它是目前计算机视觉领域的基本问题之一,也是行为检测、目标识别、图像修复、图像切割等复杂视觉任务的基础。图像分类广泛应用于诸多领域,包括医学影像识别等。早期图像分类技术以人工提取特征为主,而后发展为特征表达的学习,首先是利用尺度不变特征转换(scale-invariant feature transform, SIFT)、方向梯度直方图(histogram of oriented gradient, HOG)等方法进行底层特征提取;其次是利用核词典编码、Fisher向量编码等进行特征编码;然后是将编码后的特征进行汇聚;最后利用支持向量机等分类器进行图像分类。虽然特征表达的学习方式能够提取一部分图像特征,但这种方式容易出现特征丢失、泛化性能差的问题,最终难以达到理想图像分类精度的要求。

深度学习中卷积神经网络(convolutional neural network, CNN)能够完成输入信息从浅层学习到深层学习的逐级表达,提取更加准确的特征,降低在图像分类技术上的操作难度并取得显著效果。在图像分类领域,最初是由Yann LeCun[1]将CNN部署在手写体识别上,取得了良好的识别效果;2012年后,相继出现了AlexNet、GoogLeNet[2]、ResNet[3]等具有代表性的深度网络结构;近几年,国内外提出轻量化版本的网络结构,如GhostNet[4]、ShuffleNetV1[5]、MobileNetV1[6]、MobileNetV2[7]、ShuffleNetV2[8]、SqueezeNet[9]和IGCV3[10],其中MobileNet系列更具代表性。在MobileNetV1中,以深度可分离卷积替换标准卷积的方式降低了网络结构的大小和计算复杂度,而MobileNetV2在保持深度可分离卷积的基础上,加入多个逐点卷积,进一步提升网络结构性能和降低计算复杂度。但MobileNet系列的网络结构在应用于图像分类任务时,因其网络内部设计、优化策略和激活函数的原因,导致会不断地忽略输入信息中的负值特征信息,而这些负值特征信息却可能是图像分类的关键点。近3年对MobileNet网络结构在图像分类领域的改进方法被相继提出。如2019年,黄跃珍等[11]利用Squeeze-and-Excitation模块对MobileNet网络结构进行改进,提高了车型识别精度;刘鸿智[12]在MobileNet网络结构的基础上,采用新的混合链接结构,提高了在数据集Cifar-10和Cifar-100的分类精度;2020年,Guo等[13]提出在MobileNet网络结构中插入八度卷积和中心损失函数的方法,提升了多国人脸分类识别率。

本文在前人工作的基础上,提出一种改进的MobileNet网络结构,即L-MobileNet。其主要思想为

1)用深度可分离卷积形式代替标准卷积形式,并将深度卷积得到的特征图执行取反操作,通过深度卷积融合层传递至下一层;

2)卷积层中使用Leaky ReLU激活函数以保留图像更多的正负特征信息,并加入类残差结构[3]避免梯度弥散现象,降低网络参数计算量。

为了提高网络结构的泛化能力,在数据输入时采用数据预处理技术。通过将本文L-MobileNet与经典的CNN、MobileNetV1、MobileNetV2、经典的CNN+Leaky ReLU[14]、MobileNetV1+Leaky ReLU[15]和MobileNetV2+Leaky ReLU[15]进行对比实验,结果表明L-MobileNet在Cifar-10[16]、Cifar-100 (coarse)[16]、Cifar-100 (fine)[16]和Dogs vs Cats[17]数据集上具有更好的图像分类效果。

1 相关预备知识 1.1 经典的CNN网络结构

经典的CNN属于前馈神经网络类型,其结构组件有标准卷积层、池化层、全连接层、激活函数和分类器,如图1所示。该网络主要通过标准卷积层进行图像特征提取,在该层中通常包括若干特征图,每个特征图由神经元节点排列成矩形形状,相同特征图中神经元节点之间进行权值共享。通过权值共享可以减少神经元节点之间的连接数量,避免过拟合现象。池化层能够降低计算维度,进而提升网络结构的泛化性能。激活函数用来增强网络结构的非线性学习能力。经过多次特征提取过程后,把最后的特征图进行拼接,得到一维矩阵。最后由全连接层输入到分类器进而输出分类结果。

Download:
图 1 经典的CNN网络结构 Fig. 1 Classical CNN network structure

经典的CNN网络结构利用卷积核提取图像中的特征,对局部进行感知并且通过权值共享降低参数计算量。但经典的CNN反向传播过程中容易出现参数不更新现象,和池化层丢失图像中特征信息的问题。

1.2 MobileNet网络结构

MobileNet网络系列在近几年被广泛应用,更是轻量级网络的典型代表。MobileNet网络结构在经典的CNN网络结构基础上,将池化层、部分全连接层用卷积层来代替,其突出特点是引入了深度可分离卷积的卷积形式。标准卷积是将一组卷积核与输入数据作用后组合成单通道特征的输出,而深度可分离卷积是因式分解的卷积形式,将标准卷积分解为深度卷积和1×1逐点卷积2部分,深度卷积是把单个固定大小的卷积核作用到每个输入通道,然后逐点卷积通过1×1的卷积核来进行通道信息融合并输出。图2显示标准卷积(图2(a))分解为深度卷积(图2(b))和1×1逐点卷积(图2(c))的过程。

图2 $M$ 表示输入通道数量, $N$ 表示输出通道数量, ${D_K} \times {D_K}$ 表示卷积核大小的乘积, ${D_F} \times {D_F}$ 表示特征映射图大小的乘积。

Download:
图 2 标准卷积分解过程 Fig. 2 Standard convolution decomposition process

深度卷积计算成本为

${D_K} \times {D_K} \times M \times {D_F} \times {D_F}$ (1)

逐点卷积计算成本为

$M \times N \times {D_F} \times {D_F}$ (2)

深度可分离卷积计算成本占标准卷积计算成本的比例为

$\frac{{{D_K} \times {D_K} \times M \times {D_F} \times {D_F} + M \times N \times {D_F} \times {D_F}}}{{{D_K} \times {D_K} \times M \times N \times {D_F} \times {D_F}}} = \frac{1}{N} + \frac{1}{{D_K^2}}$ (3)

实验表明[6],当使用3×3的深度可分离卷积时,其计算量比标准卷积少8~9倍,而精度只有很小的损失。MobileNet网络系列在尽可能保证图像分类精度稳定的前提下,极大缩短网络训练的时间与减少参数更新过程中的计算成本,也为后续网络结构的优化提供了方向。但MobileNet网络结构中仍存在着特征信息提取能力不足导致分类精度不高和网络层中激活函数丢失负值特征信息的现象。

1.3 Leaky ReLU激活函数[18]

激活函数是神经网络结构中非线性学习能力的关键点,ReLU激活函数可以有效缓解梯度弥散现象,成为大多数激活函数的主流选择。但随着网络训练轮数的增加,部分神经元对应权重得不到更新,出现神经元死亡现象,并且ReLU在特征提取过程中会丢弃特征图内的负值特征信息。ReLU输出值的均值始终大于零,也不利于网络学习能力的表达。Leaky ReLU激活函数的特性解决了ReLU的问题,有效提取负值特征信息,数学形式为

${y_i} = \left\{ {\begin{array}{*{20}{c}} {{x_i}}{,}&{{x_i} \geqslant 0} \\ {\dfrac{{{x_i}}}{{{a_i}}}}{,}&{{x_i} < 0} \end{array}} \right.$ (4)

式中: ${x_i}$ 代表第 $i$ 层的输出; ${y_i}$ 代表第 $i$ 层经过非线性变换后的输出; ${a_i}$ 是第 $i$ 层中的固定参数,其范围是 $(1, + \infty )$ 。Leaky ReLU激活函数如图3所示。由于Leaky ReLU激活函数负半轴是一个较小斜率的函数,可以来初始化神经元,避免神经元死亡的同时增加了负值特征信息的提取。由文献[18]可知,当Leaky ReLU激活函数中 ${a_i} = {\rm{5}}{\rm{.5}}$ 时,Leaky ReLU激活函数的分类效果要优于ReLU激活函数。

Download:
图 3 Leaky ReLU激活函数( ${a_i} = {\rm{5}}{\rm{.5}}$ ) Fig. 3 Leaky ReLU activation function( ${a_i} = {\rm{5}}{\rm{.5}}$ )
2 L-MobileNet网络结构

针对经典的CNN网络结构和MobileNet网络结构特征提取能力不足和易忽略负值特征信息的问题,本文提出一种改进的MobileNet网络结构的图像分类方法,即L-MobileNet。首先,研究了基于MobileNet网络中存在特征信息的各个局部区域;其次,设计了深度卷积取反层和深度卷积融合层,将原图像特征和其取反特征进行融合提取;最后,加入类残差结构,组合卷积块,通过损失函数优化整个网络进行分类。

L-MobileNet网络结构如图4所示,参数设置如表1所示。深度卷积层得到的特征图通过深度卷积取反层进行取反操作,并将其与原特征图的特征信息一起通过深度卷积融合层进行特征相加,传递至下一个逐点卷积层,然后传递至下一个卷积块,以此类推。其中的卷积块中采用Leaky ReLU激活函数,将其作用于每一个卷积块中的每一个卷积层。为了防止出现梯度弥散现象,在卷积块中加入了类残差结构,先进行信息通道的扩展再进行信息通道的压缩。通过交叉熵损失函数优化整个网络,直至收敛。最终经过全局平均池化层和逐点卷积层来达到分类数目要求,通过Softmax分类器进行输入样本的分类。

Download:
图 4 L-MobileNet网络结构 Fig. 4 L-MobileNet network structure
表 1 L-MobileNet参数设置 Tab.1 L-MobileNet parameters setting
2.1 特征信息的融合

图4所示,本文对特征信息的融合采用的是在深度卷积层提取了原始图像局部特征后,同步进行深度卷积取反层,然后利用深度卷积融合层对2层特征信息进行处理。符号说明如下:对于给定的图像,其中 $l$ 表示当前层, $l - 1$ 表示前一层, $x_j^l$ 表示当前层第 $j$ 个特征图, $ \circ $ 代表深度卷积运算, $x_i^{l - 1}$ 表示前一层第 $i$ 个特征图, $k_{ij}^l$ 表示该层第 $i$ 个特征图和前一层第 $j$ 个特征图所作用的卷积核, $b_j^l$ 表示偏置值, ${M_j}$ 表示产生该层第 $j$ 个特征图相关的前一层特征图累计值, $f\left( \cdot \right)$ 表示Leaky ReLU激活函数。

深度卷积层对输入的处理为

$x_j^l = f\left(\sum\limits_{i \in {M_j}} {x_i^{l - 1} \circ k_{ij}^l + b_j^l} \right)$ (5)

深度卷积取反层同步对输入进行处理为

$x_j^l = f\left[ {{\rm{ - }}\left(\sum\limits_{i \in {M_j}} {x_i^{l - 1} \circ k_{ij}^l + b_j^l} \right)} \right]$ (6)

深度卷积融合层将前2步提取的信息进行融合为

$x_j^l = f\left[ {x_i^{l - 1} \circ k_{ij}^l + b_j^l} \right]{\rm{ + }}f\left[ {{\rm{ - }}\left( {x_i^{l - 1} \circ k_{ij}^l + b_j^l} \right)} \right], \quad i \in {M_j}$ (7)

深度卷积融合层所提取出的特征,不仅包含了原始深度卷积层中的特征信息,而且对潜在的图像局部区域的特征进行提取,融合后的特征随着网络训练的进行,不断学习出识别效果优秀的高维特征信息。

2.2 负值特征信息的提取

图4可知,L-MobileNet网络结构中有6个大卷积块,为了提高MobileNet网络中对负值特征信息的敏感度和负值特征信息传播过程中的完整度,本文将原始的ReLU激活函数替换为Leaky ReLU激活函数,并引入类残差结构。经典的CNN受限于固定的卷积核大小和激活函数的选取,影响了负值特征信息的提取和传播,而MobileNet网络虽对卷积核形式有所改变但对负值特征信息量仍提取不足。由于Leaky ReLU激活函数自身特性对负值敏感,能够保障神经元不死亡,并且类残差结构可以防止梯度弥散,利于负值特征信息的传播,所以本文在每一个卷积层后使用Leaky ReLU( ${a_i} = {\rm{5}}{\rm{.5}}$ )激活函数和在第3、5及第6卷积块使用类残差结构。

由于前向传播过程中前面网络层中梯度的计算尚可保持较大值,而越靠后的网络层中梯度值会越来越小,导致反向传播过程中极易出现梯度弥散现象,所以本文将类残差结构放置在网络中后端位置。以其中一个卷积块为例,如果特征向量的维度越低,卷积层中的计算量越小,导致网络结构整体计算速度越快,但这并不能够提取出输入图像全面且有效的特征信息。为了达到网络结构平衡的目的,本文采取含有高维特征向量的设计:卷积块的输入端采用1×1的逐点卷积结构,目的是将特征信息从低维空间映射到高维空间,同时受文献[7]的启发,将其中负责维度扩展的超参数的默认值设置为6。卷积块的输出端同样采用1×1的逐点卷积结构,在没有超参数的设定下,可以将特征信息从高维空间映射到低维空间。

逐点卷积计算为

$ {x}_{j}^{l}=f\left({\sum\limits_{i\in {M}_{j}}{x}_{i}^{l-1} \cdot {k}_{ij}^{l}+{b}_{j}^{l}}\right)$ (8)

式中: $(\cdot)$ 代表逐点卷积运算;其余符号与式(5)相同。为了保证负值特征信息的完整度,在卷积块中每一个卷积层后,摒弃掉可能会造成信息丢失的ReLU激活函数,使用Leaky ReLU激活函数。卷积块以逐点卷积、深度卷积、逐点卷积交错的方式排列。

2.3 传播过程中的参数更新原理

在反向传播的参数更新中,L-MobileNet网络结构使用Tensorflow框架下tf.average_pooling2d进行全局平均池化,根据输入信息的类别数目由逐点卷积层输出。

用Softmax分类器来进行输出分类为

$Y\left( p \right) = P\left( {y = p\left| {{x}} \right.,{\theta _p}} \right) = \frac{{{{\rm{e}}^{{{{x}}^{\rm{T}}} {\theta _p}}}}}{{\displaystyle\sum\limits_{p = 1}^C {{{\rm{e}}^{^{{{{x}}^{\rm{T}}} {\theta _p}}}}} }}$ (9)

采用交叉熵优化的损失函数为

$\begin{array}{l} \quad\quad\quad\quad\quad\quad\quad\quad\mathop {\min }\limits_{\left\{ {W,b;\theta } \right\}} \varepsilon \left( {W,b;\theta } \right) = \\ \begin{array}{*{20}{c}} {} \end{array}\dfrac{1}{N}\displaystyle\sum\limits_{n = 1}^N {\left[ { - \displaystyle\sum\limits_{p = 1}^C {\gamma \left( {{y_n} = p} \right) \log P\left( {y = \left. p \right|x,{\theta _p}} \right)} } \right]} + \lambda R\left( \theta \right) \end{array} $ (10)

式中: $C$ 表示类别; $N$ 表示样本数; $\gamma $ 表示Dirichlet函数;参数 $\theta = \left( {{\theta _1},{\theta _2}, \cdots ,{\theta _k}} \right)$ $R\left( \cdot \right)$ 表示正则化约束项; $\lambda $ 表示正则化系数。

损失函数 $\varepsilon $ 对输入 $c$ 的导数为

$\frac{{\partial \varepsilon }}{{\partial c}} = \frac{{\partial \varepsilon }}{{\partial f(c)}}\frac{{\partial f(c)}}{{\partial c}}$ (11)
$\dfrac{{\partial f(c)}}{{\partial c}} = \left\{ {\begin{array}{*{20}{c}} {\rm{1}}{,}&{c \geqslant 0} \\ {\dfrac{1}{{{a_i}}}}{,}&{c < 0} \end{array}} \right.$ (12)

式中: $\varepsilon $ 表示损失函数; $c$ 表示前一网络层的输出; $f(c)$ 表示前一网络层经过非线性变换后的输出; ${a_i}$ $(1, + \infty )$ 的固定参数; $\dfrac{{\partial \varepsilon }}{{\partial f(c)}}$ 表示从网络深层传播来的梯度; $\dfrac{{\partial f(c)}}{{\partial c}}$ 表示当前层输入值的梯度。当增大前向传播中对特征信息的存储后,将减小训练样本的误差,再通过反向传播算法进一步影响了网络结构中的参数更新。

参数的更新规则为

$\Delta c \leftarrow \mu \Delta c + \omega \alpha c + \alpha \frac{{\partial \varepsilon }}{{\partial c}}$ (13)
$c \leftarrow c{\rm{ + }}\Delta c$ (14)

式中: $c$ 表示前一网络层的输出; $\varepsilon $ 表示损失函数; $\mu $ 表示动量系数; $\alpha $ 表示学习率; $\omega $ 表示权重衰减系数。本文L-MobileNet通过影响网络中参数 $c$ $\dfrac{{\partial \varepsilon }}{{\partial c}}$ 更新,最终影响到网络结构的分类结果。

网络模型的参数量(空间复杂度)的计算为

${C_{\rm{Space}}} \sim O\left( {\sum\limits_{l' = 1}^D {k_{l'}^3} \times {C_{l' - 1}} \times {C_{l'}} + \sum\limits_{l' = 1}^D {{M^3}} \times {C_{l'}}} \right)$ (15)

网络模型的计算量(时间复杂度)的计算为

${\rm{Time}} \sim O\left( {\sum\limits_{l' = 1}^B {{D_F}^3 \times k_{l'}^3 \times {C_{l' - 1}} + {D_F}^3 \times {C_{l'}} \times {C_{l' - 1}}} } \right)$ (16)

式中: ${C_{l'}}$ 为第 $l'$ 层卷积核个数; ${C_{l'{\rm{ - 1}}}}$ 为上一层的输出通道数; ${k_{l'}}$ 为卷积核尺寸; $M$ 为输出特征映射的边长; $D$ 为所有卷积层数; $ O(\cdot)$ 为所需要的空间资源量。由于本文使用的激活函数是Leaky ReLU函数,因此可以通过原位运算完成从输入到输出的非线性映射,排除输出特征映射的参数量。根据式(15)、(16)计算表明,L-MobileNet参数总量为280万、计算量为320百万次,与MobileNetV1[6]的420万个参数、575百万次计算量和MobileNetV2[7]的340万个参数、300百万次计算量相比,本文方法参数量更少。

2.4 算法步骤

L-MobileNet网络结构的初始学习率设置为0.1,随着训练轮数增加和训练误差变小,学习率呈自适应状态且衰减系数为0.96,直到达到最大训练轮数时停止训练。对于数据集 $D = \left\{ {\left( {{x_n},{y_n}} \right)} \right\}_{n = 1}^N$ ,L-MobileNet网络算法步骤为

输入 训练数据集 $D = \left\{ {\left( {{x_n},{y_n}} \right)} \right\}_{n = 1}^N$ ,L-MobileNet网络结构,图像分类数,每一批的数量,自适应学习率的初始值和衰减系数。

1) 利用预处理技术将数据集 $D = \left\{ {\left( {{x_n},{y_n}} \right)} \right\}_{n = 1}^N$ 中的训练集与测试集进行处理,转换为符合L-MobileNet网络结构输入的四维数组即每一批输入的图片数和每一批次输入的标签数。

2)将每一批输入的图片数和每一批次输入的标签数导入网络架构文件中,并初始化L-MobileNet网络中所有的权值 $k$ 和偏置 $b$

3) 令 $l = 1$

4) 用L-MobileNet网络对输入进行训练,计算训练样本的实际输出值及每一网络层所产生的误差总和。

5) 用RMSProp算法优化器计算网络中权值和偏置的偏导数以此更新相应参数值。

6) 判断 $l > {\rm{Epoch}}$ 训练轮数是否成立,成立则停止训练;不成立,则返回4)。

输出 参数(权值 $k$ 和偏置 $b$ )已知的L-MobileNet网络结构。

3 实验与结果分析 3.1 实验数据集

实验数据取自Cifar-10、Cifar-100和Dogs vs Cats。Cifar-10数据集中有10种类别,由60 000张32×32彩色图片组成,每种类别包含6 000张图片,总计有10 000张测试图片和50 000张训练图片。Cifar-10数据集分为1个测试批次和5个训练批次,测试批次是由每种类别中随机选择的1 000张图片组成,其余5个训练批次是由每种类别中随机的剩余图片组成(某个训练批次可能包含某个类别的图片数量多于另一个类别的图片数量)。图5显示Cifar-10数据集中部分样本。Cifar-100数据集与Cifar-10数据集结构类似,但有coarse和fine 2种数据构成。图6显示Dogs vs Cats数据集中部分样本。实验采用的Cifar-10、Cifar-100(coarse)和Cifar-100(fine)数据集划分采取5:1的比例,在60 000张图片中,50 000张图片用于训练,10 000张图片用于测试验证。Dogs vs Cats数据集各类取前2 000张图片用于训练,各类另取400张图片用于测试验证。在实验前将4个数据集进行了左右翻转、上下翻转、调整图片亮度、调整图片对比度和白化的数据预处理技术。

Download:
图 5 Cifar-10数据集的部分图例 Fig. 5 Partial legend of Cifar-10 dataset
Download:
图 6 Dogs vs Cats数据集的部分图例 Fig. 6 Partial legend of Dogs vs Cats dataset
3.2 实验仿真环境

为验证L-MobileNet网络结构有效性,本文将其与经典的CNN、MobileNetV1、MobileNetV2、经典的CNN+Leaky ReLU,MobileNetV1+Leaky ReLU和MobileNetV2+Leaky ReLU进行对比实验,并评价各网络结构,所有对比实验均采用相同卷积层设置,且每层参数设置也相同。

实验仿真环境采用tensorflow1.14框架,编程语言为Python3.7,框架平台为PyCharm2019.1.1,使用Windos10,64位操作系统,CPU使用Intel Core i7-7700K,GPU使用NVDIA GTX1080 8 G,内存为32 G以实现所有实验。

3.3 训练过程及实验对比

在L-MobileNet网络输入层中,按照数据集中图片大小输入即可,训练及测试样本batch_size为128。卷积层中,逐点卷积使用1×1卷积核,深度卷积使用3×3卷积核,并对每次卷积操作进行Leaky ReLU激活函数的非线性特征提取,利用深度卷积融合层来产生更多的特征,使得模型增强数据分类学习过程中的控制力。训练过程中使用RMSPropOptimizer优化策略,decay为0.9,momentum为0.9。学习率采用自适应学习率,decay_rate为0.96。对于Cifar-10、Cifar-100(fine)、Cifar-100(coarse)和Dogs vs Cats数据集,经典的CNN、MobileMetV1、MobileNetV2以及L-MobileNet 4种模型分别通过50、50、50和200个Epoch训练,每经过一个Epoch,用测试集进行准确率的验证和记录,所有网络模型均达到收敛状态,4种模型随Epoch的准确率变化曲线如图7所示。

Download:
图 7 不同数据集下准确率变化曲线 Fig. 7 Accuracy curve under different datasets

在相同的参数设置和卷积层设置下,本文还将经典的CNN、MobileNetV1以及MobileNetV2分别作用于Leaky ReLU激活函数同L-MobileNet进行对比实验,在Cifar-10、Cifar-100(fine)、Cifar-100(coarse)和Dogs vs Cats数据集上,分别经过50、50、50和200个Epoch训练,所有网络模型均达到收敛状态,其准确率随Epoch的变化曲线如图8所示。

Download:
图 8 不同数据集下准确率变化曲线 Fig. 8 Accuracy curve under different datasets

可以看出,对于经典的CNN、MobileNetV1以及MobileNetV2网络结构中使用Leaky ReLU激活函数时,虽然分类准确率有所提升,但仍然低于L-MobileNet的分类准确率,这表明本文L-MobileNet是有效的。

3.4 实验结果及分析

本文使用的评价指标是最高准确率和平均准确率。最高准确率是在所有训练轮数中正确分类的样本数占样本总数的比例最大值,平均准确率是所有训练轮数的准确率平均值。在Cifar-10、Cifar-100(fine)、Cifar-100(coarse)和Dogs vs Cats 4个数据集中所有网络结构的平均准确率数据和最高准确率数据如表2所示。

图7表2可知,在4个数据集分类实验中,本文提出的L-MobileNet的分类准确率要明显高于经典的CNN、MobileNetV1以及MobileNetV2。在Cifar-10数据集的实验结果中,经典的CNN的平均准确率为70.31%,MobileNet系列的准确率相比经典的CNN有较大提升,平均准确率分别达到了74.31%和75.65%。在最高准确率方面,MobileNetV1和MobileNetV2也比经典的CNN分别提升了4.57%和5.67%,但仍然低于L-MobileNet中83.11%的平均准确率和87.36%的最高准确率。在Cifar-100(coarse)和Cifar-100(fine)数据集的实验结果中,可以看出L-MobileNet仍是达到最好结果,在最高准确率方面,相较于MobileNetV1分别提升了4.56%和2.84%,比MobileNetV2分别提升了3.26%和1.84%。在Dogs vs Cats数据集的实验结果中,因类别数较少,整体分类精度较高。MobileNetV1和MobileNetV2在平均准确率和最高准确率上的结果相较于经典的CNN提升明显,MobileNetV1分别达到了78.48%和84.96%,而MobileNetV2分别达到了80.87%和88.81%,本文提出的L-MobileNet比经典的CNN在平均准确率上提升了10.23%,最高准确率上提升了14.08%,分别达到了85.51%和93.94%的分类精度。出现这样结果的原因是MobileNet系列使用了改进的深度可分离卷积结构,改善了经典的CNN网络结构中的池化等丢失特征信息的问题,而本文方法在MobileNet的基础上,利用深度卷积融合层和Leaky ReLU激活函数可以更全面的提取特征信息。

表 2 7种网络结构在4种数据集中准确率统计 Tab.2 Accuracy statistics of seven network structures in four datasets

图8表2可知,将经典的CNN、MobileNetV1以及MobileNetV2分别作用于Leaky ReLU激活函数后,实验结果均不及本文提出的L-MobileNet。经典的CNN+Leaky ReLU在4个数据集中都处于最差水平,L-MobileNet在4个数据集的平均准确率和最高准确率都处于最好水平。在Cifar-10、Cifar-100(fine)、Cifar-100(coarse)和Dogs vs Cats 4个数据集的最高准确率方面,L-MobileNet比MobileNetV1+Leaky ReLU分别提升了5.82%、3.28%、1.77%和8.07%,并且改进的MobileNet比MobileNetV2+Leaky ReLU分别提升了5%、2.36%、0.63%和3.98%。实验结果说明了网络结构与Leaky ReLU激活函数的结合的确可以提高图像分类准确率,原因是Leaky ReLU激活函数对潜在局部区域的负值特征信息更敏感。

综合以上实验结果表明,本文对MobileNet的改进是有效的,所提出的L-MobileNet网络结构具有较好的分类效果。L-MobileNet在不同的数据集上表现出优秀的泛化能力,具有良好的推广应用前景。

为了进一步验证本文方法的有效性,在Cifar-10数据集上将L-MobileNet网络结构与近几年图像分类上具有代表性的8种方法进行分类精度的对比,比较结果如表3所示。

表3可以得出,与传统学习方法(Mean-covariance RBM、Improved local coord 、PCANet) 相比,本文提出的L-MobileNet优势明显,且有较大提升。但与其他基于深度学习的方法(Highway、Maxout+Dropout、NIN)相比较,分类精度尚有不足,主要原因是NIN网络结构在卷积层后加入了BN和Dropout技术,而Maxout网络结构和Highway网络结构使用了更多的网络层数,属于深度网络。本文提出的L-MobileNet网络结构在低网络结构中具有一定的优势。

表 3 9种不同方法在Cifar-10数据集上的分类精度 Tab.3 Classification accuracy of 9 different methods on Cifar-10 dataset
4 结束语

为了解决具有复杂特征图像分类中由于特征信息提取能力不足,尤其是对负值特征信息不敏感而造成图像分类精度下降的问题,本文提出了一个改进的MobileNet网络结构(L-MobileNet)。通过在4个公开数据集上进行的实验结果表明,与其他6种神经网络图像分类方法相比,L-MobileNet分类精度高,在轻量级网络中具有优势,可复制能力强,可方便移植到移动端设备,使相关设备在包含复杂特征图像场景下,具有良好的分类能力。进一步的研究工作内容:1)验证本文改进方法在更深网络结构下的有效性,进一步提升模型分类性能;2)进一步优化网络模型结构,以适应没有标签样本的数据集。

参考文献
[1] LECUN Y, BOTTOU L, BENGIO Y, et al. Gradient-based learning applied to document recognition[J]. Proceedings of the IEEE, 1998, 86(11): 2278-2324. DOI:10.1109/5.726791 (0)
[2] SZEGEDY C, LIU Wei, JIA Yangqing, et al. Going deeper with con-volutions[C]//Proceedings of 2015 IEEE Conference on Computer Vision and Pattern Recognition. Boston, USA, 2015: 1–9. (0)
[3] HE K, ZHANG X, REN S, et al. Deep residual learning for image recognition[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. Las Vegas, USA, 2016: 770−778. (0)
[4] HAN K, WANG Y, TIAN Q, et al. GhostNet: More features from cheap operations[J]. arXiv preprint arXiv: 1911.11907, 2019. (0)
[5] ZHANG X, ZHOU X, LIN M, et al. Shufflenet: an extremely efficient convolutional neural network for mobile devic-es[C]//Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. Salt Lake City, USA, 2018: 6848–6856. (0)
[6] HOWARD A G, ZHU Menglong, CHEN Bo, et al. MobileNets: efficient convolutional neural networks for mobile vision applications[J]. arXiv: 1704.04861, 2017. (0)
[7] SANDLER M, HOWARD A, ZHU Menglong, et al. MobileNetv2: inverted residuals and linear bottlenecks[C]//Proceedings of 2018 IEEE/CVF Conference on Computer Vision and Pattern Recognition. Salt Lake City, USA, 2018: 4510–4520. (0)
[8] MA Ningning, ZHANG Xiangyu, ZHENG Haitao, et al. ShuffleNet V2: practical guidelines for efficient CNN architecture design[C]//Proceedings of the 15th European Conference on Computer Vision. Munich, Germany, 2018: 116–131. (0)
[9] IANDOLA F N, HAN Song, MOSKEWICZ M W, et al. SqueezeNet: AlexNet-level accuracy with 50x fewer parameters and <0.5MB model size[J]. arXiv: 1602.07360, 2016. (0)
[10] SUN Ke, LI Mingjie, LIU Dong, et al. IGCV3: interleaved low-rank group convolutions for efficient deep neural networks[J]. arXiv: 1806.00178, 2018. (0)
[11] 黄跃珍, 王乃洲, 梁添才, 等. 基于改进型MobileNet网络的车型识别方法[J]. 电子技术与软件工程, 2019(1): 22–24.
HUANG Yuezhen, WANG Naizhou, LIANG Tiancai, et al. Vehicle identification method based on improved mobilenet network[J]. Electronic technology and software engineering, 2019(1): 22–24. (0)
[12] 刘鸿智. 面向移动设备的轻型神经网络的改进与实现[D]. 呼和浩特: 内蒙古大学, 2019.
LIU Hongzhi. Improvement and implementation of lightweight neural network for mobile devices[D]. Hohhot: Inner Mongolia University, 2019. (0)
[13] 郭奕君, 努尔毕亚·亚地卡尔, 朱亚俐, 等. 基于MobileNet网络多国人脸分类识别[J]. 图像与信号处理, 2020, 9(3): 146–155.GUO Yijun, ABUDIRIYIMU A, YADIKAR N, et al. Multinational face classification and recognition based on MobileNet network[J]. Journal of image and signal processing, 2020, 9(3): 146–155. (0)
[14] DUBEY A K, JAIN V. Comparative study of convolution neural network’s relu and leaky-relu activation functions[M]. MISHRA S, SOOD Y R, TOMAR A. Applications of Computing, Automation and Wireless Systems in Electrical Engineering. Singapore: Springer, 2019: 873–880. (0)
[15] CHEN Yinpeng, DAI Xiyang, LIU Mengchen, et al. Dynamic ReLU[J]. arXiv: 2003.10027, 2020. (0)
[16] KRIZHEVSKY A. Learning multiple layers of features from tiny images[R]. Toronto: University of Toronto, 2009. (0)
[17] DUGAN P, CUKIERSKI W, SHIU Y, et al. Kaggle competition[J]. Cornell University, the ICML, 2013. (0)
[18] XU Bing, WANG Naiyan, CHEN Tianqi, et al. Empirical evaluation of rectified activations in convolutional network[J]. arXiv: 1505.00853, 2015. (0)
[19] RANZATO M A, HINTON G E. Modeling pixel means and covariances using factorized third-order Boltzmann machines[C]//Proceedings of 2010 IEEE Computer Society Conference on Computer Vision and Pattern Recognition. San Francisco, USA, 2010: 2551–2558. (0)
[20] YU Kai, ZHANG Tong. Improved local coordinate Coding using local tangents[C]//Proceedings of the 27th International Conference on Machine Learning. Haifa, Israel, 2010. (0)
[21] CHAN T H, JIA Kui, GAO Shenghua, et al. PCANet: a simple deep learning baseline for image classification?[J]. IEEE transactions on image processing, 2015, 24(12): 5017–5032. (0)
[22] ZEILER M D, FERGUS R. Stochastic pooling for regularization of deep convolutional neural networks[J]. arXiv: 1301.3557, 2013. (0)
[23] 刘金利, 张培玲. 改进LeNet-5网络在图像分类中的应用[J]. 计算机工程与应用, 2019, 55(15): 32–37, 95.
LIU Jinli, ZHANG Peiling. Application of improved LeNet-5 network in image classification[J]. Computer engineering and applications, 2019 (15): 5. (0)
[24] GOODFELLOW I J, WARDE FARLEY D, MIRZA M, et al. Maxout networks[J]. arXiv preprint arXiv: 1302.4389, 2013. (0)
[25] LIN Min, CHEN Qiang, YAN Shuicheng. Network in network[J]. arXiv: 1312.4400, 2013. (0)
[26] SRIVASTAVA R K, GREFF K, SCHMIDHUBER J. Highway networks[J]. arXiv: 1505.00387, 2015. (0)