改进的模拟数字神经元、神经网络及网络调试算法的制作方法

文档序号:6407018阅读:921来源:国知局
专利名称:改进的模拟数字神经元、神经网络及网络调试算法的制作方法
技术领域
本发明是关于所谓的模拟神经网络,较具体点说是有关提供一种新的数字神经元、一种简化的神经网络结构和增强的神经网络调试算法(trainingalgorithm)。
模拟神经网络对人类大脑中神经细胞(元)的活动进行仿真。人类的神经元由三个主要部分组成细胞体,轴突(及其节状隆起),和树突。(神经细胞的)树突从其他神经元接收输入信号脉冲,并将这些脉冲传送到细胞体。细胞体对由各种不同树突接收到的所有信号加以“评估”。这些信号中一些为积极性的信号,亦就是说它们激励细胞体;而其他一些则为消极性的信号,也就是说它们阻止对细胞体的激励。当细胞体受激励的程度超过某一预定的阈值时,它即产生自身的电信号脉冲,并将它们沿着细胞的轴突传送至节状隆起,这些隆起或者与其树突相连,或者与其它神经元的细胞体相连。
现有的模拟神经网络中的模拟神经元被设计得模仿人类神经细胞的行为。每一模拟神经元均具有类似存在于人类神经细胞中的功能。此过程由一输入值开始。这一输入可能来自外界(如一键盘输入),或者来自其他的神经元。当每一个输入沿着其树突传输时,它被乘以一“加权值”,例如+100%,+80%,或-90%。这些所谓的突触加权值是人类神经电脉冲对神经细胞体激励而产生的积极或消极作用的一个近似的数学等价量。在所有输入信号到达细胞体后,即按照它们的加权值对它们求和,而产生最终结果净值。这一值有可能需要在一个或多个附加的求和步骤中被细胞体加以修正。
一神经网络通常包括三层模拟神经元输入层,“隐藏”层和输出层。输入神经元的数目根据输入数据的特征和数目决定。输出神经元的数目以同样方式决定。例如,如果有三个是/否问题,对它们的回答将导致三种结果之一,那么就会有三个输入神经元(每一问题一个)和三个输出神经元(每一可能的结果一个)。
这些加权值是网络借以将输入值与正确输出相关连的手段。在现有的神经网络中,系统自己利用一调试算法指定和调整加权值,以便正确地建立输入和输出间的关系。
在调试开始前,由输入层至隐藏层以及由隐藏层至输出层的加权值可以随意设定。经验表明,如果最初的加权值是随机的而且非零值的话,网络就能较好地学习。在调试期间,一组具有已知输出的输入被馈入网络。如果该系统不产生预期的输出,就穿过整个系统“反向传播”一差错纠正过程,并按照预定的公式来对所有输入/隐藏和隐藏/输出加权值进行校正。
在具体实践中,在对输出进行评价而后返回纠错之前,调试过程并不输入整套调试模式。而是一次输入一个事件,并对一事件的输出进行检验。如果得到不正确的输出,即对加权值进行校正。
调试一神经网络可能需要数百数千个事件。如果系统设计得不好或者调试事件不正确,很可能这一网络将根本不能学习。因此,程序员在选择恰当的输入和输出神经元的数目和类型方面的技巧和调试人员在为调试网络选择合适的输入因子和数据方面的技巧,就成为系统能成功地运行的关键。
在网络调试中对加权值重复使用算法,使得人们难以解释加权值的相互作用。这样,神经网络就学习只有它能解释的词句来表达信息。其设计者运用智力创造性来建立结构和使学习得以进行的规则,并提供用于调试的事件,但这样做基本上看不到运行的具体细节,只能成为一个单纯的观察者。调试一神经网络的技巧就在于选择数据表达方式(即输入、隐藏和输出神经元的数目和类型)和选择调试用事件。
本发明的目的是提供能应用集成电路技术制造的数字神经元,用于组成神经网络的结构单元。
本发明的另一目的是将许多数字神经元集成为一神经网络芯片,它可以与另外一些神经网络芯片相互连接来构成充分大规模的神经网络。
本发明还有一个目的是建立一个神经网络调试算法,这个算法将模式映射到神经元组,使得在当输入模式的基本部分被加到网络输入端时输出神经元将激活,而且该调试模式因无需作重复处理较之现有网络操作次数大为减少。
按照本发明,提供了一种用于神经网络中的n输入通路数字神经元,此数字神经元包括一具有2n存贮单元的随机存取存贮器,其中每一存贮单元相应于一n端输入编码模式,每一存贮单元用对应于突触加权值的神经元激活状态来加以编程,这个突触加权值是神经网络调试算法针对一神经网络中的神经元而分配到该输入编码模式的;此神经元起一查表装置的作用,它从被一n位数字输入编码模式所寻址的该随机存取存贮器的存贮单元来为被加到该神经元输入通路的每一个n位数字编码模式取得神经元激活状态。
本发明具有特别可靠的优点,就是该被调试网络的突触加权值并不保持在神经网络自己内部,而放在被作为一种神经元加权存贮器映象用来执行调试算法的设备中。
本发明的数字神经元能够根据所应用的突触加权值提供其输入的任何功能。特别是对于一特定的输入编码组合,神经元可以由调试算法被编程来提供或者一个内部连接功能,或者一个相关功能。
这样,根据本发明实现的神经元既可能用来表征生物神经,同时也具有表征其他一些功能的能力。
将存贮器加权映象分为加权页可以实现多重特性,对于一神经元的每一加权页的长度及位置由神经网络调试算法决定。
本发明神经元的另一优点在于,较之较常见的内部接线十分繁琐的神经网络,可以大大减少内部结构所需的连接结构。在通常的神经网络的情况下,对内部连接的要求是连线的数量与前一层中神经元数目的平方成比例。这是因为任一神经元如果它不完全地与前一层相连接,将不能与网络的其他神经元相配合来提供所希望的功能。
按照本发明提出的多层数字神经网络,其中网络的每一神经元均能被编程来提供它的输入任何功能,而一个神经元被连接到下一层中有限数量的邻近神经元的输入通路。一般,每一神经元被连接到下一层中对应神经元的输入通路和所说下一层中对应神经元的上下紧邻位置上的神经元(如果存在的话)的输入通路,该网络的每一输入通路也相类似地被连接到输入层中相应神经元的输入通路和该输入层中相应神经元上下紧邻的神经元(如果存在的话)的输入通路。
这种连接方式也结合有交叠措施,从而,某些神经元与同一层的其他神经元共用它们的输入连接通路中的一部分。
神经元之间这种有限的连接之所以可能是借助于每一神经元能被编程得可以在其输入实现任何功能来达到的,本质上是在于,神经元小组辨识输入模式中的特征,再进入网络,多组神经元连接到该第一组的输出,利用中介神经元作为连接以将扇入端数增加到所需的水平。
本发明的神经网络理想的组成结构是采用一组合式的三维立体矩阵,其每一轴的量度相同;每一神经元例如说具有9个输入通道;诸神经元是这样连接到一起的,即每一神经元均与前一层中的上、下以及相对应的3个神经元的输出相连接。
也可以采用其他有限连接布局,只要该调试算法能理解所选择的布局即可。
调试算法按单次通过的每一网络输入模式用神经元激活状态对网络的神经元进行编程;该状态是由针对该输入模式的突触加权值相关或内连功能进行计算的,具体作法是将每一模式作为相关功能或内连功能映射到处于正输入与对应于该输入模式的网络输出之间的通路上的神经元;调整该调试算法来逐个地处理调试模式的每一个主动网络输入通路,和识别处于网络输入与指定的网络输出通路之间通路上的神经元;而后该网络输入通路被神经元至神经元地连接起来,直到它到达所有目标输出端;在每一级出自一组可能的扇至点中的一个神经元经过查询来验证确定它是否已学习到所需的功能;如果没有一个神经元激活,则查询相邻神经元为每一神经元建立备用能力,而具有最大备用能力的神经元即被编程来实现所需的功能。
一神经元的编程可能涉及到一现有的加权映象与一新产生的加权映象的融合。
在对调试算法的改进中,突触加权值的计算是基于对每一输入的有效值进行累加并递送到一神经元,直到到达输出神经元。同时应用每一神经元输入的有效值来参与突触加权值的决定。对一神经元的映射以实现一新功能是依靠在对该神经元的加权映象中引入一新加权页面。
在调试期间如果一层中在到输出神经元的通路中没有一个神经元激活,这种改进措施将提供一新的加权页,以此加入到最少利用的神经元加权映象中,该加权页的长度由对一指定神经元的输入组成情况来决定。
从对下面结合附图的叙述,将会很容易理解本发明,其中

