浙江大学学报(工学版), 2023, 57(3): 486-494 doi: 10.3785/j.issn.1008-973X.2023.03.006

计算机与控制工程

基于强化学习和3σ准则的组合剪枝方法

徐少铭,, 李钰,, 袁晴龙

华东理工大学 信息科学与工程学院,上海 200237

Combination pruning method based on reinforcement learning and 3σ criterion

XU Shao-ming,, LI Yu,, YUAN Qing-long

School of Information Science and Engineering, East China University of Science and Technology, Shanghai 200237, China

通讯作者: 李钰,男,副教授. orcid.org/0000-0003-2874-8101. E-mail: liyu@ecust.edu.cn

收稿日期: 2022-03-12  

Received: 2022-03-12  

作者简介 About authors

徐少铭(1998—),女,硕士生,从事深度学习、智能传感与信息处理研究.orcid.org/0000-0001-8430-5925.E-mail:X18912726309@163.com , E-mail:X18912726309@163.com

摘要

针对结构复杂、参数冗余的深度神经网络无法部署到资源受限的嵌入式系统的问题,受稀疏率对性能影响的启示,提出基于强化学习和3σ准则的组合剪枝方法. 根据稀疏率对准确率的影响,确定最佳全局稀疏率,使稀疏率和精度达到较好平衡. 在最佳全局稀疏率的指导下,利用强化学习方法自动搜索每层卷积层的最佳剪枝率,根据剪枝率剪去不重要的权重. 通过3σ准则确定全连接层每层的权重剪枝阈值,对全连接层进行权重剪枝. 通过再训练来恢复模型识别的精度. 实验结果表明,所提剪枝方法可以将网络VGG16、ResNet56和ResNet50的参数,分别压缩83.33%、70.1%和80.9%,模型的识别准确率分别降低1.55%、1.98%和1.86%.

关键词: 深度神经网络 ; 模型压缩 ; 稀疏率 ; 强化学习 ; 组合剪枝

Abstract

In order to resolve the problem that deep neural network with complex structure and redundant parameters could not be deployed to the resource constrained embedded system, an efficient combination pruning method based on reinforcement learning and 3σ criterion was proposed, which was inspired by the effect of sparsity rate on performance. Firstly, an optimal global sparsity rate was determined according to the influence of sparsity rate on accuracy, which could achieve a good balance between sparsity rate and accuracy. Secondly, under the guidance of optimal global sparsity rate, the reinforcement learning method was used to search the optimal pruning rate of each convolutional layer automatically, and the unimportant weights were cut off on the basis of the pruning rate. Then, the weight pruning threshold of each fully connected layer was determined by 3σ criterion, and for each fully connected layer, the weight which below the threshold would be pruned. Finally, the accuracy of model recognition was restored by retraining. Experimental results showed that the proposed pruning method could compress the parameters of VGG16, ResNet56 and ResNet50 network by 83.33%, 70.1% and 80.9% respectively, and the model’s recognition accuracy could be reduced by 1.55%, 1.98% and 1.86% respectively.

Keywords: deep neural network ; model compression ; sparsity rate ; reinforcement learning ; combination pruning

PDF (920KB) 元数据 多维度评价 相关文章 导出 EndNote| Ris| Bibtex  收藏本文

本文引用格式

徐少铭, 李钰, 袁晴龙. 基于强化学习和3σ准则的组合剪枝方法 . 浙江大学学报(工学版)[J], 2023, 57(3): 486-494 doi:10.3785/j.issn.1008-973X.2023.03.006

XU Shao-ming, LI Yu, YUAN Qing-long. Combination pruning method based on reinforcement learning and 3σ criterion . Journal of Zhejiang University(Engineering Science)[J], 2023, 57(3): 486-494 doi:10.3785/j.issn.1008-973X.2023.03.006

深度神经网络在图像分类[1-2]、物体检测[3-5]、语义分割[6-8]等领域的应用效果良好. 随着深度学习的发展,神经网络的层数越来越深,参数越来越多. 由于将神经网络部署在资源受限的嵌入式设备上有一定的困难,导致庞大的神经网络模型在实时性要求较高的工业现场的应用受阻. 模型压缩可以有效地减少网络参数,降低网络复杂度,拓展深度神经网络在工业现场的应用[9-10]. 模型压缩的方法主要有量化、低秩分解、知识蒸馏、轻量化网络设计和剪枝等. 模型量化[11]是将高比特的浮点运算转换为低比特的定点运算,如网络二值化方法[12]、三值神经网络[13],但这类方法在压缩模型的同时损失了较大的网络精度. 低秩分解是通过奇异值分解(singular value decomposition, SVD)[14]、Tucker分解[15]、Block Term分解[16]等方法将网络结构中复杂的张量用精简的张量表示,这类方法能够压缩网络,但矩阵分解成本高,并且分解后需要逐层微调,一定程度上减缓了模型训练速度. 知识蒸馏方法虽然性能较好,但存在效率低以及教师模型难设计、难选择的问题[17-18]. 轻量化网络设计[19-22]是在保持模型精度的基础上,根据技巧和经验设计的性能较优的小型网络,但轻量化网络模型固定,该方法不适用于特定网络结构的压缩.

