[发明专利]一种基于激活-熵权重剪枝的CNN模型压缩方法在审
申请号: | 201910355830.9 | 申请日: | 2019-04-29 |
公开(公告)号: | CN110097187A | 公开(公告)日: | 2019-08-06 |
发明(设计)人: | 毛莺池;王庆永;王绎超;戚荣志;黄倩;平萍 | 申请(专利权)人: | 河海大学 |
主分类号: | G06N3/08 | 分类号: | G06N3/08;G06N3/04;G06N3/06 |
代理公司: | 南京苏高专利商标事务所(普通合伙) 32204 | 代理人: | 梁耀文 |
地址: | 211100 *** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 剪枝 激活 权重 迭代 模型压缩 评判 面向层 微调 神经元 筛选 神经元激活 剪枝阶段 模型参数 模型计算 信息熵 裁剪 保证 压缩 衡量 | ||
1.一种基于激活-熵权重剪枝的CNN模型压缩方法,其特征在于,包括如下步骤:
(1)在基于激活-熵权值的重要性评判阶段:采用基于激活-熵的权重评判方法,将神经元激活值和信息熵结合计算权值重要性得分,以评价权值重要性;
(2)在面向层的迭代剪枝阶段:采用逐层剪枝,根据权值重要性的得分,遵循筛选-裁剪-微调步骤对每层神经元进行迭代剪枝,在保证模型精确度下有效压缩CNN模型。
2.根据权利要求1所述的一种基于激活-熵权重剪枝的CNN模型压缩方法,其特征在于,所述步骤(1)中在基于激活-熵权值的重要性评判阶段的具体步骤如下次:
采用基于激活-熵的权值重要性评判方法,根据数据集计算神经元的激活值期望与信息熵,计算基于激活-熵的重要性得分;
设i为上一层神经元的编号,j为当前层神经元的编号;Wj代表神经元j与上一层神经元连接的权重矩阵集合,WjT代表权重矩阵Wj的转置,上一层共有n个神经元,且上一层神经元的输出集合为X。wi为神经元i和j之间连接的权重值;E代表期望,设激活函数为f(x),如果激活函数为ReLU,根据神经网络前向传播公式,如果f(WjTX)>0,选取一部分数据集来计算神经元j激活值的期望,得到:
将wixi的值划分为D个区间,设pi,z为wixi的值分布在区间z中的概率,其中z=1,...,D,计算得到wixi的信息熵Hi为:
最后得到权值wi基于激活-熵的重要性得分为:
scorei=abs(E(wixi)*Hi。
3.根据权利要求1所述的一种基于激活-熵权重剪枝的CNN模型压缩方法,其特征在于,所述步骤(2)中在面向层的迭代剪枝阶段的具体步骤如下:
(2.1)单层剪枝:设初始CNN模型,并对其中每层设定单独的剪枝率,筛选重要性得分低的权值,对每层的剪枝采用迭代的方式进行,每一轮遵循了筛选-裁剪-微调的步骤;
(2.2)逐层剪枝:对n层待剪枝的全连接层进行单层剪枝操作;并得到压缩后的CNN模型。
4.根据权利要求3所述的一种基于激活-熵权重剪枝的CNN模型压缩方法,其特征在于,所述步骤(2.1)中单层剪枝的具体步骤如下:
设初始CNN模型E,需要剪枝的全连接层分别为1,2,...,n,各层设置剪枝率为pruning1,pruning2,...,pruningn,各层迭代次数为I1,I2,…,In,各层权重矩阵为W1,W2,…,Wn;设模型第m层共包含Nm个权重,且该层的剪枝率为pruningm,可以指定最大迭代次数为Im,则每轮需要剪掉的权重数量为:
从训练集中选取部分样本,迭代In次进行计算权值重要性得分;迭代完成后根据重要性得分对权值进行排序,并根据确定的剪枝数量Δsm,将被裁减的权值置为0;剪枝完成后进行微调模型,保护模型精度;
若原模型中共有N个权重,在剪枝过程中一共裁剪掉的权重百分占比为P,则剪枝后模型的压缩率为:
剪枝后的神经元之间的连接变的稀疏,使用稀疏矩阵存储模型的权重。
5.根据权利要求3所述的一种基于激活-熵权重剪枝的CNN模型压缩方法,其特征在于,所述步骤(2.1)中单层剪枝的具详细步骤如下:
(2.1.1)确定参数,设训练好初始CNN模型E,需要剪枝的全连接层分别为1,2,…,n,各层设置剪枝率为pruning1,pruning2,…,pruningn,各层迭代次数为I1,I2,…,In,各层权重矩阵为W1,W2,…,Wn;
(2.1.2)激活:设i为上一层神经元的编号,j为当前层神经元的编号;Wj代表神经元j与上一层神经元连接的权重矩阵集合,WjT代表权重矩阵Wj的转置,上一层共有n个神经元,且上一层神经元的输出集合为X。wi为神经元i和j之间连接的权重值;设激活函数为f(x),如果激活函数为ReLU,根据神经网络前向传播公式,如果f(WjTX)>0,得到神经元j的激活值为:
选取一部分数据集来计算神经元j激活值的期望,得到:
(2.1.3)信息熵:为了计算wixi的信息熵,将wixi的值划分为D个区间,设pi,z为wixi的值分布在区间z中的概率,其中z=1,...,D,计算得到wixi的信息熵Hi为:
(2.1.4)激活-熵:按照步骤(2.1.2)和(2.1.3)中的计算,将激活值与熵结合起来,最后得到权值wi基于激活-熵的重要性得分为:
scorei=abs(E(wixi)*Hi
重要性得分scorei可以用来衡量权值的重要性,得分越高,则权值在模型中的重要性也越高,在剪枝时应该优先裁剪掉重要性得分较低的权值;
设模型第m层共包含Nm个权重,且该层的剪枝率为pruningm,指定最大迭代次数为Im,则每轮需要剪掉的权重数量为:
从训练集中选取部分样本,计算每个权值的重要性得分;迭代Nm次进行计算权值;迭代完成后根据重要性得分对权值进行排序,并根据确定的剪枝数量Δsm,将被裁减的权值置为0;
(2.1.5)微调模型:在每轮迭代完成后还需要通过微调模型来补偿精度损失,在微调过程中设置学习率α,在整个训练集上重新训练,在微调过程中被裁剪的权重梯度值不会被更新,微调有效的补偿了剪枝带来的精度损失;
(2.1.6)稀疏权重存储:
若原模型中共有N个权重,在剪枝过程中一共裁剪掉的权重百分占比为P,则剪枝后模型的压缩率为:
由于剪枝后神经元之间的连接变的稀疏,通常使用稀疏矩阵来存储模型的权重采用CSR格式存储权重矩阵。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于河海大学,未经河海大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910355830.9/1.html,转载请声明来源钻瓜专利网。