自学习稀疏密集连接卷积神经网络图像分类方法

吴 鹏1,2 林国强1,2 郭玉荣3 赵振兵3

(1. 全球能源互联网研究院有限公司, 北京 102209; 2. 电力系统人工智能(联研院)国家电网公司联合实验室, 北京 102209; 3. 华北电力大学电子与通信工程系, 河北保定 071000)

摘 要: 通道剪枝是深度模型压缩的主要方法之一。针对密集连接卷积神经网络中,每一层都接收其前部所有卷积层的输出特征图作为输入,但并非每个后部层都需要所有先前层的特征,网络中存在很大冗余的缺点。本文提出一种自学习剪枝密集连接网络中冗余通道的方法,得到稀疏密集连接卷积神经网络。首先,提出了一种衡量每个卷积层中每个输入特征图对输出特征图贡献度大小的方法,贡献度小的输入特征图即为冗余特征图;其次,介绍了通过自学习,网络分阶段剪枝冗余通道的训练过程,得到了稀疏密集连接卷积神经网络,该网络剪枝了密集连接网络中的冗余通道,减少了网络参数,降低了存储和计算量;最后,为了验证本文方法的有效性,在图像分类数据集CIFAR-10/100上进行了实验,在不牺牲准确率的前提下减小了模型冗余。

关键词:剪枝冗余通道;自学习;稀疏化密集连接卷积神经网络;图像分类

1 引言

自2012年以来,深度卷积神经网络[1-3](Deeply convolutional neural network,DCNN)在许多计算机视觉任务中取得了巨大成功,例如图像分类[4],人脸识别[5],物体检测[6],图像生成[7]和视频分析[8]等等。然而,深度网络模型大、参数量多,故深度学习方法难以应用于具有有限存储和计算资源的硬件设备,例如蜂窝电话。模型压缩是解决这个问题的一种有效方法,它旨在不牺牲准确率的前提下减少模型冗余。目前,模型压缩的研究主要包括三类:量化[9-10](quantization),稀疏或低秩压缩[11-12](sparse or low-rank compressions)和通道修剪[13-14](channel pruning)。

量化通过将浮点权重量化为低比特权重(例如,8比特或甚至1比特)减小模型大小。Gong等人[9]使用K均值标量量化(k-means scalar quantization)对全连接层的权重进行量化;Rastegari等人[10]将网络中的参数量化为1/-1,提出二元权重网络(Binary-Weight-Networks,BWN)和XNOR-Net二值化网络,在大规模数据集上实现了与其全精度网络相当的精度,同时达到了减少模型存储空间的目的;Li等人[15]对XNOR-Networks网络进行改进,对输入进行高精度二值量化,实现高精度的二值网络计算;然而,当二值网络应用于诸如GoogleNet[16]这类大型网络时,准确性会显著降低,为了解决这个问题,Hou等人[17]提出了一种与对角线黑塞(diagonal Hessian)近似的近端牛顿算法,该算法将二元权重的损失最小化。

目前,稀疏连接或低秩压缩的研究有很多,Denton等人[11]提出一些卷积核的低秩近似和聚类方法;在文本识别中,Jaderberg等人[12]采用张量分解方法使得准确率下降1%的情况下速度提高了4.5倍;以张量分解的思想为基础,Lebedev等人[18]提出了核张量的标准多元(canonical polyadic,CP)分解;奇异值分解(singular value decomposition,SVD)是另外一种比较流行的低秩分解方法,Denil等人[19]采用SVD对网络进行去冗余;Wen等人[20]使用Group Lasso对网络参数进行正则化,实现网络参数的结构化稀疏,使网络得到加速。稀疏连接或低秩压缩可以达到高压缩率,但可能会生成不规则的卷积核,需要稀疏矩阵来加速计算,稀疏矩阵操作在硬件平台上运算效率不高。