剪枝是最常用的模型压缩方法. 在传统的剪枝方法中,剪枝率和阈值通常由经验丰富的专家根据模型大小和准确率人为设定,不仅耗时而且主观性较强,在大规模的网络结构中容易导致局部最优. 因此,自动寻找稀疏的网络结构成为新的研究热点. 强化学习可以在节省人力的情况下,通过自动探索和学习,更好地实现复杂的任务自动化和大规模的空间搜索. He等[23]提出用强化学习对模型进行压缩,利用深度确定性策略梯度算法自动搜索每层的压缩率;根据压缩率逐层进行通道剪枝。该方法可将网络VGG16实现4倍加速,且剪枝后的准确率比手工设定的剪枝方法高2.7%. 全连接层仍然存在一定的冗余,而且卷积层由于稀疏率固定为50%,导致压缩率不高. Ashok等[24]提出基于策略梯度先剪枝网络层,再剪枝网络层参数的方法. 该方法可以在保持较高压缩率的情况下,使准确率基本不变,但剪枝过程中网络搜索时间较长. Liu等[25]通过训练元网络对通道进行自动化剪枝. 该方法搜索时不需要微调,搜索效率高、性能优越,但在剪枝网络编码的过程中需要反复迭代.

针对上述方法的不足,本研究基于强化学习可以自动学习、优化超参数,3σ准则处理数据准确性高的特点,选取网络VGG16、ResNet56、ResNet50为实验模型,研究基于强化学习和3σ准则的组合剪枝效果.

1. 基于强化学习的深度神经网络剪枝方法

强化学习在训练智能体与环境交互中进行学习. 如何在智能体不断地尝试学习后,执行可以获得最大奖励的行动,是优化问题. 深度确定性策略梯度(deep deterministic policy gradient, DDPG[26])算法是基于行动者-评论家(actor-critic)算法和确定性策略梯度(DPG)的算法。它既能够单步更新值,又能够用于处理高维连续动作,使奖励值最大化. 基于DDPG搭建强化学习下的自动化剪枝结构框架,如图1所示. 图中, actor、critic为DDPG的2个网络,s为环境的状态,a为下一步要采取的动作,r为产生的奖励,x为神经网络的层数.

图 1

图 1   强化学习下的自动化剪枝结构

Fig.1   Automated pruning structures under reinforcement learning


为了进一步压缩网络,在DDPG算法剪枝前,增加确定最佳全局稀疏率实验. 通过给整个网络设置不同的稀疏率进行剪枝,由实验结果选出的最佳全局稀疏率搜索每层的剪枝率. 在搜索过程中,智能体中的网络actor负责找出剪枝率,网络critic负责评价剪枝后的网络. 网络critic的更新方法与深度Q网络(DQN)类似,更新过程使损失最小,代价函数为

$ \min\; L = \frac{1}{N}{\sum\nolimits_i {\left( {{y_i} - Q\left( {{s_i},{a_i}|{\theta ^Q}} \right)} \right)} ^2}. $

式中:1/N为对N个样本取损失平均值;Q(si, aiQ)为在状态si下采取动作ai产生的Q值,该值由网络critic评估;θ为网络critic的参数;yi为目标Q值,

$ {y_i} = {r_i}+\gamma Q'\left( {{s_{i+1}},\mu '\left( {{s_{i+1}}|{\theta ^{\mu '}}} \right)|{\theta ^{Q'}}} \right). $

式中:ri为在状态si下生成动作ai与环境交互生成的奖励,γ为折扣因子,µ′(si+1µ′)为网络actor对状态si+1下的动作预测,Q′(si+1, µ′(si+1µ′)Q′)为网络critic对状态si+1下采取动作评估的Q值. yi由当前Q的网络参数复制而来,与DQN算法硬更新(w′=w,其中w为网络actor的参数)不同,DDPG为软更新,即

$ w' \leftarrow \tau w+\left( {1 - \tau } \right)w', $

$ \theta ' \leftarrow \tau \theta +\left( {1 - \tau } \right)\theta '. $

式中:τ为更新系数,一般取τ=0.01. 在网络critic更新结束,完成对状态和动作值评判后,网络actor进行更新. 网络actor更新的基本思想:critic指导动作a向值函数Q值增大的方向更新. 更新过程描述为

$ {\nabla _{{\theta ^\mu }}} \approx \frac{1}{N}\sum\nolimits_{{i}} {{\nabla _{{a}}}Q\left( {s,a|{\theta ^Q}} \right){|_{s = {s_i},a = \mu ({s_i})}} \times } {\nabla _{{\theta ^\mu }}}\mu \left( {s|{\theta ^\mu }} \right){|_{{s_i}}}. $

式中: $\nabla $a Q(s, a|θQ)|s=si, a=µ(si)为网络critic计算动作ai目标价值并反向传播得到的梯度, $\nabla $θµ µ(s|θu)|si为在状态si下生成的动作值并反向传播得到的现实网络actor的梯度.

2. 基于稀疏率优化的组合剪枝方法

随着网络深度的加深,冗余参数越来越多. 权重剪枝是非结构化的剪枝,能够有效降低神经网络的参数数量和计算量. 卷积神经网络的参数主要分布于卷积层和全连接层,对卷积神经网络的剪枝包含对卷积层和全连接层的剪枝. 本研究在卷积层剪枝阶段提出基于稀疏率优化的强化学习方法,在全连接层剪枝阶段采用3σ剪枝方法,这种组合剪枝的框架如图2所示. 对于原始网络,1)控制全连接层参数不变,用权重剪枝的方法根据剪枝率剪去卷积层中重要性较低的权重;2)控制剪枝后的卷积层参数不变,用权重剪枝方法根据阈值剪去全连接层中低于阈值的权重,实现进一步压缩.

