[发明专利]一种基于稀疏化后向传播训练的神经网络模型压缩方法在审
申请号: | 201711012694.0 | 申请日: | 2017-10-26 |
公开(公告)号: | CN107832847A | 公开(公告)日: | 2018-03-23 |
发明(设计)人: | 孙栩;任宣丞;马树铭;位冰镇 | 申请(专利权)人: | 北京大学 |
主分类号: | G06N3/08 | 分类号: | G06N3/08 |
代理公司: | 北京万象新悦知识产权代理事务所(普通合伙)11360 | 代理人: | 黄凤茹 |
地址: | 100871*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公布了一种神经网络模型的稀疏化后向传播压缩方法,属于信息技术领域,涉及机器学习和深度学习技术。在后向传播过程中,神经网络模型的每层利用上一层的输出梯度作为输入计算梯度,进行k大值稀疏化处理,得到稀疏化处理后的向量和稀疏回传的次数,记录k个值对应的索引;利用稀疏化梯度对神经网络的参数进行更新;根据k大值下标索引,删除回传次数少的神经元,对模型进行压缩。本发明在后向传播过程中采用基于k大值的稀疏化方法,通过消除不活跃的神经元,压缩模型大小,提高深度神经网络的训练和推理速度,并保持良好的精度。 | ||
搜索关键词: | 一种 基于 稀疏 传播 训练 神经网络 模型 压缩 方法 | ||
【主权项】:
一种神经网络模型的稀疏化后向传播压缩方法,通过在后向传播过程中采用基于k大值的稀疏化方法,消除不活跃的神经元,压缩模型大小,从而提高深度神经网络的训练和推理速度;包括如下步骤:1)在前向传播的过程中,神经网络模型的每一层接受上层的输入x,通过线性变换输出y、通过非线性变换输出z,作为下一层的输入;最后一层的输出为网络输出结果;2)在后向传播过程中,执行如下步骤:21)神经网络模型的每一层利用上一层的输出梯度(1≤i≤n,n为向量维度)作为输入计算梯度,对输出梯度进行k大值稀疏化处理,得到稀疏化处理后的向量;并记录每一维度稀疏回传的次数,记为神经元的活跃程度,用于在后续压缩过程中确定神经元的作用;即保留前向传播输出梯度的绝对值最大的k个值(k小于向量z的维度大小),剩余的值全部为0,并将这k个值对应的索引记录下来;具体通过式1对输出梯度的绝对值做稀疏化处理:其中,σ′i是稀疏化处理后得到的向量;topk代表一个k大值稀疏化操作,即保留输入向量的所有维度的绝对值中前k大的值,k的大小小于向量z的维度n,剩余的值设为0;22)利用稀疏化处理后得到的向量σ′i进行梯度计算,得到参数梯度;利用式2计算参数矩阵W的梯度:其中,表示参数矩阵W的梯度中行标为i、列标为j的值;表示输入向量中下标为j的值,σ′i表示输出向量z经过k大值稀疏化后的梯度中下标为i的值;{t1,t2,…,tk}(1≤k≤n)代表的所有维度的绝对值中前k大的值的下标;xT表示对向量进行转置,由列向量变为行向量;利用式3计算输入向量x的梯度:其中,表示输入向量x的梯度中下标为i的值;表示参数矩阵中行标为i、列标为j的值;σj′表示输出向量z经过k大值稀疏化后的梯度中下标为j的值;Σj表示以下标j求和;WT表示对矩阵进行转置;23)通过式4对前k大值下标索引进行累计,用于后续的压缩过程:Si+=1 if i∈{t1,t2,…,tk}else 0 (式4)其中,Si表示Si向量S中下标为i的值;当神经网络有多层时,本层的输入向量x即为下层的输出向量;输入向量x的梯度可作为下一层的输出结果梯度传递下去;每一层均有一个k大值下表索引累积向量,用于之后的压缩过程;3)根据步骤2)中后向传播求得的稀疏化梯度,对神经网络的参数进行更新,可用于所有采用标准后向传播的训练算法,由此提高模型训练的可靠性;4)模型压缩过程:上述步骤1)~3)循环执行多次后,根据步骤2)得到的k大值下标索引和神经元的活跃程度,删除回传次数少的神经元,对模型进行压缩。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京大学,未经北京大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201711012694.0/,转载请声明来源钻瓜专利网。