ACTA Scientiarum Naturalium Universitatis Pekinensis
基于全局信息的卷积神经网络模型剪枝微调优化方法
孙文宇 曹健† 李普 刘瑞
北京大学软件与微电子学院, 北京 102600; † 通信作者, E-mail: caojian@ss.pku.edu.cn
摘要 为解决因卷积神经网络模型规模大, 模型剪枝方法引起的精度下降问题, 提出一种模型剪枝微调优化方法。该方法引入原卷积神经网络模型权重全局信息至剪枝后模型, 使原模型信息体现在剪枝后模型的权重上, 提升剪枝后模型的精度。在图像分类任务和目标检测任务中的实验结果表明, 所提出的微调优化方法可获得更大的压缩率和更小的模型精度损失。关键词 卷积神经网络; 模型剪枝微调; 全局信息; 图像分类; 目标检测
卷积神经网络在图像分类、目标检测等领域得到广泛应用。随着网络效果提升, 网络规模愈发庞大, 需要高额存储空间和计算资源, 使网络部署到资源受限的端侧硬件平台变得困难。因此, 在保证模型精度的同时, 需尽可能降低模型参数量和计算消耗。研究者们提出过若干模型压缩方法, 如模型
[1–5] [6–9] [10–12]剪枝 、权重量化 和神经网络结构搜索等。其中, 模型剪枝方法能大幅度地减少模型参数量和运算量, 成为模型压缩的主流方法, 又可分为非结构化剪枝方法和结构化剪枝方法。
[13]非结构化剪枝方法 认为卷积神经网络中存
在小值权重, 对网络最终输出贡献少, 可将其置0,以便减少网络运算量。采用此类方法的模型压缩效果较好, 但部署到端侧设备时, 硬件平台要具有相应的稀疏矩阵运算加速库才能实现提速, 故非结构化剪枝方法在部署中通用性差。结构化剪枝方法将整个卷积核视为被裁剪对象, 对于硬件部署更加友好, 受到研究者青睐。Li等[14]提出基于卷积核L1范数的简单有效的剪枝方法, 通过裁剪L1范数小的卷积核, 实现模型压缩和加速。在此基础上, Frankle 等[15]利用 L2范数寻找大规模模型中的最小子网络, 实现模型剪枝。He
等[16]将卷积核视为欧式空间中的点, 计算每个卷积层的几何中位数, 将靠近几何中心点的卷积核裁减掉, 实现模型压缩。以上剪枝方法往往需要大规模的模型训练和剪枝以及小规模的模型微调3个步骤。当剪枝率过大时, 通过已有剪枝方法得到的小规模模型会因信息丢失严重及语义表达能力不足从而导致较大的精度损失。本文在模型微调前, 对小规模的模型进行全局信息优化, 使其在微调后可以取得较大的压缩率,并具有极低的精度损失。此优化方法可嵌入任何一种结构化剪枝方法中, 具有工程易用性。
1 研究方法
在适中剪枝率情况下, 剪枝方法对不同卷积层有不同的剪枝率[13], 即剪枝后每个卷积层的卷积核个数不同(见图1)。对于保留较多卷积核的卷积层,
因保留了较多的原模型信息, 故在微调后可恢复语义表达能力。对于保留较少卷积核的卷积层, 因其原模型信息破坏较为严重, 导致模型精度下降。所以, 如果能使剪枝后模型尽可能多地具备原模型信息, 则可保证剪枝后模型的高精度。
1.1 现有剪枝方法不足
在卷积神经网络中, 正常卷积计算过程如图2 (a)所示。第i层特征图A 1, A 2 , ... An与第 i+1 层中卷i i i 1 2 n积核对应的通道Ci 1, Ci 1,... Ci 进行卷积计算求和, 1得到一个输出特征图 A1 。现有的针对卷积神经网i 1络的通道级剪枝方法通常选定某一准则来衡量卷积核的重要性, 区分对输出有较大影响的重要卷积核,然后将对输出影响较小的卷积核裁剪掉。如特征图A 1和A3对应的卷积核被裁剪掉后, 剪枝后模型就不i i会存在A 1, A 3, C1和C3 (图2(b))。当压缩率较高时, i i i 1 i 1过多的特征图与卷积核被裁剪掉, 即剪枝后模型仅保留少量原模型信息, 导致微调后精度严重下降。因此, 如果被裁剪掉过多卷积核的卷积层可以包含更多的原模型信息, 则剪枝后模型的精度会随之提高。
1.2 剪枝后模型信息优化
设 Wi为未剪枝模型第i层卷积层的权重矩阵,其卷积核个数为ni; Wi为剪枝后模型第i层卷积层的权重矩阵, 其卷积核个数为n 。第i层卷积层的i n n剪枝率pi , 当 pi大于某阈值α时, 即判定ini i为剪枝后模型保留原模型信息过少, 对精度影响较大, 需对这类卷积层进行信息优化。对于剪枝率大于阈值的卷积层, 未剪枝时的权重矩阵为 , 需对其剪枝后的权重矩阵 进行信息优化, 使 , 即T T j j W Rm n j Wj Rl n WW T W W T j j j j arg min WW W W 。 (1) j j 2
综上所述, 将剪枝后模型信息保留优化问题转化为求解形如式(1)的优化问题, 通过改进的Matrix [17] Sketching 算法求解 。改进后的剪枝模型微调优化算法流程如算法1所示。算法1 基于全局信息的模型剪枝微调优化算法。输入: 采用任意剪枝方法剪枝后未微调的模型Wi
Rm n
输出: 具有更高准确率的剪枝模型Wj Rl n 1.构建全零矩阵Wj Rl n 2.将Wik 插入 Wj直至 Wj中无全零行3. 对 Wj进行奇异值分解, 即[ U , S , V ] SVD(W j) 4. 取矩阵 S 中前一半数值, 即 sl 2 /2 5. 计算S max ( S 2 Il ,0) 6. 计算W US j 7.对剪枝率超过阈值的所有卷积层进行 1~6 步操作8. 对模型进行微调, 恢复精度由式(1)及算法1可知, 改进后的微调优化方法将原模型信息引入剪枝后模型, 并最小化二者间信息误差, 从而实现对剪枝后模型某些卷积层的信息补偿, 进而在微调后获得更高精度。原理解释如图3所示。
1.3 模型特殊结构处理
残差网络 Resnet[18]中的残差模块可以解决深层网络无法有效训练的问题, 使深层网络的准确度得以提升, 其跳连结构已应用在许多大规模网络中。将现有剪枝方法应用于YOLOV3[19]等存在跳连结构的模型时, 均需保证剪枝后模型在跳连相加处通道数相同。如图4所示, 剪枝后模型在微调前需
保证c c , 进而保证跳连相加可以顺利进行, 但
1 2会严重地限制剪枝方法的压缩效果, 故此类特殊结构也是限制模型压缩效果的重要因素。在现有剪枝方法上嵌入本文提出的微调优化方法, 可在初步剪枝时不必要求跳连相加处通道数相同, 而是在微调时, 通过算法1将保留较多通道数的卷积层c优化为c , 在保证最大化压缩率的同时,
1 2还可以保证模型精度。
2 实验结果与方法对比
本文将算法1嵌入不同的剪枝方法, 并在主流图像分类模型和目标检测模型上进行对比实验来证明本文提出微调优化方法的有效性及普遍适用性。
2.1 实验数据与评价指标
本文采用图像分类数据集CIFAR10 和 CIFAR 100, 在VGG16模型上验证微调优化方法在分类任务中的效果。利用大规模遥感数据集 Visdrone[20],在 Anchor-base 目标检测模型 YOLOV3 和 Anchorfree目标检测模型 Centernet[21]上, 验证微调优化方法在目标检测任务中的效果。数据集概况见表1。
对于图像分类任务, 采用测试集准确率(Acc)作为评价指标。对于目标检测任务, 输入图片分辨率均为608×608, 采用交并比(IOU)阈值为0.5、置信度(confidence)阈值为 0.1、非极大值抑制(NMS)阈值为 0.5情况下的平均精度均值(MAP)作为评价指标。
表 1 本文所用数据集概况
Table 1 Overview of the datasets used in the article训练数量/ 检测目标占
数据集 类别数测试数量 全图比例%
CIFAR10 10 50000/10000 — CIFAR100 100 50000/10000 — Visdrone 10 6471/548 <10
2.2 方法验证与对比
将微调优化方法分别嵌入L1剪枝方法[14]和Network Slimming (NS)剪枝方法[22], 在 VGG16 模型上, 利用 CIFAR10 和 CIFAR100 数据集进行实验,实验结果如表2所示。
由表2可知, 在图像分类任务中, 在已有的若干剪枝方法中嵌入微调优化方法, 可以同时提高压缩率和剪枝后模型的准确率。可以看出, 此微调优化方法对带有模型稀疏化训练的剪枝方法更适用。通过模型稀疏化训练, 模型中更多的卷积核可被裁剪, 此时通过微调优化方法, 可使模型在尽可能高的压缩率下获得更高的精度恢复, 实现模型参数量与精度间的平衡。将此方法嵌入Network Slimming剪枝后的VGG16网络进行微调时, 剪枝后模型精度比原模型略有提高, 说明经过此方法优化后的模型具备较优的初始化参数及学习能力。
为了证明算法在其他任务中的有效性, 采用遥感数据集 Visdrone, 在 Anchor-base 目标检测模型YOLOV3 和 Anchor-free 目标检测模型 Centernet 上进行实验, 结果如表3所示。
由表3可知, 在目标检测任务中, 本文所提微调优化方法对于主流 Anchor-base 模型和 Anchorfree模型均具有适用性, 在最大程度上保证模型精度的同时, 可以降低模型参数量和复杂度。
3 结论
本文针对现有剪枝方法在高压缩率时精度严重下降的问题, 提出一种基于全局信息的模型剪枝微调优化方法。对于剪枝率过大的卷积层, 此优化方法将未剪枝模型的全局权重信息引入剪枝后模型中, 从而解决了模型跳连结构对剪枝方法的限制问题。在图像分类任务和目标检测任务中的实验结果表明, 将已有剪枝方法中嵌入此优化方法, 在获得高压缩率的同时, 只有极低的精度损失。
在未来的工作中, 我们将进一步探索剪枝后模型在微调前的权重优化, 使本文提出的微调优化方法在不失通用性的前提下获得更高的压缩率, 以便在端侧智能设备的部署与加速。
参考文献
[1] Changpinyo S, Sandler M, Zhmoginov A. The power of sparsity in convolutional neural networks [EB/OL]. (2017–02–21)[2020–05–20]. https://arxiv.org/abs/1702. 06257
[2] Liu Z, Sun M, Zhou T, et al. Rethinking the value of network pruning [EB/OL]. (2019–03–05)[2020–05– 20]. https://arxiv.org/abs/1810.05270 [3] Wen W, Wu C, Wang Y, et al. Learning structured sparsity in deep neural networks // Proceedings of the 30th International Conference on Neural Information Processing Systems. Barcelno, 2016: 2082–2090 [4] Zhou H, Alvarez J M, Porikli F. Less is more: towards compact CNNS // European Conference on Computer Vision. Cham: Springer, 2016: 662–677 [5] Han S, Mao H, Dally W J. Deep compression: compressing deep neural network with pruning, trained quantization and Huffman coding [EB/OL]. (2015– 11–20)[2020–05–20]. https://arxiv.org/abs/1510.00149v3 [6] Rastegari M, Ordonez V, Redmon J, et al. XNORNET: imagenet classification using binary convolutional neural networks // European Conference on Computer Vision. Cham: Springer, 2016: 525–542 [7] Zhou Shuchang , Wu Yuxin , Ni Zekun , et al. Dorefanet: training low bitwidth convolutional neural networks with low bitwidth gradients [EB/OL]. (2018– 02–02)[2020–05–20]. https://arxiv.org/abs/1606.06160 [8] Jacob B, Kligys S, Chen B, et al. Quantization and training of neural networks for efficient integerarithmetic-only inference [EB/OL]. (2017–12–15) [2020–05–20]. https://arxiv.org/abs/1712.05877 [9] Courbariaux M, Bengio Y. Binarynet: training deep neural networks with weights and activations constrained to +1 or –1 [EB/OL]. (2016–04–18)[2020–05– 20]. https://arxiv.org/abs/1511.00363 [10] Jin J, Yan Z, Fu K, et al. Neural network architecture optimization through submodularity and supermodularity [EB/OL]. (2018–02–21)[2020–05–20]. https://arxiv. org/abs/1609.00074 [11] Baker B, Gupta O, Naik N, et al. Designing neural network architectures using reinforcement learning [EB/OL]. (2016–11–07)[2020–05–20]. https://arxiv.org/ abs/1611.02167v1 [12] Zhang L L, Yang Y, Jiang Y, et al. Fast hardwareaware neural architecture search [EB/OL]. (2020–04– 20)[2020–05–20]. https://arxiv.org/abs/1910.11609 [13] Han S, Pool J, Tran J, et al. Learning both weights and connections for efficient neural network // Proceedings of the 28th International Conference on Neural Information Processing Systems. Montreal, 2015: 1135–1143 [14] Li H, Kadav A, Durdanovic I, et al. Pruning filters for efficient convnets [EB/OL]. (2017–03–10)[2020–05– 20]. https://arxiv.org/abs/1608.08710 [15] Frankle J, Carbin M. The lottery ticket hypothesis: finding sparse, trainable neural networks [EB/OL]. (2019–03–04)[2020–05–20]. https://arxiv.org/abs/1803. 03635 [16] He Y, Liu P, Wang Z, et al. Pruning filter via geometric median for deep convolutional neural networks acceleration // IEEE Conference on Computer Vision and Pattern Recognition. Long Beach, 2019: 4340– 4349 [17] Liberty E. Simple and deterministic matrix sketching [EB/OL]. (2012–07–11)[2020–05–20]. https://arxiv.org/ abs/1206.0594 [18] He K, Zhang X, Ren S, et al. Deep residual learning for image recognition // IEEE Conference on Computer Vision and Pattern Recognition. Las Vegas, 2016: 770–778 [19] Redmon J, Farhadi A. YOLOV3: an incremental improvement [EB/OL]. (2018–04–08)[2020–05–20]. https://arxiv.org/abs/1804.02767 [20] Zhu Pengfei, Wen Longyin, Du Dawei, et al. Vision meets drones: past, present and future [EB/OL]. (2020–01–16) [2020–05–20]. https://arxiv.org/abs/200 1.06303 [21] Zhou X, Wang D, Krähenbühl P. Objects as points [EB/OL]. (2019–04–25)[2020–05–20]. https://arxiv.org/ abs/1904.07850 [22] Liu Zhuang, Li Jianguo, Shen Zhiqiang, et al. Learning efficient convolutional networks through network slimming // IEEE International Conference on Computer Vision. Venice, 2017: 2736–2744 [23] Zhang Pengyi, Zhong Yunxin, Li Xiaoqiong. Slimyo LOV3: narrower, faster and better for real-time UAV applications [EB/OL]. (2019–07–25) [2020–05–20]. https://arxiv.org/abs/1907.11093