基于卷积神经网络的数字分类器的研究与优化

2019-08-23 05:34杜阔李亚
现代电子技术 2019年16期
关键词:仿真实验卷积神经网络

杜阔 李亚

摘  要: 数字识别在邮政编码、车牌数字检测识别等场景有着广泛的应用。以Lenet?5卷积神经网络为基础,研究卷积计算量过大和预测速度慢的问题。对不同的卷积层(首层、中间层、尾层)和网络结构进行了改进和优化,采用不同组合的方案使卷积核连接数減少一定的数量,进行仿真实验。实验结果表明,保证在同一准确率的前提下,综合考虑迭代次数和预测时延,在C3层(中间层)做优化最为合适,总结出的规律和方法也可对复杂卷积神经网络优化提供参考,满足实时性要求高、大数据量的应用场景。

关键词: 数字分类器; 卷积神经网络; 卷积计算; 数字识别; 网络结构优化; 仿真实验

中图分类号: TN761.93?34; TP391                   文献标识码: A                  文章编号: 1004?373X(2019)16?0098?06

0  引  言

深度学习是以数据的原始形态作为输入,经过算法的层层抽象将原始的数据抽象为自身所需的最终特征表示,映射到目标作为结束,中间不掺杂任何人为操作。深度学习中的一类代表算法是神经网络算法[1?2],其中就包括卷积神经网络[3?4]等。

卷积神经网络(Convolutional Neural Network, CNN),也叫作卷积网络。文献[5]提出首个真实的卷积神经网络模型,以及关于对MNIST数字库识别的结果。目前在计算机视觉、自然语言处理、医学图像处理、文本分类[6?8]等领域,卷积神经网络都表现的异常优秀。

卷积网络的一个重要思想是通过权值共享来帮助改善学习系统。它的权值共享网络结构类似于生物神经网络[9],能降低网络模型的复杂度,减少权值的数量。这个优点在网络的输入是多维度图像时表现得更为明显[10?11],图像可以直接作为网络的输入,避免了传统识别算法的特征提取和数据重建过程。还有依托于FPGA平台的嵌入式卷积神经网络的应用以及在嵌入式视觉实时显示方面的应用[12]。针对典型的卷积神经网络的改进方法,例如采用不同的激活函数,以及使用混合的下采样方法,还有不同的池化方法,池化窗口的大小,卷积核的大小[13?15],并没有在预测时卷积运算量和预测时延方面进行优化。所以本文提出针对减少卷积运算的方案,参照Lenet?5卷积神经网络,设计了一个7层的卷积神经网络,对卷积层C1,C3,C5分别进行了优化实验,在保证准确率的前提下,减少了卷积计算量,降低了预测时延。

1  网络结构与分析

1.1  网络结构参数

卷积神经网络是属于一种基于监督学习的深度学习模型,还是一种特殊的深度神经网络模型,因为它的神经元连接是非全连接的,相同层神经元连接的权重值是共享的,所以这样的特殊性使卷积神经网络具有很强的适应性、良好的鲁棒性以及快速的学习能力。

本网络结构由7层构成,分别为输入层、卷积层1(C1)、池化层2(S2)、卷积层3(C3)、池化层4(S4)、卷积层5(C5)、输出层。网络每层参数如表1所示。

由表1可以看出每层参与的运算、各个参数的配置,卷积核的大小、个数、卷积窗口移动步长以及输出中间结果(每层输出)的大小。

1.2  网络结构与问题分析

整个网络的结构图如图1所示。图1中已经标注每个窗口的大小。最左侧图片32×32×1代表输入1张大小为32×32 图像的原始像素值,经过卷积层1的6个5×5大小的卷积核的卷积运算后输出28×28×6维度的特征图(Feature Map)作为中间结果,再经过池化(也称为下采样)层输出14×14×6,直到网络最后的输出层;每一层的输出结果作为下一层的数据输入。本网络结构与Lenet?5网络的一点不同之处在于,卷积层5后直接是输出层,Lenet?5网络在卷积层5后还有全连接层。使用MNIST数据库作为训练集和测试集,训练集数据样本为60 000张,测试集数据样本为10 000张。

