[发明专利]一种基于稀疏化后向传播训练的神经网络模型压缩方法在审
申请号: | 201711012694.0 | 申请日: | 2017-10-26 |
公开(公告)号: | CN107832847A | 公开(公告)日: | 2018-03-23 |
发明(设计)人: | 孙栩;任宣丞;马树铭;位冰镇 | 申请(专利权)人: | 北京大学 |
主分类号: | G06N3/08 | 分类号: | G06N3/08 |
代理公司: | 北京万象新悦知识产权代理事务所(普通合伙)11360 | 代理人: | 黄凤茹 |
地址: | 100871*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 稀疏 传播 训练 神经网络 模型 压缩 方法 | ||
技术领域
本发明属于信息技术领域,涉及机器学习和深度学习技术,尤其涉及一种基于k大值的稀疏化(Sparsify)神经网络模型的压缩算法。
背景技术
神经网络模型的训练过程分为两个步骤:前向传播(Forward Propagation)和后向传播(Backward Propagation)。前向传播计算神经网络各层的输出,后向传播根据前向传播输出结果的梯度计算模型参数的梯度,最后神经网络模型利用这些梯度对参数进行更新。然而在实际应用中,部署的模型只进行推理操作,即前向传播操作。
现有的神经网络模型训练方法,模型的大小,或者说维度,是预先根据经验值设定的。方法的弊端是模型往往过于庞大,一方面使得神经网络的训练和推理耗时长,计算量和耗电量大;另一方面,会引入大量与实例相关度低的信息,从而使训练得到的神经网络模型的准确度较低,产生过拟合(Overfitting)现象。针对上述方法存在的问题,陆续有一些模型压缩算法提出,如针对前馈神经网络的权值裁剪算法、针对循环神经网络的权值渐进裁剪算法、针对卷积神经网络的参数量化方法等;然而,由于对于深度神经网络模型中的任意一层,上述算法都需要单独指定超参数来控制该层最后的维度,因此,这些现有方法在实际应用中并不灵活,难于适用于深度神经网络的训练。
发明内容
为了克服上述现有技术的不足,本发明提供一种基于稀疏化后向传播训练的神经网络模型压缩方法,是一种基于k大值的稀疏化后向传播的模型压缩方法,通过消除与实例相关度低的参数来压缩神经网络的维度,以提高模型在实际推理中的速度,并保持良好的精度。
本发明提供的技术方案是:
一种神经网络模型的稀疏化后向传播压缩方法,在后向传播过程中采用基于k大值的稀疏化方法,通过消除不活跃的神经元,压缩模型大小,提高深度神经网络的训练和推理速度,保持良好效果,包括如下步骤:基于稀疏化后向传播训练的神经网络模型压缩方法
1)前向传播过程:
在前向传播的过程中,神经网络的每一层接受上层的输入x,通过给定的线性变换输出y和非线性变换输出z,并作为下一层的输入,最后一层的输出为整个网络的输出结果。前向传播的网络可以是前馈神经网络(MLP),循环神经网络(RNN)或长短时记忆网络(LSTM)等采用后向传播(如图3)进行梯度计算的神经网络模型。
2)后向传播过程:
神经网络模型每一层的后向传播需要利用上一层的输出梯度(1≤i≤n,n为向量维度)作为输入计算梯度,本发明在后向传播过程中对输出梯度进行k大值稀疏化(Sparsify)的处理,并记录每一维度稀疏回传的次数(前k大值的下标索引对应的向量S的累积),本发明称之为神经元的活跃程度。即保留前向传播输出梯度的绝对值(absolute value,i.e.magnitude)最大的k个值(k的大小小于向量z的维度大小),剩余的梯度值全部为0,并将前k大值下标索引以向量的形式S记录下来。例如则其中为上一层梯度,为2大值稀疏化处理后的梯度,S为前2大值下标索引对应的向量(前k大值下标对应的值为1,其余下标对应的值为0)。利用这个稀疏化处理后的向量进行梯度计算得到参数梯度,由于经过稀疏化处理,梯度计算时只需要计算与前k大值有关的部分,剩余值为0的部分不需要参与计算,可以降低后向传播的计算量;并且记录得到的神经元活跃程度S将有助于后续压缩过程中确定哪些神经元是作用不大的。
具体地,本发明通过式1对输出梯度的绝对值做稀疏化处理:
其中,σ′i是稀疏化处理后的向量;topk代表一个k大值稀疏化操作,即保留输入向量的所有维度的绝对值中前k大的值(k的大小小于向量z的维度n),剩余的值全部为0,例如则利用这个稀疏化处理后的向量σ′i进行梯度计算得到参数梯度。
利用经式1进行稀疏化处理后的向量σ′i计算参数矩阵W的梯度,计算公式为式2:
其中,表示参数矩阵W的梯度中行标为i、列标为j的值,表示输入向量中下标为j的值,σ′i表示输出向量z经过k大值稀疏化后的梯度中下标为i的值,{t1,t2,…,tk}(1≤k≤n)代表的所有维度的绝对值中前k大的值的下标,xT表示对向量进行转置,由列向量变为行向量。
利用经式1进行稀疏化处理后的向量σ′i计算输入向量x的梯度,计算公式为式3:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京大学,未经北京大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711012694.0/2.html,转载请声明来源钻瓜专利网。