通道修剪通过直接移除冗余通道来压缩模型,有助于提高量化效率并实现更紧凑的模型。Han等人[13]根据神经元连接权值的大小确定修剪训练后网络中的不重要连接,来减少网络所需要的参数;Luo等人[14]根据下一层的特征图来决定当前层卷积核是否被修剪,通过剪枝卷积核的方式达到模型压缩和加速;Li等人[21]通过计算权重绝对值之和来衡量通道的重要性;而Luo等人[22]认为权重值的大小不能准确衡量卷积核的重要性,提出了一种用熵值衡量卷积核重要性的方法;在大型的深度学习网络中,大部分的神经元的激活都是趋向于零的,而这些激活为0的神经元是冗余的,Li等人[23]用零的百分比(Average Percentage of Zeros,APoZ)统计每个卷积核中激活为0的权重值数量,并对具有高APoZ值的卷积核进行修剪。

自2012年,Krizhevsky等人[24]提出经典CNN——AlexNet,深度卷积神经网络成为图像分类的主流方法。人们陆续研究出很多更加有效的分类方法,比如VGGNet[25]、GoogleNet[16]、ResNet[26]等等,随着CNN层数变的越来越深,图像分类效果也越来越好。VGG-19[25]网络采用16-conv+3-fc的架构,展示出网络的深度是算法优良性能的关键部分。GoogleNet[16]通过在单层卷积层上使用多种尺度的卷积核,网络的特征提取能力大大增强。2015年,He等人[26]提出残差卷积神经网络(Residual Convolutional Neural Networks,ResNets),该网络中引入残差块,训练时间大大缩短,图像分类的准确率再次提升。

为了使网络中层间信息流最大化,Huang等人[27]提出密集连接卷积神经网络(Dense Convolutional Network,DenseNet),在每个Dense Block中,每一层都接收其前部所有卷积层的输出特征图作为输入,这样每一层都重新在其之前所有层的输出中提取有用信息。DenseNet的作者Huang等人[28]针对DenseNet的一个最大缺点:显存占用较大,提出CondenseNet,该网络通过自学习卷积group操作以及在训练时候的剪枝来达到降低显存、提高速度的目的。与其他网络相比,DenseNet网络前层特征作为后层的输入,效率更高,可以有效提高图像分类准确率,但可以发现,并非每个后部层都需要所有先前层的特征,而且很难预测哪些特征应在何时使用。针对这个问题,受CondenseNet网络的启发,本文提出一种通过自学习移除DenseNet网络中冗余通道的方法。在CondenseNet中,作者提出了可学习的分组卷积,主要是针对1×1卷积,优化1×1卷积的计算量,本文方法在原DenseNet网络上,对3×3卷积层剪枝冗余通道。通过自学习获得每个卷积层输入特征图中的冗余通道,对冗余通道的对应卷积核权重值填零,达到移除冗余通道的目的。首先,提出了一种衡量每个卷积层输入特征图对输出特征图贡献度大小的方法,贡献度小的即为冗余特征图;其次,通过自学习,网络分阶段剪枝冗余通道,得到了稀疏密集连接卷积神经网络(Sparse densely concatenated convolutional neural network,Sparse-DenseNet),该网络剪枝了密集连接网络中的冗余通道,减少了网络参数,降低了存储和计算量;最后,在图像分类数据集CIFAR-10/100上进行实验,在不牺牲准确率的前提下减少了模型冗余,验证了本文方法的有效性。

2 密集连接卷积神经网络

密集连接卷积神经网络由多个密集块(Dense Block,DB)组成,每个密集块由多层组成,如图1所示。每层产生k个特征,其中k被称为网络的增长率。DenseNet网络的一个重要特性是每个卷积层的输入是同一密集块内所有先前层生成的所有特征图的串联。因此,第l层接收lk个输入特征图。即:

xl=Hl([x0,x1,…,xl-1])

(1)

其中,Hl(•)表示复合函数BN-ReLU-Conv:批量归一化(Batch Normalization,BN),ReLU函数,卷积(Convolution)。x0,x1,…,xl-1指第0个卷积层到第l-1卷积层的输出特征图。本文实验选取40层DenseNet网络为基础网络,该网络由3组结构相同的密集块组成,每个密集块包含12个3×3卷积层,每个卷积层的输出特征图数均为12。

图1 基础Dense Block图
Fig.1 Dense Block

3 自学习剪枝冗余通道

3.1 如何衡量输入通道对输出通道的贡献度?

