APP下载

基于特征复用的卷积神经网络模型压缩方法

2019-08-27冀树伟杨喜旺黄晋英尹宁

计算机应用 2019年6期
关键词:卷积神经网络

冀树伟 杨喜旺 黄晋英 尹宁

摘 要:为了在不降低准确率的前提下,减小卷积神经网络模型的体积与计算量,提出一种基于特征复用的卷积神经网络压缩模块——特征复用单元(FR-unit)。首先,针对不同类型的卷积神经网络结构,提出不同的优化方法;然后,在对输入特征图进行卷积操作后,将输入特征与输出特征进行结合;最后,将结合后的特征传递给下一层。通过对低层特征的重复使用,使总的提取的特征数量不发生改变,以保证优化后的网络的准确率不会发生改变。在CIFAR10数据集上进行验证,实验结果表明,优化后的VGG模型体积缩小为优化前的75.4%,预测时间缩短为优化前的43.5%;优化后的Resnet模型体积缩小为优化前的53.1%,预测时间缩短为优化前的60.9%,且在测试集上的准确率均未降低。

关键词:卷积神经网络;特征复用;网络加速;模型压缩

中图分类号:TP183

文献标志码:A

Abstract: In order to reduce the volume and computational complexity of the convolutional neural network model without reducing the accuracy, a compression method of convolutional neural network model based on feature reuse unit called FR-unit (Feature-Reuse unit) was proposed. Firstly, different optimization methods were proposed for different types of convolution neural network structures. Then, after convoluting the input feature map, the input feature was combined with output feature. Finally, the combined feature was transferred to the next layer. Through the reuse of low-level features, the total number of extracted features would not change, so as to ensure that the accuracy of optimized network would not change. The experimental results on CIFAR10 dataset show that, the volume of  Visual Geometry Group (VGG) model is reduced to 75.4% and the prediction time is reduced to 43.5% after optimization, the volume of Resnet model is reduced to 53.1% and the prediction time is reduced to 60.9% after optimization, without reducing the accuracy on the test set.

0 引言

在2012年,AlexNet[1]以Top-5錯误率16.4%的显著优势夺得了大规模视觉识别挑战赛(Large Scale Visual Recognition Challenge, LSVRC)的冠军,比第二名错误率降低了12.2%的成绩,使得卷积神经网络(Convolution Neural Network, CNN)受到了广泛的关注与研究。之后,各种卷积神经网络模型被不断提出,如牛津大学计算机视觉组(Visual Geometry Group, VGG)提出的VGGNet[2]、Google提出的Inception Net[3]以及微软研究院提出的Resnet[4]等,都刷新了AlexNet的记录。深度学习[5]的研究发展极其迅速,从最初的图像分类[1-6],到之后的目标检测[7-8]、目标跟踪[9]等诸多方面都取得了非常瞩目的成就[10]。

但是,这些模型由于较大的计算量,往往需要运行于GPU或高性能的CPU上。如拥有8层网络层数的AlexNet有着60×106的参数量,运行一次需要1.5GFLOPS(每秒10亿次的浮点运算数)的运算量,需要249MB的存储空间。VGG16有着138×106的参数量,需要15.5GFLOPS的运算量,需要528.7MB的存储空间。Resnet152有19.4×106的参数量,11.3GFLOPS的运算量,需要230.34MB的存储空间。VGG模型[2]通过叠加小卷积核代替大卷积核,而Resnet[4]则通过1×1的卷积操作,对特征图的通道数进行了降维。这些操作均有效地降低了模型的参数量和计算量[1-2,4]。

1 传统的卷积神经网络模型压缩方法

传统的卷积神经网络大多是由卷积层、池化层、激活层、全连接层等结构反复堆叠而组成的。卷积层是卷积神经网络的核心部分,具有局部连接、权重共享等特点,这些特点使得卷积层的参数数量比全连接层少,但是计算量较大。计算量大导致前向传播慢,推断耗时长;参数量大则需要占用大量的存储空间。模型的压缩大多针对卷积层与全连接层来进行优化,常用的模型压缩大多从以下三个方面入手[11]。

第一种方法为网络的裁剪。由于深度神经网络中的参数是经过多次训练得到的,往往存在着一定程度的冗余,所以通过某种方式裁剪掉冗余的参数可完成模型的压缩。模型的裁剪,主要是针对已经训练完毕的模型,定义一个模型参数重要性的判别依据,将不重要的网络参数裁剪掉[12]。网络剪枝[13-14]方法在卷积层与全连接层都比较适用,但是不同的方法侧重点不一样。常用的方法有:1)基于激活响应熵的裁剪标准[15],在验证数据集上,统计卷积层每个通道的平均激活值分布,计算分布熵,将熵较小的通道所对应的滤波器裁剪掉;2)将模型参数使用泰勒公式进行展开[16],将模型损失的变化以参数的函数来表示,来实现对模型参数重要性的评估,并将不重要的参数裁剪掉。