图 2

图 2   网络组合剪枝框架图

Fig.2   Framework of combination network pruning


2.1. 卷积层权重剪枝

2.1.1. 状态空间

为了对神经网络进行准确修剪,利用状态空间来区分网络结构的不同层. 将第x层用9个特征描述为

$ {{s}}_{x}{}_{ }=\left({x},{{c}}_{{\rm{in}}},{{c}}_{{\rm{out}}},{h},{w},{k},{W_x},{N_x},{n_x}\right). $

式中:x为卷积神经网络搜索所在的层数,cincout分别为卷积层的输入通道数和输出通道数,h、w分别为特征图的高和宽,k为卷积核大小,Wx为本层权重参数量,Nx为前面层数修剪掉的参数总量,nx为后面层须剪掉的权重参数数量. cin×cout×h×w为该层的权重参数张量,在将环境中的状态传到智能体前,须对状态中的各元素归一化,以便交互.

2.1.2. 动作空间

在权重剪枝过程中,有连续稀疏比和权重数2个操作空间. 连续稀疏比可以直观地反映网络结构的稀疏程度,稀疏度越低,冗余参数越多. 由权重数可以直观了解须修剪的参数数量,但每层网络结构的权重数不同,若直接输出需剪枝的权重数,会导致搜索空间不固定,加大计算量. 已有部分实验使用权重数作为动作空间[27],权重数可用于复杂的网络结构,用于普通的网络架构可能会出现损失爆炸问题. 模型压缩对稀疏比很敏感,为了避免损失爆炸问题,采用连续的动作空间a∈(0,1.0],以实现更加精确的模型压缩.

2.1.3. 基于DDPG的网络架构搜索

图1可知:1)智能体获得x层的状态sx,网络actor根据状态sx生成动作ax,即层x的剪枝率;2)根据剪枝率进行权重剪枝,层x剪枝结束后移动到层x+1,环境评价自身性能并反馈奖励给智能体,智能体根据奖励值进行更新;3)重复以上步骤直至所有层剪枝完毕.

DDPG是单步更新的,在训练时需要用经验池来存储历史经验. 但在模型刚开始搜索时处于历史经验累积阶段,该阶段只有网络actor和环境的交互. 为了增加前期智能体的搜索能力,将动作变为随机过程,给网络actor增加截断高斯噪声

$ {a_x} \sim {\rm{TN}}\left( {\mu \left( {{s_x}|\theta _x^\mu } \right),{\sigma ^2},0,1} \right). $

式中:µ(sx, θx µ)为目标网络对sx下的动作预测;σ2为方差,设置初始值为0.25,前期智能体的搜索能力会增加,后期σ会随着训练不断减小,使智能体收敛;0和1代表动作(剪枝率)范围. DDPG从回放池随机采用历史经验作为训练样本,对网络actor、critic进行更新. 对于资源受限的压缩,奖励设为

$ {r} = - {e} \times {\lg }{{W}_{x}}. $

式中:e为剪枝后产生的误差,e与lgWx成反比. 式(8)可以在保证网络准确率的前提下,激励DDPG搜索到网络最佳剪枝率. DDPG算法自动压缩流程如算法1所示.

算法1  基于DDPG的卷积层权重剪枝算法

α:全局目标稀疏率  actionxx层的权重剪枝率   Wred :已经被剪掉的权重  参数量   Wall:整个网络的权重参数量   Wresx层后剩下的权重参数量   Wprux层应剪去的权重参数量   Wxx层的权重参数量

1) 通过预设不同的稀疏率对模型进行剪枝,训练剪枝后的模型,选择与基线准确率相比,误差<2%的最大稀疏率α作为全局目标稀疏率  2) 初始化要剪枝的模型大小、智能体获取x层状态sx     If x=0 then     $ {W_{{{\rm{red}}} }} \leftarrow 0 $     end if  3) 生成剪枝率     $ {{{\rm{action}}} _x} \leftarrow {a_x} $      $ {{{\rm{action}}} _x} \leftarrow \min\; ({{{\rm{action}}} _x},0.8) $   4) 计算网络全部权重参数和剩下的权重参数     ${W_{{\rm{all}}}} \leftarrow \sum\limits_{i = 1}^n {{W_i}}$      ${W_{{\rm{res}}}} \leftarrow \sum\limits_{i = l+1}^n {{W_i}}$   5) 计算x层应剪去的权重参数量     ${W_{{\rm{pru}}}} \leftarrow \alpha {W_{{\rm{all}}}} - 0.8 \times {W_{{\rm{res}}}} - {W_{{\rm{red}}}}$   6) 确定本层最终剪枝率    If ${{{\rm{action}}} _x} < {{{W_{{{\rm{pru}}} }}}}/{{{W_x}}}$ then     ${{{\rm{action}}} _x} \leftarrow {{{W_{{{\rm{pru}}} }}}}/{{{W_x}}}$     else actionx   7) 更新被剪枝的总参数量     ${W_{{\rm{red}}}} \leftarrow {W_{{\rm{red}}}}+{{{\rm{action}}} _x} \times {W_x}$     return actionx   8) 微调网络以恢复网络性能