在DenseNet网络中,3×3卷积层的卷积过程如图2所示。其中,L表示该卷积层输入特征图数量,用HW表示输入特征图的宽和高,通过卷积层,输入特征图XRL×H×W将生成N个是输出特征图X′∈RN×H×W,该过程通过3维卷积核fRL×K×K完成,卷积核的数量与输出特征图的数量相同,图中的白块表示3×3卷积核,卷积核中即为网络权值,每个卷积核是由L个2维卷积核KRK×K组成,所有的卷积核可以表示为FRL×K×K×N,那么每个卷积层的计算量为L×N×K×K×W×H,若每个卷积层的输入通道数剪枝1/3,那么每个卷积层的计算量将减少1/3。

图2 3×3卷积层卷积过程图
Fig.2 Convolution process diagram of 3×3 convolutional layer

根据上述3×3卷积原理及图2可以看到,中间每一行权值都与一个输入特征图相对应,且与所有输出特征图相对应,故每一行权值表示一个输入特征图对其所有输出特征图的影响大小,本研究将每一行的权重进行绝对值加和,该值本质上就是权值的L1范数,如图2中的中间每一行,本文采用每一行权重绝对值之和衡量每个输入特征图对后层特征图的贡献度,卷积核F可变换为其中,那么可用衡量第i个输入特征图的对后层特征图的贡献度,该值越小贡献度越小,优先被剪枝。

3.2 剪枝过程

本研究通过自学习确定冗余通道,进行冗余通道的剪枝。为了减小权重修剪对准确性的负面影响,剪枝过程分三个阶段:训练、剪枝、优化。第一阶段为常规的网络权重训练,该阶段采用稀疏正则化,使学习到的权重呈现稀疏分布,降低第二阶段通道剪枝对图像分类精度的影响;第二阶段为剪枝阶段,该阶段分两步完成,若剪枝通道数为C,则每次剪枝数为C/2,最后剩余输入通道数为L-C,本研究将剪枝过程分两步同样是为了减小权重修剪对准确性的负面影响,图3为剪枝方法图,通过计算权重绝对值和确定对输出通道贡献度小的输入通道为剪枝通道,本研究没有直接移除这些通道而是通过对对应权重填0达到移除通道的目的,图中0代表通道被剪枝,通过权重绝对值加和的大小值来确定输入通道对输出通道的贡献度,该值本质上就是权值的L1范数,本研究通过剪枝实现网络的L1范数正则化,产生一个稀疏模型,用于特征选择并一定程度上可以抑制过拟合,且实验证明该方法简单有效;第三阶段是网络进一步训练优化阶段,使网络得到充分的优化学习。

图3 第二阶段剪枝过程图
Fig.3 The second stage pruning method diagram

4 实验设置及结果分析

4.1 实验设置

CIFAR数据集[29]分为CIFAR-10和CIFAR-100,均是大小32×32的彩色图像。CIFAR-10/100数据集中,测试集均包含50000张图像,训练集均包含10000张图像,分别有10类和100类。实验中对两种数据集采用了标准数据增强方案:首先用零在输入图像边上各填充4像素,随机裁剪生成32×32的图像,然后将图像进行水平翻转。为了公平比较,网络训练参数均按照文献[24]进行设置,采用随机梯度下降(SGD)更新权重,最小batch为64,权重衰减为1e- 4,牛顿动量为0.9。训练的最大训练轮数(epoch)为300,学习率从0.1开始,采用Loshchilov等人[30]提出的余弦形状学习率(cosine shape learning rate),平滑地退化学习率,在第50个epoch进行第一次剪枝,剪枝数为输入特征图的15%,第100个epoch进行第二次通道剪枝,在第一次基础上再剪枝15%,总共剪枝输入通道的30%,150epoch进入网络的优化阶段。在本文的工作中,主要使用测试集分类准确率、模型参数量、浮点运算数来评估本文方法的有效性。

4.2 实验结果及分析