第二种方法是重新设计网络结构。模型的运行速度受以下三方面的影响:模型的参数量、网络结构与网络的深度,因此,通过修改网络结构、调整模型参数量等,可以有效降低模型运行时间。例如模型网络层的组合以及改变网络的连接关系等。常用的有深度可分离卷积(depthwise separable convolution)等。

第三种方法为权重分解。通过将权重张量分解为两个或者多个张量,来降低模型的计算量,如奇异值分解(Singular Value Decomposition, SVD)方法[17],将矩阵分解为向量之间的乘积,来达到降低模型计算量与参数量的目的。

2.1 传统的卷积操作

传统卷积操作如下:输入一个单通道或多通道的特征图后,通过卷积核的卷积操作,得到一个单通道或多通道的特征图。该次卷积操作结束后,将得到的特征图传给下一个卷积层或池化层。

因此,假设输入通道数为I,输出通道数为O,卷积核用C表示,n是卷积核大小,输入为x,m是输出的特征图大小,B为偏置矩阵。输出的单个神经元y的计算为:

2.2 特征复用的卷积操作

传统的卷积神经网络的网络结构是一个递进的层级结构,它通过用底层的卷积核提取基础特征,用高层的卷积核提取抽象的特征来达到特征学习的目的。当该网络提取高阶特征的时候,前面提取的比较基础的特征就会被遗弃掉。而随机深度网络(Deep networks with stochastic depth)[18]与密集连通卷积网络(Densely Connected Convolution Network, DCCN)[19]的出现,则展示了一种新的方法。该方法指出,网络中的某一层可以不仅仅依赖于上一层的特征,也可以依赖于较浅层的基础特征, 同时该方法也说明卷积神经网络中的卷积层存在一定的冗余。

本文的思路就是利用特征复用的思想,将前一层特征重复使用,以减少每次卷积操作所需提取的特征数量。该方法可以在不改变网络总体特征提取数量的同时,来达到降低计算量和缩小模型体积的目的。

如图1所示为传统的卷积操作结构,图2为本文提出的特征复用的卷积操作结构。图中CONV是卷积层;POOL是池化层;FC是全连接层;CAT是连接操作,在特征图通道这一维度上对特征图进行连接。图2中方框内为本文提出的一个基本的特征复用结构单元(Feature-Reuse unit, FR-unit)。本文将串联的多次卷积操作称为卷积块。FR-unit可进行反复叠加,对卷积块进行优化。

2.3 使用FR-unit对网络的传统卷积层进行优化

对于卷积神经网络中不同情况的卷积层,使用不同的优化方式。

1)针对卷积神经网络最底层基础特征的提取,不使用FR-unit进行优化。

2)针对网络中的单次卷积,使用一个FR-unit进行优化。FR-unit中卷積的输出通道数为(O-I)/2,其中,I、O为被优化的卷积层的输入通道数与输出通道数。如图3所示,使用一个卷积操作输出为64的FR-unit对原卷积层进行优化。

3)针对网络中的卷积块,叠加与其卷积层数量相等的FR-unit来进行优化。FR-unit中卷积的输出通道数为(O-I)/n,其中,I、O为被优化的卷积块的最初输入通道数与最终输出通道数,n为卷积块中卷积层的数量。如图4所示,使用两个输出为32通道的FR-unit对含有两个卷积层的卷积块进行优化。

4)针对网络中的输入和输出通道数没有发生改变的卷积块。FR-unit中卷积的输出通道数为(O-I)/n,如图5所示,使用两个输出为256通道的FR-unit对含有两个卷积层的卷积块进行优化,然后使用1×1卷积对特征图进行通道降维。

3 实验结果与分析

3.1 本文实验配置

本文的实验环境为CPU:i5-4210M,GPU:GTX960M,操作系统:Ubuntu16.04,深度学习框架:Pytorch0.3.1。为了加速训练,在训练时使用GPU训练。在测试时,在CPU上进行预测时间的统计。

3.2 方法可行性实验

为了验证本文所提出的FR-unit结构的有效性,在CIFAR10数据集上分别进行特征复用单元针对单次卷积结构、卷积块与多个特征复用单元叠加等三方面的实验。CIFAR10数据集包含60000张32×32的彩色图片,共分为10个类别。每类含有训练图像5000张,测试图像1000张。

3.2.1 FR-unit对单次卷积结构的优化实验