2.2. 全连接层权重剪枝

在网络训练过程中,每层的权重不同,因此对网络剪枝时,每层设置不同的阈值有利于减少准确性损失、避免层垮塌. 全连接层参数众多,随着训练次数增加,模型的参数分布近似正态分布[28],符合3σ准则. 3σ准则[29]分布如图3所示. 图中,w为权重值,f为概率密度,µ为均值,σ为标准差. 3σ准则准确的数值分布为

图 3

图 3   3σ准则的分布图

Fig.3   Distribution diagram of 3σ criterion


$ P\left( {\mu - \sigma < w < \mu +\sigma } \right) = 0.682{\text{ }}6, $

$ P\left( {\mu - 2\sigma < w < \mu +2\sigma } \right) = 0.954{\text{ }}9, $

$ P\left( {\mu - 3\sigma < w < \mu +3\sigma } \right) = 0.997{\text{ }}3, $

在正态分布中,

$ \mu = \frac{1}{N}\sum\limits_{i = 1}^N {{w_i}} , $

$ \sigma = \sqrt{{\frac{1}{N}\sum\limits_{i = 1}^N {{{\left( {{w_i} - \mu } \right)}^2}} }}. $

图3可知,对于任意近似正态分布的权重参数集合,权重大部分分布在(µ−3σ,µ+3σ),只有0.27%的权重参数超出该范围. 深度神经网络存在大量的冗余权重,在已有的权重剪枝方法中,权重阈值一般由权重标准差决定. 本研究根据3σ准则,通过均值和方差确定阈值. 均值反映权重参数的整体趋势,标准差反映每个权重值相对于样本中心的离散程度[28]. 通过均值和标准差相结合的统计准则,可以选出大量性能较差的权重值并移除,以压缩网络.

全连接层的权重剪枝主要包括3个步骤: 1)训练神经网络,评估网络权重重要性;2)根据3σ准则,确定阈值,将小于阈值的权重值加掩膜,使其为0;3)对剪枝后的网络进行再训练并分析实验结果.

3. 实验与分析

实验使用数据集CIFAR10、CIFAR100和ILSVRC-2012 ImageNet,数据集CIFAR10有60 000张3通道的彩色图像,共10类,每类有6 000张图像. 数据集CIFAR100有60 000张彩色图像,共100类,每类有600张图像,其中500张用于训练,100张用于测试. 数据集ILSVRC-2012 ImageNet规模庞大,共1 000类,其中1 200 000张图像用于训练,50 000张图像用于验证,150 000张用于测试. 网络结构使用VGG16、ResNet56和ResNet50,分别与原始网络、卷积层权重剪枝后网络、全连接层权重剪枝后网络和已有的先进剪枝方法实验结果进行对比,验证组合剪枝的适用性和有效性.

VGG16、ResNet56的剪枝实验在Windows10系统中采用NVIDIA Geforce GTX 1060 6 GB显卡,ResNet50的剪枝实验在Windows10系统中采用NVIDIA Geforce GTX 3090 24 GB显卡. 所有实验均在Pytorch深度学习框架上实现. 在预训练时,VGG16和ResNet56参数设置如下:迭代次数设为200,批尺寸设为128,初始学习率设为0.1,在迭代到60、120、180步时,学习率分别衰减为0.01、0.001和0.000 1. 优化器选用随机梯度下降法,动量值设为0.9,权重衰减值设为5×10−4,损失函数选择交叉熵函数. 数据集ILSVRC-2012 ImageNet在ResNet50上的实验采用官方提供的预训练模型. 在强化学习自动搜索卷积层剪枝率时,网络模型参数设置如下:迭代次数为500,批量大小为64,层最大剪枝率为0.8,最小剪枝率为0. 在微调模型时,将网络学习率初始化为0.01,其余参数不变.

3.1. VGG16实验结果

VGG16有13层卷积层,3层全连接层,在数据集CIFAR10上进行网络训练时,网络基线准确率为93.7%. 在用强化学习对卷积层进行权重剪枝的实验中,不同稀疏率对网络准确性性能影响如图4所示. 图中,α为网络的全局稀疏率,p为不同稀疏率下的准确率. 由图可知,当α=90%时,p=92.88%,与基线准确率相比,误差为0.82%,满足预设的准确率<2%条件,因此当VGG16的全局稀疏率选为90%时,可以最大化降低存储代价并保证一定的准确率. 当VGG16的稀疏率大于90%时,准确率会急剧下降. VGG16有3层全连接层,共72 MB参数,占全局的60.4%,占比较大. 当ResNet56、ResNet50的稀疏率大于80%时,准确率会急剧下降. ResNet56、ResNet50均只有1层全连接层,占全局比重较小. 综合考虑,当采用强化学习对卷积层进行权重剪枝时,为了实现良好的特征提取功能,将层最大剪枝率设为0.8,最小剪枝率设为0. 在剪枝时,只剪枝权重,对权重偏置不作处理. 模型搜索结束后,获得反馈的最大奖励值为0.863 4,该奖励值下网络剪枝微调后的准确率为92.95%. 与基线准确率相比,损失较小,为0.75%. 在奖励值为0.863 4时,对应的每层卷积层搜索到的剪枝率如表1所示. 表中,pt为每层卷积层的参数总量,ac为每层卷积层的剪枝率. 可以看出,模型在conv3-3、conv4-1、conv4-2、conv4-3、conv5-1、conv5-2、conv5-3的剪枝率最高,可以达到设置的最大剪枝率80%,说明这些层的冗余参数较多. 通过强化学习学习剪枝率的方法进行权重剪枝,可以在不显著降低准确率的情况下,高效地找到每层的最佳剪枝方案. 该方法将VGG16卷积层参数压缩了76.4%.

