结合批归一化的轻量化卷积神经网络分类算法

2021-06-25 06:22张百川赵佰亭
关键词:准确率卷积神经网络

张百川,赵佰亭

(安徽理工大学 电气与信息工程学院,淮南 232001)

自2012年AlexNet网络在Imagenet大赛上获得图像分类[1]冠军以来,各种各样的卷积神经网络[2](convolutional neural networks,CNN)分类模型大行其道.相较于以往使用的传统的神经网络,CNN卷积核具有局部连接和权值共享的特点,避免了由于神经元个数过多带来的参数量巨大导致训练时间过长和网络极难收敛等问题,逐渐成为深度学习在图像分类应用中的主流网络.

CNN从一开始的只有7层的浅层神经网络AlexNet到16层的VGG16[3]、50层的ResNet50[4],再到多达几百层上千层的极深的DenseNet[5],CNN的分类效果随着其深度的增加从而得到了一定的提升,各类模型中都使用多个卷积层和池化层相互堆叠,通过继续加深网络的深度,提高网络对于图像底层特征的提取和表达,进而增加分类的准确率.但是,由于网络层数的不断增加,网络的复杂度和参数量也会随着深度的增加而增大.近年来,手机电脑等移动设备迎来飞速地发展,越来越大的模型难以适用于如今的移动设备进行实时的检测使用,这就需要在确保模型准确率的前提下,能够减小模型的参数,降低计算所需的时间,使模型能够适用于移动端和嵌入式设备的发展[6].

在近几年的研究中,图像分类领域致力于将神经网络的模型在识别准确率、网络规模和识别速度上做平衡,使得提出的网络结构能够在确保准确率的前提下减少网络计算的参数量.2015年,Han[7]将量化、编码和裁剪、权值共享等压缩方式都运用在模型压缩技术上,取到了一定的成果,引起了各类学者向着基于模型压缩方法的研究.Guo[8]等提出了一种裁剪修补的方法,将结构中认为不重要的训练权重裁减掉,但是在训练模型的过程中,常常无法直观的判断哪些权重是重要的,哪些是不重要的,因此为模型增加了一个拼接的过程,将重要的结构补回来.Hu[9]等认为在各类的大型分类神经网络结构中,神经元的激活方式普遍都是趋向于0的,而实验中往往将这些激活为0的神经元认为是冗余的,去除它们不仅可以减小模型的大小和运算量,并且对模型的基本性能不会造成大的影响.

除了对算法的改进,研究人员还设计了新型的网络结构,即轻量化卷积神经网络[10]模型的设计,通过模型结构的改变,能够保证模型的准确率不下降的前提下,使得模型参数量减小,计算速度得到提升.近年来,研究人员提出了多种新型的网络模型[11],例如,Googlenet提出了Inception结构[12],通过提取多尺度的特征,增加了网络的宽度,相比于VGG这样的堆叠式的模型,降低了计算的复杂度;SqueezeNet[13]通过squeeze层先使用1×1的卷积进行降维,再将1×1与3×3的卷积层进行特征融合,构建一个特征融合的模块,大大减少了参数量,起到了模型压缩的作用;MobileNet[14]模型则是在卷积方式上进行了大的创新,使用了深度可分离卷积结构,代替了传统卷积模型结构中普通的卷积层,深度可分离卷积通过将卷积层的空间和通道方向上的分离,首先进行3×3卷积核的空间卷积,再进行1×1卷积核的逐通道卷积,经理论计算,参数量最终只有普通卷积的1/9;shufflenet[15]模型通过使用分组卷积,在进行特征重组,将各部分卷积层中的特征图通道进行有序的打乱重组,形成一个新的特征图,当仅使用分组卷积时带来的特征图间信息流通不畅的问题就可以解决了,在准确度和网络复杂度上起到了很好的平衡.

本文提出一种基于模型裁剪和轻量化卷积神经网络的模型BN-MobileNet.首先对原模型进行裁剪处理,然后对深度可分离卷积的结构进行改进,达到减少计算参数的目的.经实验结果证实,此改进模型可以降低原始网络的计算复杂度,并且提高了模型在标准分类数据集上的准确率.

1 相关基础工作

MobileNet轻量化卷积神经网络模型是一种压缩模型,它和主流的CNN模型一样,可以作为特征提取的模块,用于目标检测和图像的分类、分割等任务.MobileNet模型的主要结构是深度可分离卷积模块,它使用了不同于普通卷积结构的深度可分离卷积.除了第一层为普通卷积层外,其他的网络层都使用了深度可分离卷积结构.卷积核具有权值共享的特点,通过在网络中设计不同的步长和padding,让卷积核遍历整个特征图,提取图像深层特征.深度可分离卷积的结构如图1所示,是将标准卷积分解成两步操作,先对特征图进行3×3的空间卷积,再进行1×1的逐通道卷积,通过将卷积的空间与通道相分离,能够大大减少计算量和普通卷积核中包含的冗余参数.

