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

文档序号:9888777阅读:512来源:国知局
神经网络系统及神经网络系统的训练装置和方法
【技术领域】
[0001] 本发明涉及信息处理领域,更具体地涉及一种神经网络系统及神经网络系统的训 练装置和方法。
【背景技术】
[0002] 近来,深度学习技术被广泛应用于分类及识别的任务。与其他传统方法相比,深度 学习能够得到更高的识别率。然而,一个深度学习系统通常需要大量的计算资源以及存储 空间,因此大部分深度学习的应用是使用服务器实现的,很难将其应用在独立设备上。
[0003] 因此,需要一种能够节省计算资源的神经网络系统及该神经网络系统的训练装置 和方法。

【发明内容】

[0004] 在下文中给出关于本发明的简要概述,以便提供关于本发明的某些方面的基本理 解。应当理解,这个概述并不是关于本发明的穷举性概述。它并不是意图确定本发明的关 键或重要部分,也不是意图限定本发明的范围。其目的仅仅是以简化的形式给出某些概念, 以此作为稍后论述的更详细描述的前序。
[0005] 本发明的一个主要目的在于,提供一种神经网络系统,包括:二值神经网络,二值 神经网络被配置为当输入数据是二值数据时,将其直接输入二值神经网络,其中对于二值 神经网络的每一层,通过对该层的节点的值和其对应的权重进行二值运算来得到下一层的 节点,其中二值神经网络每层节点的值和其对应的权重都是二值数据。
[0006] 根据本发明的一个方面,提供了对上述神经网络系统进行训练的训练装置,包括: 神经网络系统训练单元,被配置为通过梯度下降算法使用浮点数据来训练神经网络系统, 其中,在二值神经网络的训练过程中,将下一层节点值随当前层节点值变化的离散函数近 似为连续函数,用连续函数分别对当前层节点值以及对应的权重求偏导数;二值转换单元, 被配置为在训练结束后将得到的浮点值的各个权重转换为二值数据。
[0007] 根据本发明的再一个方面,提供了对上述神经网络系统进行训练的训练方法,包 括:通过梯度下降算法使用浮点数据来训练神经网络系统,其中,在二值神经网络的训练过 程中,将下一层节点值随当前层节点值变化的离散函数近似为连续函数,用连续函数分别 对当前层节点值以及对应的权重求偏导数;在训练结束后将得到的浮点值的各个权重转换 为二值数据。
[0008] 另外,本发明的实施例还提供了用于实现上述方法的计算机程序。
[0009] 此外,本发明的实施例还提供了至少计算机可读介质形式的计算机程序产品,其 上记录有用于实现上述方法的计算机程序代码。
[0010] 通过以下结合附图对本发明的最佳实施例的详细说明,本发明的这些以及其他优 点将更加明显。
【附图说明】
[0011] 参照下面结合附图对本发明实施例的说明,会更加容易地理解本发明的以上和其 它目的、特点和优点。附图中的部件只是为了示出本发明的原理。在附图中,相同的或类似 的技术特征或部件将采用相同或类似的附图标记来表示。
[0012] 图1示出了根据本发明的一个实施例的神经网络系统100的示例性配置的框图;
[0013] 图2示出了根据本发明的一个实施例的二值化深度神经网络模型的示意图;
[0014] 图3示出了根据本发明的另一个实施例的神经网络系统100'的示例性配置的框 图;
[0015] 图4示出了根据本发明的一个实施例的混合二值深度神经网络模型的示意图;
[0016] 图5示出了根据本发明的一个实施例的对神经网络系统进行训练的方法500的流 程图;
[0017] 图6A示出了下一层节点值随当前层节点值变化的离散函数的曲线图;
[0018] 图6B示出了图6A中的离散函数的曲线图近似为连续函数的曲线图;
[0019] 图7示出了根据本发明的一个实施例的对神经网络系统进行训练的训练装置700 的示例性配置的框图;
[0020] 图8是示出可以用于实施本发明的对神经网络系统进行训练的装置和方法的计 算设备的示例性结构图。
【具体实施方式】
[0021] 下面参照附图来说明本发明的实施例。在本发明的一个附图或一种实施方式中描 述的元素和特征可以与一个或更多个其它附图或实施方式中示出的元素和特征相结合。应 当注意,为了清楚的目的,附图和说明中省略了与本发明无关的、本领域普通技术人员已知 的部件和处理的表示和描述。
[0022] 本发明提出了一种二值化深度神经网络系统(BDNN),即该深度神经网络中的所有 节点与计算均是二值化的。因此,相比传统的深度神经网络,BDNN能够节约大量的计算资 源与存储空间并被应用于独立设备上。BDNN具有以下特点 :
[0023] 首先,在BDNN中,所有的网络节点均为二值数据。本发明同时设计了对应的线性 二值化计算。通过这些,网络的前向传播中将基本只包含二值化计算。在传统深度神经网 络中,这些计算都是浮点计算。显然,在进行识别任务时BDNN能够节省更多的计算资源。
[0024] 其次,本发明同时为BDNN设计了训练方法。在训练中,本发明将二值化的节点转 换为浮点值。通过这样做,传统的梯度下降算法将能够用于训练BDNN。同时,虽然在训练中 各个节点为浮点值,但是整个网络的前向传播结果与二值化时保持一致。
[0025] BDNN是深度神经网络的一种,因此它满足深度神经网络的基本定义。根据定义,一 个深度神经网络需要包含线性和非线性计算。在BDNN中,这两种计算结合在神经网络的基 本运算中:使用本层多个神经元节点通过运算来得到下一层的某个节点。
[0026] 下面将结合附图来具体说明根据本发明的一个实施例的神经网络系统。
[0027] 图1示出了根据本发明的一个实施例的神经网络系统100的示例性配置的框图。
[0028] 如图1所示,神经网络系统100包括二值神经网络102,二值神经网络102被配置 为如果输入数据是二值数据,则将其直接输入二值神经网络,其中对于二值神经网络的每 一层,通过对该层的节点的值和其对应的权重进行二值运算来得到下一层的节点,其中二 值神经网络每层节点的值和其对应的权重都是二值数据。
[0029] 图2示出了根据本发明的一个实施例的二值化深度神经网络模型的示意图。如图 2所示,假丨
表示神经网络中某一层的几个节点,它们都与下一层的节 点y相连。令
表示对应连接的权重。因为所有的节点都为二值数 据,可以用1和-1表示二值的两个取值,那么就有
[0030] 本领域技术人员可以理解,二值数据的两个取值不限于1和-1,也可以例如是1和 〇,或者其他二值数据,为了方便说明,下文中都以二值数据取值为1和-1来进行说明。
[0031] 这里通过函数f来计算y的值,其中包含了线性及非线性运算。在一个实施例中, 可以定义运算:
[0032]
[0033] 其中?代表了二值数据的异或运算。对于某个X和w,共有四种取值情况:
[0034] X,w = {_1,-1},{_1,1},{1,-1},{1,1}〇
[0035] 如果用
作为例子,则xXw将针对不同的取值情况产生两种结果:
[0036] xXw = 1,_1,_1,1。
[0037] 很明显,对于四种取值情况,两种结果是均衡的,-1和1各有两个结果。然后,如 果把-1和1当成整数并可以进行加减运算,则可以定义 :
[0038]
[0039] 最后,f可以与作:
[0040]
CD
[0041] 明显地,函数y最后的结果依然是一个二值数据,属于{-1,1}。通过f可以看出, X · W是线性运算部分,而其中的函数分段部分则可视为非线性运算。事实上,f起到的作用 是在{XiXWi, x2Xw2, x3Xw3,…,xnXwn}中清点-1和1的个数并返回其中数量较多的那个。
[0042] 通过上述BDNN的基本运算(1),可以设计不同的网络结构来构建BDNN,比如全连 接的神经网络,卷积神经网络等。
[0043] 上面说明了根据本发明的一个实施例的神经网络系统在输入数据是二值数据的 情况下所进行的处理,如果神经网络的输入数据不是二值数据,比如灰
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1