图 4

图 4   基于3种网络的稀疏率

Fig.4   Sparsity based on three networks


表 1   VGG16的各卷积层剪枝结果

Tab.1  Every convolutional layer pruning result of VGG16

卷积层 pt/kB ac/%
conv1-1 6.752 2.0
conv1-2 144 3.0
conv2-1 288 10.0
conv2-2 576 15.0
conv3-1 1 152 38.0
conv3-2 2 304 56.0
conv3-3 2 304 80.0
conv4-1 4 608 80.0
conv4-2 9 216 80.0
conv4-3 9 216 80.0
conv5-1 9 216 80.0
conv5-2 9 216 80.0
conv5-3 9 216 80.0
总计 57 479.25 76.4

新窗口打开| 下载CSV


一般情况下,全连接层参数最多. 分别选取VGG16的512个神经元和4 096个神经元进行实验. 实验发现,神经元个数越多,准确率越高,但存在参数冗余问题. 为了进一步提高训练的准确率,全连接层通常取经验值4 096个神经元,本研究参考该经验值进行实验. VGG16有3个全连接层,72 MB参数,设置不同阈值,训练数据集CIFAR10时,各层的剪枝阈值、剪枝后权重变化、总剪枝率和准确率如表2所示. 表中,μ为权重均值,σ为权重标准差,t为各层阈值,pa为全连接层剪枝后的剩余权重,af为全连接层剪枝在整个网络中的剪枝率,pp为网络剪枝微调后的准确率,∆p为准确率变化量. 由表可知,当VGG16网络的阈值设为μ+3σ时,全连接层的剪枝率最高,3层全连接层的参数从72 MB减少到1 MB,压缩率达到98.6%. 整个网络的压缩率达到55.34%且准确率下降1.43%. 与其他阈值下的实验结果相比,选择μ+3σ作为阈值有一定的可行性.

表 2   VGG16全连接层不同阈值下的实验结果

Tab.2  Experimental results of different thresholds on VGG16 fully connected layer

阈值 全连接层 t pa/MB af/% pp/% ∆p/%
μ Fc1 0.001 9 15.32 44.28 91.88 −1.82
Fc2 0.000 2
Fc3 0.007 0
σ Fc1 0.002 5 7.04 50.75 91.97 −1.73
Fc2 0.000 9
Fc3 0.018 7
μ+σ Fc1 0.004 4 4.48 52.74 92.42 −1.28
Fc2 0.001 2
Fc3 0.024 8
μ+2σ Fc1 0.007 3 2.12 54.57 92.31 −1.39
Fc2 0.002 2
Fc3 0.043 9
μ+3σ Fc1 0.009 6 1.00 55.34 92.27 −1.43
Fc2 0.003 2
Fc3 0.063 1

新窗口打开| 下载CSV


使用VGG16在数据集CIFAR10上评估组合权重剪枝性能. 组合剪枝实验结果如表3所示. 表中,ao为整个网络的剪枝率. 可以看出,VGG16网络在组合剪枝方法下,压缩率达到83.33%,准确率下降1.55%,性能较好. 相比仅使用卷积层剪枝和全连接层剪枝,压缩率分别增加55.33%和27.99%. 根据以上实验结果可知,组合权重剪枝方法可以显著减少参数量,进一步压缩模型.

表 3   VGG16网络剪枝前后的性能对比

Tab.3  Performance comparison of VGG16 network pruning before and after

方法 pt/MB ao/% pp/%
基线 128.0 0 93.70
卷积层剪枝 92.0 28.00 92.95
全连接层剪枝 57.2 55.34 92.27
组合剪枝 21.0 83.33 92.15

新窗口打开| 下载CSV


分别使用强化学习权重剪枝和3σ准则确定阈值权重剪枝方法对整个VGG16网络进行实验,并将组合剪枝方法与GAL-0.05[30]、L1正则化[31]、Entropy-based[32]方法进行性能对比. 各方法在CIFAR10数据集的实验结果如表4所示. 从表可知,当仅使用强化学习自动化搜索压缩率对VGG16网络进行剪枝时,虽然误差最小,但剪枝率为28.08%. 原因是强化学习搜索剪枝法只对卷积层进行剪枝,全连接层由于层数较少,不能提供足够的环境供强化学习搜索,因此仍留有大量冗余参数. 用3σ准则确定阈值对整个网络进行剪枝的剪枝率最高,但是相比本研究所提方法,误差较大. 与其他方法进行比较,发现当GAL-0.05压缩77.46%的权重参数时,会导致6.86%的损失,使用本研究所提方法可以将参数压缩83.33%,且仅有1.55%的误差. 比GAL-0.05多压缩5.87%,误差大大降低. Entropy-based下的实验误差虽然比GAL-0.05和LI正则化的实验误差小,但是其性能不及组合剪枝方法. 组合剪枝方法可以比Entropy-based方法剪去更多的冗余参数,具有更小的误差. 实验结果表明,本研究所提的组合剪枝方法性能较好.

