The invention relates to a method and system for discretization of weights of neural networks, which includes: obtaining the range of weights and the number of discrete weighted states; obtaining the weighted state of the previous time step and the current time step weight increment; using direction function to obtain the direction of state transition according to the current time step weight increment; and according to the weighted state of the previous time step and the current time step weight increment. The current time step weight increment, the direction of state transition, the range of the weights and the number of discrete weighted states are described to obtain the current time step weight state. The invention ensures that the weight values are always constrained in the same discrete state space without storing additional virtual continuous state implicit weights. On the premise of ensuring the computational performance of the neural network, the consumption of storage space is greatly reduced and the computational complexity is reduced.
【技术实现步骤摘要】
神经网络权重离散化方法和系统
本专利技术涉及神经网络
,特别是涉及神经网络权重离散化方法和系统。
技术介绍
在过去的几年中,大数据集、不同的学习模型和GPU(GeneralPurposeGraphicProcessingUnits通用图形处理单元)使得深度神经网络在计算机视觉、语音识别、自然语言处理和人机围棋对弈等人工智能领域取得了一个又一个的成果。然而,在这些引人注目的成果的背后也付出了计算它们所需的极大的硬件资源开销、训练时间开销和功耗开销。因此,基于GPU的深度学习系统很难嵌入到便携设备中。而很多功耗效用较高的方案往往需要在性能上有较大的损失。因此,需要在性能和计算复杂度之间加以权衡。传统的解决方案,包括剪枝和预训练神经网络,可以用于减少参数个数,从而减少在推理阶段的运算复杂度。设计紧凑的层或者稀疏连接也可以简化连接。也有一些其它的努力,包括量化参数,并将权重和激活函数的实数乘法运算通过整数移位替代,但都造成了一定程度的神经网络整体性能的下降。另外,针对二进制深度神经网络的研究,对神经网络的性能和开销也进行了权衡,例如在进行前向和后向计算时,通过约束权重(以及激活函数)到二进制数值{-1,1},浮点数乘法和加法将被简化成一些简单的逻辑运算,例如同或逻辑以及比特计数。在很多数据集上已经实现了近似最佳的分类精度。然而,这些技术都不可避免的需要为梯度下降方法保存全精度权重,导致极大的内存开销和浮点运算,以及额外的外存访问功耗。另外,很多新型便携设备基于多值内存器件,支持存储多个状态值,使得二进制算法无法充分利用器件的能力。因此,如何高效地在多值离散权 ...
【技术保护点】
1.一种神经网络权重离散化方法,其特征在于,所述方法包括:获取权重取值范围和离散权重状态个数,所述权重取值范围是指由当前时间步最大权重值和当前时间步最小权重值组成的离散权重取值范围,所述离散权重状态个数是指离散权重的状态的个数;获取上一个时间步权重状态和当前时间步权重增量;根据所述当前时间步权重增量,利用方向函数,获取状态转移方向;根据所述上一个时间步权重状态、所述当前时间步权重增量、所述状态转移方向、所述权重取值范围、所述离散权重状态个数,获取当前时间步权重状态。
【技术特征摘要】
1.一种神经网络权重离散化方法,其特征在于,所述方法包括:获取权重取值范围和离散权重状态个数,所述权重取值范围是指由当前时间步最大权重值和当前时间步最小权重值组成的离散权重取值范围,所述离散权重状态个数是指离散权重的状态的个数;获取上一个时间步权重状态和当前时间步权重增量;根据所述当前时间步权重增量,利用方向函数,获取状态转移方向;根据所述上一个时间步权重状态、所述当前时间步权重增量、所述状态转移方向、所述权重取值范围、所述离散权重状态个数,获取当前时间步权重状态。2.根据权利要求1所述的神经网络权重离散化方法,其特征在于,所述获取上一个时间步权重状态和当前时间步权重增量,包括:随机初始化权重状态;根据所述随机初始化权重状态和前向输出误差进行计算,确定上一个时间步权重状态;根据所述上一个时间步权重状态利用梯度下降算法获取当前时间步权重增量。3.根据权利要求1所述的神经网络权重离散化方法,其特征在于,在所述根据所述当前时间步权重增量,利用方向函数,获取状态转移方向的步骤之后,所述方法还包括:根据所述当前时间步权重增量、所述权重取值范围和所述离散权重状态个数,利用分解函数计算所述当前时间步的权重增量的整步长;根据所述整步长确定状态转移距离;则所述根据所述上一个时间步权重状态、所述当前时间步权重增量、所述状态转移方向、所述权重取值范围、所述离散权重状态个数,获取当前时间步权重状态,还包括:根据所述上一个时间步权重状态、所述当前时间步权重增量、所述状态转移方向、所述状态转移距离、所述权重取值范围、所述离散权重状态个数,获取当前时间步权重状态。4.根据权利要求3所述的神经网络权重离散化方法,其特征在于,在利用分解函数计算所述当前时间步的权重增量的整步长的步骤之后,所述方法还包括:根据所述当前时间步权重增量、所述权重取值范围和所述离散权重状态个数,利用分解函数计算所述当前时间步的权重增量的余数;根据所述余数、所述权重取值范围和所述离散权重状态个数,确定状态转移概率;则所述根据所述上一个时间步权重状态、所述当前时间步权重增量、所述状态转移方向、所述状态转移距离、所述权重取值范围、所述离散权重状态个数,获取当前时间步权重状态,还包括:根据所述上一个时间步权重状态、所述当前时间步权重增量、所述状态转移方向、所述状态转移距离、所述状态转移概率、所述权重取值范围、所述离散权重状态个数,获取当前时间步权重状态。5.根据权利要求4所述的神经网络权重离散化方法,其特征在于,所述根据所述余数、所述权重取值范围和所述离散权重状态个数,确定状态转移概率,包括:根据所述当前时间步的权重增量的余数和离散相邻状态距离值,获取跃迁概率算子,所述离散相邻状态距离值根据所述权重取值范围和所述离散权重状态个数确定;根据所述跃迁概率算子和所述余数,获取状态转移概率函数;根据所述状态转...
【专利技术属性】
技术研发人员:李国齐,邓磊,吴臻志,裴京,
申请(专利权)人:清华大学,
类型:发明
国别省市:北京,11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。