得出C3层需要做的卷积次数为9 600次。计算方法是C3层的输入特征图大小为14×14×6,卷积核大小为5×5,步长为1,所以每个卷积核遍历完一个特征图要做[14?2×(5/2)] × [14?2×(5/2)]=10×10=100次卷积运算(注:([52])取2),即所有的卷积核遍历完特征图需要10×10×6×16=9 600次卷积运算。同理得到C1, C5层卷积次数分别为4 704次,1 920次。文献[5]提出的卷积连接表见表2。

这个连接表说明池化层2与卷积层3是非全连接的,这样做打破了网络的对称性,强迫因为不同特征图的输入从而学习到图片不同的特征。卷积层3的每个特征图是连接到池化层2的所有6个或小于6个特征图,表示本层结果是由上一层抽取的不同特征图组合得到的,但是这个组合并不唯一。

表2中连接表中的列数0~5代表池化层2输出的6个特征图;行数0~15代表卷积层3计算需要的16个不同的卷积核;O,X表示每个特征图与不同卷积核是否连接;O表示连接进行卷积运算;X代表非连接。当然也可以采用全连接,这样的话计算量会更大,卷积运算消耗时间更长。那么有没有其他方案在同样的准确率情况下使计算量减少,同时使预测时间更短。

对此,本文在算法和实现上对卷积连接表进行了改进和优化,首先减少了卷积层3进行卷积的计算量并且用Xilinx官方工具Vivado High?Level Synthesis预估计算出在卷积层3卷积运算降低延时的时间。

2  优化方案与仿真

2.1  优化方案分析

根据原始的卷积连接表,可以看出是按照每个特征图卷积核连接数相等(每行10个连接),且把16个卷积核分为0~5,6~11,12~14,15四部分,每部分各列的卷積连接个数相同,最后一列为全连接排布的规则来确定每个位置是否连接, 思路是尝试不同的方案来达到降低计算量和卷积计算延迟时间的目的。

方案是先将总的卷积核连接数减少[12],再在卷积核总数不变的原则下,按照不同的方案方法排布,通过对比实验仿真结果寻找出最优方案方法;然后遵循此方法将卷积核连接数逐步递减;再重复训练仿真实验,减少卷积核连接数,同时观察训练迭代次数(epoch)的变化情况。

首先,优化方案1连接表中卷积核连接数减半,原始表示连接的数是60,现在直接减为30,并且服从随机分布,每个特征图对应卷积核连接数不相等(即每行对应的连接数不等),具体分布如表3所示。

优化方案3,连接数依然为30,依然按照每个特征图5个卷积核连接,等间隔(列间隔为2,无卷积核连接)交错分布,具体分布如表5所示。

优化方案4,连接数O减少到24,每个特征图对应连接4个卷积核,列数随机分布,具体分布如表6所示。

优化方案5,连接数O减少到18,每个特征图对应连接3个卷积核,列数交错分布,具体分布如表7所示。

优化方案6,连接数O减少到12,每个特征图对应连接2个卷积核,列数交错分布,具体分布如表8所示。

2.2  仿真结果对比

硬件平台:Laptop Windows 10 Intel i7?6600U@2.6 GHz;软件环境:Visual Studio 2017,OpenCV Library。

本网络训练设定最大迭代周期次数为100,学习率设定为0.01,准确率设定为98.5%。表9列出训练仿真后的对比结果,文献[5]的原始卷积连接表用方案0表示。

从表9的仿真对比迭代周期次数可以看出优化方案3是迭代周期最多的,表明虽然卷积计算量减少[12],但迭代次数相比方案0(原始)增加3倍多;在前三个方案中方案2是最优的,卷积计算量减少[12],但是迭代周期次数增加8次。按照此方法继续推出了方案4,方案5,方案6,卷积核连接总数依次递减,得出优化方案4在方案2基础上减少运算但迭代次数并没有增加;方案5、方案6卷积核总数依次减少同时迭代周期次数也线性增长。所以在综合考虑到卷积运算量和训练迭代次数的结果下方案4是最优的。

同时按照方案4的方法做了对C1 和C5 层的优化,仿真结果如表10、表11所示。其中,C1的优化方案用数字8,9来表示;C5的优化方案用数字10,11表示。