表 4   组合剪枝方法与其他方法在VGG16上的比较

Tab.4  Comparison of combination pruning method with other methods on VGG16

方法 ao/% ∆p/%
强化学习权重剪枝 28.08 −0.75
3σ权重剪枝 99.05 −6.11
GAL-0.05[30] 77.46 −6.86
LI正则化[31] 64.08 −7.13
Entropy-based[32] 43.00 −2.06
组合剪枝 83.33 −1.55

新窗口打开| 下载CSV


3.2. ResNet56实验结果

ResNet56是56层的残差网络,由残差块和残差连接组成. 在数据集CIFAR100上进行训练和剪枝,基线准确率为71.5%. 如图4所示,ResNet56随着稀疏率的增大,准确率下降比VGG16严重. 原因是ResNet56残差网络有很多支线将输入与后面的层相连,部分层与层的联系紧密,提取的大部分为重要特征,冗余度较小. 当α=80%时,能够保证一定的压缩率,且准确率损失相对较少,为1.98%. 在稀疏率为80%,用DDPG搜索卷积层最佳权重剪枝率时,最大奖励下获得的剪枝结果如表5所示. 表中,ab为网络各块的剪枝率. 由表可知,DDPG自动化框架将ResNet56网络结构剪去了70.1%的参数,准确率为69.52%.

表 5   ResNet56块的剪枝结果

Tab.5  Pruning results of ResNet56 blocks

块名称 pt/kB ab/%
卷积层 1.687 6 80.00
残差块1 234 52.30
残差块2 936 67.54
残差块3 2 304 72.94
ResNet56 3475.68 70.10

新窗口打开| 下载CSV


对ResNet56全连接层确定不同阈值,进行权重剪枝并评估数据集CIFAR100在剪枝后ResNet56上的性能. 通过确定不同阈值,对网络剪枝、微调,再训练和预训练一样的epoch,详细的实验结果如表6所示. 由表可知,无论阈值取何值,ResNet56剪枝后的准确率均急剧下降. 当阈值为μ+3σ时,压缩率最大,但损失为35.61%. 原因是ResNet56为残差网络,由1层输入、3个残差模块和1个分类的全连接层组成,全连接层有6 400个神经元,数目相对较少. 当使用3σ准则作为阈值进行剪枝时,会剪去大部分参数,导致准确率偏低. 因此对ResNet56,本研究仅采用DDPG自动化搜索卷积层权重并剪枝的方法. 该方法与Weight sum[31]和APoZ[33]方法的性能对比如图5所示. 由图可知,在这些方法中, DDPG权重剪枝方法性能最优,在稀疏率为80%时,仍能保持一定的准确率. 但在Weight sum方法和APoZ方法的稀疏率为80%时,准确率分别为51.96%和58.89%. 相比DDPG权重剪枝方法,性能分别下降了17.46%和10.53%. 原因是Weight sum方法根据计算滤波器权重绝对值之和进行剪枝,当稀疏率为80%时,剪去大量参数后准确率下降. APoZ方法根据输出通道通过激活函数后的非零比值进行剪枝,在稀疏率小于50%时,准确率与DDPG权重剪枝方法相差较小,表示已正确移除零值通道. 但当稀疏率超过50%时,准确率下降是由于剪枝后的通道包含丰富且不同的特征信息,在此基础上进一步剪枝,非零比值小的通道将会被剪去,导致准确率下降. DDPG根据提供的全局稀疏率,自动化学习搜索每层的最佳剪枝率,在反馈奖励最大时,进行剪枝.

表 6   ResNet56全连接层不同阈值下的实验结果

Tab.6  Experimental results of different thresholds on ResNet56 fully connected layer

阈值 t af/% ao/% pp/% ∆p/%
μ 0.197 1 56.86 1.30 68.28 −3.22
σ 0.148 9 45.70 1.05 68.66 −2.84
μ+σ 0.345 6 83.66 1.92 66.65 −4.85
μ+2σ 0.499 0 95.56 2.20 65.33 −5.76
μ+3σ 0.646 1 99.07 2.28 35.48 −35.61

新窗口打开| 下载CSV


图 5

图 5   不同方法在ResNet56上的性能比较

Fig.5   Performance comparison of different methods on ResNet56


3.3. ResNet50实验结果

ResNet50共50层,其中卷积层为49层,全连接层为1层. 该网络由2个基本块Conv Block和Identity Block组成,Conv Block用来改变网络的维度,不能连续串联;Identity Block输入输出维度一样,能串联用来加深网络. 在数据集ILSVRC-2012 ImageNet上对ResNet50进行剪枝实验. 根据图4,设置强化学习搜索权重剪枝的目标全局稀疏率为80%. 数据集ILSVRC-2012 ImageNet在ResNet50上进行评估的Top1准确率为76.02%,Top5准确率为92.94%. 组合剪枝微调后的Top1准确率为74.16%, Top5准确率为91.96%,各块具体剪枝后的结果如表7所示. 表中,∆pT1为Top1准确率变化量. 由表可知,在卷积层强化学习权重剪枝后,对全连接层进行3σ权重剪枝可进一步压缩网络. 为了验证本研究所提组合剪枝方法的有效性,与GAL[30]、ABCPruner[27]、HRank[34]剪枝算法进行对比,结果如表8所示. 由表可知,在压缩80.9%参数的情况下,组合剪枝方法仅导致1.86%的精度损失,明显优于其他剪枝算法.