在DenseNet网络的训练中,采用的训练策略为:训练的最大训练轮数为300,学习率从0.1开始,最大epoch的50%之后降为0.01,75%之后降为0.001。为了公平比较,排除采用余弦形状学习率对分类准确率的影响,本文在40层DenseNet- 40网络,CIFAR-10/100数据集上,采用余弦形状学习率进行实验,实验结果如表1所示,表2列出了DenseNet- 40网络及Sparse-DenseNet- 40网络的参数量及计算量,可以看到,与DenseNet- 40网络相比,Sparse-DenseNet- 40网络的参数量及浮点运算量(FLOPS)均减少了30%,但Sparse-DenseNet- 40网络与DenseNet- 40网络相比,错误率还略低,说明本文提出的剪枝通道方法达到了压缩模型且不影响分类准确率的目的,证明了本文方法的有效性。

表1 不同模型在CIFAR-10/100上的实验结果(%)
Tab.1 The results on different models (%)

模型CIFAR-10错误率CIFAR-100错误率DenseNet-405.3325.72DenseNet-40(cosine)5.1125.27Sparse-DenseNet-40(cosine)4.9425.25

表2 不同模型的参数量和浮点运算数对比
Tab.2 The params and FLOPS on different models

模型参数量计算量DenseNet-401.0M530MSparse-DenseNet-400.7M370M

5 结论

在密集连接卷积神经网络中,每一层都接收其前部所有卷积层的输出特征图作为输入,效率更高,但并非每个后部层都需要所有先前层的特征,而且很难预测哪些特征应在何时使用。为了移除DenseNet网络每一层的冗余输入通道,减少参数量,降低存储和计算量,本文提出一种通过自学习移除DenseNet网络中冗余通道的方法。在网络训练时,通过自学习获得输入每个卷积层特征图中的冗余通道,对冗余通道的对应卷积核权重值填零,达到移除冗余通道的目的。首先,提出了一种衡量每个输入特征图对后层特征图贡献度大小的方法;其次,给出了通过自学习,网络分阶段剪枝冗余通道的训练过程,得到了稀疏密集连接卷积神经网络;最后,在图像分类数据集CIFAR-10/100上进行实验,在不牺牲准确率的前提下减少了模型冗余,验证了本文方法的有效性。

参考文献

[1] 李彦冬, 郝宗波, 雷航. 卷积神经网络研究综述[J]. 计算机应用, 2016, 36(9): 2508-2515.

Li Yandong, Hao Zongbo, Lei Hang. Survey of convolutional neural network[J]. Computer Application, 2016, 36(9): 2508-2515.(in Chinese)

[2] 杨真真, 匡楠, 范露, 等. 基于卷积神经网络的图像分类算法综述[J]. 信号处理, 2018, 34(12): 1474-1489.

Yang Zhenzhen, Kuang Nan, Fan Lu. Review of Image Classification Algorithms Based on Convolutional Neural Networks[J]. Journal of Signal Processing, 2018, 34(12): 1474-1489.(in Chinese)

[3] 郑胤, 陈权崎, 章毓晋. 深度学习及其在目标和行为识别中的新进展[J]. 中国图象图形学报, 2014, 19(2): 175-184.

Zheng Yin, Chen Quanqi, Zhang Yujin. Deep learning and its new progress in object and behavior recognition[J]. Journal of Image and Graphics, 2014, 19(2): 175-184.(in Chinese)

[4] Krizhevsky A, Sutskever I, Hinton G. Imagenet classification with deep convolutional neural networks[C]∥Proceedings of the Advances in Neural Information Processing Systems (NIPS), 2012: 1097-1105.

[5] Yi D, Lei Z, Li S Z. Age Estimation by Multi-scale Convolutional Network[C]∥Asian Conference on Computer Vision. Singapore, Singapore. Springer, Cham, 2014: 144-158.

[6] Redmon J, Divvala S, Girshick R, et al. You Only Look Once: Unified, Real-Time Object Detection[C]∥Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR), Las Vegas, NV, USA, 2016: 779-788.

[7] Cao J, Guo Y, Wu Q, et al. Adversarial Learning with Local Coordinate Coding[C]∥International Conference on Machine Learning, 2018, 80: 707-715.

