人造神经网络、人造神经元及人造神经元的控制方法与流程

文档序号:13877386阅读:1189来源:国知局
人造神经网络、人造神经元及人造神经元的控制方法与流程

本发明涉及人造神经网络(artificialneuralnetwork)技术领域,并且尤其与其中的人造神经网络、人造神经元以及人造神经元的控制方法相关。



背景技术:

以人造神经网络进行机器学习的概念存在已久,但先前受限于处理器运算能力,相关研究始终无法顺利推进。近十年来,随着处理器运算速度、存储器存取速度以及机器学习演算法等各方面技术的长足进步,能产出正确判断结果的人造神经网络逐渐成为可能,因而在自动驾驶、影像辨识、自然语言辨识、数据探勘等领域中重新受到高度重视。

大脑中最基本的运算单位—神经元,是通过多个树突(dendrite)收集多个输入信号,并通过轴突(axon)传递输出信号(通常是传递至另一个神经元的树突作为输入信号)。单一人造神经元的典型运作可被数学化表示如下:

其中符号x表示输入信号,y表示输出信号;每一个树突各自加诸于其输入信号x的权重w为模拟该树突所连接的前一个神经元对于此神经元的影响程度;符号b表示此神经元本身贡献的偏移量(bias)。在进行机器学习的过程中,各个神经元的权重w与偏移量b都可能被不断地修改调整,因此又称为可学习参数(learnableparameter)。符号f代表一激发函数(activationfunction),在人造神经网络中常用σ函数(sigmoidfunction)、双曲正切(hyperbolictangent,tanh)函数或整流后线性函数(rectifiedlinearfunction)进行实际运算。

现行的人造神经网络通常被设计为具有多层(multi-layer)结构。除了最前端的输入层与最后端的输出层,其他串接在输入层与输出层之间的称为隐藏层(hiddenlayer)。输入层是用以接收外部数据,不进行运算。隐藏层与输出层则是各自以前一层的输出信号作为当层的输入信号,并且各自包含多个根据前述数学式进行运算的神经元。若以神经元连接方式区分,每一个隐藏层与输出层可以各自是一卷积层(convolutionallayer)或一全连接层(fully-connectedlayer)。目前有多种人造神经网络架构,对于卷积层与全连接层的配置组合各有不同的规划。以alexkrizhevsky等学者于2012年提出的alexnet架构为例,其中总共包含六十五万个神经元,构成依序串接的五个卷积层以及三个全连接层。在需要进行较复杂的判断时,人造神经网络可能包含高达二十九个运算层。

为了负荷如此庞大的运算量,目前普遍的做法是利用多核心中央处理器甚至是超级电脑来实现人造神经网络。由于这类处理器原本的设计目标是可依实际需要进行多样化的运算,其中会包含大量泛用型的运算单元(例如加减乘除运算电路、三角函数运算电路、指数对数运算电路…等等)以及逻辑判断单元(例如及门、或门与、互斥或门…等等)。然而,对于人造神经网络的运算来说,现行中央处理器或图形处理器中有许多电路是不需要或者不适用的。采用这种传统的人造神经网络实现方式通常会造成硬件资源的过度浪费,也可说是耗用了大量不必要的硬件成本。



技术实现要素:

为解决上述问题,本发明提出一种新的人造神经元及其控制方法。

根据本发明的一具体实施例为一种人造神经网络,其中包含一控制器与多个神经元。该控制器是用以于一运算程序中产生一前向传播指令。每一个神经元各自包含一指令暂存器、一储存装置与一专用运算电路。该指令暂存器是用以自该控制器接收并暂存该前向传播指令。该储存装置是用以储存至少一笔输入数据与至少一可学习参数。该专用运算电路被固定组态为专用于与该神经元相关的运算。回应于该指令暂存器所接收的该前向传播指令,该专用运算电路根据一激发函数对该至少一笔输入数据与该至少一可学习参数进行运算,并将一运算结果回传至该储存装置。

根据本发明的另一具体实施例为一种人造神经元,其中包含一储存装置与一运算电路。该储存装置是用以储存至少一笔输入数据、至少一可学习参数以及一查找表。该查找表包含用以描述一激发函数的多组参数。该运算电路是用以根据该至少一笔输入数据与该至少一可学习参数产生一索引值,并利用该查找表找出该索引值于该激发函数中相对应的一输出值,作为该人造神经元的运算结果。

根据本发明的另一具体实施例为一种应用于一人造神经元的控制方法。首先,一索引值根据至少一笔输入数据与至少一可学习参数被产生。随后,该索引值被用以查询描述一激发函数的一查找表,藉此找出该索引值于该激发函数中相对应的一输出值,作为该人造神经元的该运算结果。

关于本发明的优点与精神可以通过以下发明详述及所附图式得到进一步的了解。

附图说明

图1为一个具有两层结构的人造神经网络示意图。

图2为根据本发明的一实施例中的神经元的功能方块图。