图1 普通卷积结构(左)和深度可分离卷积结构(右)

假设普通的卷积层以一组尺寸大小为DF×DF×M的特征图F作为输入,输出特征图为一个特征大小为DG×DG×N的特征图G,其中DF是作为输入特征图的长和宽,M为输入的通道数,DG为输出特征图的长和宽,而N为输出特征图的通道数.在卷积层中若是使用卷积核为DK×DK大小的卷积核对图像进行特征的提取,其计算量可以表示为

DK·DK·M·N·DF·DF

(1)

使用深度可分离卷积可以将卷积过程中的空间与通道相分离,分别使用了深度卷积和逐点卷积代替普通卷积层.当使用大小为DK×DK的卷积核,在深度方向上的计算量为

DK·DK·M·DF·DF

(2)

使用深度方向上的卷积仅仅是对单一通道上的特征进行提取,并没有将特征进行整合,因此,在深度卷积之后,采用1×1的卷积来对深度方向上提取到的特征进行线性整合.所以总的计算量为

DK·DK·M·DF·DF+N·M·DF·DF

(3)

通过使用深度可分离卷积与普通卷积的参数对比,我们可以将计算量减少为

(4)

当使用的卷积核为3×3时,深度可分离卷积方式所进行的计算量大约为普通卷积的1/9.通过数据计算对比,得到普通卷积和深度可分离卷积的计算量的对比,可以看出,轻量化卷积模型MobileNet通过使用这种结构大大减少了网络层的计算量.

2 本文工作

2.1 模型裁剪

模型是基于MobileNet V1所设计的,首先对原模型进行裁剪,对原模型在结构上进行缩减,去掉原模型中堆叠的5层循环深度可分离卷积层,可以减少原模型中由连续堆叠卷积层而产生的冗余参数.裁剪后的模型结构Down-MobileNet如表1所示.

表1 缩减后的Down-MobileNet模型结构

2.2 全局平均池化层(Global Average Pooling)

卷积神经网络在以往的分类过程中,通常是对卷积层最后一层的输出特征图进行向量化,向量化后的结果会进入全连接层,通过softmax层进行种类的判定.这样可以将卷积过程与传统的神经网络分类器进行连接,通过卷积结构提取图像的特征图,再以传统分类器的全连接层对其种类进行区分,但是全连接层由于连接繁杂,过程中易产生过拟合,大大降低了模型的泛化能力.

本文在最后一层使用了全局平均池化层结构替代传统结构中的全连接层,将每种类别分别生成一个特征映射,通过每层的每一个特征映射,求出其所对应的平均值,计算出相对应的结果向量,将得到的结果向量送入softmax分类层即可完成分类任务.这种方法相较于传统的神经网络方法,是使用卷积结构处理输出特征与类别之间的相对应关系,得出特征图向量对应的类别置信度图,在这一过程中,无需对参数进行优化,避免了过拟合.全局平均池化层通过卷积核的形式,收集了特征的空间信息,对于输入卷积核的空间平移特性也有着较强的鲁棒性.

2.3 批归一化处理

BN算法由 Ioffe 等[16]首次提出, 它对于训练过程中的每层的隐藏层输出数据都进行了批归一化的处理, 通过归一化处理能够减少训练中网络的隐藏层数据分布的改变,降低了对神经网络的参数产生的影响, 加快神经网络收敛的速度,提高了网络的稳定性.

在训练大型神经网络时,使用梯度下降法会十分简单高效,在使用梯度下降方法时,首先需要对网络中的参数进行调试,例如学习率以及各类参数的初始化,还有权重系数以及dropout的比率等,这些参数都对模型训练的结果有着至关重要的影响,所以调参也成为训练模型的重要步骤.当使用BN层对上层输出的数据进行归一化的处理后,就可以简化调参的过程,取代以往使用的dropout层等参数选择.因此,在训练的过程中,可以加大学习率,从而加快模型的训练,加快网络收敛的速度.局部响应归一化层,在下一层的输入前,通过打乱样本数据,防止样本被重复选择,大大提高了原始网络结构的泛化能力,适应不同数据组的分布,减少训练的负担.