[8] Simonyan K, Zisserman A. Two-stream convolutional networks for action recognition in videos[C]∥Proceedings of the Advances in Neural Information Processing Systems (NIPS), 2014: 568-576.

[9] Gong Y, Liu L, Yang M, et al. Compressing Deep Convolutional Networks using Vector Quantization[EB/OL]. 2014-12-18[2019- 04-20]. https:∥arxiv.org/abs/1412.6115.

[10]Rastegari M, Ordonez V, Redmon J, et al. XNOR-Net: ImageNet Classification Using Binary Convolutional Neural Networks[C]∥European Conference on Computer Vision (ECCV), 2016: 525-542.

[11]Denton E, Zaremba W, Bruna J, et al. Exploiting Linear Structure Within Convolutional Networks for Efficient Evaluation[C]∥Proceedings of the 27th International Conference on Neural Information Processing Systems, 2014, 1: 1269-1277.

[12]Jaderberg M, Vedaldi A, Zisserman A. Speeding up Convolutional Neural Networks with Low Rank Expansions[C]∥Proceedings of the British Machine Vision Conference (BMVC), 2015.

[13]Han S, Pool J, Tran J, et al. Learning both Weights and Connections for Efficient Neural Networks[C]∥Proceedings of the Advances in Neural Information Processing Systems (NIPS), 2015.

[14]Luo J H, Wu J X, Lin W Y. ThiNet: A Filter Level Pruning Method for Deep Neural Network Compression[C]∥Proceedings of the International Conference on Computer Vision (ICCV), 2017.

[15]Li Z F, Ni B B, Zhang W J, et al. Performance Guaranteed Network Acceleration via High-Order Residual Quantization[C]∥Proceeding of IEEE International Conference on Computer Vision (ICCV), 2017.

[16]Szegedy C, Liu W, Jia Y, et al. Going deeper with convolutions[C]∥Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR), Boston: IEEE Press, 2015: 1-9.

[17]Hou L, Yao Q, Kwok J T. LOSS-AWARE BINARIZATION OF DEEP NETWORKS[C]∥Proceedings of the IEEE International Conference on Learning Representations (ICLR), 2017.

[18]Lebedev V, Ganin Y, Rakhuba M, et al. Speeding-up convolutional neural networks using fine-tuned CP-decomposition[EB/OL]. 2015- 04-24[2019- 4-20]. https:∥arxiv.org/abs/1412.6553.

[19]Denil M, Shakibi B, Dinh L, et al. Predicting parameters in deep learning[C]∥Proceedings of the Advances in Neural Information Processing Systems (NIPS), 2013, 2: 2148-2156.

[20]Wen W, Wu C, Wang Y, et al. Learning Structured Sparsity in Deep Neural Networks[C]∥Proceedings of the Advances in Neural Information Processing Systems (NIPS), 2016: 2082-2090.

[21]Li H, Kadav A, Durdanovic I, et al. Pruning filters for efficient convnets[C]∥Proceedings of the IEEE International Conference on Learning Representations (ICLR), 2017.

[22]Luo J H, Wu J X. An Entropy-based Pruning Method for CNN Compression[EB/OL]. 2017- 06-19[2019- 04-20]. https:∥arxiv.org/abs/1706.05791.

[23]Li H, Kadav A, Durdanovic I, et al. Pruning Filters for Efficient Convnets[EB/OL]. 2017- 03-10[2019- 04-20]. https:∥arxiv.org/abs/1608.08710.

[24]Krizhevsky A, Sutskever I, Hinton G. Imagenet classification with deep convolutional neural networks[C]∥Proceedings of the Advances in Neural Information Processing Systems (NIPS), 2012: 1097-1105.

[25]Simonyan K, Zisserman A. Very deep convolutional networks for large-scale image recognition[EB/OL]. 2015- 04-10[2018-11- 01]. https:∥arxiv.org/abs/1409.1556.

[26]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 (CVPR), Las Vegas, NV, USA, 2016: 770-778.

[27]Huang G, Liu Z, Laurens V D M, et al. Densely connected convolutional networks[C]∥Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR), Honolulu, HI, USA, 2017: 2261-2269.