图1表示根据本发明的神经元;
图2表示-9输入神经元的通常扇入端;
图2A表示许多不同的层间连接布局;
图3表示按照本发明的一个典型神经网络的多层连接布局;
图4表示采用按本发明的神经元的神经网络的功能映射实例;
图5~8表示按照本发明将输入代码A~D向神经元的映射过程;
图9表示采用按照本发明的神经元的一典型神经网络的特定输入模式时的累积行波序列;
图10表示一种神经元芯片的布线;
图11表示一多神经元单元的布线;
图12表示一根据本发明的神经元;
图13表示多神经元单元间的片间通讯布局;
图14表示一多片多神经元立方体;
图15表示调试算法的“调试所有层”程序的流程图;
图16表示神经元激活功能的关键。
图17和18表示“调试一层”过程的流程图;
图19表示连接程序的流程图;
图20表示映射程序的流程图;
图21表示单值映射程序的流程图;
图22表示巡视程序流程图;
图23表示强制映射程序流程图;
图24表示强制神经元程序中的映射流程图;
图25表示记录连接程序的流程图;
图26表示顺序程序中的映射流程图;
图27表示映射连接程序的流程图;
图28表示更新程序的流程图;
图29表示引导程序的流程图;
图30表示相关程序的流程图;
图31表示相关数程序的流程图;
图32表示产生新加权页面程序的流程图;
图33表示产生加权值程序的流程图;
图34表示规范化功能的流程图;
图35表示加权值组合程序的流程图;
图36表示存贮器分配程序的流程图;
图37表示调用层程序的流程图。
根据本发明的最佳实施例的神经元,由一静态随机存取存贮器组成,在此存贮器中,对神经元输入端的每一数字组合都设有一存贮单元。
每一存贮器单元MC1~MC512都有9个神经元输入NI0至NI8以及一经由读出电路SA的数据输出ND0。图1所示出的存贮器单元包含有连接到一地址译码器AD的多地址输入NI0至NI8。此地址译码器在作为一神经元运行时为神经元的输入启动,而当调试地址控制信号PCS起作时则由调试算法控制TAC通过引线A0至A8启动,从而使得在学习期受神经元激活状态控制线NFSI的控制修改存贮器中的数字数据来实现所需的功能。每一存贮器单元起一个9输入端的能完成此9输入端任何功能的神经元的作用,此神经元激活状态在由地址译码器AD所发出的地址所指定的存贮单元中保持为“1”(激活)或“0”(未激活),该地址译码器发出的地址是由选择适当的译码字线输出DW01~512的神经元的输入引线NI0至NI8译码得出的。激活(1)或非激活(0)状态是通过预置电路PC作为调试算法的结果和在执行调试算法期间产生加权页的结果而加以编程到神经元中的。将神经元的输出NDO连接到网络下一层中的神经元的神经元输入(NI0至NI8)之一,由此来将神经元连接到一起成为一规则的矩阵。由静态随机存取存贮器的状态得出的神经元输出经读出放大器SA取得。
输出层神经元提供神经网络的输出信号。在一典型的装置布局中所有输入均连接到前一层中神经元的输出3个接到上面的神经元,3个接到下面的神经元,3个接到前面的神经元,如图2所示。
图2和图3表述按照本发明一实施方案的3维神经网络的连接方式,其中每一轴大小都相等,构成一立方体。此立方体的深必须等于高和宽,以便保证所有输入均能扇出达到任一输出节点。网络一般这样连接,即每一神经元,如NX,被连接到上层、相邻层和下层中各对应神经元NUA、NUB和NUC,NAA、NAB和NAC及NLA、NLB和NLC的输出通路。图2A表示针对神经元NX1、NX2、NX3和NX4的4个备选的简化连接布局,这里模式已经过分解。所采用的连结布局是可以有选择的,只要它能适宜于对所识别的要被检验的输入模式所要求的。连接模式一经选定,调试算法即要求对被用于实际网络中的该连接模式加以模拟。图3表示一具有构成输出层的输出神经元LX的层L1、L2以及LN层的典型多层布局。
图4说明功能神经元FNA和FNB,以及起连接作用的由INA至INA的神经元以便将扇入端面输出神经元ONX伸展。起连接作用的神经元可实现复杂的连接功能,使得在变化的条件下可以使神经元和不同的神经元连接到一齐。这种连接功能的重要性将可由以下对网络的运行的描述看到。为便于对网络所执行功能的理解,将用一简化方案来作为举例。
功能映射当网络最初处于一组调试模式下,它的神经元完全未经成形时,每一输入必须作为一组突触加权值被存贮起来。在网络经过数次调试时,一些神经元开始辩识新的输入模式的特点,结果需要修改的突触加权值就较少。图5~8描述在针对每一输入模式或构造的调试过程中的一个9神经元3层的2维网络。调试过程从输入层起以图5左方所示表中的1A、2A和3A以及隐藏层的输出端的1A和3A所表示的顺序处理有效输入,以标识与由模式A所表示的输入模式相适应的特定输出神经元。图5~8中列出的表指出(ⅰ)隐藏层之一中的连接功能ICWP和(ⅱ)输入模式的输出层单元识别功能NXWP。在这些图中,点线表示不起作用的神经元连接,而神经元间的实线则表示起作用的神经元连接。为说明起见,仅仅用标名为NXA、NXB、NXC和NXD的相同输出神经元来检验加到网络的每一输入模式。
4组调试输入模式A~D分别为图5中的网络模式A,图6中的B,图7中的C和图8中的D。调试算法将各个模式(作为功能或连接)映射进处于一有效输入端和网络输出端之间的通路上的神经元。在这一简单的例子中的许多神经元对不同的模式均采用相同的映射。当网络学习了更多的模式时,需要重新组织的神经元就越来越少。最终网络将会饱和,不再能学习更多的模式,而不会影响网络调用老模式的能力。
首先来看图5,模式1001100将使得神经元NI1、NI3和NI4激活。第一隐藏层中的神经元N1H1将起一连接作用,而神经元N1H4则响应局部模式识别功能-11-。在第二隐藏层中,神经元N2H1和N2H3起连接作用使得输出神经元NXA能识别输入模式。输入模式是这样进行处理的,有效输入(1)被按序列处理,起作用的神经元连接上表示的数字对应于模式A的处理顺序,即由“1”状态的有效信号输入到神经元NI5开始。表ICWP仅仅表示第一隐藏层神经元的连接功能。输出层识别输入模式A是通过将神经元NXA编程进行的,用对X1、X2和X3的输入加权值分别为1、0、2来激活。
在图6中,输出神经元NXB识别输入模式B无需重新调试。因为其对X1、X2和X3的输入加权值分别为2、0、2,这已超过了识别模式A中的3组阈值。在图7和8中,输入模式C和D促使输出神经元识别加权值X1、X2、X3分别为1、1、1(模式C)和5、0、1(模式D)。在图6和8中,被识定的神经元起连接作用。
多重性质的神经元表1所示为一5输入单性质的神经元的存贮器内容。指定到每一输入的加权值被列在本说明书末尾的表1的顶部,其中还随同列有阈值,超过此阈值时神经元激活。每一加权值可以为任何正或负的值。这样的加权值表是在调试过程中产生的,不过,只有适宜的神经元激活状态被编程到神经元的随机存取存贮器的存贮单元中。
网络中的每个神经元均被安排将通过它们作为其输入模式的功能运行或者作为一个连接的能力来为对输入模式的识别发挥作用。虽然表1说出了针对所有神经元输入通路情况组合的激活状态,但取决于它的各自对是否激活的判断所起作用的相对重要性(突触加权值),只有一定数量的这种组合能被利用。这一事实可被用来确定每一神经元可能识别许多各不相同的输入有效值。
表2所示为一5输入的多性能神经元。存贮器映象被分成数区段,每一区段可实现一组新的突触加权值。这样每一神经元就可能比它的通常类似的对应者提供更多的功能。存贮器映象中每一加权页的长度和位置由调试算法确定。
图9说明一3层18神经元的网络。将输入调制模式“101101”示于网络的左方,同样,点线连接指暂停不用的连接,而实线则指运行的连接。每一具有有效信号的输入均被映射到一经选择的输出神经元。每一神经元的输入端的数量及每一输入的效应被用来计算相应的输入加权值。每一输入的有效值在当其向着输出神经元行进时,于每一神经元处累积,这一性质将被用于后面将详细说明的调试算法中。
神经元的结构已设计成可以作比例换算,这就使得有可能根据图10中基本的多神经元芯片来实现任何所希望的网络。该芯片设置有多个输入/输出端底座、驱动器I/OP&D、一控制寄存器CC、多个编程寄存器PR、一可编程接口PI,和由一路由通道RC连接的两组神经元NCL和NCR。每一芯片在-13×13×13的网络中集成了2070个神经元。图11说明了该芯片是如何构成的,两组神经元被一路由通道隔开,每一组的1035个神经元被组织成为一23×45的由512位静态随机存取单元构成的存贮器块。
每一神经元由一512×1位的SRAM(静态随机存取存贮器器)组成,其中包含有地址译码、读出放大器和输出锁存。图12说明此随机存取存贮器的芯体,它由两个地址译码器,4×16和5×32,所包围。每一SRAM单元尺寸为12×8μm,单个神经元包括译码、读出放大器和锁存在内的尺寸为296×232μm,整个芯片包括接线为13.3×11.6mm。
此多种神经元芯片有五种运行方式,如表3中所示。方式1和2用于单片网络,方式2读取三个64位的输入数据字(3×25nsec),执行网络功能并输出三个64位的数据字。在数据通路应用中,此网络每75nsec可处理一个新的输入(169位)。方式1便于串行加载输入数据,象语音处理过程中那样的应用将输入作时间位移,将每一输入模式左移,并以新的数据填充最右边的一列。在这一方式中网络运行快三倍。
方式3和4用于多芯片网络,即这两种方式中,输入和输出寄存器字长由64位减少到22位,一新的85位的片间寄存器形成网络边缘与相邻芯片的连接。方式4读出8个22位的输入数据字(8×25nsec),将8个64位的数据字传送到周围的芯片,执行网络功能并输出8个22位的数据字。对于数据通路的应用,整个网络每200nsec处理一个新的输入模式(按二进制)。
调试网络利用方式5,在调试期间,神经元激活状态通过-32位寄存器进行更新。为了调试整个网络,对每一芯片需进行35152次写32位的操作。
神经元立方体图13说明连结到一起的9个多神经元芯片。由每一芯片边缘的输出通过高速片间缓存器传输,传送完整的22位I/O端口169位数据字DS只需200nsec,任何大小的网络均可达到同样的数据通路性能200nsec/每输入字。图14说明一个27多神经元芯片的立方体,组织为59319神经元。
本发明的神经元网络是特别设计为以一数字存取存贮器电路来实现的多层二进制前馈网络。此系统具有三个独特的特点(ⅰ)内部连接要求有限。这就使得可以增大网络而不会促使硬件的复杂程度和处理时间呈指数上升。
(ⅱ)单路监控的学习算法。调试数据无需作多重表达,而在学习过程中亦不涉及重复操作。
(ⅲ)在调用方式中,网络的加权值无需加以分类。起作用的神经元寻址存贮器存贮单元,这些单元或者以“0”表明来被确认,或者以“1”表明得到确认。这就使得有利于进行高速处理。
这里的意图是,每一神经元芯片将含有2070个神经元,组成13×13×13的三维结构(每层为13×13个神经元,每一芯片为13层)。每一神经元有9个I/O连接,在每一芯片上产生18630个突触。任何尺寸的网络均可由连续地连接的芯片构成。由于仅只需要169(13×13)个片间连接,因而每一芯片就有可能每200nsec处理一新的输入。芯片的尺寸将为13.3×11.6mm。一512个多神经元的立方体(512个芯片连接成一立方作形状)就能够每秒钟处理具有75×1013突触的>106个神经元。这大大超越现有的神经网络芯片,后者每芯片平均为32个神经元和1000突触。
每一神经元是一512×1位的静态随机存取存贮器。每一神经元的9个连接提供了存贮器的512(29)个地址。这512个存贮只存贮单元使神经元可能学习到各种各样的子模式。
用户将在层1指定输入模式,在层n=13指定输出神经元。连接将按照由调试算法所确定的映射来接收加权值。“功能”神经元将学懂特定的子模式,而“内连”神经元则将活动导向目标输出神经元。每一种神经元可存贮P页加权值(这里P由用户确定),此加权值经过阈值检验(达到一用户所设定的水平)来提供存贮器地址以存贮“1”,表明得到确认,和“0”,表明未得确认。调整阈值水平将更改网络的综合特性。
调试算法在调试过程期间,每一组调试模式都与一输出神经元相关连。调试算法将模式映射进一被模拟网络的一组神经元中,以便使得在当输入模式的基本部分被加到网络的输入时,该输出将激活。调试模式仅出现于被模拟的网络一次,因为此调试算法根据第一次通过来计算正确的突触加权值,而无需重复进行。
在作调试时,仅仅处理那些带起作用值的的输入。每一起作用的输入均被识别并个别地进行处理,传播算法辩识处于通向被指定输出的通路上的神经元。
然后,该输入在网络的模拟过程中被神经元到神经元地连接起来,直至达到所有的目标输出端,每一阶段在一组可能的扇至点的每一神经元均经过查询,以检验它是否已经获得了所需的功能。如果没有一个神经元能响应所需要的功能,则查询相邻的神经元(最多9个),以建立每一神经元的备用能力,具有最大能力的神经元即被调整来实现新的功能。
每一神经元输入的有效值被用来帮助决定突触加权值。在一欲被映射进一个新功能的神经元不具有所需的加权值时,就引入一新的加权值页面。
每一神经元包含多重与突触加权值相等值的激活状态页面,这就使得每一神经元可能表征其输入的任何功能。在调试期间,如果在到输入神经元的通路上没有一个神经元激活,即引入一新的加权值页面,最少被采用的神经元被赋予新的加权值。加权值页的长度决定于到被指定的神经元的输入的复杂度。一典型的加权值页面WP如表4所示。
到一给定层的每一输入经完全处理以组成到下一层的输入。
当调试模式被学到后,调试算法就减少与表达所希望功能有关的每一神经元的相依性,这就保证了网络将响应那些部分不可靠或不完整的输入。
仅只需要以一组模式中每一模式调试网络一次,以保证结果可靠,更多的调试无助于结果的改善。老的存贮器在网络饱和前是不会被学习附加的模式所损害的。
网络的输入可以来自任何起源,用以调试网络的算法可被应用于学习任何功能。总有保证的调试时间,网络也总是稳定的,因为这里没有反馈。
算法对网络中可能实现的连接有如下限定一神经元可以是一由连神经元,或者一功能神经元,但不能同时是两者;
在可能有的情况下,连接应当向输出目标神经元的方向实现;
一神经元可以仅仅有一个到下一层的起作用的输出连接。这样,输入连接因而亦即加权值本身被定义为起作用的被连接的神经元(正加权值),起作用的未被连接的神经元(不起作用的加权值)和不起作用的神经元(负加权值)。
相关值被用来检验已经学过的子模式是否出现在当前的模式中。如果此相关值足够高,则该子模式将被加到一现有的模式组。如果此相关值不够高,则该子模式将被认为对网络是新的而被学到。
算法必须为每一起作用的神经元确定,哪种连接将提供到达目标输出神经元的最佳路径。由于每一第n层的神经元具有来自第n-1层的9个可能的输入,所以每一第n-1层的神经元具有在下层中的它可能连接9个可能的存贮单元。算法将首先决定,在当前层中是否具有足够的能同时映射以构成一特性的神经元。此映射功能必须决定哪一下一层神经元将给其提供通往目标输出神经元的最佳路径。假如不能映射一特性,作为连接的各个神经元活动的路线选择必须保证,在随后的一层中,神经元将对这一级模式构成一独特的特性。
映射过程还限定要求,在倒数第二层中要存在有大约6个起作用的神经元来寻址输出目标神经元。这防止在各层中模式收敛过快,从而减轻数据压缩。此外,每一神经元还具有一确定流程完的信息的水平的有效值。一具有高有效值的神经元被防止在较前面的阶段中加以映射,以维持给定层中的神经元之间信息比较平均的分配。类似地,一有效值特别低的神经元将被强行映射到另外的神经元中。高和低有效值的确定随网络深度增长,并按输入层中的活动水平来加以量度。
相关值用来确定加权值的更新。如果当前模式与被一特殊神经元已经学得的模式不相匹配,那么就产生一新的加权值页。如果此相关值处于匹配与不匹配的阈值之间,则将一新的加权值页面与现有的最佳加权值页面融合。如果此相关值大于匹配阈值,则无需更新加权值页面下一层神经元就激活了。
此网络算法本质上就是一路由选择算法。加权值被用来计算相关性,由此来决定能否利用现有的路线还是需产生新的路线。在调用期间,输入模式自由地通过网络中任何起作用的连接通路。在下一层中这常常会导致出现许多错误的动作,不过这些在朝着输出层的方向上会很快消失,因为没有足够的活动性作继续传播。
调试算法概述调试所有层程序实践中,算法仅仅以两种方式运行学习(Learn)或调用(Recall)。学习方式是调试系统的中心,第一级控制过程,调试所有层(TAL)程序,列于图15中。
步骤TAL1,建表(BuildTable)功能识别对一欲被学习的特定模式可用于连接的神经元。其适用性取决于目标输出神经元。由于每一神经元可以连接到它的9个附近的邻接单元,所以适用神经元的计算是在考虑网络连接结构布置的前提下,以由目标返回到输入的方式进行的。
不受控制的神经元趋向于同时映射以便尽可能快地取得导向目标输出神经元的一个或两个连接通路。这是不希望的,因为一通路的损失将排除模式分类的可能性。连接通路的配置是要获得到达目标输出神经元的理想的连接数目。这一理想情况可由用户通过一“调试算法目标参数”来定义。而且这些目标参数连接通路被近似地给定相等的有效值。此算法保证高有效值的神经元不同时进行映射,而低有效值神经元则被强制映射以防止它们传播到目标输出。
另外,调试算法映射还这样限定(ⅰ)一映射功能所需的输入神经元的最小数量为一在输入端为3到输出端的理想数量(目标参数)之间可调整的数量;
(ⅱ)一神经元不能既起功能神经元的作用又起一内连神经元的作用;
(ⅲ)一现有的功能神经元只能学习一新的子模式,如果它足够接近一已经学得的子模式的话,这就防止了同一神经元学习针对所有输入类别的子模式。
“高有效值”和“低有效值”的定义,连同一可作调整的尺度,被用于到一映射功能的输入的数量。对于一给定模式,目标输出处的最大有效值为输入层中起作用的神经元的数目乘以输入层的有效值(由Svalmin规定)。高有效值(MabSigval)是由作为目标输出端的最大有效值以到达目标输出的连接的理想数量(由目标参数规定)相除来确定的。每一层一映射功能所需的神经元数目(由innum规定)为-3至目标参数的可调整的度量。
每一层依次在步骤TAL3中加以选择,而利用步骤TAL4到TAL9加以调试。在步骤TAL4和TAL5中,调试程度标识欲建立于层n和层n+1之间的最佳连接类型。一旦层间所有的连接均被标识后,神经元存贮器存贮单元的内容即由步骤TAL6的MEMORYALLOCATION程序加以计算。然后步骤TAL7的RECALL程序被执行来根据先前步骤TAL6中MEMORYALLOCATION程序所产生的神经元存贮器存贮单元中存贮的值来指明第n+1层神经元的激活状态。
响应第n层中学习得的模式,第n+1层中的神经元激活。这些n+1层的激活神经元依次起进入层n+2的输入的作用。这一过程围绕步骤TAL3至TAL9的循环重复到最后第二层。由于最后第二层中所有激活的神经元后必须连接到目标输出神经元,因而无需计算一连接通路。步骤TAL10的调用程序将对目标进行查询,以判定它是否辩识该最后第二层的模式。在步骤TAL11中还得到一相关值(CorrVal)以指明该模式被网络识别的程度。目标输出神经元根据其激活状态及该相关值,在步骤TAL12中被更新。接着输入节点的有效值在步骤TAL13被馈送到目标输出,并再次执行调用(步骤TAL15),因为加权值更新有可能使得一先前未激活的目标输出激活。最后,网络中任何地点处的那些直接连接到目标输出神经元的神经元(即没有经受过除目标处之外的任何映射功能的)均由检验连接功能的步骤TAL16所标识。
下面的描述证明在图15的调试算法各个步骤中所用程序实现的功能,参照描述和表示每一程序的段落和流程图。
1.调试层的程序(TAL5)
调试层(TL)程序如图17和18所示。首先,在步骤TL1,利用调用程序调用层n1(见后面图37和段落21)以判别是否有任何神经元已激活表明它们识别一子模式。由层n中神经元到层n+1中神经元的可能的输入的数目在步骤TL2中进行计算。然后程序在两个阶段中执行。
第一阶段(TLS1)如图17所示,确定该网络是否已经学会对特定神经元的连接。对于每一第n层激活的神经元,它1.利用步骤TL3和4,将所有下一层的激活神经元标记为功能或内连神经元;
2.利用步骤TL4和TL5,依次取被标记为“功能”的神经元并检验以判断在当前的第n层的神经元及被标记的功能神经元之间是否存在有连接。如果存在有连接而且相关值大于弱激活值(用户程确定),如步骤TL6所确定的,在步骤TL7中即调用MAP程序(见下面的图20和段落3)。这一程序如果成功,即将当前第n层标明为已映射的,围绕步骤TL8、TL9和TL10循环并重新进入步骤TL3。
3.如果当前第n层的神经元未成功地映射,如步骤TL8中所检测到的,则被标记的内连神经元就依次在步骤TL11、TL12和TL13中被检验,判断在它与当前第n层神经元之间是否存在有连接。如果这种连接存在而且相关值大于“弱激活值”,如步骤TL14中所检测出的,就在步骤TL15调用-INTERCONNECT程序(见下面的图19和段落2)。这一程序如果成功,即将当前的第n层神经元标明为已被映射的,并重新经由步骤TL9回到步骤TL3;
4.如果不存在有经标记的功能或内连第n+1层神经元连接到当前的第n层神经元,或者相关值足够高,则第n层神经元即由步骤TL16、TL17协同步骤TL13和TL14来检测其独特性。
如果已被学习的模式不是一新模式,像步骤TL18所检测的,就可能是先前的学习功能仅仅辩识了当前的神经元的一个连接。如果情况真是这样,一UNIQUEMAP程序步骤TL19(见下面的图22和段落5)将辩识此特殊连接。
“调试一层”程序阶段1利用步骤TL9、TL10至TL13重复循环,直到最后一级神经元被处理,据此在步骤TL20阶段2进入步骤TL21。
“调试一层”程序的第二阶段(TLS2)如图18所示,它第n层中那些未被第一阶段标明为已被映射的神经元进行再次评价。如果该模式不属于一新类别,如步骤TL22中所检测到的,那么就首先检查噪声,然后检查独特性噪声-如果一未经映射的第n层神经元的有效值小于MaxNoise(用户确定)而且一下一层神经元正激活,如步骤TL23所检测到的,那么就在步骤TL24将当前的第n层神经元作为噪声忽略掉;
独特性-如果该未被映射的第n层神经元不能作为噪声忽略掉,步骤TL25就检验查明是否在步骤TL26和TL27中为此神经元存在有一独特连接。
对于一新模式,或者随着上述两个检验的失败,步骤TL28运行以决定一新的连接通路。如果当前第n层神经元的有效值大于“MaxSigVal”,像步骤TL28中所检测到的,则调用TNTERCONNECT程序TL29(见下面图19和段落2)如果该有效值小于“SigVal”,像步骤TL30所检测到的,即在步骤TL31调用-LOOKAROUND程序(见下面图22和段落5),以便寻求一至少带有2个可用输入的到第n+1层神经元的连接。如果此有效值处于“SigVal”和“MaxSigVal”极限之间(步骤TL30无输出),则在步骤TL32调用LOOKAROUN程序并要求当前的第n层神经元由至少“innum”个可行的输入连接到一第n+1层的神经元,(由LOOKAROUND程序执行的步骤示于图22中并在下面的段落5中说明)。上述程序是针对第n层中的每一未加标明的神经元进行的,围绕步骤TL33和TL34作循环并重新进入TL22。
调试层程序阶段2执行的最后过程是计算第n+1层神经元的有效值。这是通过步骤TL35中调用RIPPLESIGNIFICANCE程序来达到的(见图36及下面段落20)。
下面的叙述是关于“调试所有层”算法和“调试一层”程序中所指明的每一程序协同由这些程序调用的各种程序所执行的功能的概况。
2.连接程序(IP.图19)最初,调用GUIDE程序(下面段落12说明,图示于图29中)以确定与其连接的最佳下一层神经元。如图找到一连接点(IP2),所有受此连接影响的矩阵参数均加以更新(IP3),并在步IP4通过CORRNUM程序(见图31和段落14)决定相关值。然后执行加权值UPDATE程序步骤IP5(段落11)如果在步骤IP2中没有找到连接点,即在步骤IP6中报告一“映射失败”差错。两种情况下神经元均在步骤IP7标明为已被映射。如果神经元映射失败,它实际上被存贮为没有连接点被映射的。这防止了神经元在当不存在有通路时的继续评值。
3.映射程序(MP)图20所示的映射程序只有在当“调试一层”程序的第一阶段中识别了一可能的下一层功能神经元时才被调用。当前的第n层神经元在步骤MP1中仅被作为一“映象”连接到下一层神经元,如果其他第n层神经元也被连接的话。因此,这些其他第n层神经元经过检测来保证该映射的可能。这是在步骤MP2中通过RECORDCONNECTIONS程序(见图25和段落8)实现的。例如该情况可能是这样,3个神经元可用于(以及被要求)进行映射,但这样映射的实现将使得下一层功能神经元的有效值超过所允许的最大值“MaxSigVal”。因此,此映射功能将是不允许的,而从步骤MP3经“否”支路出来。
如果映射成功,所有为该连接影响的矩阵参数即在步骤MP4和MP5中加以更新,并通过CORRNUM程序(见图31和段落14)确定相关值。然后执行加权值UPDATE程序步骤MP6(见图28和段落11),所有与此映射功能相关的第n值神经元均标明为已被映射的。如果不可能将所需数量的第n层神经元映射到第n+1层神经元(步骤MP3的“非”支路),此映射功能即在步骤MP7终止,由RECORDCONNECTIONS程序(见段落8)所确定的连接均被取消。如果MAP程度被由LOOKAROUND程序(见图22和段落5)步骤MP8所调用,则调用INTERCONNECT程序步骤MP9。
4.独特映射程序(UMP)图21说明这一程序,步骤UMP1和UMP2被执行对当前第n层神经元进行分析,对为之已经学得的功能和内连连接的数目进行计算。在步骤UMP3中检测到的独特功能连接使得MAP程序UMUMP4(见图20和段落3)被调用,而在步骤UMP5中检测到的独特连接则促使在步骤UMP6调用INTERCONNECT程序(见图19和段落2)。一神经元决不会同时具有一独特功能和一独特连接连接两者(因为否则它就不是独特的)。
5.巡视程序(LAP)图22中所示的巡视程序在为一特定的第n层神经元寻找连接时被调用。如果可能的话最好执行一MAP功能。如果第n层神经元的有效值小于“SigVal”,就需要将至少两个神经元一齐映射,否则进行映射 需的神经元的最小数量就由“innum”指定。如果此所需的神经元数目对映射是可行的,如步骤LAP1中所认定的则就有不只一个下一层神经元可能起功能神经元的作用,步骤LAP2的“是”,而后即调用CORRELATE程序步骤LAP3(见图39和段落13)。这一程序对每一予期中的下一层神经元计算相关值,这个相关值是如果对该神经元的映射完成了的话就会生成。CORRELATE返回或者带有最高相关值的下一层神经元的““CorrVal”,或者一失败指示,如步骤LAP4中所测试的那样。如果成功(步骤LAP4的“是”),该下一层目标功能神经元即被确认到步骤LAP5中的MAP程序(见图20和段落3)。应注意的是,和应用MAP程序一样,CORRELATE程序保证该映射过程可能在计算相关值前进行。这就保证了在当能满足所需的输入端数目的最佳功能神经元存在时,只调用MAP程序。
如果不可能完成一映射功能(步骤LAP4输出“非”,或步骤LAP2输出“非”),则将当前的神经元或者强制映射为“innum”等于2,或者被加以连接。如果当前第n层神经元的有效值小于“SigVal”,则它为FORCEMAP程序步骤LAP7(见图23及段落6)强制映射,否则调用INTERCONNECT程序(图19),步骤LAP8。
6.强制映射程序(FMP)图23中所示的这一程序在当一第n层神经元的有效值太低而不允许它被连接到下一层时被加以调用。开始,最好执行这一层其他神经元的映射功能。
所有当前层中的相邻神经元均在步骤FMP1到FMP3中加以检验,如果存在任何非零有效值的神经元的话,就在步骤FMP4中选取具有最低非零有效值的神经元。然后在步骤FMP5,对可用的下一层功能神经元检验两个神经元,并在步骤FMP6将那些对两者共同的加以可用标记。在步骤FMP7调用CORRELATE程序(见图30和段落13)以确定最佳下一层功能神经元,而且如果成功的话(FMP8=是),即调用MAP程序以执行图23中的强制映射程序。
如果在当前层中不存在有相邻神经元(FMP3=非),或者CORRELATE(FMP8=非)或MAP程序(FMP10=非)不成功,当前的神经元不必须在步骤FMP11中被强制进入下一层的刚才已为当前层学得一功能或连接的神经元。下一层可用神经元的有效值在步骤FMP12中加以计算,而在步骤FMP13中将神经元按最低非零有效值第一的次序加以存贮。而后在步骤FMP114调用MAPINFORCENEURON程序(见图24和段落7)。
7.被强制神经元程序中的映射(MIFNP,图24)只要有一可用的下一层非零有效值神经元存在,如步骤MIFNP1中检测得的,以及映射功能不违背“MaxSigVal”参数,如步骤MIFNP2中检测得的,该映射就在步骤MIFNP3中被确定。所有受该连接影响的矩阵参数均在步骤MIFNP4中予以更新,并通过CORRUM程序决定相关值(见图31和段落14)。然后在步骤MIFNP5执行加权值UPDATE程序(见图28和段落11)。此时应注意的是,由这一神经元被强制进入的下一层神经元所学得的先前的功能和连接现在被废弃。结果,为第n+1层神经元所产生的最近的加权值页面被改写。
8.记录连接程序(RCP,图25)这一程序的目的是将当前层神经元连接到下一层功能神经元而不违背“MaxSigVal”参数。由于下一层神经元已经被认定,在步骤RCP1中由当前层识别的9个可能输入端的神经元即在步骤RCP2中按最低非零有效量第一的次序加以分类。而后这些神经元即在步骤RCP3中通过MAPINORDER程序中顺序加以映射(见图26及段落9),直到或者没有另外可行的神经元,或者到达有效值极限为止。应注意,调用MAP程序将如同起动这整个过程的当前第n层的神经元已被连接到该被识别的功能神经元而加以认定。在步骤RCP4,RECORDCONNECTIONS将成功地连接的神经元的数目返回给MAP程序;
9.按序映射程序(MIOP,图26)可用于连接的当前层神经元按照最低非零有效值第一的顺序选择(步骤MIOP1)。在步骤MIOP2调用MAPCONNECTION程序(见图2)和段落10),如果成功即在步骤MIOP6将成功地连接的数目增量,以便返回到RECORDCONNECTIONS程序(见图25和段落8)。
10.映射连接程序(MCP,图27)映射连接将对MAP程序(见图20和段落3)的调用加以区分,这种调用或者是试图确定一连接是否已经被学到,或者试图确定在步骤MCP1,MCP2和MCP3中一新的连接是否有效。
首先在步骤MCP1中检测下一层功能神经元。如果它是激活的而且相关值大于“激活值”,则由“调试一层”的阶段1中调用MAP程序。如果在步骤MCP2中检测得一连接并不存在,必须向调用程序报告失败。
如果或者已经识别了一存在着的连接(步骤MCP2=“是”)或者欲学习一新的连接(步骤MCP1=非),就在步骤MCP3检查有效值的有效性。在步骤MCP4还检测映射过程未被MAP程序确定的情况。然后当前层神经元即被确定为连接到下一层功能神经元,相应的参数在步骤MCP5和MCP6进行更新,并向MAPINORDER返回表示成功的“1”。
11.更新程序(UP)图28所示的更新程序确定是否需要作加权值修改。如果一模式已经以足够高的相关值得到确认,就无需更新加权值(步骤UP1=“是”)。如果此相关值小于“激活值”(步骤UP1=“非”)但大于“弱激活值”(步骤UP2=“是”),则在步骤UP3生成针对当前子模式的加权值,但要通过MERGEWEIGHTS程序(见图35和段落18)与下一存在的加权值页面合并。如果相关值不足够高,(步骤UP2=“非”),则在步骤UP4通过GENNEWWEIGHTPAGE程序(见图32和段落15)产生一新的加权值页面。通过步骤UP5的两个更新功能选项很重要。
如果像而后传播那样,仅仅只有一个合并加权值便利条件存在的话,极其错误的数据将大大影响数值的分布,并降低系统的性能但是如果仅仅产生了新的加权值页面的话,许多加权值页面将表征非常类似的模式向系统存贮器将迅速耗尽。因为用户确定参数“激活值”和“弱激活值”,因此可以随意设立分类界限,并利用此二更新选项来提供较大程序的灵活性。
12引导程序(GP)图29所示引导程序在当寻找最佳连接点中为一指定的当前层神经元调用。最初在步骤GP2确定下一层能用于连接的节点。(这些首先在步骤TAL1被建表功能确定)。步骤GP2中取最佳节点功能针对目标输出节点(最后一层输出)分析可用的节点,并为了进行选择而确定下一层哪一节点将提供最佳连接通路。一经识别,这些节点即被按顺序评估1.如果该最佳节点尚未被用作一功能或内连神经元(步骤GP3=“非”),现在它就可以被采用;
2.如果当前模式不是一新类别模式(步骤GP4=“非”),或者该当前神经元被连接到一连接最佳节点(步骤GP5=“是”)(这就是说已由INTERCONNECT调用了GUIDE,而该最佳节点已被确定为内连接神经元),或者该当前神经元应被映射到一访能最佳节点(步骤GP6)(这就是说由CORRELATE调用了GUIDE,而最佳节点已被确定为一功能节点),然后(a)检查判定该最佳节点是否已连接到当前的神经元(步骤GP7)。如果是这样,它现在可以再被应用;
(b)如果该最佳节点已经被直接连接到目标输出节点(由先前调用学习程序的检验连接所确定),有效值小于“MaxsigVal”,该最佳节点还未激活而且也未被映射,那么它就可以被应用(步骤GP8和GP9);
3.如果对于所有可用的神经元上述每一个步骤都失败的话(步骤GP9=“非”及步骤GP11),就检验判定一个映象或者先前由这一层所学得的内连功能能否加以访问(步骤GP13)。这类似于FORCEMAP程序(段落6),但现在可能违背有效值规则(亦即有效值可能大于“MaxSigVal”);
4.如果上面没有一个步骤产生一连接点,即报告一“映射失败差错”GPF。
引导程序对其调用程序返回一成功的指示符GPS,而且如果成功的话,即识别下一层的连接用结点。
13相关程序(CP,图30)利用步骤CP1、CP2或CP3和CP4到CP5和CP6返回到CP2的循环来检测9个下一层的相邻神经元中的每一个的可用性和有效值,以便为当前的第n层神经元提供连接点。如果没有发现可用的神经元,即在步骤CP7返回失败RF。
在步骤CP8对这些可用的神经元进行估值,以寻找最佳相关值,如果获得了相等的情况(两个或更多的神经元具有相同的最佳相关值),如由步骤CP9至CP12所确定的那样,就在步骤CP13调用GUIDE程序以决定最佳神经元和被CORRELATE返回的“被引导的”神经元RCV的相关值。
如果找到一最佳相关值RCV在步骤CP10中对之进行检测以保证它超过最小相关值“MinCorr”(用户规定)。这是重要的例如说,如果一神经元已经学习得一3个神经元的子模式,并且如果这3个神经元之一是起作用的,而另外2个则为“0”状态,就将产生一很小的相关值。采用具有这种相关值的神经元是不希望的,因为它实际上将被强制学习一现有子模式的就表达形式。由于此新的子模式可能与该现有的子模式无关,这种效应将对系统是有害的。
如果该最佳相关值没有超过“MinCorr”值(步骤CP10=“非”),那么就只有那些在步骤CP11所确定的给出零相关性的神经元才作进一步考虑。如果步骤CP12中得到相等状况(不只一个神经元为零相关),即在步骤CP13中调用GVIDE以确定下一神经元。此后,CORRELATE识别最佳预期的功能神经元,并返回其相关值“CorrVal”RCV。
14,相关数程序(CMP)图31所示的相关数程序利用步骤CMP1至CMP13计算为神经元所存贮的加权值的每一页面的相关值。在步骤CMP14中决定后,返回最佳相关值。
为了加权值的每一页面在步骤CMP13进行更新,执行步骤CMP2至CMP9(=“是”),及CMP12(=“非”)。在步骤CMP10,由所存贮的数值乘以起作用层的当前有效值,决定相关值。注意,这一过程将区分具有不同有效值的相同位模式。
15产生新加权值页面程序(GNWP)图32所示的产生新加权值程序的一给定的目标神经元(学习由层n中的扇入神经元映射的层n+1中的神经元),生成一加权值页面。在步骤GNWP1中,由GENERATEWEIGHTS程序(是图33和段落16)产生加权值。然后在步骤GNWP2进行检验以判定(ⅰ)一新的加权值页面是真正要求5的,(ⅱ)存在有备用加权值页面(步骤GNWP3=′是′)。步骤GNWP2的′重新应用′检测保证在当执行TRAINLAYER程序期间一神经元没有正在被重新应用中。重新应用可以发生在强制映射被实现时。如果一当前层神经元被强制进入一在调试这一当前层期间已经学习得一映射的下一层神经元的话,那么该现有加权值页面就必须被重新应用。涉及到步骤GNWP4和GNWP5的USE矩阵,为每一神经元存贮已经被分配的加权值页面的数目(“Usepjr”总是指向下一空的权值页面)。在重新应用的情况下,最后的加权值页面必须被重新估价。
由于对允许的加权值页面总的数目有一定的限制(用户确定),因而必须进行检测以保证它们没有被全部应用(步骤GNWP3)。如果存在有空的加权值页面,则当前页面的数目,“lastnum”,即由“useptr”和“useptrdated”设定。然后在步骤GNWP7执行WEIGHTALLOCATION程序。如果不存在有空的加权值页面,即在步骤GNWP通知用户。
16.产生加权值程序(GNP,图33)因为一般列于步骤GWP1的输入层中暂停不用(′O′)的神经元较之其他层要远少得多,所以它在步骤GMP2设置有其自己的禁止参数“innibzero”。其他层靠设置于GWP3中的禁止参数“innibrest”运行。为之正产生权值的神经元(目标神经元)在步骤GWP4中选择,它具有9个可能的扇入点因而即9个权值。9个扇至神经元首先经检验以判断他们是否被映射到和连接到目标神经元(步骤GNP5)。如果是这样,就执行步骤GNP6并产生一正的权值。一旦所有扇至神经元通过步骤GWP5,GNP7和GNP8的循环都经过正连接的检验,他们即通过步骤GNP10,GNP12和GNP13的循环再次查询他们的负连接。对于任何未被映射和未激活(步骤GWP10=′是′)的扇至神经元就在步骤GNP11中产生一负加权值。最后这些扇至神经元通过步骤GWP15、GWP17和GWP18的循环检验暂停不用的连接。任何被映射了但未被连接,或者未被映射面激活的神经元,均在步骤GNP16被指定一暂停不用的加权值。然后利用步骤GWP19至GWP29来计算这些负的和暂停不用的加权值。一旦所有连接均被确认(步骤GNP28=′是′),就在步骤GWP30利用图34所示的NORMALISE功能对加权值作规格化处理。最后在步骤GWP31计算一阈值。注意,所有加权值均取决于用户确定的参数。
17加权值配置程序(WAP)加权值配置程序仅仅是将由GENERATEWEIGHTS程序(见图33和段落16)或MERGEWEIGHTS程序(见图35和段落18)所产生的加权值存贮进由“Wgtptr”所指出的全局加权值矩阵中。每一神经元具有很多个加权值页面,每一加权值页面均存贮有9个扇入加权值和由调用程序产生的阈值。
18加权值组合程序(MWP)图35的加权值组合程序使得一现有的加权值页面可能与一新的加权值页面加以组合。这在当前正被学习的映射与一已经学得的相似时就需要。其相似程度由相关值来确定。如果相关值小于“激活值”(良好相关)但大于“弱激活值”(不良相关),就进行组合。
开始在步骤MWP1调用GENORATENEIGHTS程序(见图33和段落16)来为目标神经元所要学习的当前的映射产生一组新的加权值。而后利用步骤MWP5至MWP13来以新产生的加权值(Weights〔neuron〕)修正由步骤MWP2所选择得的被目标神经元存贮的最佳加权值页面(BestWeight〔neuro〔neuron〕)(亦就是对这一映射给予最佳相关值的加权值页面),并在步骤MWP14执行WEIGHTALLOCATION程序(见图34和段落17)以存贮新的值。因为加权值已经被修改了网络矩阵也必须修改。达到这一点的最容易的方法是,在步骤MWP15清除网络矩阵,在步骤MWP16为当前的目标神经元选择第一加权值页面,在步骤MWP17为被目标神经元所存贮每一页面的加权值利用步骤MWP18和MWP19调用MEMORYALLOC-ATION程序(段落19)。
19.存贮器配置程序(MAP)图36所示存贮器配置程序将正或负的数值分配到NET矩阵(由“netptr”指定)以指明扇入模式相关优良(正值)或不传(负值)的地点。这些正和负值本身是用于估价的目的,对神经元的实现为二进制SRAM并无任何限制。由于一开始在进行任何网络调试之前该NET矩阵是被置0的,一个零值仅仅是指出没有任何信息是已知的。实际上这与一负值相同。这样,正值=′1′即为已被确认,而负和零值=′0′即为未经确认。
在步骤MAP1,当前加权值页面中的每一扇入神经元的加权值(由USE矩阵给出)均被连同相应的阈值从存贮器中取出。9扇入神经元提供了29=512个存贮器地址单元。在步骤MAP3、MAP4、MAP5、MAP6、和MAP7的循环上,对0到511的每一地址计算出一活化水平。对于每一特定地址,将对应于神经元起作用(′1′)的位置加权值进行相加。例如,地址468=111010100,所以这一地址的活化水平即为活化水平=权〔9〕+权〔8〕+权〔7〕+权〔5〕+权〔3〕。如果此活化水平大于阈值,如步骤MAP8所检测得的,则就确定了该目标神经元将识别给予该地址的映射,并将一正值存到NET矩阵(步骤MAP9)。这一存贮的值与权值页面相关连使得在进行评值期间,该设置能被追踪回到一特定的学习过程。如果此NENET矩阵已经是空的而经页面参数(用户选定)修正过的活化水平大于阈值(由步骤MAP10检定),则在步骤MAP11将一负值存入以指明缺少相关性。应指出的是,负值决不能冲掉正值,虽然逆定理为真这就保证了,一旦学习得到后,一个模式将不会被“遗忘”。加权值组合措施使得有可能在原先的模式特别混乱的情况下进行修正。对于每一次映射均要通过步骤MAP12和MAP13的循环进行上述过程。
20有效值行被传送程序(RSP)步骤TAL13和TL35中所利用的有效值行传送程序,(举例说)仅仅是将扇入神经元的有效值加到一特定的下一层目标神经元。只有那些实际连接到该目标的扇入神经元才将他们的有效值加入。因而目标的有效值就是输入有效值的和,这就保证了除非“映射失败差错”被报告了,输出目标神经元(最后一层目标)的有效值总是输入层激活中的神经元的有效值之和。
21调用层程序(RLP,图37)由步骤RLP10逐个选择的层中的每一神经元,在这一程序每次被进入时,都对其输入映象进行分析以产生一到NET矩阵的地址。激活状态的9扇入神经元中的任何一个(不受其是否被连接)均在该地址中对应位置“1”。然后在为目标所指定的地址处就是否被确定为激活状态而对NET矩阵进行查询(步骤RLP4)。如果在NET矩阵中存放的是一零或负值,则该目标神经元即为不起作用的,如步骤RLPS中所确定的。
调试算法概述由上所述可以看到,根据本发明对神经网络的调试是首先识别目标神经元而后可允许的连接通路。每一状态为1′的输入神经元被规定为具有一有效值,可随意地设为10,所存其他神经元的有效值均为零。有三种型式的连接(ⅰ)正连接;(ⅱ)负连接;(ⅲ)不作用连接。
正连接由′1′状态的第n层神经元到第n+1层的神经元构成。类似地,负连接由′0′状态的第n层神经元到第n+1层神经元构成。一不作用连接则发生在当一第n层神经元在起作用(逻辑′1′)但却不是用于正在被学习的模式的连接通路的组成部分的情况下。
将连接为“1”的神经元的有效值乘以一正的加权参数作为给该正连接所给定的正加权值。负加权值的决定则是取所有到达该神经元的正连接的正加权值之和再乘以一负的加权参数。这一值将根据到该神经元的负输入端的数目加以规格化处理。类似地,不作用加权值的决定是取正加权值之和乘以不作用加权参数,并根据到该神经元的不作用输入端的数目进行规格化。所有加权值参数均由用户确定。神经元的加权值被存放在加权值页面中。应指出的是,此调试算法允许层n中的神经元将自己连接到层n+1中的任一可用的神经元。
一旦构成了连接,一第n+1层神经元的有效值就是连接到它的第n层神经元的有效值之和。
一旦所有第n层的神经元均被连接后,就计算第n+1层神经元的激活值。这被称做调用,而且是与测试网络性能中采用的同一过程。第n层神经元提供到第n+1层神经元的地址,并且这些地址要被查询。激活值作如下设定如存贮值>0,则激活值=-1;
如存贮值=0,则激活值=0;
如存贮值>1,则激活值=1;
如存贮值>10,则激活值=2。
值0和-1表示一不作用“0”神经元状态,而“1”和“2”则表示一作用“1”神经元。此二作用激活值被用于决定加权值页面的运行。
相对应于每一神经元的加权值被存贮在加权值页面中。在一新的模式为网络学习时,它首先检验判定此新模式是否与它已经学得的那些相类似。这是由将网络作调用方式运行来达到的。输入模式通过网络进行对下一层神经元起作用直到输出层,在此目标可以激活或不激活。然后调试算法逐步地通过该网络,由输入层开始。如果下一层中没有神经元激活(激活值为0或-1),则必须学习连接并存贮一新的加权值页面。如果一下一层神经元以激活值为1而激活,它即被定义为一弱激活。这表明一个输入模式或者是杂乱的或者是不完全的,但被很弱地辩识了。此网络将由加权值组合来响应,也就是该对一现有的加权值页面加以更新使其适应该杂乱的模式,并从而更新存贮于神经元存贮器地址的值。如果一下一层神经元以一激活值为2而激活,它即被定义为强激活。此输入模式得到确认而无需更新任何加权值或神经元存贮器。
一旦网络学得了所需的模式,它即能以调用方式进行测试。将欲予识别的模式加到输入层,起作用的神经元即对下一层寻址。对被输入层神经元所指定的地址加以查询,并将下一层神经元的激活值设置为存贮于存贮器中的值。这一过程对每一层重复进行,直至达到输出层。如果没有任何输出层神经元激活,则该模式就没有得到确认。如果一单个输出神经元激活的话,此输入即属于与该输出的相关的模式类别。如果有两个或更多输出神经元激活的话,则此输入就被归属于多类别模式。这在它们自身可能是有用的,因它使得神经网络有可能检验多个模式及子模式。
权利要求
1.一用于一神经网络中的数字神经元,此数字神经元包括有一具有2n存贮单元的随机存取存贮器,一个存贮单元针对每一个n输入的编码模式,每一存贮单元以神经元的激活状态(活动或不活动)被加以编程,这些激活状态对应于由一神经网络调试算法分配给针对一神经网络中的该神经元的输入编码模式的突触加权值,此神经元起一查表装置的作用,以为被送到神经元输入通路的每一个n位数字编码模式从被该n位数字输入编码模式所寻址的该随机存取存贮单元求取神经元激活状态。
2.按照权利要求1所述数字神经元,其中该调式算法将神经元存贮加权值映象与被安排进该神经元随机存取存贮器中的神经元激活状态公开地存贮。
3.按照权利要求1或2所述的数字神经元,其中数字神经元被编程安排将针对每一特定的输入编码组合执行一相关功能或由连动能。
4.按照权利要求3所述数字神经元,其中该调试算法将存贮器加权值映象分成为加权值页面,每一神经元随机存取存贮器类似地以相应的激活状态加权值页面加以安排,由此向使得一神经元可根据被用作存贮器地址加给该神经元的输入编码组合或存起一相关单元的作用,或者起一连内单元的作用。
5.一数字神经网络,包括有多个是有n输入连接和一具有2n存贮单元的随机存取存贮器的数字神经元,该存贮单元每一个针对输入连接状态的每一可能的数字组合,用于存放对应于被配置给该输入连接状态的突触加权值的神经元激活状态,并且其中该神经网络是多层的,面网络中每一神经元的输出均被连接到该网络的下一层中的一定数量的相邻神经元的输入通路。
6.按照权利要求5所述数字神经网络,其中每一神经元的输出均被连接到下一层中对应神经元的一输入通路和该下一层中该对底神经元上下紧邻信号n的神经元(如果存的话)的输入通路,该网络的每一输入通络类似地被连接到输入层中对应神经元的一输入通路和该输入层中该对应神经元上下紧邻的神经元(如果有的话)的输入通路。
7.按照权利要求6所述数字神经网络,其中,某些神经元与同一层的其他神经元共同利用他们输入的部分。
8.按照权利要求5、6或7所述数字神经网络,由一轴均相等的组合式三维立方体矩阵构成,每一数字神经元是有9个输入通路,这些数字神经元的相互连接是,每一神经元均连接到前一层中上、下和对应的三个神经元的输出。
9.按照权利要求8所述数字神经元网络,其中许多模块可以互相连接组成一大的网络。
10.按照权利要求9所述数字神经网络,其中神经元和每一立方体矩阵均采用集成电路技术制造。
11.一种数字神经网络的调试方法,该网络由许多按规则的模式连接成多层布置的神经元组成,其输入层被连接到网络的数字输入通路此方法涉及到要为该网络识别为一没有重复过程的单一进程的模式的应用。
12.按照权利要求11所述的方法,其中突触加权值主要根据流通到每一种神经元的信息设定。
13.按照权利要求12所述方法,其中多个输入模式被应用于对该网络连接安排的模拟。而且仅对具有正(′1′)值的输入进行处理以识别处于通向被指定输出的通路上的神经元。
14.按照权利要求13所述方法,其中一调试算法将网络输入通路神经元到神经元地连接通过被模拟的网络直至到达所有的目标输出,在每一阶段,对出自可能的扇至点的一个神经元加以查询以验证一神经元是否已经学到所需的功能,在没有一已经学习到该所需功能的神经元时,对相邻神经元进行查询为每一神经元建立备用能量,具有最大备用能量的神经元被编程来实现所需的功能。
15.按照权利要求14所述的方法,其中该被模拟网络中每一神经元都以突触加权值加以编程以针对为该调试算法所确定的特定输入模式执行相关功能,而在欲将一神经元映射进一新功能时,该调试算法即产生一新的加页权值面。
16.按照权利要求15所述方法,其中每一神经元含有能使每一神经元代表其输入的任何功能的激活状态的多重页面,在调试期间如果在到输出神经元的通路上没有一个神经元激活的话,就计算一新的加权值页面并引入一新的激活状态页面,最少被利用的神经元被指定以新的加权值,而此加权值页面的长由经指定的神经元的输入的复杂度决定。
17.按照权利要求16所述的方法,其中该调试算法对网络中的连接作如下限制(ⅰ)一神经元可以或者为一内连神经元,或者为一功能神经元但决不能同是两者;(ⅱ)连接应当在输出目标神经元方面上建立;(ⅲ)一神经元只能有一起作用的输出连接到下一层,输入连接和加权值被规定为一起作用的被连接的神经元(正加权值)一起作用的来被连接的神经元(不起作用的加权值),和一不起作用的神经元(负加权值)。(ⅳ)一相关值被用以检测在为当前的模式中是否存在有已经学习得的子模式,如果此相关值足够高,此子模式将被加到一现存组,如果此相关值不够高,此子模式将被学习为此网络的新模式。
18.按照权利要求17所述的方法,其中该调试算法为每一起作用神经元决定哪一连接将提供到目标输出神经元的最佳路径,该算法首先决定当前层中是否有足够的神经元能同时映射以执行所需的功能,此映射功能确定下一层中哪一神经元将提供到目标输出神经元的最佳路径,如果一特性不能被映射,能引个别神经元活动作业连接将保证,在随后的层中神经元将针对被被调试的这类模式形成一独特的特性。
19.按照权利要求18所述的方法,其中映射操作被限制为需要在最后第二层中存在有许多起作用的神经元来寻址输出目标神经元,依此来防止层中模式收敛太热以降低数据压缩,每一种神经元均被指定了一确定流经它的信息水平的有效值,一具有高有效值的神经元将被防止在一先前阶段进行映射,以便保持一给定层中的神经元之间相对均匀的信息分亨,类似地,具有特别低存效值的神经元将被强制映射到其他神经元。
20.按照权利要求19所述的方法,其中高和低有效值的规定随网络的深度增加并由输入层中的活动水平进行量度。
21.按照权利要求20所述方法,其中一相关值被用来决定加权值页面的更新,如果当前模式与那些已被一特定神经元学得的不相匹配就产生一新的加权值页面,如果此相关值处于匹配和不匹配或值之间则将一新加权值页面与最佳的现有加权值页面加以组合,如果此相关值高于该匹配值就无需更新加权值而下一层神经元就是有效的。
22.按照权利要求5至10所述数字神经网络,利用权利要求11至19中任一个所要求的调试算法被加以编程。
23.一基本上如所列附图中所示和说明的数字神经元。
24.一如所列附图中所示和说明的数字神经网络。
25.一如所列附图中所示和说明的数字神经网络的调试方法。
全文摘要
一完善的模拟数字神经元,增强的模拟神经网络结构以及一简调试工作的神经网络调试算法。此数字神经元包括具有2n存贮单元(一位)的随机存取存贮器的n位输入一位输出的装置。由一网络调试算法按神经元激活状态,根据针对神经网络内加的神经元而分配到输入编码组合模式的突触加权值加以编程。此数字神经元起一查表装置的作用,为每一加到其输入通路的n位数字编码模式。求取神经元激活状态。
文档编号G06F15/18GK1076536SQ9310286
公开日1993年9月22日 申请日期1993年3月13日 优先权日1992年3月13日
发明者肯尼斯·奥斯汀 申请人:皮尔金顿电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1