但是C1优化后,训练的模型在预测时会出现较多错误,如图2所示。

预测出错的主要原因在于C1层紧挨输入层,提取的是图片的低维特征,删减太多卷积运算导致网络对低维特征的学习不足,从而导致在预测时出现比较严重的错误。

C5层优化后虽然保证了准确率,但迭代次数接近优化C3层的2倍,而且减少的卷积运算远没有C3层优化减少得多。

根据以上实验结果总结出:当网络的某层卷积运算较大时可以有效的对其进行删减,卷积核连接矩阵中每行连接个数相等且每列至少有一个卷积核连接,即每个特征图对应的实际参与卷积运算的卷积核数相等且各个特征图对应的实际参与卷积运算的卷积核的序号尽可能保证不同,综合考虑训练迭代次数和运算量效果更优;而且尽量不要对靠近输入层的卷积层进行优化,对准确率可能会有影响,如果对迭代次数可以接受的条件下,对靠后的卷积层进行适当的优化也是可以的。

3  预测时延计算

本文介绍在实际的测试实验下如何计算预测时间,以及使用最优方案预测减少的时延。

Vivado High Level Synthesis(Vivado HLS)是Xilinx官方提供的基于C,C++高级语言来实现描述硬件逻辑开发功能的工具,大大提高了具有高级语言开发者的工作效率。Vivado HLS还具有仿真、综合、验证、封装IP打包的功能。

按照第2节所述方案顺序对卷积层3进行综合,分析综合结果,计算通过卷积运算的时间,总结不同卷积核总数下的时间延时。

首先,为了确保在非工具参数设置因素的影响下,第一步计算出卷积层3卷积核全连接时(即连接为全O),经过卷积计算的全部时间;然后,根据上述各方案综合结果计算各个方案延时。表12即卷积核全连接时卷积层3的延时计算表,总延时=循环延时×循环次数。表中数值的单位是时钟周期数,FPGA的时钟频率设定为100 MHz,即每个时钟周期是10 ns,所以在卷积核全连接时总延时时间是32 044×6×16×10=30 762 240 ns。

由于在工具默认设置下卷积层3卷积核非全接连所综合出的总延时显示为动态范围,因此用表13表示其他方案下的综合结果,其中CONV_LOOP一栏循环延时3 ns表示进入和退出循环消耗的时间。所以当卷积核连接总数为60时,总延时计算方法为总延时=[60×32 045+[(6×16)-60]×3]×10=19 228 080 ns ,其他方案延时计算方法相同,计算出剩余方案的延时,统计的结果如表14所示。

根据之前找出的最优方案,卷积核连接总数是24,对应的总延时时间为7 692 780 ns,相比于卷积核数为原始60时,减少的时间Δt=19 228 080-7 692 780= 11 535 300 ns = 11.535 3 ms,即在方案4下预测时每张图片在卷积层3比方案0减少约60%的时间。

4  结  语

本文以Lenet?5卷积神经网络为基础,对其进行研究和优化。分别对各卷积层设计优化方案,通过仿真实验找出综合条件下的最优方案,总结出针对多层卷积神经网络训练时间长、计算量大等问题的解决方法,可为后续研究复杂卷积神经网络及相关优化提供参考。

参考文献

[1] 王晓锋,马钟.基于卷积神经网络Lenet?5的货运列车车号识别研究[J].现代电子技术,2016,39(13):63?66.

WANG Xiaofeng, MA Zhong. Research on freight train license recognition based on convolutional neural network Lenet?5 [J]. Modern electronics technique, 2016, 39(13): 63?66.

[2] 葛明涛,王小丽,潘立武.基于多重卷积神经网络的大模式联机手写文字识别[J].现代电子技术,2014,37(20):19?21.

GE Mingtao, WANG Xiaoli, PAN Liwu. Large pattern online handwriting character recognition based on multi?convolution neural network [J]. Modern electronics technique, 2014, 37(20): 19?21.

[3] 宋志坚,余锐.基于深度学习的手写数字分类问题研究[J].重庆工商大学学报(自然科学版),2015(8):49?53.