[28]Huang G, Liu S, Maaten L, et al. Condensenet: an efficient densenet using learned group convolutions[C]∥In Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition (CVPR), Salt Lake City, UT, USA, 2018: 2752-2761.

[29]Krizhevsky A, Hinton G. Learning multiple layers of features from tiny images[R]. Technical Report, University of Toronto, 2009.

[30]Loshchilov I, Hutter F. SGDR: stochastic gradient descent with restarts[EB/OL]. 2017- 03- 03[2019- 04-20]. https:∥arxiv.org/abs/1608.03983.

Self-learning Sparse DenseNet Image Classification Method

Wu Peng1,2 Lin Guoqiang1,2 Guo Yurong3 Zhao Zhenbing3

(1. Global Energy Interconnection Research Institute co.Ltd, Beijing 102209, China; 2. Artificial Intelligence on Electric Power System State Grid Corporation Joint Laboratory (GEIRI), Beijing 102209, China; 3. The Department of Electronic and Communication Engineering, North China Electric Power University, Baoding, Hebei 071000, China)

Abstract: Channel pruning is one of the main methods of depth model compression. DenseNet is one of the widely applied deep convolutional neural networks in image classification. In the DenseNet, each layer receives the output feature maps of all the convolutional layers in front of it as input. But not each layer needs all the features of the previous layers. There is a lot of redundancy in the DenseNet. Aiming at the shortcoming, this paper proposes a method for removing redundant channels in the DenseNet through self-learning. We get a sparse densely concatenated convolutional neural network. First, the method for measuring the contribution of each input feature map to the output feature map is proposed in each convolution layer. The input feature map with small contribution is the redundant feature map. Secondly, we introduce the training process of removing redundant channels in stages through self-learning. A sparse densely concatenated convolutional neural network is obtained, which prune the redundant channels, reducing network parameters, storage and computation. Finally, in order to show the effectiveness of the method, we performed experiments on the image classification dataset CIFAR-10/100. Experiments show that model redundancy is reduced without sacrificing accuracy.

Key words pruning redundant channel; self-learning;sparse densely concatenated convolutional neural network; image classification

收稿日期:2019-05-17;修回日期:2019-05-25

基金项目:国家电网有限公司总部科技项目(基于人工智能的视频图像处理及在巡检中的应用研究,5455HJ170002);国家自然科学基金项目(61871182,61401154,61773160,61302163);北京市自然科学基金项目(4192055);河北省自然科学基金项目(F2016502101,F2017502016,F2015502062);中央高校基本科研业务费专项资金项目(2018MS095,2018MS094);模式识别国家重点实验室开放课题基金(201900051)等资助

中图分类号:TN911.73

文献标识码:A

DOI:10.16798/j.issn.1003- 0530.2019.10.016

文章编号: 1003-0530( 2019) 10-1747-06

引用格式: 吴鹏, 林国强, 郭玉荣, 等. 自学习稀疏密集连接卷积神经网络图像分类方法[J]. 信号处理, 2019, 35(10): 1747-1752. DOI: 10.16798/j.issn.1003- 0530.2019.10.016.

Reference format: Wu Peng, Lin Guoqiang, Guo Yurong, et al. Self-learning Sparse DenseNet Image Classification Method[J]. Journal of Signal Processing, 2019, 35(10): 1747-1752. DOI: 10.16798/j.issn.1003- 0530.2019.10.016.

作者简介

吴 鹏 男, 1982年生, 河北保定人。全球能源互联网研究院有限公司, 工程师, 硕士, 主要研究方向为机器学习、最优化方法、智能电网。

E-mail: wup@geiri.sgcc.com.cn

林国强 男, 1989年生, 江西上饶人。全球能源互联网研究院有限公司, 工程师, 博士, 研究方向为数据挖掘、网络分析、图像处理。

E-mail: linshen1213@163.com

郭玉荣 女, 1994年生, 山西临汾人。华北电力大学, 硕士, 主要研究领域为深度学习、图像分类。

E-mail: 490133104@qq.com

赵振兵 男, 1979年生, 江苏宿迁人。华北电力大学, 博士, 副教授, 主要研究领域为深度学习与计算机视觉。

E-mail: zhaozhenbing@ncepu.edu.cn