表 7   ResNet50块的剪枝结果

Tab.7  Pruning results of ResNet50 blocks

剪枝方法 块名称 pt/kB ab/% ∆pT1/%
强化学习权重 卷积层 36.76 80 −0.65
残差块1 832 74.3
残差块2 4 736 75.6
残差块3 26 624 79.2
残差块4 40 960 80
3σ权重 全连接层 8 000 94.6 −1.78
组合 ResNet50 81 188.8 80.9 −1.86

新窗口打开| 下载CSV


表 8   组合剪枝方法与其他方法在ResNet50上的比较

Tab.8  Comparison of combination pruning method with other methods on ResNet50

方法 ao/% ∆pT1/%
GAL 42.47 −5.65
ABCPruner 55.42 −2.56
HRank 67.57 −4.32
组合剪枝 80.9 −1.86

新窗口打开| 下载CSV


4. 结 语

针对深度神经网络部署在嵌入式设备上存在的参数冗余问题,提出将基于强化学习的卷积层权重剪枝和基于3σ准则确定阈值的全连接层权重剪枝相结合的方法. 实验结果表明,对于全连接层具有大量冗余参数的网络(如VGG16、ResNet50),所提组合剪枝方法能够实现有效压缩;对于不具有复杂全连接层的网络(如ResNet56),提出的选择最佳全局稀疏率,用DDPG方法自动化搜索网络剪枝率进行权重剪枝也能实现有效压缩. 由于本研究只验证了所提方法在网络VGG16、ResNet56和ResNet50上的有效性,后续将考虑在更多的网络上验证并将剪枝后的网络部署至嵌入式实现应用.

参考文献

CHOLLET F. Xception: deep learning with depthwise separable convolutions [C]// Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. Honolulu: IEEE, 2017: 1251-1258.

HOWARD A G, ZHU M, CHEN B, et al. MobileNets: efficient convolutional neural networks for mobile vision applications [EB/OL]. (2017-04-17) [2022-12-10]. https: arxiv.org/pdf/1704.04861. pdf.

[本文引用: 1]

HE Y H, LIN J, LIU Z J, et al. AMC: AutoML for model compression and acceleration on mobile devices [C]// Proceedings of the European Conference on Computer Vision. [S. l.]: Springer, 2018: 815-832.

[本文引用: 1]

ASHOK A, RHINEHART N, BEAINY F, et al. N2N learning: network to network compression via policy gradient reinforcement learning [EB/OL]. (2017-12-17)[2022-12-10]. https://arxiv.org/pdf/1709.06030v1.pdf.

[本文引用: 1]

LIU Z C, MU H Y, ZHANG X Y, et al. MetaPruning: meta learning for automatic neural network channel pruning [C]// Proceedings of the IEEE/CVF International Conference on Computer Vision. Seoul: IEEE, 2019: 3296-3305.

[本文引用: 1]

LILLICRAP T P, HUNT J J, PRITZEL A, et al. Continuous control with deep reinforcement learning [EB/OL]. (2019-07-15)[2022-12-12]. https://arxiv.org/pdf/1509.02971.pdf.

[本文引用: 1]

LIN M B, JI R R, ZHANG Y X. Channel pruning via automatic structure search [EB/OL]. (2020-06-29)[2022-12-16]. https://arxiv.org/pdf/2001.08565.pdf.

[本文引用: 2]

HUANG Z Z, SHAO W Q, WANG X J. Rethinking the pruning criteria for convolutional neural network [C]// Conference and Workshop on Neural Information Processing Systems. Montreal: MIT Press, 2021, 34: 16305-16318.

[本文引用: 2]

盛骤, 谢式千, 潘承毅. 概率论与数理统计[M]. 北京高等教育出版社, 2008: 112-114.

[本文引用: 1]

LIN S H, JI R R, YAN C Q, et al. Towards optimal structured CNN pruning via generative adversarial learning [C]// Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. Long Beach: IEEE, 2019: 2790-2799.

[本文引用: 3]

LI H, KADAV A, DURDANOVIC I, et al. Pruning filters for efficient convnets [EB/OL]. (2017-03-10)[2022-12-20]. https://arxiv.org/pdf/1608.08710.pdf.

[本文引用: 3]

LUO J H, WU J X. An entropy-based pruning method for CNN compression [EB/OL]. (2017-06-19)[2022-12-20]. https: arxiv.org/pdf/1706.05791.pdf.

[本文引用: 2]

KRIZHEVSKY A, SUTSKEVER I, HINTON G E. ImageNet classification with deep convolutional neural networks [C]// Proceedings of the 25th International Conference on Neural Information Processing Systems. Lake Tahoe: Curran Associates Inc, 2012: 1097-1105.

[本文引用: 1]

ZHANG L B, HUANG S L, LIU W. Intra-class part swapping for fine-grained image classification [C]// Proceedings of the IEEE/CVF Winter Conference on Applications of Computer Vision. Waikoloa: IEEE, 2021: 3209-3218.