本文结合批归一化方法,对轻量化的卷积神经网络模型结构进行改进,对激活函数输出后的特征再进行归一化的处理,通过平滑中间层的数据分布,降低输出层数据对于下一层的影响.因此对原模型中深度可分离卷积模块进行改进,在原深度可分离卷积结构中的每层非线性激活函数层relu之后,添加一层BN层,对非线性激活函数后得到的数据进行一次批归一化处理.改进后的深度可分离卷积模块如图2所示.

图2 结合批归一化的深度可分离卷积结构

3 实验部分

环境配置:本文所做的实验都是基于keras平台进行的,实验中所使用的机器是基于Intel(R)Core(TM)i7-7700 CPU @3.60GHz,显卡为GTX1060.

数据集:本文所使用的数据集是图像分类任务中使用较为广泛的cifar10和cifar100数据集,cifar10数据集一共包含有10个类别,有60 000张图片,其中每张图片均为32×32的彩色图像,各个类别下还分别有6 000张图片,训练的过程中会随机选取50 000张作为训练图片,10 000张作为测试图片.cifar100数据集则包括了100种类别的图片,每种类别下都包含了600张图像,每一类中各有500张训练图像和100张测试图像.

参数设置和数据预处理:在训练时,设置学习率为0.001,batch_size为32,训练轮数为50轮.数据集可在python库中直接下载,而对数据集进行预处理方法主要采用python内置的data_augmentation函数来对数据进行增强,通过数据增强对图像进行随机的裁剪、水平翻转、平移变换等,目的是通过生成的大数据来防止过拟合.

本文对模型进行了三次实验,分别是原模型,裁剪后的模型和结合批归一化后的模型.表2、3分别是部署在cifar10与cifar100数据集上的实验结果.

表2 各模型在cifar10上的准确率

由表2可以看出,缩减后的模型在模型的参数量、训练时间和原模型大小速度方面有着很大的优势,但准确率略低于原模型.本文使用改进后的BN-MobileNet模型结构,在模型参数量和训练的速度方面相较于原模型有着极大的提升,在模型大小和训练时间上有着微小提升,BN-MobileNet模型的准确率相较于原模型和缩减后的模型都有着接近3%的提升,说明本文改进的网络模型对于此轻量化卷积神经网络模型的准确率以及其他各项指标都有一定的提高.各模型在cifar10上的准确率如图3~5所示,其中横坐标为训练轮数,纵坐标为准确率.

图3 MobileNet准确率曲线

图4 Down-MobileNet准确率曲线

图5 BN-MobileNet准确率曲线

由表3可以看出,在cifar100数据集上训练时,缩减后的模型在参数量,模型大小,训练时间以及速度上有着一定的优势,准确率和原模型基本持平.说明缩减后的模型精简了模型的冗余参数,而且准确率没有得到下降.本文使用改进后的BN-MobileNet结构后,在模型大小和训练时间上有着较小的提高,BN-MobileNet模型的准确率相较于原模型有着接近3.16%的提升,说明改进的网络模型在cifar100数据集上的结果能够得到提升.各模型在cifar100上的准确率如图6~8所示,其中横坐标为训练轮数,纵坐标为准确率.

表3 各模型在cifar100上的准确率

图6 MobileNet准确率曲线

图7 Down-MobileNet准确率曲线

图8 BN-MobileNet准确率曲线

4 结 语

近年来,轻量化卷积神经网络结构的发展十分迅速,在图像分类、目标检测等各个研究方向都取得了有效的成果.本文提出了一种结合批归一化的轻量化卷积神经网络图像分类算法BN-MobileNet,实验结果表明,对原模型进行压缩裁剪能够降低模型的参数量,且模型的准确率不会降低,加入的批归一化层则能够有效地提高新模型在标准分类数据集上的准确率,实现了准确率与模型大小的平衡.后续需要通过扩大数据集的取向,逐渐提高网络的泛化能力,将此模型嵌入到移动端进行实际分类问题的处理.

猜你喜欢
准确率卷积神经网络
基于神经网络的船舶电力系统故障诊断方法
MIV-PSO-BP神经网络用户热负荷预测
基于改进Hopfield神经网络的对地攻击型无人机自主能力评价
一种基于卷积神经网络的地磁基准图构建方法
基于3D-Winograd的快速卷积算法设计及FPGA实现
一种并行不对称空洞卷积模块①
乳腺超声检查诊断乳腺肿瘤的特异度及准确率分析
不同序列磁共振成像诊断脊柱损伤的临床准确率比较探讨
2015—2017 年宁夏各天气预报参考产品质量检验分析
颈椎病患者使用X线平片和CT影像诊断的临床准确率比照观察