WO2019006976A1 - 神经网络权重离散化方法、***、设备和可读存储介质 - Google Patents

神经网络权重离散化方法、***、设备和可读存储介质 Download PDF

Info

Publication number
WO2019006976A1
WO2019006976A1 PCT/CN2017/114667 CN2017114667W WO2019006976A1 WO 2019006976 A1 WO2019006976 A1 WO 2019006976A1 CN 2017114667 W CN2017114667 W CN 2017114667W WO 2019006976 A1 WO2019006976 A1 WO 2019006976A1
Authority
WO
WIPO (PCT)
Prior art keywords
weight
state
time step
current time
discrete
Prior art date
Application number
PCT/CN2017/114667
Other languages
English (en)
French (fr)
Inventor
李国齐
吴臻志
裴京
邓磊
Original Assignee
清华大学
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 清华大学 filed Critical 清华大学
Priority to US16/477,464 priority Critical patent/US11537879B2/en
Publication of WO2019006976A1 publication Critical patent/WO2019006976A1/zh

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/01Probabilistic graphical models, e.g. probabilistic networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks

Definitions

  • the current time step weight state acquisition module is also used to:
  • a state transition probability function obtaining unit configured to acquire a state transition probability function according to the transition probability operator and the remainder;
  • the current time step weight increment is positive or negative after taking the symbol, and the state transition direction is positive or negative correspondingly.
  • a probabilistic gradient projection operator is introduced here for converting a continuous weight increment to a discrete transition increment.
  • Set the current time step weight increment vector to ⁇ W k can be obtained in different ways, in the standard gradient descent method, among them
  • the gradient is represented by the derivative of the cost function versus the weight, and the gradient descent algorithm is an algorithm used to make the output more in line with the ideal state.
  • is the selected step size, which is the selected learning rate.
  • ⁇ W k can also be obtained by other back propagation learning rules
  • step S200 in FIG. 1 it is the same as step S200 in FIG.
  • the current time step weight state obtaining module 500 is configured to use, according to the last time step weight state, the current time step weight increment, the state transition direction, the weight value range, and the discrete weight state number , get the current time step weight status. And acquiring, according to the last time step weight state, the current time step weight increment, the state transition direction, the state transition distance, the weight value range, and the discrete weight state number, Current time step weight status. And for using, according to the previous time step weight state, the current time step weight increment, the state transition direction, the state transition distance, the state transition probability, the weight value range, and the discretization The number of weight states is obtained, and the current time step weight state is obtained.
  • the hardware connection relationship shown in FIG. 8 is that the output of the limiter processor 1 is connected to the input of the division/remainder calculator 2, and the divisor output of the division/remainder calculator 2 is connected to the first adder 8, division/remainder calculation
  • the remainder output of the device 2 is connected to the input of the absolute valuer 3 and the symbolizer 4, the output of the absolute value 3 is connected to the input of the probability function finder 5, and the output of the probability function finder 5 is connected to the Monte Carlo sampling.
  • embodiments of the present application can be provided as a method, system, or computer program product.
  • the present application can take the form of an entirely hardware embodiment, an entirely software embodiment, or an embodiment in combination of software and hardware.
  • the application can take the form of a computer program product embodied on one or more computer-usable storage media (including but not limited to disk storage, CD-ROM, optical storage, etc.) including computer usable program code.
  • These computer program instructions can also be loaded onto a computer or other programmable data processing device such that a series of operational steps are performed on a computer or other programmable device to produce computer-implemented processing for execution on a computer or other programmable device.
  • the instructions provide steps for implementing the functions specified in one or more of the flow or in a block or blocks of a flow diagram.

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Molecular Biology (AREA)
  • Mathematical Optimization (AREA)
  • Probability & Statistics with Applications (AREA)
  • Mathematical Analysis (AREA)
  • Neurology (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Algebra (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Image Analysis (AREA)
  • Feedback Control In General (AREA)
  • Traffic Control Systems (AREA)
  • Manipulator (AREA)

Abstract

一种神经网络权重离散化方法、***、设备以及可读存储介质,所述方法包括:获取权重取值范围和离散权重状态个数;获取上一个时间步权重状态和当前时间步权重增量;根据所述当前时间步权重增量,利用方向函数,获取状态转移方向;根据所述上一个时间步权重状态、所述当前时间步权重增量、所述状态转移方向、所述权重取值范围、所述离散权重状态个数,获取当前时间步权重状态。该方法确保权重值始终约束在同一个离散态空间中,而不需要存储额外的虚拟连续态隐含权重,在保证神经网络的计算性能的前提下,大大减小存储空间的消耗并降低计算复杂度。

Description

神经网络权重离散化方法、***、设备和可读存储介质
相关申请
本申请要求2017年7月3日申请的,申请号为201710530149.4,名称为“神经网络权重离散化方法和***”的中国专利申请的优先权,在此将其全文引入作为参考。
技术领域
本揭露涉及神经网络技术领域,特别是涉及神经网络权重离散化方法、***、设备和可读存储介质。
背景技术
在过去的几年中,大数据集、不同的学习模型和GPU(General Purpose Graphic Processing Units通用图形处理单元)使得深度神经网络在计算机视觉、语音识别、自然语言处理和人机围棋对弈等人工智能领域取得了一个又一个的成果。然而,在这些引人注目的成果的背后也付出了计算它们所需的极大的硬件资源开销、训练时间开销和功耗开销。因此,基于GPU的深度学习***很难嵌入到便携设备中。而很多功耗效用较高的方案往往需要在性能上有较大的损失。因此,需要在性能和计算复杂度之间加以权衡。
传统的解决方案,包括剪枝和预训练神经网络,可以用于减少参数个数,从而减少在推理阶段的运算复杂度。设计紧凑的层或者稀疏连接也可以简化连接。也有一些其它的努力,包括量化参数,并将权重和激活函数的实数乘法运算通过整数移位替代,但都造成了一定程度的神经网络整体性能的下降。
另外,针对二进制深度神经网络的研究,对神经网络的性能和开销也进行了权衡,例如在进行前向和后向计算时,通过约束权重(以及激活函数)到二进制数值{-1,1},浮点数乘法和加法将被简化成一些简单的逻辑运算,例如同或逻辑以及比特计数。在很多数据集上已经实现了近似最佳的分类精度。然而,这些技术都不可避免的需要为梯度下降方法保存全精度权重,导致极大的内存开销和浮点运算,以及额外的外存访问功耗。另外,很多新型便携设备基于多值内存器件,支持存储多个状态值,使得二进制算法无法充分利用器件的能力。因此,如何高效地在多值离散权重空间进行深度神经网络训练,从而提高神经网络的信息处理效率,减少神经网络的计算开销,成为神经网络研究领域亟待解决的问题。
发明内容
基于此,有必要针对如何兼顾神经网络的性能和计算复杂度的问题,提供一种神经网络权重离散化方法、***、设备和可读存储介质,所述方法包括:
获取权重取值范围和离散权重状态个数,所述权重取值范围是指由当前时间步最大权重值和当前时间步最小权重值组成的离散权重取值范围,所述离散权重状态个数是指离散权重的状态的个数;
获取上一个时间步权重状态和当前时间步权重增量;
根据所述当前时间步权重增量,利用方向函数,获取状态转移方向;
根据所述上一个时间步权重状态、所述当前时间步权重增量、所述状态转移方向、所述权重取值范围、所述离散权重状态个数,获取当前时间步权重状态。
在其中一个实施例中,所述获取上一个时间步权重状态和当前时间步权重增量,包括:
随机初始化权重状态;
根据所述随机初始化权重状态和前向输出误差进行计算,确定上一个时间步权重状态;
根据所述上一个时间步权重状态利用梯度下降算法获取当前时间步权重增量。
在其中一个实施例中,在所述根据所述当前时间步权重增量,利用方向函数,获取状态转移方向的步骤之后,所述方法还包括:
根据所述当前时间步权重增量、所述权重取值范围和所述离散权重状态个数,利用分解函数计算所述当前时间步的权重增量的整步长;
根据所述整步长确定状态转移距离;
则所述根据所述上一个时间步权重状态、所述当前时间步权重增量、所述状态转移方向、所述权重取值范围、所述离散权重状态个数,获取当前时间步权重状态,还包括:
根据所述上一个时间步权重状态、所述当前时间步权重增量、所述状态转移方向、所述状态转移距离、所述权重取值范围、所述离散权重状态个数,获取当前时间步权重状态。
在其中一个实施例中,在利用分解函数计算所述当前时间步的权重增量的整步长的步骤之后,所述方法还包括:
根据所述当前时间步权重增量、所述权重取值范围和所述离散权重状态个数,利用分解函数计算所述当前时间步的权重增量的余数;
根据所述余数、所述权重取值范围和所述离散权重状态个数,确定状态转移概率;
则所述根据所述上一个时间步权重状态、所述当前时间步权重增量、所述状态转移方向、所述状态转移距离、所述权重取值范围、所述离散权重状态个数,获取当前时间步权重状态,还包括:
根据所述上一个时间步权重状态、所述当前时间步权重增量、所述状态转移方向、所述状态转移距离、所述状态转移概率、所述权重取值范围、所述离散权重状态个数,获取当前时间步权重状态。
在其中一个实施例中,所述根据所述余数、所述权重取值范围和所述离散权重状态个数,确定状态转移概率,包括:
根据所述当前时间步的权重增量的余数和离散相邻状态距离值,获取跃迁概率算子,所述离散相邻状态距离值根据所述权重取值范围和所述离散权重状态个数确定;
根据所述跃迁概率算子和所述余数,获取状态转移概率函数;
根据所述状态转移概率函数和二值化采样法,获取状态转移概率。
本揭露所提供的神经网络权重离散化方法,通过给定一个离散态权重空间,在获取到的上一个时间步权重状态和当前时间步权重增量的基础上,计算在虚拟连续态空间中当前时间步权重增量,获取状态转移的方向、最后根据所述上一个时间步权重状态、所述当前时间步权重增量、所述状态转移方向,获取当前时间步权重状态。本揭露所提供的权重离散化的计算方法,能够在给定的权重离散范围内,根据给定的离散权重状态个数,通过计算离散权重的转移方向、实现离散态空间的状态直接跃迁,确保权重值始终约束在同一个离散态空间中,而不需要存储额外的虚拟连续态全精度隐含权重,在保证神经网络的计算性能的前提下,大大减小存储空间的消耗并降低计算复杂度。
在其中一个实施例中,通过随机初始化权重状态,给定权重离散化的范围后,通过给定的前向输出误差以及梯度下降算法,获取上一个时间步的权重状态和当前时间步权重增量,保证离散后的权重状态的精度。
在其中一个实施例中,在获取状态转移方向的步骤之后,进一步通过分解函数计算当前时间步的权重增量的整步长,并根据所述整步长确定状态转移距离,最后根据所述上一个时间步权重状态、所述当前时间步权重增量、所述状态转移方向、所述状态转移距离、所述权重取值范围、所述离散权重状态个数,获取当前时间步权重状态。能够在给定的权重离散范围内,根据给定的离散权重状态个数,通过计算离散权重的转移方向、转移距离实现离散态空间的状态直接跃迁,并比仅考虑方向转移范围更大,确保权重值始终约束在同一个离散态 空间中,而不需要存储额外的虚拟连续态全精度隐含权重,在保证神经网络的计算性能的前提下,大大减小存储空间的消耗并降低计算复杂度。
在其中一个实施例中,进一步通过解析所述当前时间步权重增量函数,计算当前时间步权重增量的余数;根据当前时间步权重增量余数,获取状态转移概率值。通过得出的状态转移方向、状态转移距离以及状态转移概率值分别决定离散权重值的跳转方向、状态转移距离和状态转移概率值,使得计算得出的离散权重,即符合离散化前的连续态权重值密切相关,又能通过离散态直接跃迁从而满足始终离散化的需求,从而在保证了神经网络的计算精度的同时,大大减小虚拟连续态隐含权重的存储,并降低了计算复杂度。
在其中一个实施例中,根据所述状态转移概率函数和所述当前时间步权重增量的余数,计算状态转移概率向量;根据所述状态转移概率向量和二值化采样法,所获取所述状态转移概率,与离散前的当前时间步权重增量余数密切相关,使得神经网络离散后的权重状态分布在概率意义上更加精确地逼近原始的连续态权重值,从而在保证了神经网络的计算精度的同时,完成了离散化的过程。
本揭露还提供一种神经网络权重离散化***,包括:
权重空间构建模块,用于获取权重取值范围和离散权重状态个数,所述权重取值范围是指由当前时间步最大权重值和当前时间步最小权重值组成的离散权重取值范围,所述离散权重状态个数是指离散权重的状态的个数;
权重值和权重增量获取模块,用于获取上一个时间步权重状态和当前时间步权重增量;
状态转移方向获取模块,用于根据所述当前时间步权重增量,利用方向函数,获取状态转移方向;
当前时间步权重状态获取模块,用于根据所述上一个时间步权重状态、所述当前时间步权重增量、所述状态转移方向、所述权重取值范围、所述离散权重状态个数,获取当前时间步权重状态。
在其中一个实施例中,所述权重值和权重增量获取模块,包括:
权重初始化单元,用于随机初始化权重状态;
上一个时间步权重状态确定单元,用于根据所述随机初始化权重状态和前向输出误差进行计算,确定上一个时间步权重状态;
当前时间步权重增量获取单元,用于根据所述上一个时间步权重状态利用梯度下降算法获取当前时间步权重增量。
在其中一个实施例中,还包括:
分解函数计算模块,用于根据所述当前时间步权重增量、所述权重取值范围和所述离散权重状态个数,利用分解函数计算所述当前时间步的权重增量的整步长;
状态转移距离确定模块,用于根据所述整步长确定状态转移距离;
则当前时间步权重状态获取模块,还用于:
根据所述上一个时间步权重状态、所述当前时间步权重增量、所述状态转移方向、所述状态转移距离、所述权重取值范围、所述离散权重状态个数,获取当前时间步权重状态。
在其中一个实施例中,还包括:
所述分解函数计算模块,还用于根据所述当前时间步权重增量、所述权重取值范围和所述离散权重状态个数,利用分解函数计算所述当前时间步的权重增量的余数;
状态转移概率确定模块,用于根据所述余数、所述权重取值范围和所述离散权重状态个数,确定状态转移概率;
则当前时间步权重状态获取模块,还用于:
根据所述上一个时间步权重状态、所述当前时间步权重增量、所述状态转移方向、所述状态转移距离、所述状态转移概率、所述权重取值范围、所述离散权重状态个数,获取当前时间步权重状态。
在其中一个实施例中,所述状态转移概率确定模块,包括:
跃迁概率算子获取单元,用于根据所述当前时间步的权重增量的余数和离散相邻状态距离值,获取跃迁概率算子,所述离散相邻状态距离值根据所述权重取值范围和所述离散权重状态个数确定;
状态转移概率函数获取单元,用于根据所述跃迁概率算子和所述余数,获取状态转移概率函数;
状态转移概率获取单元,用于根据所述状态转移概率函数和二进制采样法,获取状态转移概率。
本揭露所提供的神经网络权重离散化***,通过给定一个离散态权重空间,在获取到的上一个时间步权重状态和当前时间步权重增量的基础上,计算在虚拟连续态空间中当前时间步权重的取值范围,获取状态转移的方向、最后根据所述上一个时间步权重状态、所述当前时间步权重增量、所述状态转移方向,获取当前时间步权重状态。本揭露所提供的权重离散化的计算方法,能够在给定的权重离散范围内,根据给定的离散权重状态个数,通过计算离 散权重的转移方向、实现离散态空间的状态直接跃迁,确保权重值始终约束在同一个离散态空间中,而不需要存储额外的虚拟连续态全精度隐含权重,在保证神经网络的计算性能的前提下,大大减小存储空间的消耗并降低计算复杂度。
在其中一个实施例中,通过随机初始化权重状态,给定权重离散化的范围后,通过给定的前向输出误差以及梯度下降算法,获取上一个时间步的权重状态和当前时间步权重增量,保证离散后的权重状态的精度。
在其中一个实施例中,在获取状态转移方向的步骤之后,进一步通过分解函数计算当前时间步的权重增量的整步长,并根据所述整步长确定状态转移距离,最后根据所述上一个时间步权重状态、所述当前时间步权重增量、所述状态转移方向、所述状态转移距离、所述权重取值范围、所述离散权重状态个数,获取当前时间步权重状态。能够在给定的权重离散范围内,根据给定的离散权重状态个数,通过计算离散权重的转移方向、转移距离实现离散态空间的状态直接跃迁,并比仅考虑方向转移范围更大,确保权重值始终约束在同一个离散态空间中,而不需要存储额外的虚拟连续态全精度隐含权重,在保证神经网络的计算性能的前提下,大大减小存储空间的消耗并降低计算复杂度。
在其中一个实施例中,进一步通过解析所述当前时间步权重增量函数,计算当前时间步权重增量的余数;根据当前时间步权重增量余数,获取状态转移概率值。通过得出的状态转移方向、状态转移距离以及状态转移概率值分别决定离散权重值的跳转方向、状态转移距离和状态转移概率值,使得计算得出的离散权重,即符合离散化前的连续态权重值密切相关,又能通过离散态直接跃迁从而满足始终离散化的需求,从而在保证了神经网络的计算精度的同时,大大减小虚拟连续态全精度隐含权重的存储,并降低了计算复杂度。
在其中一个实施例中,根据所述状态转移概率函数和所述当前时间步权重增量的余数,计算状态转移概率向量;根据所述状态转移概率向量和二进制采样法,所获取所述状态转移概率,与离散前的当前时间步权重增量分数值密切相关,使得神经网络离散后的权重状态分布在概率意义上更加精确地逼近原始的连续态权重值,从而在保证了神经网络的计算精度的同时,完成了离散化的过程。
本揭露还提供一种计算***,所述计算***包括处理器、存储器以及存储在所述存储器上的计算机指令,所述计算机指令在被所述处理器执行时实现上述实施例中各项所述方法中的步骤。
本揭露还提供一种可读存储介质,所述可读存储介质包括计算机指令,所述计算机指令 在被处理器执行时实现上述实施例中各项所述方法中的步骤。
附图说明
图1为一个实施例的神经网络权重离散化方法的流程示意图;
图2为另一个实施例的神经网络权重离散化方法的流程示意图;
图3为再一个实施例的神经网络权重离散化方法的流程示意图;
图4为再一个实施例的神经网络权重离散化方法的流程示意图;
图5为一个实施例的神经网络权重离散化示意图;
图6为一个实施例的神经网络权重离散化方法的简化实现图(假设κ=0);
图7为一个实施例的神经网络权重离散化***的结构示意图;
图8为一个实施例的神经网络权重离散化***的硬件示意图。
具体实施方式
为了使本揭露的目的、技术方案及优点更加清楚明白,以下结合附图及实施例对本揭露进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本揭露,并不用于限定本揭露。
神经网络计算的主要运算部分是输入数据与权重的乘累加运算,权重的精度直接影响计算的复杂度。本揭露通过概率采样的方法可以有效降低权重的精度需求,在对性能几乎没有影响的前提下显著减少权重存储器的内存用量,降低运算复杂度。此方法既可以用于离线学习的神经网络,也可以用于片上在线学习的过程,且具有较低的硬件实现复杂度,可用于多层感知机、深度卷积神经网络等网络结构。
在深度神经网络的前向和后向计算过程中,将所有的状态约束在离散空间,并通过最小化代价函数作为训练目标。本揭露提供可以达到此目标的离散状态跃迁(DST Dispersed State Transition)方法,即定义一个采用迭代的方式处理优化目标函数的方法,使得权重参数始终约束在预先设定的离散空间内。
图1为一个实施例的神经网络权重离散化方法的流程示意图,如图1所示的神经网络权重离散化方法包括:
步骤S100,获取权重取值范围和离散权重状态个数,所述权重取值范围是指由当前时间步最大权重值和当前时间步最小权重值组成的离散权重取值范围,所述离散权重状态个数是 指离散权重的状态的个数。
具体的,所述获取的权重取值范围[-L,L],是根据需求离散后的权重值的取值范围,所述获取的离散权重状态个数(2N+1),是根据需求离散后的权重值的个数。可以理解,所述获取权重取值范围以及离散权重状态个数,可以是指根据具体需求进行计算得到所述权重取值范围以及离散权重状态个数,也可以是采用人工输入的方式直接设定所述权重取值范围以及离散权重状态个数。如图5所示,所述离散后的权重空间即DWS(Dispersed Weight Space)的范围是[-L,L],所述离散权重状态个数为(2N+1)个状态。
在深度神经网络中,假设在区间[-L,L]中训练权重/状态,那么离散权重空间(DWS Dispersed Weight Space)ZN是以下权重构成的组合,定义为:
Figure PCTCN2017114667-appb-000001
其中,N是一个给定的非负整数N∈Z+,即N=0,1,2,...。对于一个给定的N,总的状态数是2N+1,且
Figure PCTCN2017114667-appb-000002
是相邻状态间的距离。为了对比DWS,定义一个连续权重空间(CWS Continuity Weight Space),其中的元素可以是任意的全精度值,以及一个二值权重空间(BWS Binary Weight Space),其中的元素属于{-1,1}×L。DWS在N→∞就是CWS,当N=0时退化到BWS。
步骤S200,获取上一个时间步权重状态和当前时间步权重增量。
具体的,在获取神经网络权重信息时,一般通过获取到的上一个时间步权重状态与当前时间步权重增量进行累加的方式,获取当前时间步的权重信息。其中,所述当前时间步权重增量,可通过基于梯度下降算法的误差反向传播学习规则计算得出。上一个时间步的初始化权重以Wi 0表示,当前时间步权重增量以ΔWi k表示。
步骤S300,根据所述当前时间步权重增量,利用方向函数,获取状态转移方向。
具体的,所述方向函数,包括符号函数,Dk=sign(ΔWi k),其中sign(ΔWi k)是一个符号函数。所述当前时间步权重增量取符号后为正或负,则状态转移方向相应的为正或负即可。
步骤S400,根据所述上一个时间步权重状态、所述当前时间步权重增量、所述状态转移方向、所述权重取值范围、所述离散权重状态个数,获取当前时间步权重状态。
具体的,根据所述上一个时间步权重状态、所述当前时间步权重增量,以及确定好的状态转移方向,在所述权重取值范围、所述离散权重状态个数确定好的离散后的权重状态中, 获取当前时间步权重状态即可。
如权重取值范围为[-1,1],确定好的状态转移方向为正,则当前时间步权重状态取1即可。
如权重取值范围为(-5,5),离散后的状态个数为10个,确定好的状态转移方向为正,则可以根据所述当前时间步权重增量的不同,取当前时间步权重状态为1、2、3、4、5均可。
本揭露所提供的神经网络权重离散化方法,通过给定一个离散态权重空间,在获取到的上一个时间步权重状态和当前时间步权重增量的基础上,,获取状态转移的方向、最后根据所述上一个时间步权重状态、所述当前时间步权重增量、所述状态转移方向,获取当前时间步权重状态。本揭露所提供的权重离散化的计算方法,能够在给定的权重离散范围内,根据给定的离散权重状态个数,通过计算离散权重的转移方向、实现离散态空间的状态直接跃迁,确保权重值始终约束在同一个离散态空间中,而不需要存储额外的虚拟连续态全精度隐含权重,在保证神经网络的计算性能的前提下,大大减小存储空间的消耗并降低计算复杂度。
在其中一个实施例中,所述获取上一个时间步权重状态和当前时间步权重增量,包括随机初始化权重状态;根据所述随机初始化权重状态和前向输出误差进行计算,确定上一个时间步权重状态;根据所述上一个时间步权重状态利用梯度算法获取当前时间步权重增量。
具体的,随机初始化权重以Wi 0表示,则随机初始化矩阵表示为W0=[W1 0,W2 0,...,Wi 0,...,
Figure PCTCN2017114667-appb-000003
其中Wi 0∈ZN。所述随机初始化是根据预设的随机数计算规则计算得出的随机数。在进行第k次计算时,对于Wi k∈ZN,计算前向输出误差
Figure PCTCN2017114667-appb-000004
,如果对于预设的参数ε(在验证集合或者测试集合)
Figure PCTCN2017114667-appb-000005
那么停止计算,否则继续进行第k+1次计算,直至满足停止计算的条件为止。所述前向输出误差,是指神经网络的前向输出与预期的结果的差的绝对值。
具体的,在此引入一个概率化的梯度投影算子用于转换一个连续的权重增量到一个离散的跃迁增量。设当前时间步权重增量向量为
Figure PCTCN2017114667-appb-000006
其中ΔWk可以通过不同的方式得到,在标准的梯度下降方法中,
Figure PCTCN2017114667-appb-000007
其中
Figure PCTCN2017114667-appb-000008
表示梯度,所述梯度是代价函数对权重的导数,梯度下降算法是用来使输出更加符合理想状态的算法。η是选定的步长,即选定的学习速率。ΔWk也可以通过其它的反向传播学习规则得到,W是权重向量,其中的一个元素Wii=1,2,...,
Figure PCTCN2017114667-appb-000009
是ZN的一个状态。
Figure PCTCN2017114667-appb-000010
是变量W的维度。
在本实施例中,根据随机初始化的权重矩阵,通过计算的方式,在给定的前向输出误差 范围内,计算得出当前时间步权重增量,据此调整当前时间步的权重,从而使得神经网络的更新过程不断满足实际应用需求。
图2为另一个实施例的神经网络权重离散化方法的流程示意图,如图2所示的神经网络权重离散化方法包括:
步骤S100,获取权重取值范围和离散权重状态个数,所述权重取值范围是指由当前时间步最大权重值和当前时间步最小权重值组成的离散权重取值范围,所述离散权重状态个数是指离散权重的状态的个数。
具体的,同图1中的步骤S100。
步骤S200,获取上一个时间步权重状态和当前时间步权重增量。
具体的,同图1中的步骤S200。
步骤S300,根据所述当前时间步权重增量,利用方向函数,获取状态转移方向。
具体的,同图1中的步骤S300。
步骤S400A,根据所述当前时间步权重增量、所述权重取值范围和所述离散权重状态个数,利用分解函数计算所述当前时间步的权重增量的整步长。
具体的,所述上一个时间步权重状态Wi k、所述当前时间步权重增量ΔWi k和所述权重取值范围[-L,L],获取所述当前时间步权重增量函数ΔWi k=κiΔzN+vi,其中,当前时间步权重增量整数κ、当前时间步权重增量余数v和离散相邻状态距离值ΔzN,且离散相邻状态距离值ΔzN根据所述权重取值范围[-L,L]和所述离散权重状态个数(2N+1)确定。
在深度神经网络的给定的迭代训练过程中,假设
Figure PCTCN2017114667-appb-000011
是第k个迭代步的权重状态,其中Wk被看作一个向量,i表示第i个元素。在Wi k上的权重增量ΔWi k是从第k次迭代的梯度中得到的。首先我们对ΔWi k定义一个范围约束条件,防止权重跳出[-L,L]的边界:
Figure PCTCN2017114667-appb-000012
解析ΔWi k的整步长部分:
Figure PCTCN2017114667-appb-000013
Figure PCTCN2017114667-appb-000014
其中fix(.)是一个向0取整函数。
步骤S500A,根据所述整步长确定状态转移距离。
具体的,根据获取的权重取值范围[-L,L],和所获取的离散权重状态个数(2N+1)的不同,所述状态转移距离可以根据需求设定。
如根据所述整步长,确定离散后的状态转移距离,如所述整步长为2,则在取值范围内直接确定离散后的状态转移距离为2,或确定状态转移距离为2个状态。
还可以根据所述权重取值范围和离散权重状态个数的不同,设定整步长与状态转移距离之间的对应关系。如在一定范围内的整步长,与状态转移距离之间的对应为比例关系,但超过一定范围的整步长,只对应权重范围内最大的状态转移距离。根据实际需求的不同设定即可。
步骤S600A,根据所述上一个时间步权重状态、所述当前时间步权重增量、所述状态转移方向、所述状态转移距离、所述权重取值范围、所述离散权重状态个数,获取当前时间步权重状态。
具体的,根据所述上一个时间步权重状态、所述当前时间步权重增量、所述状态转移方向、所述状态转移距离,在构建好的权重取值范围、所述离散权重状态个数,获取最终的当前时间步权重状态。
如权重取值范围为(-5,5),离散后的状态个数为10个,确定好的状态转移方向为正,确定好的状态转移距离为状态为2,则当前时间步权重状态为上一个时间步权重状态加2个步长即可。
在本实施例中,在获取状态转移方向的步骤之后,进一步通过分解函数计算当前时间步的权重增量的整步长,并根据所述整步长确定状态转移距离,最后根据所述上一个时间步权重状态、所述当前时间步权重增量、所述状态转移方向、所述状态转移距离、所述权重取值范围、所述离散权重状态个数,获取当前时间步权重状态。能够在给定的权重离散范围内,根据给定的离散权重状态个数,通过计算离散权重的转移方向、转移距离实现离散态空间的状态直接跃迁,确保权重值始终约束在同一个离散态空间中,并能够比仅考虑方向转移距离更大,而不需要存储额外的虚拟连续态全精度隐含权重,在保证神经网络的计算性能的前提下,大大减小存储空间的消耗并降低计算复杂度。
图3为再一个实施例的神经网络权重离散化方法的流程示意图,如图3所示的神经网络权重离散化方法包括:
步骤S100,获取权重取值范围和离散权重状态个数,所述权重取值范围是指由当前时间步最大权重值和当前时间步最小权重值组成的离散权重取值范围,所述离散权重状态个数是 指离散权重的状态的个数。
具体的,同图1中的步骤S100。
步骤S200,获取上一个时间步权重状态和当前时间步权重增量。
具体的,同图1中的步骤S200。
步骤S300,根据所述当前时间步权重增量,利用方向函数,获取状态转移方向。
具体的,同图1中的步骤S300。
步骤S400B,根据所述当前时间步权重增量、所述权重取值范围和所述离散权重状态个数,利用分解函数计算所述当前时间步的权重增量的整步长和余数。
具体的,解析
Figure PCTCN2017114667-appb-000015
的整步长部分和余数部分:
Figure PCTCN2017114667-appb-000016
Figure PCTCN2017114667-appb-000017
Figure PCTCN2017114667-appb-000018
其中fix(.)是一个向0取整函数;函数rem(x,y)生成两个数相除的余数,并保持与x相同的符号。
步骤S500B,根据所述整步长确定状态转移距离;根据所述余数、所述权重取值范围和所述离散权重状态个数,确定状态转移概率。
具体的,所述获取状态转移距离同图2所示的实施例中的步骤S500A中的步骤。
计算状态转移概率向量
Figure PCTCN2017114667-appb-000019
其中
Figure PCTCN2017114667-appb-000020
是一个在{0,1}中的随机变量,具有对给定的
Figure PCTCN2017114667-appb-000021
的条件概率:
Figure PCTCN2017114667-appb-000022
以及
Figure PCTCN2017114667-appb-000023
步骤S600B,根据所述上一个时间步权重状态、所述当前时间步权重增量、所述状态转移方向、所述状态转移距离、所述状态转移概率、所述权重取值范围、所述离散权重状态个数,获取当前时间步权重状态。
具体的,根据上一个时间步权重状态Wi k,当前时间步权重增量ΔWi k、权重取值范围[-L,L],所述离散权重状态个数为(2N+1),获取到的状态转移方向函数Dk即离散后的权重值落在图5中的左边还是右边,获取到的状态转移概率
Figure PCTCN2017114667-appb-000024
即离散后的权重值落在图5中的哪 个取值上,包括:
根据所述状态转移方向函数Dk、所述状态转移概率和所述离散相邻状态距离值ΔzN,构建概率转移向量(Dk⊙Pk)·ΔzN,其中⊙代表按向量点积运算。
根据所述上一个时间步权重状态Wi k、所述当前时间步权重增量整步长κ、所述离散相邻状态距离值ΔzN和所述概率转移向量(Dk⊙Pk)·ΔzN,获取当前时间步权重状态Wi k+1
Figure PCTCN2017114667-appb-000025
明显的Wk+1也存在离散权重空间ZN
在本实施例中,进一步通过解析所述当前时间步权重增量函数,计算当前时间步权重增量余数;根据当前时间步权重增量的余数,获取状态转移概率值。通过得出的状态转移方向、状态转移距离以及状态转移概率值分别决定离散权重值的跳转方向、跳转距离和状态转移概率值,使得计算得出的离散权重,即符合离散化前的连续权重值密切相关,又能通过离散态直接跃迁从而满足始终离散化的需求,从而在保证了神经网络的计算精度的同时,大大减小虚拟连续态全精度隐含权重的存储,并降低了计算复杂度。
图4为一个实施例的神经网络权重离散化方法的流程示意图,如图4所示的神经网络权重离散化方法包括:
步骤S510B,根据所述当前时间步的权重增量的余数和离散相邻状态距离值,获取跃迁概率算子,所述离散相邻状态距离值根据所述权重取值范围和所述离散权重状态个数确定。
具体的,根据所述构建的权重取值范围[-L,L],和所述构建的离散权重状态个数(2N+1),是根据需求离散后的权重值的个数,采用ΔzN代表相邻状态(即相邻的两个离散后的权重值)的距离。即离散后的每个状态只可能转移到
Figure PCTCN2017114667-appb-000026
或者
Figure PCTCN2017114667-appb-000027
其中κi和vi由当前时间步权重增量ΔWi k定义,分别为ΔWi k的整步长部分和余数部分。
预设跃迁概率算子τ,根据跃迁概率算子τ和所述当前时间步权重增量分数值v,获取所述状态转移概率
Figure PCTCN2017114667-appb-000028
其中,
Figure PCTCN2017114667-appb-000029
即,根据所述当前时间步权重增量余数v和所述离散相邻状态距离值ΔzN,获取跃迁概率算子τ:
Figure PCTCN2017114667-appb-000030
步骤S520B,根据所述跃迁概率算子和所述余数,获取状态转移概率函数。
具体的,因此,当0≤τ(v)≤1时,获取所述状态转移概率值
Figure PCTCN2017114667-appb-000031
也可以应用非线性函数f(x)=tanh(m·x),因此
Figure PCTCN2017114667-appb-000032
其中tanh(m·x)的取值范围为从0到1,并且m是一个影响转移概率的参数。一个通用优化模型如下:
argminW E(W)
s.t.    Wi∈ZN
其中E(W)给出了在DNN中的代价函数,由应用决定。W是权重向量,其中的一个元素Wii=1,2,...,
Figure PCTCN2017114667-appb-000033
是ZN的一个状态。
Figure PCTCN2017114667-appb-000034
是变量W的维度。在DNN的在前向和反向过程中,将所有的状态始终约束在离散空间ZN,并通过最小化代价函数E(W)作为训练目标。
在深度神经网络中,假设在区间[-L,L]中训练权重/状态,那么离散权重空间(DWS Dispersed Weight Space)ZN是以下权重构成的组合,定义为:
Figure PCTCN2017114667-appb-000035
进一步定义
Figure PCTCN2017114667-appb-000036
Figure PCTCN2017114667-appb-000037
i≠j,并且
Figure PCTCN2017114667-appb-000038
对于一个均匀分布的随机变量wi,也就是说wi∈U[-L,L],存在一个唯一的n使得wi∈Ln。投影一个随机的变量wi∈U[-L,L]到ZN,即投影wi到离散状态(
Figure PCTCN2017114667-appb-000039
或者
Figure PCTCN2017114667-appb-000040
满足下列密度函数。
Figure PCTCN2017114667-appb-000041
Figure PCTCN2017114667-appb-000042
步骤S530B,根据所述状态转移概率函数和二值化采样法,获取状态转移概率。
具体的,通过蒙特卡洛方法采样元素到二进制数值,表示为
Figure PCTCN2017114667-appb-000043
其中,
Figure PCTCN2017114667-appb-000044
为状态转移概率值,且
Figure PCTCN2017114667-appb-000045
在本实施例中,根据所述状态转移概率函数和所述当前时间步权重增量的余数,计算状态转移概率向量;根据所述状态转移概率向量和二值化采样法,所获取所述状态转移概率, 与离散前的当前时间步权重增量余数值密切相关,使得神经网络离散后的权重状态分布在概率意义上更加精确地逼近原始的连续权重值,从而在保证了神经网络的计算精度的同时,完成了离散化的过程。
图6为一个实施例的神经网络权重离散化方法的简化实现图(假设κ=0),图6所示的神经网络权重离散化方法的简化实现中,
步骤S10,获取当前时间步的权重增量(由梯度下降法获得)。
具体的,为了更好的说明权重离散化的简单实现,进行了简化,假设κ=0,从而约束了离散状态转移的过程仅在相邻的状态中发生。离散化后的权重的状态转移通过状态转移方向和转移概率共同决定
步骤S20A,获取状态转移方向。
具体的,离散化后的权重的状态转移方向是权重增量的符号所决定的。特别的,正的权重增量允许转移朝着正的方向进行,负的权重增量转移相反的方向。零权重增量没有转移的作用。
步骤S20B,获取状态转移概率。
具体的,离散化后的权重的状态转移概率是正相关于权重增量的绝对值的,通过选定的步长和绝对值的计算,获取用于采样的状态转移概率。
步骤S21B,状态转移概率采样。
具体的,本实施例采用了二值化的采样算法,之后会被采样为0或者1。一个1值的采样结果代表产生了一个状态转移事件,而0值代表了没有状态转移事件发生。
步骤S30,获取权重离散化结果。
具体的,权重离散化的最终转移结果通过状态转移方向、转移概率的二值化采样结果和DWS中相邻状态之间的距离ΔzN的向量点积运算得到。
最近几年深度神经网络消耗了不可容忍的硬件资源、训练时间和能量,本揭露提出了一个统一的离散空间转换装置,通过引入离散态直接跃迁方法在整个训练过程中将权重约束到一个离散的权重空间,且具有灵活可配置的状态数。在离散状态间的转移降低了全精度权重的存储空间以及其它计算开销。给出的DST框架是硬件友好的,因为它可以被容易的配置用于各类内存设备,例如二值、三值或多值内存器件。这个工作为在各类便携设备中进行片上学***了道路。
本揭露提出了一个统一的离散状态转移(DST)装置。在此装置中,全精度空间中的连 续权重更新转变为在离散状态直接转移。从而大大降低了权重信息的存储开销以及运算复杂度,使得神经网络可以在移动设备上低成本运行。本揭露所提供的装置可在MNIST、CIFAR10和SVHN等数据集上获得较好的效果。另外,由于离散的状态数量可配置,因此可以用于多值内存设备(例如RRAM/PCRAM或者忆阻器),充分发挥这类器件的多值存储特性,由于用于神经网络的训练和推理时,权重一直都是离散的状态,因此可以显著降低或去除全精度权重外部存储器的使用。
图7为一个实施例的神经网络权重离散化***的结构示意图,如图7所示的神经网络权重离散化***包括:
权重离散空间构建模块100,用于获取权重取值范围和离散权重状态个数,所述权重取值范围是指由当前时间步最大权重值和当前时间步最小权重值组成的离散权重取值范围,所述离散权重状态个数是指离散权重的状态的个数。
权重值和权重增量获取模块200,用于获取上一个时间步权重状态和当前时间步权重增量;包括权重矩阵初始化单元,用于随机初始化权重状态;上一个时间步权重状态确定单元,用于根据所述随机初始化权重状态和前向输出误差进行计算,确定上一个时间步权重状态;
当前时间步权重增量获取单元,用于根据所述上一个时间步权重状态利用梯度算法获取当前时间步权重增量。
状态转移方向获取模块300,用于根据所述当前时间步权重增量,利用方向函数,获取状态转移方向。
分解函数计算模块300A,用于根据所述当前时间步权重增量、所述权重取值范围和所述离散权重状态个数,利用分解函数计算所述当前时间步的权重增量的整步长;还用于根据所述当前时间步权重增量、所述权重取值范围和所述离散权重状态个数,利用分解函数计算所述当前时间步的权重增量的余数。
状态转移距离确定模块400A,用于根据所述整步长确定状态转移距离。
状态转移概率确定模块400B,用于根据所述余数、所述权重取值范围和所述离散权重状态个数,确定状态转移概率;包括跃迁概率算子获取单元,用于根据所述当前时间步的权重增量的余数和离散相邻状态距离值,获取跃迁概率算子,所述离散相邻状态距离值根据所述权重取值范围和所述离散权重状态个数确定;状态转移概率函数获取单元,用于根据所述跃迁概率算子和所述余数,获取状态转移概率函数;状态转移概率获取单元,用于根据所述状态转移概率函数和二值化采样法,获取状态转移概率和跃迁事件采样结果。
当前时间步权重状态获取模块500,用于根据所述上一个时间步权重状态、所述当前时间步权重增量、所述状态转移方向、所述权重取值范围、所述离散权重状态个数,获取当前时间步权重状态。还用于根据所述上一个时间步权重状态、所述当前时间步权重增量、所述状态转移方向、所述状态转移距离、所述权重取值范围、所述离散权重状态个数,获取当前时间步权重状态。还用于根据所述上一个时间步权重状态、所述当前时间步权重增量、所述状态转移方向、所述状态转移距离、所述状态转移概率、所述权重取值范围、所述离散权重状态个数,获取当前时间步权重状态。
本揭露所提供的神经网络权重离散化***,通过给定一个离散态权重空间,在获取到的上一个时间步权重状态和当前时间步权重增量的基础上,计算在虚拟连续态空间中当前时间步权重的取值范围,获取状态转移的方向、最后根据所述上一个时间步权重状态、所述当前时间步权重增量、所述状态转移方向,获取当前时间步权重状态。本揭露所提供的权重离散化的计算方法,能够在给定的权重离散范围内,根据给定的离散权重状态个数,通过计算离散权重的转移方向、实现离散态空间的状态直接跃迁,确保权重值始终约束在同一个离散态空间中,而不需要存储额外的虚拟连续态全精度隐含权重,在保证神经网络的计算性能的前提下,大大减小存储空间的消耗并降低计算复杂度。通过随机初始化权重状态,给定权重离散化的范围后,通过给定的前向输出误差以及梯度算法,获取上一个时间步的权重状态和当前时间步权重增量,保证离散后的权重状态的精度。在获取状态转移方向的步骤之后,进一步通过分解函数计算当前时间步的权重增量的整步长,并根据所述整步长确定状态转移距离,最后根据所述上一个时间步权重状态、所述当前时间步权重增量、所述状态转移方向、所述状态转移距离、所述权重取值范围、所述离散权重状态个数,获取当前时间步权重状态。能够在给定的权重离散范围内,根据给定的离散权重状态个数,通过计算离散权重的转移方向、转移距离实现离散态空间的状态直接跃迁,确保权重值始终约束在同一个离散态空间中,且比仅考虑方向跃迁范围更大,而不需要存储额外的虚拟连续态隐含权重,在保证神经网络的计算性能的前提下,大大减小存储空间的消耗并降低计算复杂度。进一步通过解析所述当前时间步权重增量函数,计算当前时间步权重增量余数;根据当前时间步权重增量分数值,获取状态转移概率值。通过得出的状态转移方向、状态转移距离以及状态转移概率值分别决定离散权重值的转移方向、转移距离和状态转移概率值,使得计算得出的离散权重,即符合离散化前的连续权重值密切相关,又能通过离散态直接跃迁从而满足始终离散化的需求,从而在保证了神经网络的计算精度的同时,大大减小虚拟连续态隐含权重的存储,并降低了计算 复杂度。根据所述状态转移概率函数和所述当前时间步权重增量分数值,计算状态转移概率向量;根据所述状态转移概率向量和二值化采样法,所获取所述状态转移事件,与离散前的当前时间步权重增量分数值密切相关,使得神经网络离散后的权重状态分布在概率意义上更加精确地逼近原始的权重值,从而在保证了神经网络的计算精度的同时,完成了离散化的过程。
图8为一个实施例的神经网络权重离散化***的硬件示意图,如图8所示的神经网络权重离散化***,包括限幅处理器1,除法/余数计算器2,取绝对值器3,取符号器4,概率函数查找器5,蒙特卡洛采样器6,第一乘法器7,第一加法器8,第二乘法器9,所述***可对输入的全精度的权重变化量进行离散化的转换。图中的各种硬件处理器,均采用与之对应的功能处理硬件实现即可。
如图8所示的硬件连接关系为,限幅处理器1的输出连接到除法/余数计算器2的输入,除法/余数计算器2的除数输出连接到第一加法器8,除法/余数计算器2的余数输出连接到取绝对值器3和取符号器4的输入,取绝对值器3的输出连接到概率函数查找器5的输入,概率函数查找器5的输出连接到蒙特卡洛采样器6的输入,蒙特卡洛采样器6的输出连接到第一乘法器7的输入,取符号器4的输出也连接到第一乘法器7的输入,第一乘法器7的输出连接到第一加法器8的输入,第一加法器8的输出连接到第二乘法器9的输入。
本领域内的技术人员应明白,本申请的实施例可提供为方法、***、或计算机程序产品。因此,本申请可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本申请可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本申请是参照根据本申请实施例的方法、设备(***)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的 制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
以上所述实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。
以上所述实施例仅表达了本揭露的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本揭露构思的前提下,还可以做出若干变形和改进,这些都属于本揭露的保护范围。因此,本揭露专利的保护范围应以所附权利要求为准。

Claims (8)

  1. 一种神经网络权重离散化方法,其特征在于,所述方法包括:
    获取权重取值范围和离散权重状态个数,所述权重取值范围是指由当前时间步最大权重值和当前时间步最小权重值组成的离散权重取值范围,所述离散权重状态个数是指离散权重的状态的个数;
    获取上一个时间步权重状态和当前时间步权重增量;
    根据所述当前时间步权重增量,利用方向函数,获取状态转移方向;
    根据所述上一个时间步权重状态、所述当前时间步权重增量、所述状态转移方向、所述权重取值范围、所述离散权重状态个数,获取当前时间步权重状态。
  2. 根据权利要求1所述的神经网络权重离散化方法,其特征在于,所述获取上一个时间步权重状态和当前时间步权重增量,包括:
    随机初始化权重状态;
    根据所述随机初始化权重状态和前向输出误差进行计算,确定上一个时间步权重状态;
    根据所述上一个时间步权重状态利用梯度下降算法获取当前时间步权重增量。
  3. 根据权利要求1所述的神经网络权重离散化方法,其特征在于,在所述根据所述当前时间步权重增量,利用方向函数,获取状态转移方向的步骤之后,所述方法还包括:
    根据所述当前时间步权重增量、所述权重取值范围和所述离散权重状态个数,利用分解函数计算所述当前时间步的权重增量的整步长;
    根据所述整步长确定状态转移距离;
    则所述根据所述上一个时间步权重状态、所述当前时间步权重增量、所述状态转移方向、所述权重取值范围、所述离散权重状态个数,获取当前时间步权重状态,还包括:
    根据所述上一个时间步权重状态、所述当前时间步权重增量、所述状态转移方向、所述状态转移距离、所述权重取值范围、所述离散权重状态个数,获取当前时间步权重状态。
  4. 根据权利要求3所述的神经网络权重离散化方法,其特征在于,在利用分解函数计算所述当前时间步的权重增量的整步长的步骤之后,所述方法还包括:
    根据所述当前时间步权重增量、所述权重取值范围和所述离散权重状态个数,利用分解函数计算所述当前时间步的权重增量的余数;
    根据所述余数、所述权重取值范围和所述离散权重状态个数,确定状态转移概率;
    则所述根据所述上一个时间步权重状态、所述当前时间步权重增量、所述状态转移方 向、所述状态转移距离、所述权重取值范围、所述离散权重状态个数,获取当前时间步权重状态,还包括:
    根据所述上一个时间步权重状态、所述当前时间步权重增量、所述状态转移方向、所述状态转移距离、所述状态转移概率、所述权重取值范围、所述离散权重状态个数,获取当前时间步权重状态。
  5. 根据权利要求4所述的神经网络权重离散化方法,其特征在于,所述根据所述余数、所述权重取值范围和所述离散权重状态个数,确定状态转移概率,包括:
    根据所述当前时间步的权重增量的余数和离散相邻状态距离值,获取跃迁概率算子,所述离散相邻状态距离值根据所述权重取值范围和所述离散权重状态个数确定;
    根据所述跃迁概率算子和所述余数,获取状态转移概率函数;
    根据所述状态转移概率函数和二值化采样法,获取状态转移概率。
  6. 一种神经网络权重离散化***,其特征在于,包括:
    权重取值空间构建模块,用于获取权重取值范围和离散权重状态个数,所述权重取值范围是指由当前时间步最大权重值和当前时间步最小权重值组成的离散权重取值范围,所述离散权重状态个数是指离散权重的状态的个数;
    权重值和权重增量获取模块,用于获取上一个时间步权重状态和当前时间步权重增量;
    状态转移方向获取模块,用于根据所述当前时间步权重增量,利用方向函数,获取状态转移方向;
    当前时间步权重状态获取模块,用于根据所述上一个时间步权重状态、所述当前时间步权重增量、所述状态转移方向、所述权重取值范围、所述离散权重状态个数,获取当前时间步权重状态。
  7. 一种计算设备,所述计算设备包括处理器、存储器以及存储在所述存储器上的计算机指令,所述计算机指令在被所述处理器执行时实现权利要求1-5中任一项所述方法中的步骤。
  8. 一种可读存储介质,所述可读存储介质包括计算机指令,所述计算机指令在被处理器执行时实现权利要求1-5中任一项所述方法中的步骤。
PCT/CN2017/114667 2017-07-03 2017-12-05 神经网络权重离散化方法、***、设备和可读存储介质 WO2019006976A1 (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US16/477,464 US11537879B2 (en) 2017-07-03 2017-12-05 Neural network weight discretizing method, system, device, and readable storage medium

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201710530149.4 2017-07-03
CN201710530149.4A CN109214502B (zh) 2017-07-03 2017-07-03 神经网络权重离散化方法和***

Publications (1)

Publication Number Publication Date
WO2019006976A1 true WO2019006976A1 (zh) 2019-01-10

Family

ID=64950547

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CN2017/114667 WO2019006976A1 (zh) 2017-07-03 2017-12-05 神经网络权重离散化方法、***、设备和可读存储介质

Country Status (3)

Country Link
US (1) US11537879B2 (zh)
CN (1) CN109214502B (zh)
WO (1) WO2019006976A1 (zh)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11775611B2 (en) 2019-11-01 2023-10-03 Samsung Electronics Co., Ltd. Piecewise quantization for neural networks

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2018137412A1 (zh) 2017-01-25 2018-08-02 清华大学 神经网络信息接收方法、发送方法、***、设备及可读存储介质
CN110265002B (zh) * 2019-06-04 2021-07-23 北京清微智能科技有限公司 语音识别方法、装置、计算机设备及计算机可读存储介质
US11742901B2 (en) * 2020-07-27 2023-08-29 Electronics And Telecommunications Research Institute Deep learning based beamforming method and apparatus
CN113420919B (zh) * 2021-06-21 2023-05-05 郑州航空工业管理学院 基于无人机视觉感知的工程异常管控方法
CN113946604B (zh) * 2021-10-26 2023-01-20 网易有道信息技术(江苏)有限公司 分阶段围棋教学方法、装置、电子设备及存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7814038B1 (en) * 2007-12-06 2010-10-12 Dominic John Repici Feedback-tolerant method and device producing weight-adjustment factors for pre-synaptic neurons in artificial neural networks
CN102263636A (zh) * 2011-05-24 2011-11-30 浙江工业大学 一种融合神经网络与混沌映射的流密码密钥控制方法
CN106845632A (zh) * 2017-01-25 2017-06-13 清华大学 脉冲神经网络信息转换为人工神经网络信息的方法和***
CN106875003A (zh) * 2017-01-20 2017-06-20 清华大学 自适应泄漏值神经元信息处理方法和***

Family Cites Families (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4918618A (en) * 1988-04-11 1990-04-17 Analog Intelligence Corporation Discrete weight neural network
JP2955413B2 (ja) * 1991-11-12 1999-10-04 株式会社東芝 ニューラルネットワーク応用雨水流入量予測装置
KR20130090147A (ko) 2012-02-03 2013-08-13 안병익 신경망 컴퓨팅 장치 및 시스템과 그 방법
US9015096B2 (en) 2012-05-30 2015-04-21 Qualcomm Incorporated Continuous time spiking neural network event-based simulation that schedules co-pending events using an indexable list of nodes
CN104021420B (zh) * 2014-05-23 2017-07-04 电子科技大学 可编程离散霍普菲尔德网络电路
US20160026912A1 (en) * 2014-07-22 2016-01-28 Intel Corporation Weight-shifting mechanism for convolutional neural networks
CN104238427A (zh) * 2014-09-23 2014-12-24 浪潮电子信息产业股份有限公司 一种基于离散Hopfield神经网络的RTOS功耗优化方法
CN105654176B (zh) * 2014-11-14 2018-03-27 富士通株式会社 神经网络***及神经网络***的训练装置和方法
US10373050B2 (en) * 2015-05-08 2019-08-06 Qualcomm Incorporated Fixed point neural network based on floating point neural network quantization
US20160328645A1 (en) * 2015-05-08 2016-11-10 Qualcomm Incorporated Reduced computational complexity for fixed point neural network
CN105095961B (zh) 2015-07-16 2017-09-29 清华大学 一种人工神经网络和脉冲神经网络的混合***
CN105488563A (zh) * 2015-12-16 2016-04-13 重庆大学 面向深度学习的稀疏自适应神经网络、算法及实现装置
CN106056212B (zh) 2016-05-25 2018-11-23 清华大学 一种人工神经网络计算核
CN106483852B (zh) * 2016-12-30 2019-03-15 北京天恒长鹰科技股份有限公司 一种基于Q-Learning算法和神经网络的平流层飞艇控制方法
CN106909969B (zh) 2017-01-25 2020-02-21 清华大学 神经网络信息接收方法和***
CN106897768B (zh) 2017-01-25 2020-04-21 清华大学 神经网络信息发送方法和***

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7814038B1 (en) * 2007-12-06 2010-10-12 Dominic John Repici Feedback-tolerant method and device producing weight-adjustment factors for pre-synaptic neurons in artificial neural networks
CN102263636A (zh) * 2011-05-24 2011-11-30 浙江工业大学 一种融合神经网络与混沌映射的流密码密钥控制方法
CN106875003A (zh) * 2017-01-20 2017-06-20 清华大学 自适应泄漏值神经元信息处理方法和***
CN106845632A (zh) * 2017-01-25 2017-06-13 清华大学 脉冲神经网络信息转换为人工神经网络信息的方法和***

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11775611B2 (en) 2019-11-01 2023-10-03 Samsung Electronics Co., Ltd. Piecewise quantization for neural networks

Also Published As

Publication number Publication date
CN109214502B (zh) 2021-02-26
US20190362231A1 (en) 2019-11-28
US11537879B2 (en) 2022-12-27
CN109214502A (zh) 2019-01-15

Similar Documents

Publication Publication Date Title
Loni et al. DeepMaker: A multi-objective optimization framework for deep neural networks in embedded systems
WO2019006976A1 (zh) 神经网络权重离散化方法、***、设备和可读存储介质
Sarwar et al. Incremental learning in deep convolutional neural networks using partial network sharing
Wang et al. A high-speed and low-complexity architecture for softmax function in deep learning
CN108337000B (zh) 用于转换到较低精度数据格式的自动方法
CN109478144B (zh) 一种数据处理装置和方法
US20200193297A1 (en) System and method for binary recurrent neural network inferencing
US20200104715A1 (en) Training of neural networks by including implementation cost as an objective
US20170046614A1 (en) Accelerated tr-l-bfgs algorithm for neural network
US20170061279A1 (en) Updating an artificial neural network using flexible fixed point representation
Zhang et al. Structadmm: Achieving ultrahigh efficiency in structured pruning for dnns
Nazari et al. Tot-net: An endeavor toward optimizing ternary neural networks
Parsa et al. Pabo: Pseudo agent-based multi-objective bayesian hyperparameter optimization for efficient neural accelerator design
CN109903162B (zh) 一种加速区块链MCMC随机选择的ReRAM及其工作方法
Russo et al. DNN model compression for IoT domain-specific hardware accelerators
Liu et al. An unbiased mcmc fpga-based accelerator in the land of custom precision arithmetic
Liu et al. An exact MCMC accelerator under custom precision regimes
CN115357554A (zh) 一种图神经网络压缩方法、装置、电子设备及存储介质
Hill et al. Rethinking numerical representations for deep neural networks
Zhan et al. Field programmable gate array‐based all‐layer accelerator with quantization neural networks for sustainable cyber‐physical systems
Gross et al. Hardware-aware design for edge intelligence
George et al. IEEE 754 floating-point addition for neuromorphic architecture
Wang et al. Mfpc-net: Multi-fidelity physics-constrained neural process
Goel et al. CompactNet: High accuracy deep neural network optimized for on-chip implementation
Han et al. Diversity enhanced and local search accelerated gravitational search algorithm for data fitting with B-splines

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 17916926

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 17916926

Country of ref document: EP

Kind code of ref document: A1