图3为根据本发明的一实施例中的神经元控制方法的流程图。

附图标号

100:人造神经网络

110:输入层

120:隐藏层

130:输出层

140:控制器

d1至d3:外部数据

121至124、131至132:神经元

121a:指令暂存器

121b:储存装置

121c:专用运算电路

s301至s302:流程步骤

须说明的是,本发明的图式包含多种彼此关联的功能性模组的功能方块图。该多个图式并非细部电路图,且其中的连接线仅用以表示信号流。功能性元件及/或程序间的多种互动关系不一定要通过直接的电性连结始能达成。此外,个别元件的功能不一定要如图式中绘示的方式分配,且分散式的区块不一定要以分散式的电子元件实现。

具体实施方式

根据本发明的一具体实施例为一种人造神经网络,其中包含一控制器与多个神经元。图1为一个具有两层结构的人造神经网络作为该人造神经网络的范例。须说明的是,虽然实务中,人造神经网络所包含的运算层数量、神经元数量和连接复杂度皆远高于此范例所示者,但本发明所属技术领域中具有通常知识者通过后续介绍可理解,本发明的范畴不限于特定网络结构复杂度。

请参阅图1。输入层110负责接收外部数据d1至d3。会进行实际运算的隐藏层120与输出层130皆为全连接层,且分别包含四个神经元(121至124)与两个神经元(131至132)。耦接至各个运算层的控制器140负责产生控制该多个神经元的指令。以采用监督式学习(supervisedlearning)的人造神经网络为例,于一训练程序中,控制器140首先可产生一前向传播(forwardpropagation)指令,发送给各个神经元,藉此控制该多个神经元依据初始设定的可学习参数进行运算。随后,根据神经元131、132产生的训练结果与理想结果的差异,控制器140会判断目前的可学习参数是否需要调整。如果控制器140判定须调整该多个可学习参数,控制器140可产生一反向传播(backwardpropagation)指令,发送给各个神经元。

若将多组不同的训练数据依序送入人造神经网络100,控制器140可通过重复轮流发送上述两种指令来不断调整该多个神经元的可学习参数,直到训练结果与理想结果的差异能收敛至低于一预设门槛值,始告训练程序完成。随后,于一般的运算程序中,控制器140可产生一前向传播指令,发送给各个神经元,藉此控制该多个神经元依据训练完成的可学习参数进行运算。

人造神经网络100中的每个神经元各自包含一指令暂存器、一储存装置与一专用运算电路。图2以神经元121为范例,呈现该多个元件的连接关系。指令暂存器121a是用以自控制器140接收并暂存指令。储存装置121b是用以储存神经元121的输入数据(d1至d3)与可学习参数(包含一个偏移量b与分别对应于外部数据d1至d3的三个权重w)。

专用运算电路121c为针对神经元121所负责的运算所设计,也就是被固定组态为专用于与神经元121相关的运算。首先考虑与前向传播指令有关的运算。回应于指令暂存器121a接收到的前向传播指令,专用运算电路121c即根据其激发函数对储存装置121b所储存的输入数据与可学习参数进行运算,并将运算结果回传至储存装置121b。举例而言,若神经元121是采用双曲正切(tanh)函数作为其激发函数,针对与前向传播指令有关的运算,专用运算电路121c可被固定组态为仅包含执行双曲正切运算所需要的电路元件,例如多个乘法器、一个加法器、一个除法器,以及一个指数运算电路。该多个加法器与乘法器是用以将各个输入数据乘以相对应的权重w,并且与偏移量b加总在一起,藉此产生激发函数的输入值。该除法器与指数运算电路则是用以针对该输入值进行双曲正切运算。

接着考虑与反向传播指令有关的运算。当指令暂存器121a自控制器140接收一反向传播指令,专用运算电路121c即进行一反向传播运算,并将其运算结果(修改后的可学习参数)回传至储存装置121b储存。相似地,针对与反向传播指令有关的运算,专用运算电路121c可以被设计为仅包含一个减法器、一个加法器与一个乘法器。实务上,由于前向传播指令与反向传播指令不会在同一个时间点发生,执行这两种运算的电路亦可被共用,藉此进一步减少专用运算电路121c中的电路元件数量。

须说明的是,前向传播指令与反向传播指令各自对应的运算细节有多种可能的变化型。举例而言,神经元121可改采用一σ函数(sigmoidfunction)、一整流后线性函数(rectifiedlinearfunction)或一多段式线性函数作为其激发函数。针对不同的激发函数,专用运算电路121c所需包含的电路元件可能会有所不同。再举例而言,同一个运算函数常常可以被表现为多种不同的数学式,相对应的所需电路因此会有差异。各种函数的变化形态、运算细节以及实现时所需的电路元件其为本发明所属技术领域中具有通常知识者所知,于此不赘述,亦不对本发明的范畴构成限制。