SONG Zhijian, YU Rui. Research on the classification of handwriting number cased on deep learning [J]. Journal of Chongqing Technology and Business University (Natural science edition), 2015(8): 49?53.

[4] 吕国豪,罗四维,黄雅平,等.基于卷积神经网络的正则化方法[J].计算机研究与发展,2014(9):1891?1900.

L? Guohao, LUO Siwei, HUANG Yaping, et al. A novel regularization method based on convolution neural network [J]. Journal of computer research and development, 2014(9): 1891?1900.

[5] 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.

[6] 常亮,邓小明,周明全,等.图像理解中的卷积神经网络[J].自动化学报,2016,42(9):1300?1312.

CHANG Liang, DENG Xiaoming, ZHOU Mingquan, et al. Convolutional neural network in image understanding [J]. Journal of automation, 2016, 42(9): 1300?1312.

[7] 马媛媛,史加荣.卷积神经网络及其在手写体数字识别中的应用[J].湖北工程学院学报,2017,37(6):66?72.

MA Yuanyuan, SHI Jiarong. Convolutional neural network and its application in handwritten number recognition [J]. Journal of Hubei Engineering University, 2017, 37(6): 66?72.

[8] 周飞燕,金林鹏,董军.卷积神经网络研究综述[J].计算机学报,2017(6):1229?1251.

ZHOU Feiyan, JIN Linpeng, DONG Jun. Review of Convolutional Neural Networks [J]. Journal of computer science, 2017(6): 1229?1251.

[9] 余萍,赵继生,张洁.基于非线性修正函数的卷积神经网络图像识别研究[J].科学技术与工程,2015(34):221?225.

YU Ping, ZHAO Jisheng, ZHANG Jie. Image recognition of convolutional neural networks based on rectified nonlinear units function [J]. Science technology and engineering, 2015(34): 221?225.

[10] 卢宏涛,张秦川.深度卷积神经网络在计算机视觉中的应用研究综述[J].数据采集与处理,2016(1):1?17.

LU Hongtao, ZHANG Qinchuan. Applications of deep convolutional neural network in computer vision [J]. Data acquisition and processing, 2016(1): 1?17.

[11] XU B, WANG N Y, CHEN T Q, et al. Empirical evaluation of rectified activations in convolution network [J]. Computer science, 2015(2): 1?5.

[12] FRABET C, POULET C, HAN J Y, et al. CNP:an FPGA?based processor for convolutional networks [C]// Proceedings of 2009 International Conference on Field Programmable Logic and Applications. Prague, Czech: IEEE, 2009: 32?37.

[13] 张庆辉,万晨霞,陈众威.基于改进卷积神经网络的手写体识别研究[J].中原工学院学报,2017,28(4):79?85.

ZHANG Qinghui, WAN Chenxia, CHEN Zhongwei. Research on handwritten recognition based on improved convolution neural network [J]. Journal of Zhongyuan Institute of Technology, 2017, 28(4): 79?85.

[14] 高诺,胡文烨,杨玉娜.采用卷积神经网络的数字手写体识别的研究[J].齐鲁工业大学学报,2018,32(5):45?49.

GAO Nuo, HU Wenye, YANG Yuna. Research on the recognition of digital handwriting by convolutional neural networks [J]. Journal of Qilu University of Technology, 2018, 32(5): 45?49.

[15] 杜洋,王展青.基于改进卷积神经网络的手写数字识别[J].计算机测量与控制,2018,26(7):256?261.

DU Yang, WANG Zhanqing. Handwritten numeral recognition based on improved convolution neural network [J]. Computer measurement and control, 2018, 26(7): 256?261.

猜你喜欢
仿真实验卷积神经网络
基于卷积神经网络温室智能大棚监控系统的研究
仿真软件在制药人才培养中的作用分析
基于深度卷积神经网络的物体识别算法
开展体验式教学创新研究 提高化学课堂有效性
深度学习算法应用于岩石图像处理的可行性研究
基于深度卷积网络的人脸年龄分析算法与实现
基于多重视阈下的《电子控制技术》课程的教学探讨
基于卷积神经网络的树叶识别的算法的研究
基于ETAP的电气设计仿真实验