[本文引用: 1]

HU H Y, PENG R, TAI Y W, et al. Network trimming: a data-driven neuron pruning approach towards efficient deep architectures [EB/OL]. (2016-07-12)[2022-12-20]. https://arxiv.org/pdf/1607.03250.pdf.

[本文引用: 1]

LIN M B, JI R R, WANG Y. HRank: filter pruning using high-rank feature map [C]// Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. Seattle: IEEE, 2020: 1529-1538.

[本文引用: 1]

REN S K, HE K M, GIRSHICK R, et al. Object detection networks on convolutional feature maps [J]. IEEE Transactions on Pattern Analysis and Machine Intelligence. 2017, 39(7): 1476-1481.

[本文引用: 1]

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. Las Vegas: IEEE, 2016: 779-788.

BLAIVAS M, ARNTFIELD R, WHITE M

Creation and testing of a deep learning algorithm to automatically identify and label vessels, nerves, tendons, and bones on cross-sectional point-of-care ultrasound scans for peripheral intravenous catheter placement by novices

[J]. Journal of Ultrasound in Medicine, 2020, 39 (9): 1721- 1727

DOI:10.1002/jum.15270      [本文引用: 1]

LONG J, SHELHAMER E, DARRELL T. Fully convolutional networks for semantic segmentation [C]// Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. Boston: IEEE, 2015: 3431-3440.

[本文引用: 1]

TANZI L, PIAZZOLLA P, PORPIGLIA F, et al

Real-time deep learning semantic segmentation during intra-operative surgery for 3D augmented reality assistance

[J]. International Journal of Computer Assisted Radiology and Surgery, 2021, 16: 1435- 1445

DOI:10.1007/s11548-021-02432-y     

张哲晗, 方薇, 杜丽丽, 等

基于编码-解码卷积神经网络的遥感图像语义分割

[J]. 光学学报, 2020, 40 (3): 46- 55

[本文引用: 1]

ZHANG Zhe-han, FANG Wei, DU Li-li, et al

Semantic segmentation of remote sensing image based on coding-decoding convolutional neural network

[J]. Acta Optica Sinica, 2020, 40 (3): 46- 55

[本文引用: 1]

吕永发. 基于深度学习的手机表面缺陷检测算法[D]. 郑州: 郑州大学, 2020.

[本文引用: 1]

LV Yong-fa. Mobile phone surface detect detection algorithm based on deep learning [D]. Zhengzhou: Zhengzhou University, 2020.

[本文引用: 1]

JIANG Y, WANG W, ZHAO C. A machine vision-based realtime anomaly detection method for industrial products using deep learning [C]// 2019 Chinese Automation Congress. Hangzhou: IEEE, 2019: 4842-4847.

[本文引用: 1]

GONG R H, LIU X L, JIANG S H, et al. Differentiable soft quantization: bridging full-precision and low-bit neural networks [C]// Proceedings of the IEEE/CVF International Conference on Computer Vision. Seoul: IEEE, 2019: 4852-4861.

[本文引用: 1]

COURBARIAUX M, HUBARA I, SOUDRY D, et al. Binarized neural networks: training neural networks with weights and activations constrained to +1 or −1 [EB/OL]. (2016-03-17)[2022-12-10]. https:arxiv.org/pdf/1602.02830.pdf.

[本文引用: 1]

LI F F, LIU B, WANG X X. Ternary weight networks [EB/OL]. (2022-11-20)[2022-12-10]. https://arxiv.org/pdf/1605.04711.pdf.

[本文引用: 1]

KALMAN D

A singularly valuable decomposition: the SVD of a matrix

[J]. The College Mathematics Journal, 1996, 27 (1): 2- 23

DOI:10.1080/07468342.1996.11973744      [本文引用: 1]

KIM Y D, PARK E, YOO S, et al. Compression of deep convolutional neural networks for fast and low power mobile applications [EB/OL]. (2016-12-24) [2022-12-10]. https://arxiv.org/pdf/1511.06530.pdf.

[本文引用: 1]

LATHAUWER L D

Decompositions of a higher-order tensor in block terms

[J]. SIAM Journal on Matrix Analysis and Applications, 2008, 30 (3): 1022- 1032

DOI:10.1137/060661685      [本文引用: 1]

ZAGORUYKO S, KOMODAKIS N. Paying more attention to attention: improving the performance of convolutional neural networks via attention transfer [EB/OL]. (2017-12-12)[2022-12-10]. https://arxiv.org/pdf/1612.03928.pdf.

[本文引用: 1]

ZHANG L F, SONG J B, GAO A, et al. Be your own teacher: improve the performance of convolutional neural networks via self distillation [C]// Proceedings of the IEEE/CVF International Conference on Computer Vision. Seoul: IEEE, 2019: 3713-3722.

[本文引用: 1]

IANDOLA F N, HAN S, MOSKEWICZ M W, et al. SqueezeNet: AlexNet-level accuracy with 50x fewer parameters and<0.5MB model size [EB/OL]. (2016-11-04)[2022-12-10]. https:arxiv.org/pdf/1602.07360.pdf.

[本文引用: 1]

ZHANG X Y, ZHOU X Y, LIN M X, et al. ShuffleNet: an extremely efficient convolutional neural network for mobile devices [C]// Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition. Salt Lake City: IEEE, 2018: 6848-6856.

/