本实验使用一个标准的卷积神经网络作为本次实验的基础网络Basenet,然后使用FR-unit对Basenet中的卷积结构进行优化,形成本文的特征复用网络 (Feature-Reuse net,以下简称FRnet)。由于本文主要是对卷积层进行改进,为了减少干扰,故将Basenet全连接层设为一层。虽然此设定会降低模型的准确率与收敛的平稳性,但是对网络的对比并不会产生影响。

在CIFAR10数据集上,分别对Basenet和FRnet进行训练,对比训练完毕后模型在测试集上的预测准确率(acc),以及预测运行时间(time)。如表1所示,为本实验中所使用的基础网络Basenet_A与特征复用网络 FRnet_A的模型参数。

其中Conv代表卷积层,参数3、32、3×3、1分别表示输入通道、输出通道、卷积核大小以及边界扩展。FRlayer代表本文的特征复用层,参数分别代表卷积操作的输入通道数、输出通道数、卷积核大小以及边界扩展。每个FRlayer层都会将卷积操作的输入与输出在通道维度上进行连接,然后作为最后的输出。

3.2.2 FR-unit对卷积块结构的优化实验

本实验所使用网络如表3所示,其中Basenet_B为一个标准的卷积神经网络,FRnet_B为其对应的优化后的特征复用网络。

3.2.3 不同数量FR-unit叠加的对比实验

本次实验通过针对不同输出通道数的FR-unit结构进行比较,测试FR-unit输出通道数与叠加次数对网络运行速度和预测准确率的影响。实验所用网络如表6所示。以FRlayer2层为例,C1网络为2个输出为32的FR-unit叠加,C2网络为4个输出为16的FR-unit叠加,C3网络为8个输出为8的FR-unit叠加。

对实验结果数据分析可以看出,即使使用多次较少输出通道的FR-unit叠加结构,准确率也并没有显著的变化,但是模型的训练时间与预测时间却更长,模型的体积也更大,所以在使用FR-unit对模型进行优化时,还是建议使用等数量的FR-unit來优化等数量卷积层数的卷积块。

3.3 对VGG和Resnet的优化实验

3.3.1 使用FR-unit对VGG进行优化

本次实验使用FR-unit对VGG16网络进行了优化实验。为适应CIFAR10数据集,对VGG16模型结构作了些许调整,去掉了原模型中的第五个池化层,并将第一个全连接层的输入和输出均改为了2048。VGG网络参数与其对应的FR_VGG网络参数如表8所示,表中:Conv表示普通卷积操作;FR-unit表示本文提出的特征复用卷积单元;{}内分别表示输入通道、输出通道、卷积核大小、卷积步长与边界扩展。

3.3.2 使用FR-unit对Resnet进行优化

本次实验使用FR-unit对Resnet18网络进行了优化实验。为适应CIFAR10数据集,对Resnet18结构作了些许调整。Resnet网络参数与其对应的FR_Resnet网络参数如表10所示。表中[]内表示一个Resnet的残差单元,Conv表示普通卷积操作。FR-unit表示本文提出的特征复用卷积单元。1×1、3×3表示卷积核大小,64、128等表示输出通道数。

4 结语

本文提出了一种针对卷积层的特征复用的优化结构,即:在不降低总特征提取数量的同时,通过对已提取特征的重复使用,降低卷积层的卷积操作数量,来达到对卷积神经网络的加速和模型压缩的目的。通过实验得到如下结果:

结论1 本文所提出的FR-unit结构对卷积神经网络卷积层有良好的压缩作用。优化后VGG与Resnet模型的体积分别缩小为优化前的75.4%和53.1%;预测时间分别缩短为优化前的43.5%和60.9%。

结论2 在使用FR-unit对网络进行优化时,若选用多次较小输出的FR-unit进行叠加虽然可以使网络模型更深,但是对于模型的性能并没有明显的提升,因此,还是建议选用等量的FR-unit对模型的卷积层进行优化。

结论3 使用FR-unit对网络进行优化后,模型性能并没有降低。主要原因是没有改变模型整体的结构:第一,虽然对网络中结构进行了替换,但是提取的特征总数没有发生改变;第二,该方法并未降低网络的深度。

结论4 优化后的模型具有良好的抗拟合性能。这是由于FR-unit在训练时,会结合低层的特征进行学习,而不只依赖于最高阶的一层。

参考文献 (References)

[1] KRIZHEVSKY A, SUTSKEVER I, HINTON G. ImageNet classification with deep convolutional neural networks [C]// Proceedings of the 25th International Conference on Neural Information Processing Systems. Piscataway, NJ: IEEE, 2012: 1097-1105.

