CN105654176A - 神经网络系统及神经网络系统的训练装置和方法 - Google Patents

神经网络系统及神经网络系统的训练装置和方法 Download PDF

Info

Publication number
CN105654176A
CN105654176A CN201410647710.3A CN201410647710A CN105654176A CN 105654176 A CN105654176 A CN 105654176A CN 201410647710 A CN201410647710 A CN 201410647710A CN 105654176 A CN105654176 A CN 105654176A
Authority
CN
China
Prior art keywords
value
training
network system
nerve network
floating point
Prior art date
Legal status (The legal status 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 status listed.)
Granted
Application number
CN201410647710.3A
Other languages
English (en)
Other versions
CN105654176B (zh
Inventor
王淞
范伟
孙俊
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to CN201410647710.3A priority Critical patent/CN105654176B/zh
Publication of CN105654176A publication Critical patent/CN105654176A/zh
Application granted granted Critical
Publication of CN105654176B publication Critical patent/CN105654176B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Abstract

本发明涉及一种神经网络系统及神经网络系统的训练装置和方法。该神经网络系统包括:二值神经网络,二值神经网络被配置为当输入数据是二值数据时,将其直接输入二值神经网络,其中对于二值神经网络的每一层,通过对该层的节点的值和其对应的权重进行二值运算来得到下一层的节点,其中二值神经网络每层节点的值和其对应的权重都是二值数据。根据本发明的神经网络系统及其训练装置和方法,处理速度更快,占用存储空间更小。

Description

神经网络系统及神经网络系统的训练装置和方法
技术领域
本发明涉及信息处理领域,更具体地涉及一种神经网络系统及神经网络系统的训练装置和方法。
背景技术
近来,深度学习技术被广泛应用于分类及识别的任务。与其他传统方法相比,深度学习能够得到更高的识别率。然而,一个深度学习系统通常需要大量的计算资源以及存储空间,因此大部分深度学习的应用是使用服务器实现的,很难将其应用在独立设备上。
因此,需要一种能够节省计算资源的神经网络系统及该神经网络系统的训练装置和方法。
发明内容
在下文中给出关于本发明的简要概述,以便提供关于本发明的某些方面的基本理解。应当理解,这个概述并不是关于本发明的穷举性概述。它并不是意图确定本发明的关键或重要部分,也不是意图限定本发明的范围。其目的仅仅是以简化的形式给出某些概念,以此作为稍后论述的更详细描述的前序。
本发明的一个主要目的在于,提供一种神经网络系统,包括:二值神经网络,二值神经网络被配置为当输入数据是二值数据时,将其直接输入二值神经网络,其中对于二值神经网络的每一层,通过对该层的节点的值和其对应的权重进行二值运算来得到下一层的节点,其中二值神经网络每层节点的值和其对应的权重都是二值数据。
根据本发明的一个方面,提供了对上述神经网络系统进行训练的训练装置,包括:神经网络系统训练单元,被配置为通过梯度下降算法使用浮点数据来训练神经网络系统,其中,在二值神经网络的训练过程中,将下一层节点值随当前层节点值变化的离散函数近似为连续函数,用连续函数分别对当前层节点值以及对应的权重求偏导数;二值转换单元,被配置为在训练结束后将得到的浮点值的各个权重转换为二值数据。
根据本发明的再一个方面,提供了对上述神经网络系统进行训练的训练方法,包括:通过梯度下降算法使用浮点数据来训练神经网络系统,其中,在二值神经网络的训练过程中,将下一层节点值随当前层节点值变化的离散函数近似为连续函数,用连续函数分别对当前层节点值以及对应的权重求偏导数;在训练结束后将得到的浮点值的各个权重转换为二值数据。
另外,本发明的实施例还提供了用于实现上述方法的计算机程序。
此外,本发明的实施例还提供了至少计算机可读介质形式的计算机程序产品,其上记录有用于实现上述方法的计算机程序代码。
通过以下结合附图对本发明的最佳实施例的详细说明,本发明的这些以及其他优点将更加明显。
附图说明
参照下面结合附图对本发明实施例的说明,会更加容易地理解本发明的以上和其它目的、特点和优点。附图中的部件只是为了示出本发明的原理。在附图中,相同的或类似的技术特征或部件将采用相同或类似的附图标记来表示。
图1示出了根据本发明的一个实施例的神经网络系统100的示例性配置的框图;
图2示出了根据本发明的一个实施例的二值化深度神经网络模型的示意图;
图3示出了根据本发明的另一个实施例的神经网络系统100’的示例性配置的框图;
图4示出了根据本发明的一个实施例的混合二值深度神经网络模型的示意图;
图5示出了根据本发明的一个实施例的对神经网络系统进行训练的方法500的流程图;
图6A示出了下一层节点值随当前层节点值变化的离散函数的曲线图;
图6B示出了图6A中的离散函数的曲线图近似为连续函数的曲线图;
图7示出了根据本发明的一个实施例的对神经网络系统进行训练的训练装置700的示例性配置的框图;
图8是示出可以用于实施本发明的对神经网络系统进行训练的装置和方法的计算设备的示例性结构图。
具体实施方式
下面参照附图来说明本发明的实施例。在本发明的一个附图或一种实施方式中描述的元素和特征可以与一个或更多个其它附图或实施方式中示出的元素和特征相结合。应当注意,为了清楚的目的,附图和说明中省略了与本发明无关的、本领域普通技术人员已知的部件和处理的表示和描述。
本发明提出了一种二值化深度神经网络系统(BDNN),即该深度神经网络中的所有节点与计算均是二值化的。因此,相比传统的深度神经网络,BDNN能够节约大量的计算资源与存储空间并被应用于独立设备上。BDNN具有以下特点:
首先,在BDNN中,所有的网络节点均为二值数据。本发明同时设计了对应的线性二值化计算。通过这些,网络的前向传播中将基本只包含二值化计算。在传统深度神经网络中,这些计算都是浮点计算。显然,在进行识别任务时BDNN能够节省更多的计算资源。
其次,本发明同时为BDNN设计了训练方法。在训练中,本发明将二值化的节点转换为浮点值。通过这样做,传统的梯度下降算法将能够用于训练BDNN。同时,虽然在训练中各个节点为浮点值,但是整个网络的前向传播结果与二值化时保持一致。
BDNN是深度神经网络的一种,因此它满足深度神经网络的基本定义。根据定义,一个深度神经网络需要包含线性和非线性计算。在BDNN中,这两种计算结合在神经网络的基本运算中:使用本层多个神经元节点通过运算来得到下一层的某个节点。
下面将结合附图来具体说明根据本发明的一个实施例的神经网络系统。
图1示出了根据本发明的一个实施例的神经网络系统100的示例性配置的框图。
如图1所示,神经网络系统100包括二值神经网络102,二值神经网络102被配置为如果输入数据是二值数据,则将其直接输入二值神经网络,其中对于二值神经网络的每一层,通过对该层的节点的值和其对应的权重进行二值运算来得到下一层的节点,其中二值神经网络每层节点的值和其对应的权重都是二值数据。
图2示出了根据本发明的一个实施例的二值化深度神经网络模型的示意图。如图2所示,假设表示神经网络中某一层的几个节点,它们都与下一层的节点y相连。令表示对应连接的权重。因为所有的节点都为二值数据,可以用1和-1表示二值的两个取值,那么就有
本领域技术人员可以理解,二值数据的两个取值不限于1和-1,也可以例如是1和0,或者其他二值数据,为了方便说明,下文中都以二值数据取值为1和-1来进行说明。
这里通过函数f来计算y的值,其中包含了线性及非线性运算。在一个实施例中,可以定义运算:
x × w = x ⊕ w 或者 x ⊕ w ‾
其中代表了二值数据的异或运算。对于某个x和w,共有四种取值情况:
x,w={-1,-1},{-1,1},{1,-1},{1,1}。
如果用作为例子,则x×w将针对不同的取值情况产生两种结果:
x×w=1,-1,-1,1。
很明显,对于四种取值情况,两种结果是均衡的,-1和1各有两个结果。然后,如果把-1和1当成整数并可以进行加减运算,则可以定义:
x → · w → = Σ i = 1 n x i × w i
最后,f可以写作:
明显地,函数y最后的结果依然是一个二值数据,属于{-1,1}。通过f可以看出,是线性运算部分,而其中的函数分段部分则可视为非线性运算。事实上,f起到的作用是在{x1×w1,x2×w2,x3×w3,…,xn×wn}中清点-1和1的个数并返回其中数量较多的那个。
通过上述BDNN的基本运算(1),可以设计不同的网络结构来构建BDNN,比如全连接的神经网络,卷积神经网络等。
上面说明了根据本发明的一个实施例的神经网络系统在输入数据是二值数据的情况下所进行的处理,如果神经网络的输入数据不是二值数据,比如灰度图像等,那么输入数据首先需要转换为二值数据。
图3示出了根据本发明的另一个实施例的神经网络系统100’的示例性配置的框图。神经网络系统100’可以对非二值的输入数据进行处理。由于这样的网络需要同时使用二值运算以及浮点运算,可以称之为混合二值深度神经网络(混合BDNN)。
如图3所示,神经网络系统100’包括普通神经网络104(低层次)、转换部分106和二值神经网络102(高层次)。
在普通神经网络104部分中,所有的节点及权重均为浮点值;在二值神经网络102部分中,所有的节点及权重值为二值数据;这两个部分通过转换部分106连结在一起。
在输入数据是非二值数据的情况下,首先将输入数据输入到普通神经网络104中,对于普通神经网络的每一层,通过对该层的节点的值和其对应的权重进行浮点运算来得到下一层的节点。
转换部分106被配置为将普通神经网络104的输出的浮点值转换为二值数据以输入到二值神经网络102进行处理。
神经网络系统100’中包括的二值神经网络102进行的处理与上面所述的神经网络系统100中所包括的二值神经网络102进行处理相同,在此不再赘述。
图4示出了根据本发明的一个实施例的混合二值深度神经网络模型的示意图。
在图4的转换部分中,为浮点值,为二值数据。在转换部分中,定义函数t来通过计算x。首先,假设x'1是通过得到的普通神经网络输出,A是激励函数,那么根据一般神经网络的运算规则,可以得到:
x ′ 1 = A ( g → · w → ) = A ( Σ i = 1 n g i w i ) .
可以通过一个阈值T来简单地计算x1
本领域技术人员可以理解,x1的二值量不限于1和-1,也可以例如是1和0,或者其他值。
最终,函数t可以写为:
通常,激励函数是关于x轴对称的,例如可以是sigmoid、hyperbolictangent等,因此,在一个实施例中,可以简单地定义T=0。
这样,在转换部分中,通过转换函数t将普通神经网络输出的浮点值转换为二值数据,再将转换后的二值数据输入到二值神经网络中,就可以按照上面结合图1和图2所述的二值神经网络102对二值数据的处理过程来进行处理了。
综上所述,通过使用BDNN和混合BDNN,能够处理各种不同的分类问题,无论输入数据是否是二值数据。如果输入数据是二值数据,则可以直接使用BDNN;如果输入数据是非二值数据,则可以使用混合BDNN。
下面,将结合附图,说明根据本发明的一个实施例对神经网络系统进行训练的方法。
图5示出了根据本发明的一个实施例的对神经网络系统进行训练的方法500的流程图。
绝大部分的深度神经网络是通过梯度下降算法来进行训练的。在本发明中,同样使用了梯度下降算法来进行训练。然而,由于BDNN中所有的节点以及权重均为二值数据,因此在梯度下降中无法对权重进行微调。考虑上述问题,本发明在训练中将使用浮点值来代替二值数据,
在一个实施例中,可以用这些浮点值的正负属性来表示二值量的两个状态。定义转换函数C:
通过公式(3),可以把训练中使用的浮点值转换为相对应的二值数据。本领域技术人员可以理解,二值量不限于1和-1,也可以例如是1和0,或者其它值。在这里,转换阈值被设定为0,本领域技术人员可以理解,阈值也可以是0以外的其它值。
要注意的是,在使用浮点值代替二值数据后,要保证整个网络的前向传播结果不变。也就是说,在训练过程中,网络的基本运算的结果要与二值化时保持一致。令x,w,y表示二值数据,x',w',y'表示在训练过程中使用的对应浮点值,则可以得到:
C(x')=x,C(w')=w(4)
因此,可以定义训练时的基本运算f'为:
y ′ = f ′ ( x → ′ , w → ′ ) = Σ i = 1 n x ′ i w ′ i | x ′ i w ′ i | n - - - ( 5 )
在公式(1)中,函数f清点{x1×w1,x2×w2,x3×w3,…,xn×wn}中的-1和1数量并返回其中数量较多的那个。在公式(5)中,如果{x’1w’1,x’2w’2,x’3w’3,…,x’nw’n}中负数的个数少于正数的个数,则y'是一个正数;反之,y'则是一个负数。明显地,因为公式(4),我们有:
f ( x → , w → ) = C ( f ′ ( x → ′ , w → ′ ) ) .
然后可以推出:
C(y')=y。
总而言之,在训练过程中,如果各个浮点值通过函数C转换后与BDNN的对应值相等,则公式(5)的计算结果将于BDNN的基本运算结果保持一致。通过公式(5),尽管训练中使用了浮点值来取代二值数据,但是可以保证最终的前向传播结果相等。
因此,在根据本发明的一个实施例对神经网络系统进行训练的方法中,首先通过浮点值来对BDNN进行训练;训练结束后,再通过转换函数(3)将各个浮点的权值转换为二值数据,这样就可以得到一个训练好的BDNN。
下面说明根据本发明的一个实施例对神经网络系统进行训练的方法500的具体步骤。
在步骤S502中,应用梯度下降算法使用浮点数据来训练神经网络系统,在对二值神经网络的训练的过程中,首先需要定义两个偏导数的计算: ∂ y ′ ∂ x ′ ∂ y ′ ∂ w ′ .
对于某个节点x'k和其对应的权重w'k(假设w'k>0),令L表示:
L = Σ i = 1 , i ≠ k n x ′ i w ′ i | x ′ i w ′ i | n
则可以得到: y , = L + x ′ k w ′ k n | x ′ k w ′ k |
因为L和x'k是相互独立的,因此可以画出y’随x'k变化的曲线,如图6A所示。可以看到,该曲线是一个离散函数,并不是连续的,因此这里使用图6B所示的曲线作为图6A中的离散曲线的近似。如果w'k>0,则其近似曲线如图6B所示;如果w'k<0,则近似曲线的斜率取反。
本领域技术人员可以理解,图6A中的曲线不仅可以近似为图6B中的曲线,也可以近似为其它连续函数,例如Sigmoid函数等。
用图6B中的曲线函数来求偏导数,可以得到:
&PartialD; y &prime; &PartialD; x &prime; k = 2 w &prime; k n | w &prime; k | - - - ( 6 )
同样,由于f’中的x’和w’是对称的,因此有:
&PartialD; y &prime; &PartialD; w &prime; k = 2 x &prime; k n | x &prime; k | - - - ( 7 )
通过等式(6)和(7),可以使用梯度下降算法来训练浮点化的BDNN。
容易理解,对于如图4所示的混合BDNN,可以使用梯度下降算法来训练其中的普通深度神经网络以及BDNN的部分。然而,对于转化部分,需要进一步考虑其训练方法。
首先,在训练过程中,二值数据被浮点值所替代,对于基于二值数据的f,定义一个基于浮点的f’用来计算y’。同样地,对于函数t,必须定义一个t’满足:
t ( g &RightArrow; , w &RightArrow; ) = c ( t &prime; ( g &RightArrow; , w &RightArrow; ) ) .
容易得知,t’可以定义为:
t &prime; ( g &RightArrow; , w &RightArrow; ) = A ( g &RightArrow; , w &RightArrow; ) = A ( &Sigma; i = 1 n g i w i ) - - - ( 8 )
事实上,t'恰好是激励函数A。然后,令x'1表示x1对应的浮点值,由于显然地,可以通过下式计算梯度下降算法的两个偏导数:
&PartialD; x &prime; 1 &PartialD; g = &PartialD; A ( g &RightArrow; , w &RightArrow; ) &PartialD; g , &PartialD; x &prime; 1 &PartialD; w = &PartialD; A ( g &RightArrow; &CenterDot; w &RightArrow; ) &PartialD; w ,
可以看到,这两个偏导数的计算公式与普通的神经网络中求偏导数的计算公式恰好一样,因此,混合BDNN中的转化部分的训练可以采用普通神经网络的训练方法来进行。
通过上述步骤S502,无论是BDNN还是混合BDNN,都可以利用梯度下降算法来训练神经网络,得到浮点值的权重。
在步骤S504中,将训练得到的浮点值的各个权重转换为二值数据。这样就得到了一个训练好的BDNN。
还要注意的一点是,在训练过程中梯度下降算法的输出层误差计算。假设y是输出层的一个节点,yT是其对应的真值,e是误差。在一般的神经网络中,对于每一个输出节点,常用的误差计算公式为:然而,对于BDNN来说,如果也这样进行误差计算,则网络将很难收敛。因此,可以使用如下的公式来进行误差计算:
上式(9)表明,如果y和其对应的yT正负相同,则其误差e为0;否则,误差计算符合一般神经网络的通用的误差计算。通过式(9),BDNN将会在训练过程中收敛。
本领域技术人员可以理解,神经网络中通用的误差计算不限于计算公式:也可以采用其它公式来计算误差。
通过上述的训练方法,能够利用梯度下降算法来成功训练得到根据本发明的BDNN以及混合BDNN。
图7示出了根据本发明的一个实施例的对神经网络系统进行训练的训练装置700的示例性配置的框图。
如图7所示,训练装置700包括神经网络系统训练单元702和二值转换单元704。
神经网络系统训练单元702可以通过梯度下降算法使用浮点数据来训练神经网络系统,其中,在二值神经网络的训练过程中,将下一层节点值随当前层节点值变化的离散函数近似为连续函数,用连续函数分别对当前层节点值以及对应的权重求偏导数。
二值转换单元704可以在训练结束后将得到的浮点值的各个权重转换为二值数据。
关于对神经网络系统进行训练的训练装置700的各个部分的操作和功能的细节可以参照结合图5-6描述的对神经网络系统进行训练的训练方法的实施例,这里不再详细描述。
在此需要说明的是,图7所示的对神经网络系统进行训练的训练装置及其组成单元的结构仅仅是示例性的,本领域技术人员可以根据需要对图7所示的结构框图进行修改。
本发明提出一种全新的二值化深度神经网络以及对其进行训练的训练装置和方法。与传统深度神经网络相比,本发明的方法更加快速,占用存储空间更小。
以上结合具体实施例描述了本发明的基本原理,但是,需要指出的是,对本领域的普通技术人员而言,能够理解本发明的方法和装置的全部或者任何步骤或者部件,可以在任何计算装置(包括处理器、存储介质等)或者计算装置的网络中,以硬件、固件、软件或者它们的组合加以实现,这是本领域普通技术人员在阅读了本发明的说明的情况下运用他们的基本编程技能就能实现的。
因此,本发明的目的还可以通过在任何计算装置上运行一个程序或者一组程序来实现。所述计算装置可以是公知的通用装置。因此,本发明的目的也可以仅仅通过提供包含实现所述方法或者装置的程序代码的程序产品来实现。也就是说,这样的程序产品也构成本发明,并且存储有这样的程序产品的存储介质也构成本发明。显然,所述存储介质可以是任何公知的存储介质或者将来所开发出来的任何存储介质。
在通过软件和/或固件实现本发明的实施例的情况下,从存储介质或网络向具有专用硬件结构的计算机,例如图8所示的通用计算机800安装构成该软件的程序,该计算机在安装有各种程序时,能够执行各种功能等等。
在图8中,中央处理单元(CPU)801根据只读存储器(ROM)802中存储的程序或从存储部分808加载到随机存取存储器(RAM)803的程序执行各种处理。在RAM803中,也根据需要存储当CPU801执行各种处理等等时所需的数据。CPU801、ROM802和RAM803经由总线804彼此链路。输入/输出接口805也链路到总线804。
下述部件链路到输入/输出接口805:输入部分806(包括键盘、鼠标等等)、输出部分807(包括显示器,比如阴极射线管(CRT)、液晶显示器(LCD)等,和扬声器等)、存储部分808(包括硬盘等)、通信部分809(包括网络接口卡比如LAN卡、调制解调器等)。通信部分809经由网络比如因特网执行通信处理。根据需要,驱动器810也可链路到输入/输出接口805。可拆卸介质811比如磁盘、光盘、磁光盘、半导体存储器等等根据需要被安装在驱动器810上,使得从中读出的计算机程序根据需要被安装到存储部分808中。
在通过软件实现上述系列处理的情况下,从网络比如因特网或存储介质比如可拆卸介质811安装构成软件的程序。
本领域的技术人员应当理解,这种存储介质不局限于图8所示的其中存储有程序、与设备相分离地分发以向用户提供程序的可拆卸介质811。可拆卸介质811的例子包含磁盘(包含软盘(注册商标))、光盘(包含光盘只读存储器(CD-ROM)和数字通用盘(DVD))、磁光盘(包含迷你盘(MD)(注册商标))和半导体存储器。或者,存储介质可以是ROM802、存储部分808中包含的硬盘等等,其中存有程序,并且与包含它们的设备一起被分发给用户。
本发明还提出一种存储有机器可读取的指令代码的程序产品。指令代码由机器读取并执行时,可执行上述根据本发明实施例的方法。
相应地,用于承载上述存储有机器可读取的指令代码的程序产品的存储介质也包括在本发明的公开中。存储介质包括但不限于软盘、光盘、磁光盘、存储卡、存储棒等。
本领域的普通技术人员应理解,在此所例举的是示例性的,本发明并不局限于此。
在本说明书中,“第一”、“第二”以及“第N个”等表述是为了将所描述的特征在文字上区分开,以清楚地描述本发明。因此,不应将其视为具有任何限定性的含义。
作为一个示例,上述方法的各个步骤以及上述设备的各个组成模块和/或单元可以实施为软件、固件、硬件或其组合,并作为相应设备中的一部分。上述装置中各个组成模块、单元通过软件、固件、硬件或其组合的方式进行配置时可使用的具体手段或方式为本领域技术人员所熟知,在此不再赘述。
作为一个示例,在通过软件或固件实现的情况下,可以从存储介质或网络向具有专用硬件结构的计算机(例如图8所示的通用计算机800)安装构成该软件的程序,该计算机在安装有各种程序时,能够执行各种功能等。
在上面对本发明具体实施例的描述中,针对一种实施方式描述和/或示出的特征可以以相同或类似的方式在一个或更多个其他实施方式中使用,与其他实施方式中的特征相组合,或替代其他实施方式中的特征。
应该强调,术语“包括/包含”在本文使用时指特征、要素、步骤或组件的存在,但并不排除一个或更多个其他特征、要素、步骤或组件的存在或附加。
此外,本发明的方法不限于按照说明书中描述的时间顺序来执行,也可以按照其他的时间顺序地、并行地或独立地执行。因此,本说明书中描述的方法的执行顺序不对本发明的技术范围构成限制。
本发明及其优点,但是应当理解在不超出由所附的权利要求所限定的本发明的精神和范围的情况下可以进行各种改变、替代和变换。而且,本发明的范围不仅限于说明书所描述的过程、设备、手段、方法和步骤的具体实施例。本领域内的普通技术人员从本发明的公开内容将容易理解,根据本发明可以使用执行与在此的相应实施例基本相同的功能或者获得与其基本相同的结果的、现有和将来要被开发的过程、设备、手段、方法或者步骤。因此,所附的权利要求旨在在它们的范围内包括这样的过程、设备、手段、方法或者步骤。
基于以上的说明,可知公开至少公开了以下技术方案:
附记1、一种神经网络系统,包括:
二值神经网络,所述二值神经网络被配置为当输入数据是二值数据时,将其直接输入所述二值神经网络,其中对于所述二值神经网络的每一层,通过对该层的节点的值和其对应的权重进行二值运算来得到下一层的节点,其中所述二值神经网络每层节点的值和其对应的权重都是二值数据。
附记2、根据附记1所述的神经网络系统,还包括:
普通神经网络,被配置为当所述输入数据是非二值数据时,首先将其输入所述普通神经网络,其中对于所述普通神经网络的每一层,通过对该层的节点的值和其对应的权重进行浮点运算来得到下一层的节点;以及
转换部分,被配置为将所述普通神经网络输出的浮点值转换为二值数据以输入到所述二值神经网络进行处理。
附记3、根据附记1所述的神经网络系统,其中,所述二值运算包括异或运算或者同或运算。
附记4、根据附记2所述的神经网络系统,其中,所述转换部分通过以下方式对所述普通神经网络输出的浮点值进行转换:当所输出的浮点值大于或等于预定阈值时,将该浮点值转换为第一值,当所输出的浮点值小于预定阈值时,则将该浮点值转换为第二值。
附记5、根据附记1所述的神经网络系统,其中,在所述二值神经网络中,所述节点的值和其对应权重进行的基本运算为:统计各个节点值与其对应的权重进行二值运算的结果中第一值和第二值的个数,当所述第一值的个数大于所述第二值的个数时,则运算结果是所述第一值,反之运算结果是所述第二值。
附记6、根据附记1所述的神经网络系统,其中,所述神经网络系统是利用不同的网络结构来构建的,包括全连接的神经网络、卷积神经网络。
附记7、一种对根据附记1-6所述的神经网络系统进行训练的训练装置,包括:
神经网络系统训练单元,被配置为通过梯度下降算法使用浮点数据来训练神经网络系统,其中,在所述二值神经网络的训练过程中,将下一层节点值随当前层节点值变化的离散函数近似为连续函数,用所述连续函数分别对当前层节点值以及对应的权重求偏导数;
二值转换单元,被配置为在训练结束后将得到的浮点值的各个权重转换为二值数据。
附记8、根据附记7所述的装置,其中,所述二值转换单元通过以下方式将浮点值的各个权重转换为二值数据:当权重大于或等于预定阈值时,将该权重转换为第一值,当权重小于预定阈值时,则将该权重转换为第二值。
附记9、根据附记7所述的装置,其中,
在所述训练过程中对浮点值进行的基本运算与用二值数据进行的基本运算的结果保持一致。
附记10、根据附记7所述的装置,其中,所述训练中的输出层误差为:当输出层节点值和其对应的真值符号相同时,误差为零,当输出层节点值和其对应的真值符号不同时,则用通用的误差计算方法来计算误差。
附记11、根据附记10所述的装置,其中,当输出层节点值和其对应的真值符号不同时,误差为
附记12、根据附记7所述的装置,其中,所述神经网络系统的转换部分的训练方法恰好与采用浮点运算的现有神经网络模型的训练方法相同。
附记13、根据附记7所述的装置,其中,所述神经网络系统是利用不同的网络结构来构建的,包括全连接的神经网络、卷积神经网络。
附记14、一种对根据附记1-6所述的神经网络系统进行训练的训练方法,包括:
通过梯度下降算法使用浮点数据来训练神经网络系统,其中,在所述二值神经网络的训练过程中,将下一层节点值随当前层节点值变化的离散函数近似为连续函数,用所述连续函数分别对当前层节点值以及对应的权重求偏导数;
在训练结束后将得到的浮点值的各个权重转换为二值数据。
附记15、根据附记14所述的方法,其中,通过以下方式将浮点值的各个权重转换为二值数据:当权重大于或等于预定阈值时,将该权重转换为第一值,当权重小于预定阈值时,则将该权重转换为第二值。
附记16、根据附记14所述的方法,其中,
在所述训练过程中对浮点值进行的基本运算与用二值数据进行的基本运算的结果保持一致。
附记17、根据附记14所述的方法,其中,所述训练中的输出层误差为:当输出层节点值和其对应的真值符号相同时,误差为零,当输出层节点值和其对应的真值符号不同时,则用通用的误差计算方法来计算误差。
附记18、根据附记17所述的方法,其中,当输出层节点值和其对应的真值符号不同时,误差为
附记19、根据附记14所述的方法,其中,所述神经网络系统的转换部分元的训练方法恰好与采用浮点运算的现有神经网络模型的训练方法相同。
附记20、根据附记14所述的方法,其中,所述神经网络系统是利用不同的网络结构来构建的,包括全连接的神经网络、卷积神经网络。

Claims (10)

1.一种神经网络系统,包括:
二值神经网络,所述二值神经网络被配置为当输入数据是二值数据时,将其直接输入所述二值神经网络,其中对于所述二值神经网络的每一层,通过对该层的节点的值和其对应的权重进行二值运算来得到下一层的节点,其中所述二值神经网络每层节点的值和其对应的权重都是二值数据。
2.根据权利要求1所述的神经网络系统,还包括:
普通神经网络,被配置为当所述输入数据是非二值数据时,首先将其输入所述普通神经网络,其中对于所述普通神经网络的每一层,通过对该层的节点的值和其对应的权重进行浮点运算来得到下一层的节点;以及
转换部分,被配置为将所述普通神经网络输出的浮点值转换为二值数据以输入到所述二值神经网络进行处理。
3.根据权利要求1所述的神经网络系统,其中,所述二值运算包括异或运算或者同或运算。
4.根据权利要求2所述的神经网络系统,其中,所述转换部分通过以下方式对所述普通神经网络输出的浮点值进行转换:当所输出的浮点值大于或等于预定阈值时,将该浮点值转换为第一值,当所输出的浮点值小于预定阈值时,则将该浮点值转换为第二值。
5.根据权利要求1所述的神经网络系统,其中,在所述二值神经网络中,所述节点的值和其对应权重进行的基本运算为:统计各个节点值与其对应的权重进行二值运算的结果中第一值和第二值的个数,当所述第一值的个数大于所述第二值的个数时,运算结果是所述第一值,反之运算结果是所述第二值。
6.一种对根据权利要求1-5所述的神经网络系统进行训练的训练装置,包括:
神经网络系统训练单元,被配置为通过梯度下降算法使用浮点数据来训练神经网络系统,其中,在所述二值神经网络的训练过程中,将下一层节点值随当前层节点值变化的离散函数近似为连续函数,用所述连续函数分别对当前层节点值以及对应的权重求偏导数;
二值转换单元,被配置为在训练结束后将得到的浮点值的各个权重转换为二值数据。
7.根据权利要求6所述的装置,其中,所述二值转换单元通过以下方式将浮点值的各个权重转换为二值数据:当权重大于或等于预定阈值时,则将该权重转换为第一值,当权重小于预定阈值时,则将该权重转换为第二值。
8.根据权利要求6所述的装置,其中,
在所述训练过程中对浮点值进行的基本运算与用二值数据进行的基本运算的结果保持一致。
9.根据权利要求6所述的装置,其中,所述训练中的输出层误差为:当输出层节点值和其对应的真值符号相同时,误差为零,当输出层节点值和其对应的真值符号不同时,则用通用的误差计算方法来计算误差。
10.一种对根据权利要求1-5所述的神经网络系统进行训练的训练方法,包括:
通过梯度下降算法使用浮点数据来训练神经网络系统,其中,在所述二值神经网络的训练过程中,将下一层节点值随当前层节点值变化的离散函数近似为连续函数,用所述连续函数分别对当前层节点值以及对应的权重求偏导数;
在训练结束后将得到的浮点值的各个权重转换为二值数据。
CN201410647710.3A 2014-11-14 2014-11-14 神经网络系统及神经网络系统的训练装置和方法 Active CN105654176B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410647710.3A CN105654176B (zh) 2014-11-14 2014-11-14 神经网络系统及神经网络系统的训练装置和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410647710.3A CN105654176B (zh) 2014-11-14 2014-11-14 神经网络系统及神经网络系统的训练装置和方法

Publications (2)

Publication Number Publication Date
CN105654176A true CN105654176A (zh) 2016-06-08
CN105654176B CN105654176B (zh) 2018-03-27

Family

ID=56479841

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410647710.3A Active CN105654176B (zh) 2014-11-14 2014-11-14 神经网络系统及神经网络系统的训练装置和方法

Country Status (1)

Country Link
CN (1) CN105654176B (zh)

Cited By (16)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN106611216A (zh) * 2016-12-29 2017-05-03 北京旷视科技有限公司 基于神经网络的计算方法及装置
CN106855952A (zh) * 2016-12-29 2017-06-16 北京旷视科技有限公司 基于神经网络的计算方法及装置
CN107769801A (zh) * 2017-10-16 2018-03-06 成都市深思创芯科技有限公司 一种基于神经网络的提升射频接收机中频信噪比的方法
CN108256638A (zh) * 2018-01-05 2018-07-06 上海兆芯集成电路有限公司 微处理器电路以及执行神经网络运算的方法
CN108256644A (zh) * 2018-01-05 2018-07-06 上海兆芯集成电路有限公司 微处理器电路以及执行神经网络运算的方法
CN108509179A (zh) * 2018-04-04 2018-09-07 百度在线网络技术(北京)有限公司 用于生成模型的方法和装置
WO2018205708A1 (zh) * 2017-05-08 2018-11-15 中国科学院计算技术研究所 应用于二值权重卷积网络的处理系统及方法
CN108875919A (zh) * 2017-07-21 2018-11-23 北京旷视科技有限公司 数据处理装置、数据处理方法和存储介质产品
CN109214502A (zh) * 2017-07-03 2019-01-15 清华大学 神经网络权重离散化方法和系统
CN109308517A (zh) * 2018-09-07 2019-02-05 中国科学院计算技术研究所 面向二值神经网络的二值化装置、方法及应用
WO2019037409A1 (zh) * 2017-08-22 2019-02-28 华为技术有限公司 神经网络训练系统、方法和计算机可读存储介质
CN110298443A (zh) * 2016-09-29 2019-10-01 北京中科寒武纪科技有限公司 神经网络运算装置及方法
CN112020723A (zh) * 2018-05-23 2020-12-01 富士通株式会社 用于语义分割的分类神经网络的训练方法及装置、电子设备
WO2020243922A1 (en) * 2019-06-05 2020-12-10 Intel Corporation Automatic machine learning policy network for parametric binary neural networks
CN113557536A (zh) * 2019-04-25 2021-10-26 欧姆龙株式会社 学习系统、数据生成装置、数据生成方法及数据生成程序
WO2022052358A1 (zh) * 2020-09-09 2022-03-17 生物岛实验室 心电异常检测网络训练方法、心电异常预警方法及装置

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5926804A (en) * 1994-07-01 1999-07-20 The Board Of Governors For Higher Education, State Of Rhode Island And Providence Plantations Discriminant neural networks
NZ537623A (en) * 2002-07-04 2006-09-29 Ronald E Kates Method for training a learning-capable system
CN101719885A (zh) * 2009-11-27 2010-06-02 南京邮电大学 基于离散全反馈神经网络的多电平信号盲检测方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5926804A (en) * 1994-07-01 1999-07-20 The Board Of Governors For Higher Education, State Of Rhode Island And Providence Plantations Discriminant neural networks
NZ537623A (en) * 2002-07-04 2006-09-29 Ronald E Kates Method for training a learning-capable system
CN101719885A (zh) * 2009-11-27 2010-06-02 南京邮电大学 基于离散全反馈神经网络的多电平信号盲检测方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
刘丙杰等: ""基于二进制神经网络集成的潜在通路分析"", 《系统工程与电子技术》 *
吕阳鹏等: ""二进制互连神经网络的遗传演化"", 《北京化工大学学报(自然科学版)》 *
朱大铭: ""二进制神经网络分类问题的几何学习算法"", 《软件学报》 *

Cited By (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110298443A (zh) * 2016-09-29 2019-10-01 北京中科寒武纪科技有限公司 神经网络运算装置及方法
CN110298443B (zh) * 2016-09-29 2021-09-17 中科寒武纪科技股份有限公司 神经网络运算装置及方法
CN106855952A (zh) * 2016-12-29 2017-06-16 北京旷视科技有限公司 基于神经网络的计算方法及装置
CN106855952B (zh) * 2016-12-29 2020-08-18 北京旷视科技有限公司 基于神经网络的计算方法及装置
CN106611216A (zh) * 2016-12-29 2017-05-03 北京旷视科技有限公司 基于神经网络的计算方法及装置
US11551068B2 (en) 2017-05-08 2023-01-10 Institute Of Computing Technology, Chinese Academy Of Sciences Processing system and method for binary weight convolutional neural network
WO2018205708A1 (zh) * 2017-05-08 2018-11-15 中国科学院计算技术研究所 应用于二值权重卷积网络的处理系统及方法
CN109214502B (zh) * 2017-07-03 2021-02-26 清华大学 神经网络权重离散化方法和系统
CN109214502A (zh) * 2017-07-03 2019-01-15 清华大学 神经网络权重离散化方法和系统
CN108875919B (zh) * 2017-07-21 2021-04-02 北京旷视科技有限公司 数据处理装置、数据处理方法和存储介质产品
CN108875919A (zh) * 2017-07-21 2018-11-23 北京旷视科技有限公司 数据处理装置、数据处理方法和存储介质产品
WO2019037409A1 (zh) * 2017-08-22 2019-02-28 华为技术有限公司 神经网络训练系统、方法和计算机可读存储介质
CN107769801A (zh) * 2017-10-16 2018-03-06 成都市深思创芯科技有限公司 一种基于神经网络的提升射频接收机中频信噪比的方法
CN108256644A (zh) * 2018-01-05 2018-07-06 上海兆芯集成电路有限公司 微处理器电路以及执行神经网络运算的方法
CN108256638A (zh) * 2018-01-05 2018-07-06 上海兆芯集成电路有限公司 微处理器电路以及执行神经网络运算的方法
US11604970B2 (en) 2018-01-05 2023-03-14 Shanghai Zhaoxin Semiconductor Co., Ltd. Micro-processor circuit and method of performing neural network operation
CN108509179A (zh) * 2018-04-04 2018-09-07 百度在线网络技术(北京)有限公司 用于生成模型的方法和装置
CN108509179B (zh) * 2018-04-04 2021-11-30 百度在线网络技术(北京)有限公司 用于检测人脸的方法、用于生成模型的装置
CN112020723A (zh) * 2018-05-23 2020-12-01 富士通株式会社 用于语义分割的分类神经网络的训练方法及装置、电子设备
CN109308517A (zh) * 2018-09-07 2019-02-05 中国科学院计算技术研究所 面向二值神经网络的二值化装置、方法及应用
CN113557536A (zh) * 2019-04-25 2021-10-26 欧姆龙株式会社 学习系统、数据生成装置、数据生成方法及数据生成程序
WO2020243922A1 (en) * 2019-06-05 2020-12-10 Intel Corporation Automatic machine learning policy network for parametric binary neural networks
WO2022052358A1 (zh) * 2020-09-09 2022-03-17 生物岛实验室 心电异常检测网络训练方法、心电异常预警方法及装置

Also Published As

Publication number Publication date
CN105654176B (zh) 2018-03-27

Similar Documents

Publication Publication Date Title
CN105654176A (zh) 神经网络系统及神经网络系统的训练装置和方法
US11544573B2 (en) Projection neural networks
Lan et al. Ensemble of online sequential extreme learning machine
Zhou et al. Uncertain linguistic prioritized aggregation operators and their application to multiple attribute group decision making
Srisawasdi et al. Technology-enhanced learning in science, technology, and mathematics education: results on supporting student learning
CN112085560A (zh) 一种基于云计算的智能教育方法及系统
CN104765728A (zh) 训练神经网络的方法和装置以及确定稀疏特征向量的方法
Yesil et al. Triangular fuzzy number representation of relations in fuzzy cognitive maps
Ayad et al. Parametric analysis for genetic algorithms handling parameters
Wani et al. Deep Learning Applications, Volume 3
CN113168310B (zh) 用于转换数字的硬件模块
Rao et al. Fuzzy logic-based expert system to predict the results of finite element analysis
CN113222151B (zh) 一种量子态的变换方法及装置
US20190311302A1 (en) Electronic apparatus and control method thereof
CN110223553A (zh) 一种答题信息的预测方法及系统
George et al. IEEE 754 floating-point addition for neuromorphic architecture
US20210173978A1 (en) Optimization device, optimization device control method, and computer-readable recording medium recording optimization device control program
Gruetzemacher et al. Alternative Techniques for Mapping Paths to HLAI
Niu et al. A hybrid model for predicting academic performance of engineering undergraduates
US20220237452A1 (en) Neural network device, information processing device, and computer program product
CN110309286A (zh) 提高双向注意力机器学习模型应答能力的方法及装置
Hwang et al. Feature selection in the semivarying coefficient LS-SVR
Wang et al. A new model of forecast enrollment using fuzzy time series
Zhao et al. A novel framework for discovering cognitive models of learning
WO2024004070A1 (ja) 問題推薦装置、問題推薦方法、プログラム

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant