神经网络系统及神经网络系统的训练装置和方法制造方法及图纸

技术编号:14945328 阅读:144 留言:0更新日期:2017-04-01 11:46
本发明专利技术涉及一种神经网络系统及神经网络系统的训练装置和方法。该神经网络系统包括:二值神经网络,二值神经网络被配置为当输入数据是二值数据时,将其直接输入二值神经网络,其中对于二值神经网络的每一层,通过对该层的节点的值和其对应的权重进行二值运算来得到下一层的节点,其中二值神经网络每层节点的值和其对应的权重都是二值数据。根据本发明专利技术的神经网络系统及其训练装置和方法,处理速度更快,占用存储空间更小。

【技术实现步骤摘要】

本专利技术涉及信息处理领域,更具体地涉及一种神经网络系统及神经网络系统的训练装置和方法
技术介绍
近来,深度学习技术被广泛应用于分类及识别的任务。与其他传统方法相比,深度学习能够得到更高的识别率。然而,一个深度学习系统通常需要大量的计算资源以及存储空间,因此大部分深度学习的应用是使用服务器实现的,很难将其应用在独立设备上。因此,需要一种能够节省计算资源的神经网络系统及该神经网络系统的训练装置和方法。
技术实现思路
在下文中给出关于本专利技术的简要概述,以便提供关于本专利技术的某些方面的基本理解。应当理解,这个概述并不是关于本专利技术的穷举性概述。它并不是意图确定本专利技术的关键或重要部分,也不是意图限定本专利技术的范围。其目的仅仅是以简化的形式给出某些概念,以此作为稍后论述的更详细描述的前序。本专利技术的一个主要目的在于,提供一种神经网络系统,包括:二值神经网络,二值神经网络被配置为当输入数据是二值数据时,将其直接输入二值神经网络,其中对于二值神经网络的每一层,通过对该层的节点的值和其对应的权重进行二值运算来得到下一层的节点,其中二值神经网络每层节点的值和其对应的权重都是二值数据。根据本专利技术的一个方面,提供了对上述神经网络系统进行训练的训练装置,包括:神经网络系统训练单元,被配置为通过梯度下降算法使用浮点数据来训练神经网络系统,其中,在二值神经网络的训练过程中,将下>一层节点值随当前层节点值变化的离散函数近似为连续函数,用连续函数分别对当前层节点值以及对应的权重求偏导数;二值转换单元,被配置为在训练结束后将得到的浮点值的各个权重转换为二值数据。根据本专利技术的再一个方面,提供了对上述神经网络系统进行训练的训练方法,包括:通过梯度下降算法使用浮点数据来训练神经网络系统,其中,在二值神经网络的训练过程中,将下一层节点值随当前层节点值变化的离散函数近似为连续函数,用连续函数分别对当前层节点值以及对应的权重求偏导数;在训练结束后将得到的浮点值的各个权重转换为二值数据。另外,本专利技术的实施例还提供了用于实现上述方法的计算机程序。此外,本专利技术的实施例还提供了至少计算机可读介质形式的计算机程序产品,其上记录有用于实现上述方法的计算机程序代码。通过以下结合附图对本专利技术的最佳实施例的详细说明,本专利技术的这些以及其他优点将更加明显。附图说明参照下面结合附图对本专利技术实施例的说明,会更加容易地理解本专利技术的以上和其它目的、特点和优点。附图中的部件只是为了示出本专利技术的原理。在附图中,相同的或类似的技术特征或部件将采用相同或类似的附图标记来表示。图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.一种神经网络系统,包括:
二值神经网络,所述二值神经网络被配置为当输入数据是二值数据
时,将其直接输入所述二值神经网络,其中对于所述二值神经网络的每一
层,通过对该层的节点的值和其对应的权重进行二值运算来得到下一层的
节点,其中所述二值神经网络每层节点的值和其对应的权重都是二值数
据。
2.根据权利要求1所述的神经网络系统,还包括:
普通神经网络,被配置为当所述输入数据是非二值数据时,首先将其
输入所述普通神经网络,其中对于所述普通神经网络的每一层,通过对该
层的节点的值和其对应的权重进行浮点运算来得到下一层的节点;以及
转换部分,被配置为将所述普通神经网络输出的浮点值转换为二值数
据以输入到所述二值神经网络进行处理。
3.根据权利要求1所述的神经网络系统,其中,所述二值运算包括
异或运算或者同或运算。
4.根据权利要求2所述的神经网络系统,其中,所述转换部分通过
以下方式对所述普通神经网络输出的浮点值进行转换:当所输出的浮点值
大于或等于预定阈值时,将该浮点值转换为第一值,当所输出的浮点值小
于预定阈值时,则将该浮点值转换为第二值。
5.根据权利要求1所述的神经网络系统,其中,在所述二值神经网
络中,所述节点的值和其对应权重进行的基本运算为:统计各个节点值与
其对应的权重进行二值运算的结果中第一值和第二值的个数,当所述第一
值的个数大于所述第二值的个数时,运算结果是所述第一值,反之运算结
果是所述第二值。
6.一种对根据权利要...

【专利技术属性】
技术研发人员:王淞范伟孙俊
申请(专利权)人:富士通株式会社
类型:发明
国别省市:日本;JP

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

1