[2] SERCU T, PUHRSCH C, KINGSBURY B, et al. Very deep multilingual convolutional neural networks for LVCSR [C]// Proceedings of the 2016 IEEE International Conference on Acoustics, Speech and Signal Processing. Piscataway, NJ: IEEE, 2016: 4955-4959.

[3] SZEGEDY C, LIU W, JIA Y, et al. Going deeper with convolutions [C]// Proceedings of the 2015 IEEE Conference on Computer Vision and Pattern Recognition. Piscataway, NJ: IEEE, 2015: 1-9.

[4] HE K, ZHANG X, REN S, et al. Deep residual learning for image recognition [C]// Proceedings of the 2016 IEEE Conference on Computer Vision and Pattern Recognition. Washington, DC: IEEE Computer Society, 2016: 770-778.

[5] LECUN Y, BENGIO Y, HINTON G. Deep learning [J]. Nature, 2015, 521(7553): 436-444.

[6] ZEILER M D, FERGUS R. Visualizing and understanding convolutional networks [C]// ECCV 2014: Proceedings of the 2014 European Conference on Computer Vision. Berlin: Springer, 2014: 818-833.

[7] HARIHARAN B, ARBELAEZ P, ARBELAEZ R, et al. Simultaneous detection and segmentation[C]// ECCV 2014: Proceedings of the 2014 European Conference on Computer Vision. Berlin: Springer, 2014: 297-312.

[8] GIRSHICK R. Fast R-CNN [C]// Proceedings of the 2015 IEEE International Conference on Computer Vision. Piscataway, NJ: IEEE, 2015: 1440-1448.

[9] WANG N, YEUNG D Y. Learning a deep compact image representation for visual tracking [C]// Proceedings of the 26th International Conference on Neural Information Processing Systems. Piscataway, NJ: IEEE, 2013: 809-817.

[10] 周飛燕,金林鹏,董军.卷积神经网络研究综述[J].计算机学报,2017,40(6):1229-1251.(ZHOU F Y, JIN L P, DONG J. Review of convolutional neural network [J]. Chinese Journal of Computers, 2017, 40(6): 1229-1251.)

[11] 雷杰,高鑫,宋杰,等.深度网络模型压缩综述[J].软件学报,2018,29(2):251-266.(LEI J, GAO X, SONG J, et al. Survey of deep neural network model compression [J]. Journal of Software, 2018, 29(2): 251-266.)

[12] OBERMAN S F, FLYNN M J. Design issues in division and other floating-point operations [J]. IEEE Transactions on Computers, 1997, 46(2): 154-161.

[13] SETIONO R, LIU H. Neural-network feature selector [J]. IEEE Transactions on Neural Networks, 1997, 8(3): 654-662.

[14] 孔英会,朱成诚,车辚辚.复杂背景下基于MobileNets的花卉识别与模型剪枝[J].科学技术与工程,2018,18(19):84-88.(KONG Y H, ZHU C C, CHE L L. Flower recognition in complex background and model pruning based on MobileNets [J]. Science Technology and Engineering, 2018, 18(19): 84-88.)

[15] HU H, PENG R, TAI Y W, et al. Network trimming: a data-driven neuron pruning approach towards efficient deep architectures [J]. arXiv Preprint, 2016, 2016: arXiv.1607.03250.[2016-06-12]. https://arxiv.org/abs/1607.03250

[16] ROSENBLUETH E. Point estimates for probability moments [J]. Proceedings of the National Academy of Sciences of the United States of America, 1975, 72(10): 3812-3814.

[17] GOLUB G H, REINSCH C. Singular value decomposition and least squares solutions [J]. Numerische Mathematik, 1970, 14(5): 403-420.

[18] HUANG G, SUN Y, LIU Z, et al. Deep networks with stochastic depth [C]// Proceedings of the 2016 14th European Conference on Computer Vision. Berlin: Springer, 2016: 646-661.

[19] HUANG G, LIU Z, van der MAATEN L, et al. Densely connected convolutional networks [C]// Proceedings of the 2017 IEEE Conference on Computer Vision and Pattern Recognition. Piscataway, NJ: IEEE, 2017: 2261-2269.

猜你喜欢

卷积神经网络
基于深度神经网络的微表情识别
卷积神经网络中减少训练样本时间方法研究
卷积神经网络语言模型研究
基于卷积神经网络的车辆检索方法研究
基于卷积神经网络温室智能大棚监控系统的研究
基于深度卷积神经网络的物体识别算法
深度学习算法应用于岩石图像处理的可行性研究
基于深度卷积网络的人脸年龄分析算法与实现
深度学习技术下的中文微博情感的分析与研究
基于卷积神经网络的树叶识别的算法的研究