一种稀疏训练方法技术

技术编号:19935253 阅读:25 留言:0更新日期:2018-12-29 04:55
本公开提供了一种稀疏训练方法,包括:根据置零条件对第i层所包括的N个神经元对应的梯度值进行选择性置零;其中,i为大于1的整数,N为正整数;利用未置零的梯度值进行训练运算,得到更新后的梯度值及突触。本公开降低了计算量,提升了计算速度。

【技术实现步骤摘要】
一种稀疏训练方法
本公开涉及人工智能
,尤其涉及一种稀疏训练方法。
技术介绍
深度神经网络是目前许多人工智能应用的基础,其在语音识别、图像处理、数据分析、广告推荐系统、汽车自动驾驶等多方面得到了突破性的应用,使得深度神经网络被应用在了生活的各个方面。但是,深度神经网络的运算量巨大,一直制约着其更快速的发展和更广泛的应用。当考虑运用加速器设计来加速深度神经网络的运算时,巨大的运算量,必然会带了很大的能耗开销,同样制约着加速器的进一步的广泛应用。在神经网络的运算中,主要分为两个部分,正向推测和反向训练。而现有的技术往往通过优化正向推测部分的运算部分来达到降低计算量的目的,而对于反向训练部分,没有什么有效的方式对其进一步降低计算量。因而无法进一步降低计算量,提升运算速度。
技术实现思路
(一)要解决的技术问题为了解决或者至少部分缓解上述技术问题,本公开提供了一种神经网络稀疏训练方法。本公开稀疏训练方法,通过一定的方式,将一些神经元的前传梯度值置零,从而使得和该神经元相连的突触不更新该神经元带来的误差值,和该神经元相连的上层神经元也不累加该神经元带来的误差值。从而降低了计算量,提升了计算速度。无论突触为稠密状态或稀疏状态,均不会对该方法产生影响。同时,该方法也不会影响正向推测阶段的正常运算和相关优化。(二)技术方案根据本公开的一个方面,提供了一种稀疏训练方法,包括:根据置零条件对神经网络第i层所包括的N个神经元对应的梯度值进行选择性置零;其中,i为大于1的整数,N为正整数;利用未置零的梯度值进行训练运算,得到更新后的梯度值及突触。在一些实施例中,所述置零条件包括:置零概率条件,或置零阈值条件,或置零百分比条件。在一些实施例中,在根据置零条件将筛选出的神经元对应的梯度值置零之前,还包括:采用随机方式对第i层所包括的N个神经元进行筛选。在一些实施例中,所述随机方式包括:高斯随机方法、贝叶斯概率随机方法、或等距抽样方法。在一些实施例中,所述置零条件为置零概率条件,该置零概率为p,采用所述随机方式筛选出N*p个神经元,将其对应的梯度值置0。在一些实施例中,所述置零条件为置零阈值条件,该置零阈值条件包括:小于一给定阈值,大于一给定阈值,在一给定取值范围内或在一给定取值范围外。在一些实施例中,所述置零阈值条件为小于一给定阈值,给定阈值为th,若梯度值小于所述给定阈值th,则将该梯度值置0;否则,保持梯度值不变。在一些实施例中,在训练过程中,通过一启发方式并根据一启发条件对所述置零阈值的大小进行调整。在一些实施例中,所述启发方式包括:利用测试样例或验证样例进行测试,对多次测试中其中至少两次测试结果信息进行比较,该结果信息包括:准确率或损失值。在一些实施例中,对其中本次测试的的准确率与前一次测试的准确率进行比较,得到准确率差值;或对本次测试的准确率与此前多次测试的平均准确率进行比较,得到准确率差值。在一些实施例中,所述启发条件包括:启发阈值判断条件或启发映射判断条件。在一些实施例中,所述启发阈值判断条件包括:小于一给定阈值,大于一给定阈值,在一给定取值范围内或在一给定取值范围外。在一些实施例中,所述启发条件为启发阈值判断条件,若本次测试得到的准确率和前一次测试的准确率的差值大于一给定启发阈值,则对置零阈值进行调整。在一些实施例中,采用模拟退火算法、蚁群算法、遗传算法、列表搜索算法、进化规划、或进化策略对置零阈值进行调整。在一些实施例中,所述置零条件为置零百分比条件,该置零百分比为q,将第i层的N个神经元的梯度值按一给定排序规则进行排序,筛选出N*q个神经元,将其对应的梯度值置0。在一些实施例中,所述排序规则包括:从小到大排序规则、从大到小的排序规则,或映射排序规则。在一些实施例中,所述映射排序规则为取绝对值后排序。在一些实施例中,排序之后,筛选出排序在前、在后或在指定位置的N*q个神经元。在一些实施例中,所述神经网络为卷积神经网络,利用未置零的梯度值进行训练运算,得到更新后的梯度值及突触,包括:对于卷积层,利用原输入的神经元和未置零的梯度值相乘后累加得到突触更新量;对于全连接层,利用原输入的神经元和未置零的梯度值相乘后得到突触更新量;将该突触更新量与给定的学习率相乘,而后累加回到原突触上,得到更新后的突触值;利用原突触和未置零的梯度值相乘并累加后得到前一层,即第i-1层的神经元的梯度值。在一些实施例中,若第i-1层不含有激活函数,那么计算得到的第i-1层梯度值即为所求的梯度值;否则,将这些计算得到的第i-1层梯度值与激活函数的导数相乘,得到激活后的梯度值即为所求的梯度值。根据本公开的另一个方面,提供了一种处理器,包括存储单元和运算单元;所述处理器能够执行所述的稀疏训练方法。根据本公开的另一个方面,提供了一种芯片,其包括所述的处理器。根据本公开的另一个方面,提供了一种芯片封装结构,其包括所述的芯片。根据本公开的另一个方面,提供了一种板卡,其包括所述的芯片封装结构。根据本公开的另一个方面,提供了一种电子装置,其包括所述的板卡。(三)有益效果从上述技术方案可以看出,本公开稀疏训练方法至少具有以下有益效果其中之一:(1)通过一定的方式,将一些神经元的前传梯度值置零,使该神经元在次轮反向训练过程中不传递梯度值,从而降低了计算量,提升了计算速度。(2)本公开能够根据用户的不同需求,来选择不同的方式对神经元进行置零,同时能够调整置零的比例,具有一定的灵活性。(3)无论突触为稠密状态或稀疏状态,均可以适用本公开稀疏训练方法。(4)本公开稀疏训练方法不会影响正向推测阶段的正常运算和相关优化。附图说明通过附图所示,本公开的上述及其它目的、特征和优势将更加清晰。在全部附图中相同的附图标记指示相同的装置。并未刻意按实际尺寸等比例缩放绘制附图,重点在于示出本公开的主旨。图1为依据本公开实施例稀疏训练方法流程图。具体实施方式为使本公开的目的、技术方案和优点更加清楚明白,以下结合具体实施例,并参照附图,对本公开作进一步的详细说明。需要说明的是,在附图或说明书描述中,相似或相同的部分都使用相同的图号。附图中未绘示或描述的实现方式,为所属
中普通技术人员所知的形式。另外,虽然本文可提供包含特定值的参数的示范,但应了解,参数无需确切等于相应的值,而是可在可接受的误差容限或设计约束内近似于相应的值。此外,以下实施例中提到的方向用语,例如“上”、“下”、“前”、“后”、“左”、“右”等,仅是参考附图的方向。因此,使用的方向用语是用来说明并非用来限制本公开。本公开主要提出了一种神经网络稀疏训练方法,通过一定的方式,将一些神经元的前传梯度值置零,从而使得和该神经元相连的突触不更新该神经元带来的误差值,和该神经元相连的上层神经元也不累加该神经元带来的误差值,从而降低了计算量,提升了计算速度。无论突触为稠密状态或稀疏状态,均不会对该方法产生影响。同时,该方法也不会影响正向推测阶段的正常运算和相关优化。图1是本公开稀疏训练方法流程图。如图1所示,本公开稀疏训练方法,包括:根据置零条件对神经网络第i层所包括的N个神经元对应的梯度值进行选择性置零;其中,i为大于1的整数,N为正整数;利用未置零的梯度值进行训练运算,得到更新后的梯度值及突触。所述置零条件包括本文档来自技高网
...

