杜海涛
基于剪枝算法的卷积神经网络优化
杜海涛
无锡商业职业技术学院,江苏 无锡 214063
传统的图像识别技术不能适应现在的需求,卷积神经网络与图像识别相结合,获得极大突破。随着人工智能技术快速发展,更深、更宽的卷积神经网络竞相出现,层数也不断加深。图像识别的精度也随着大幅提高,但是过于复杂的网络要消耗更多的资源和时间。提出用剪枝算法对卷积神经网络进行优化,修剪掉不重要的神经元,从而将网络模型稀疏化。这样既能保证图像识别的精度,又能达到网络加速优化的目的。
图像识别;卷积神经网络;剪枝算法
微电子技术和信息技术的快速发展,为图像识别奠定了硬件和软件基础。图像识别已被广泛应用在工业、农业、医学、交通、国防等各行各业,是以后发展的必然趋势,对于提高图像识别的速度、精度和广度具有非常大的应用价值。传统的图像识别技术应用广度不够。一旦外界条件发生变化,识别的精度就会急剧下降,不能满足日益复杂的需求。近年来,人工智能技术发展迅猛,将人工神经网络算法融入图像识别技术获得了突破。不仅提高了图像识别的精度和广度,而且具有自我学习的能力,可以随着环境的变化而变化,同时提高了图像信息处理的容错性,在出现噪声干扰时,也能正常工作,输出较为准确的信息。
在人工智能的发展过程中,神经网络经历了单层神经网络、两层神经网络和多层神经网络。在多层神经网络的基础上发展出卷积神经网络,是一种针对图像分类和识别的深度学习方法[1]。卷积神经网络是受人体视觉中感受野的机制影响而提出的,是一种前馈神经网络,比其他图像的分类算法使用较少的预处理,在大型图像处理方面尤为出色。
卷积神经网络可以细分为五层,分别是输入层、卷积层、池化层、全连接层和输出层。卷积神经网络比普通的多层神经网络多了卷积层与池化层,其他层也略有变化。卷积神经网络常见的模型有Lenet模型、Alexnet模型、VGGNet模型、GooleNet模型和ReNet模型。Lenet模型有五层,Alexnet模型有八层,VGGNet模型有16层,GooleNet模型的层数也进一步加深。ReNet模型出现后,层数可以突破1 000层。这些模型随着层数和宽度逐步加大,网络识别的准确度也随之提高,但是资源开销也随之增大,实际项目中的模型都是百兆这个数量级,运算的时间自然也更长。因此优化网络模块,既能保证准确率,又能兼顾高效性,从而提高系统的实用性。
决策树是一种常用的分类方法,是通过算法训练数据构建的分类器。剪枝算法剪去了决策树中的某些枝条,从而简化决策树模型,避免过拟合。在优化决策树时,要保证最优解的部分枝条不能被剪掉,同时剪枝的判断又不能以耗费大量时间为代价,保证整个决策树的高效性。
剪枝算法分为两类:前剪枝、后剪枝。前剪枝是指在决策树的构建过程,设置一个阈值,在当前分裂节点中,分裂前和分裂后的误差超过这个阈值就分裂,否则就不做分裂操作[2];后剪枝是指先用训练集构建好一个完整的决策树,允许过度拟合,再用测试数据集去修正,决策树中的每一个非叶子节点的子树,我们尝试着把它替换成一个叶子节点,该叶子节点的类别我们用子树所覆盖训练样本中存在最多的那个类来代替。这样就产生了一个简化决策树,然后比较这两个决策树在测试数据集中的表现。如果简化决策树在测试数据集中的错误比较少,那么该子树就可以替换成叶子节点,否则就不替换。前剪枝很难设定,稍微变动就有可能引起整棵树非常大的变动,通常用后剪枝。
多层卷积神经网络模型,在图像识别时,相比原始模型功能是优秀的,但是网络规模和内存消耗上,却不能满足轻量级网络的要求。卷积神经网络中参数中由于激活函数的负值处理,导致网络中有很多“0”,有些网络中的近零参数超过80%,这对整个决策树是很大的冗余,而且这些“0”对于乘、加操作没有任何意义,在整个网络中占据了相当大的空间,造成很大的资源浪费。在卷积神经网络中,如果输入为0,无论权重为多少,输出均为0;当输入为0时,就可以认为这个决策树的枝条无用,那么就可以被修剪掉。在图像识别的卷积神经网络模型中,剪枝算法的判断依据有两种。
(1)依据神经元与神经元之间的相关性的强度进行判断。较强的相关性表示上层神经元的激活与当前神经元之间的激活有更大的决定性作用。(2)根据神经元的权重大小连接判断重要性。默认权重大的对网络的影响大,权重小的对网络的影响小。因此保留权重大的参数,去除权重小的参数。
根据判断依据提出两种优化方案:一种是基于相关性的剪枝算法;一种是基于权重参数的剪枝算法。
基于相关性的剪枝算法的核心就是查找隐层节点间的相关性,删除相关小的节点,合并相关大的节点,并将去掉这些节点后引起的改变传递到下一层的权值连接以及输出节点的偏置值中。实际应用时,由于隐层节点的方差计算完之后会有很多的方差值接近0,选取这些接近0的方差,然后删除对应的隐层节点,就能够优化网络结构。考虑到每次网络结果可以允许存在一定的误差,而且隐层的实际输出在这个误差允许范围内,就可以认为是合理的值,那么以误差传递作为基本思想,给出每个隐层节点的实际值与节点输出的均值的差[3]。如果差值在一定的范围内则认为是合理的、没有误差的,并在计算总结所有节点误差后,删除没有误差的隐层节点。
基于权重参数的剪枝算法完全是依据权重矩阵的大小。权重矩阵W可以唯一表示网络的情况,依据权重矩阵进行判断网络的冗余情况,然后执行剪枝操作。权重矩阵大,对于网络的影响大,应保留;权重矩阵小,对于网络的影响小,应去除连接。网络中的每一层的权重分布是不一样的。网络的剪枝不能采用全局操作,而应单独处理每一层;否则对于不同的层,由于其均值和方差在网络计算中的偏移会使全局矩阵的不统一。对一个单独的网络层进行剪枝,就是直接判断权重参数是否大于某一个值,这一个值称为阈值。大于阈值的神经元单元保留,小于阈值的神经元单元丢弃[4]。由于直接判断权重参数会导致一些负的大权重参数被修剪掉,而负的大权重对网络也是重要的一部分。经过上述分析可知,近零参数对于网络操作是冗余的,负的大权重参数在网络中却占据着一部分重要的信息。因此,剪枝算法根据绝对值判断或者根据正负情况判断是必要的。
本文提出了采用剪枝算法对卷积神经网络模型进行优化的方案。此方案能够快速而有效地对网络进行加速优化。剪枝之后模型的精度与原来相差不到1%,但是模型的速度可以提高到原来的十倍甚至更多,而且模型大小降为不到原来的十分之一,能够兼顾图像识别的精度和速度。
[1]吴岸城.神经网络与深度学习[M].北京:电子工业出版社,2016:9.
[2]宋清昆.基于改进相关性剪枝算法的BP神经网络的结构优化[J].控制理论与应用,2006,25(12):4-6.
[3]李小夏,李孝安.一种改进的神经网络相关性剪枝算法[J].电子设计工程,2013,21(8):65-67.
[4]张虹,王丹.一种改进的BP神经网络剪枝算法研究[J].西南大学学报(自然科学版),2016,38(3):165-170.
Optimization of Convolutional Neural Networks Based on Pruning Algorithm
Du Haitao
Wuxi Vocational Institute of Commerce, Jiangsu Wuxi 214063
Traditional image recognition technology can not adapt to the current needs, and the combination of convolutional neural network and image recognition has achieved great breakthrough. With the rapid development of artificial intelligence technology, deeper and wider convolutional neural networks are competing, and the number of layers is also deepening. The accuracy of image recognition has also increased dramatically, but it takes more resources and time due to an overly complex network. It is proposed to use the pruning algorithm to optimize the convolutional neural network and trim out the unimportant neurons, thus thinning the network model. This can not only ensure the accuracy of image recognition, but also achieve the purpose of network acceleration optimization.
image recognition; convolutional neural network; pruning algorithm
TP183;TP391.4
A
杜海涛(1980—),男,河南民权人,研究生学历,工学硕士,无锡商业职业技术学院讲师,研究方向或专业为软件技术。