综上所述,专用运算电路121c可以被固定组态为只包含能回应于前向传播指令与反向传播指令进行运算的电路元件。相较于传统的中央处理器或图形处理器,图2呈现的神经元架构与电路数量显然精简许多,因而得以大幅降低实现人造神经网络100的硬件成本。另一方面,由于指令的内容单纯且种类少,指令暂存器121a与专用运算电路121c间的布线数量可以很少。

本发明的范畴并未限定于特定储存机制。实务上,储存装置121b可包含一个或多个易失性或非易失性存储器装置,例如动态随机存取半导体存储器、磁性存储器、光学存储器、快闪存储器等等。储存装置121b在实体上可以是配置在专用运算电路121c邻近区域的单一装置。或者,多个神经元的储存装置也可被整合在一起,成为一个较大的存储器。

此外,控制器140可利用多种控制和处理平台实现,包含固定式的和可编程的逻辑电路,例如可编程的逻辑栅阵列、针对特定应用的集成电路、微存储器、微处理器、数字信号处理器。此外,控制器140亦可被设计为通过执行一存储器中所储存的处理器指令来完成多种任务。

于一实施例中,储存装置121b中进一步储存有多组参数,且该多组参数构成用以描述一激发函数(例如双曲正切函数)的输入/输出关系的一个查找表。在这个情况下,专用运算电路121c可被设计为仅包含多个乘法器与一个加法器,用来根据输入数据与可学习参数产生一索引值,也就是该激发函数的输入值。接着,利用该查找表,专用运算电路121c可找出该索引值于该激发函数中相对应的输出值,作为运算结果。这种实施方式的优点在于能进一步省去激发函数所涉及的非线性运算,进而简化专用运算电路121c中所需要的电路元件(例如不需要设置除法器以及指数运算电路)。

于另一实施例中,专用运算电路121c被设计为专用于进行数量有限的多种运算,且该多种运算各自对应于不同的激发函数。举例而言,专用运算电路121c可被设计为包含可进行两种运算的两套电路,一套为对应于一双曲正切函数,一套为对应于一多段式线性函数。当人造神经网络100被用来进行较复杂的判断时,使用者可以通过控制器140将专用运算电路121c设定为采用具有非线性特性的双曲正切函数作为激发函数。反之,则是将专用运算电路121c设定为采用多段式线性函数作为激发函数。须说明的是,上述两种运算所需要的电路元件可被部分或全部共用。这种实施方式的优点为能在不需要增加太多硬件资源的情况下,提供相当程度的运算弹性。

于另一实施例中,人造神经网络100为一可重新组态的神经网络,也就是可以通过重新调整神经元间的布线来改变神经网络的架构。在这个情况下,控制器140可以进一步被用以执行一重新组态程序,选择性地舍弃人造神经网络100中一部份的神经元。举例而言,假设经过一段训练程序之后,控制器140判定神经元123、124对于输出层130最终输出的判断结果不会有太大影响,控制器140可产生一舍弃指令,提供给神经元123、124中的指令暂存器,藉此控制这两个神经元中的专用运算电路不进行运算。

根据本发明的另一具体实施例为一种人造神经元,其中包含一储存装置与一运算电路。实务上,该运算电路可以是图2所示的专用运算电路,也可以是其他类型的处理器。该储存装置是用以储存至少一笔输入数据、至少一可学习参数以及一查找表。该查找表包含用以描述一激发函数的多组参数。该运算电路是用以根据该至少一笔输入数据与该至少一可学习参数产生一索引值,并利用该查找表找出该索引值于该激发函数中相对应的一输出值,作为该人造神经元的运算结果。换言之,利用查找表来协助激发函数运算的做法可以被应用在其他硬件架构,并且同样达到减少复杂运算的效果。

根据本发明的另一具体实施例为一种应用于一人造神经元的控制方法,其流程图为绘示于图3。首先,在步骤s301中,一索引值根据至少一笔输入数据与至少一可学习参数被产生。随后,在步骤s302中,该索引值被用以查询描述一激发函数的一查找表,藉此找出该索引值于该激发函数中相对应的一输出值,作为该人造神经元的该运算结果。本发明所属技术领域中具有通常知识者可理解,先前介绍的多种操作变化(例如激发函数的种类与数量)亦可应用至图3中的控制方法,其细节不再赘述。

通过以上较佳具体实施例的详述,是希望能更加清楚描述本发明的特征与精神,而并非以上述所说明的较佳具体实施例来对本发明的范畴加以限制。相反地,其目的是希望能涵盖各种改变及具相等性的安排于本发明所欲申请的专利范围的范畴内。此外,本说明书中的数学表示式是用以说明与本发明的实施例相关的原理和逻辑,除非有特别指明的情况,否则不对本发明的范畴构成限制。本发明所属技术领域中具有通常知识者可理解,有多种技术可实现该多个数学式所对应的物理表现形式。

以上所述仅为本发明的较佳实施例,凡依本发明申请专利范围所做的均等变化与修饰,皆应属本发明的涵盖范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1