【技术保护点】
1.一种稀疏训练方法,包括:根据置零条件对神经网络第i层所包括的N个神经元对应的梯度值进行选择性置零;其中,i为大于1的整数,N为正整数;利用未置零的梯度值进行训练运算,得到更新后的梯度值及突触。

【技术特征摘要】
1.一种稀疏训练方法,包括:根据置零条件对神经网络第i层所包括的N个神经元对应的梯度值进行选择性置零;其中,i为大于1的整数,N为正整数;利用未置零的梯度值进行训练运算,得到更新后的梯度值及突触。2.根据权利要求1所述的稀疏训练方法,其中,所述置零条件包括:置零概率条件,或置零阈值条件,或置零百分比条件。3.根据权利要求1所述的稀疏训练方法,其中,在根据置零条件将筛选出的神经元对应的梯度值置零之前,还包括:采用随机方式对第i层所包括的N个神经元进行筛选。4.根据权利要求3所述的稀疏训练方法,其中,所述随机方式包括:高斯随机方法、贝叶斯概率随机方法、或等距抽样方法。5.根据权利要求3所述的稀疏训练方法,其中,所述置零条件为置零概率条件,该置零概率为p,采用所述随机方式筛选出N*p个神经元,将其对应的梯度值置0。6.根据权利要求2所述的稀疏训练方法,其中,...

【专利技术属性】
技术研发人员:不公告发明人
申请(专利权)人:上海寒武纪信息科技有限公司
类型:发明
国别省市:上海,31

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1