神经网络及其使用方法

文档序号:6407869阅读:422来源:国知局
专利名称:神经网络及其使用方法
技术领域
本发明与转让给本发明的受让人的下述发明有关“人工神经及其使用方法”,与本发明同时申请,美国专利申请序号为No.08/076602。
为此,上述的有关发明的主题被并入到本发明的化开中作为参考。
本发明涉及人工神经网络,具体涉及能以VLSI(超大规模集成)芯片或计算机程序实现的神经网络,并且它利用一种无需重复训练的训练算法,和对每个给定的输入矢量组产生一个全局最小值。
人工神经网络在各种各样的计算机环境有多种例如,话音识别、过程控制、光学字符识别、信号处理和图像处理中得到应用。对于上述应用中的许多处理机器可通过神经网络来实现,该神经网络包括称为“神经电路”的许多基本逻辑单元。
正如上述相关发明中所描述的,常规神经电路的结构经常包括一个乘法器电路、一个求和电路、一个用于执行非线性函数(例如,一个二进制阈值或S形函数)的电路,或起着突触(synapses)或加权输入连接功能的电路。因为一个典型的常规神经电路需要所有上面描述的电路,能在半呆体芯片上生产的神经电路的数目受到严格地限制。
熟知的神经网络结构有20多种,其中最熟悉的是“反向传播”(back-propagation),“感知器”(perceptron),和“毫普费尔德网络”(Hopfield network)。


图1示出先有技术的反向传播神经网络。如图1所示,该反向传播网络典型地至少包括三层一个“输入层”,一个“隐藏层”,和一个“输出层”。但是,如众所周知,可能需要多于三层的许多层来解决中间尺寸问题。
参见图1所示的具体反向传播神经网络,多个输入X1-Xn的每一个输入耦合到输入层的各个输入节点(仅仅画出了其输入节点1,2和4)。例如,输入X1耦合到输入节点1。
输入层中的每个输入节点1,2和4的输出耦合到隐藏层的每个神经电路(仅仅画出了其神经电路5,6和8)。例如,输入节点1的输出耦合到每个神经电路5,6,8和到隐藏层内的所有其它神经电路(未画出)。有关在输入层中输入节点2,4和所有其它输入节点(未画出)的输出进行相同的连接。
在隐藏层内的每个神经电路用给定的加权乘其从输入节点接收的输入,产生一个产物。例如,神经电路5用加权W11,用加权W21乘输入X2,等等。
然后,每个神经电路把这些产物加在一起,产生一个“net”(净),它是通过非线性函数变换产生其相应的神经电路输出。
在输出层中神经电路10的工作类似于隐藏层的神经电路的工作。到达神经电路10的输入是隐支神经电路的输出,和加权是K1,K2和KN。然后它以反向方式调整隐藏层的加权W11,W21,…,Wn。
对于每个周期(信号出现时间),反向传播算法首先调整输出层的加权K1,K2和KN。然后它以反向方式调整隐藏层的加权W11,W21,…,WnN。
反向传播算法有几个严重的缺点。首先,对于相对复杂的问题训练网络是耗费时间的。例如,它可能用数周或甚至数用的计算时间,经常使用超型计算机来训练一个网络。在包括话音识别的熟知例子中,使用四个处理器的小型计算机需要几周来训练反向传播神经网络,以便简化识别发音和不发音的停止(即辅音B、D、G、P、T和K)。
其次,当加权集中时,它们通常集中到局部最小值,该值给出一个错误的解决。为了避免局部最小值,可应用如像波尔兹曼(Boltzman)训练或考西(Cauchy)训练之类的统计方法。这些方法首先随机地变化神经电路的加权,然后求出在希望的和实际的输出之间的误差。在多数情况下,减小误差的加权应被保留。但是,在一些情况下,如果按着给定概率要求的话,不减小误差的加权也被保持。
虽然统计方法能得到全局的最小值,但它是特别无效率的。例如,据报道它的集中速率比反向传播算法慢100倍。
图2示出先有技术感知器神经网络。多个输入X1、X2…、Xn的每一个输入耦合到输入层中的各个输入节点11、12、…、14。每个输入节点11、12、…、14被分配到隐藏层中的多个神经电路的每一个,这种神经电路包括用于实现非线性函数的求和电路15、16…、18和电路21、22、…、24。例如,输入节点11的输出被分配到每一个求和电路15、16、…、18。
每个求和电路15、16…、18的输出被馈送到各个二进制阈值电路21、22、…、24。二进制阈值电路21的输出是OUT1;二进制阈值电路22的输出是OUT2;等等。
输出OUT1,…,OUTN被馈送到输出神经电路26。输出神经电路26包括可以是像求和电路15一样的求和电路(未示出)和可以是像二进制阈值电路21一样的非线性函数电路(未示出)。
在1950年代开发了感知器神经网络利用“增量原则”(delta rule)训练算法计算神经的加权。增量原则使用希望的输出和实际输出之间的差值来计算神经加权。
因为单层感知器网络是不可能解决非线性问题的,它的利用性是相当有限的。
图3示出先有技术的Hopfield神经网络。多个输入X1-Xn的每一个输入耦合到等同于图3的“隐藏层”中出现的各个神经电路。每个神经电路包括求和电路35、36、…、38,而每个求和电路35、36、…、38的输出被输入到各个二进制阈值电路41、42、…、44。每个二进制阈值电路41、42、…、44的输出Y1、Y2、…、Yn被反馈到各个输入节点31、32、…、34的输入,该输入节点等同于图3的“输入层”。
在所有其它方面,Hopfield网络的工作等同于反向传播神经网络的工作。Hopfield网络被表征为“重复”(recurrent)网络,因为它的输出信号被反馈送到其输入层。重复网络必须注意稳定性问题。一般地讲,已经发现,通过避免反馈输出信号到神经电路本身,该网络可以是稳定的。
Hopfield网络在解决所谓的“非确定性多项式”问题如印刷电路板路由选择或常见的旅行销售人员的问题特别有效。然而,Hopfield网络仅给出局部最小的解决方案。而且,为了对一个给定问题找到一个由hopfield网络要求的具体能量函数(例如Liapunov能量函数)不是重要的任务。
一般地说,关于神经网络,网络的训练算法通常通过神经网络的结构决定的。利用常规神经网络结构训练该网络是非常困难的,而且这样的训练通常是非常重复的。例如,如果使用反向传播算法,则“异或”逻辑实现经常需要30以上的迭代。
该训练方法还经常集中到局部最小值,这不是最佳解决方案。对于给定的一组例子,最佳解决方案是“最好配合”(best fit)或“全局最小值”。
除了上面讨论的无效率、慢和无效训练算法的问题之外,现有的已知神经网络为解决给定问题对于未来的用户在规定合适结构中存在极大困难,因为确定层数和每层神经电路数的方法和神经电路间的互连通常是用试错法或经验法则来进行。
例如,没有明确的方法用于确定需要多少隐藏单元(层或神经电路)来处理问题。确定这一点的一种方法是逐渐地增加隐藏单元数目并观察网络性能。这种实践连续进行,直到发现没有更重大的性能改进为止。无须力说,这是一种特别耗费时间的过程。
总之,现存已知神经网络的缺点(例如与训练算法有关的缺点,有害规定结构,局部最小值解决等等)在许多现在的利用区域中即生产(统计过程控制,寻路由)、过程控制(自适应控制)、CAD/CAM(最佳化)、自动化(坐标变换,自适应控制)、图像处理(平滑,特征提取)、信号处理(噪声消除,回声抑制)等等都严重地限制了神经网络的可接受性和激增。
此外,已知神经网络的复杂电路严重地限制它们以半导体芯片或计算机软件形式的实现。
据此,现在非常需要一种神经网络,它不需要重复训练,对每个给定的输入向量组产生全局的最小值,而且具有简单的结构,实现容易和不昂贵。
根据本发明技术而设计的神经网络的优选实施例最多包括三层。第一层适于互连功能,连外部输入到该网络。第二层使用在上面确认的相关发明中描述的神经电路或其软件等效物。第三层是输出层,该层收集地汇总在第二层中的神经电路的输出。
与要求长训练周期的常规神经网络相反,根据本发明构成的神经网络在单个训练周期(也称为一个出现信号的时间或迭代)中集中在全局解决,在个人计算机上经常在不多于几分钟内进行计算。
而且,与常规神经网络相反,根据本发明提供了神经网络,它利用多个神经电路,不单个地利用任何非线性函数或求和电路,而且每个神经电路只需一个乘法器电路作为其主处理单元。因此,更多的神经电路可集成在VLSI芯片中,这样大大地增加了使用一个或多个这样的芯片的神经网络的计算能力。
可以理解,根据本发明而构成的神经网络以更精确的结果执行,明显地降低计算时间,并显著地降低了成本及其实现的复杂性,无论是在半导体芯片上实现还是用计算机程序实现。
此外,根据本发明构成的神经网络通过提供多个求和电路用于相加神经电路(注意单独的神经电路不是每个要求求和电路)的输出,可有多个输出。
据此,本发明的一个优点是提供一种利用多个神经电路的神经网络,每一个神经电路基本上只需要一个乘法器电路作为其主要处理单元,以致于一个神经网络可由包括非常大量的这种神经电路构成,由于其高级功能和生产的低成本而产生商业上竞争的产品。
本发明的另一个优点是提供不需要重复训练的神经网络。
本发明的又一个优点是提供一种产生全局最小值给每个给定输入矢量组的神经网络。
本发明的再一个优点是提供一种训练神经网络的方法,该方法不需要重复训练。
本发明还有一个优点是提供根据本发明使用神经网络的方法。
根据本发明的一个方面,这里提供一种具有多个网络输入和至少一个网络输入的神经网络,该神经网络包括多个神经,每个神经具有多个输入,它响应于多个网络输入的相应的一个,并产生一个输出;和用于相加神经的输出的装置,并产生该至少的一个网络输出。
根据本发明的另一个方面,这里提供一种用于训练包括多个神经的神经网络的方法,该方法要求计算加权值而且该方法不需要重复训练,该方法包括如下步骤提供多个训练实例;把训练实例数目与神经网络是的神经数目相比较;至少提供两种技术用于计算所述加权值,其中如果神经数目等于训练实例的数目,使用矩阵反演技术来求解每个加权值;如果神经数目不等于训练实例的数目,使用最小二乘估算技术来求解每个加权值。
根据本发明的又一个方面,这里提供一种神经网络,包括多个网络输入和至少一个网络输出;多个神经,每个神经接收多个输入和产生一个输出;操作神经网络的一种方法,该方法包括如下步骤分配每个网络输入到每个神经输入;每个神经将选通函数加到每个网络输入以便产生相应的选通输入;每个神经将每个选通输入相乘以产生一个乘积;每个神经用加权值乘该乘积产生每个神经的神经输出;相加神经的输出产生该至少一个网络输出。
在所附的权利要求中具体地指明了本发明。然而,结合以下附图详细阅读以下说明将会对本发明的这些和其它特点更加明了并且将会更好地理解本发明。
图1示出一种先有技术和反向传播神经网络。
图2示出一种先有技术的感知器神经网络。
图3示出一种先有技术的Hopfield神经网络。
图4示出本发明的神经网络的概括性示意图。
图5示出使用图4所示神经网络的方法的流程图。
图6示出本发明的具有多个输出的神经网络的概念性示意图。
图7示出使用图6所示的神经网络的方法的流程图。
图8示出本发明的优选实施例的神经网络的概念性示意图,顺序地接收神经网络的输入,而且该神经网络有多个输出。
图9示出使用图8所示神经网络的方法的流程图。
图10示出图4所示的神经网络如何可应用的具体实例。
图11示出本发明优选实施例确定每个神经加权的方法。
图12示出本发明的神经网络应用到一个系统时的方框图。
本领域的普通技术人员明白,本发明的神经网络可用硬件、软件或其组合来实现,而且在本说明书中的这样的术语“神经电路”和“神经”可互换使用。术语“乘法器电路”/“乘法器”,“求和电路”/“加法器”,等等也一样,取决于实现的类型。
图4表示根据本发明神经网络的概念性示意图。多个网络输入X1、X1、…、Xn被馈送到输入层的输入节点51、52、…、54。
在输入层中每个输入节点51、52、…、54的输出被分配到隐藏层的每个神经(仅画出了神经55、56和58)。例如,输入节点51的输出耦合到每个神经55、56和58以及耦合到隐藏层中的所有其它神经(未示出)。关于输入节点51、54和在输入层中所有其它输入节点(未示出)的输出进行相同的连接。在本发明中,在隐藏层仅要求一个神经层。
正如在上述的相关发明中所描述的,每个神经将一个选通函数加到每个网络输入以产生相应的选通输入。任何给定的神经可加一个它接收的不同的选通函数到每个不同网络输入。例如,神经55施加它从输入节点51接收的选通函数gll到网络输入;它施加一个从输入节点52接收的选通函数g21到该网络输入,等等。
选通输入由神经的乘法器相乘以形成一个乘积,然后该乘积用一个预定的加权值相乘产生该神经输出。例如,在图4中的神经55刚好负责产生下面所示方程1的W0项,相乘其选通输入以形成一个乘积(因为在这种情况下选通函数gll,…,gnl都是0,乘积刚好为1),该产物用加权W0相乘以产生一个相应的输出W0。神经56刚好负责产生下面所示方程1的W1X1项,相乘其选通输入形成一个乘积(因为在这种情况下选通函数除了加到输入节点51的X1的输出之外全为0,乘积刚好为X1),该产物用加权W1相乘以产生一个相应输出X1W1。以类似的方式,神经58产生一个输出Wn-1Xg2n1Xg2n2…Xg2nn。
神经55、56、…、58由在输出层中的适合的求和装置或功能例如加法器60相加在一起以产生神经网络输出。
图5示出使用图4示例的神经网络的一种方法的流程图。正如在方框61所示的,每个网络输入(即输入X1、X2、…、Xn)被分配到每个神经(即图4隐藏层的神经55、56、…、58)的输入。
接着,如方框62所示,每个神经加上选通函数到每个网络输入产生相应的选通输入。如上所述,任何给定的神经可施加它接收的不同的选通函数到每个不同的网络。例如,参见图4,神经55施加它从输入节点51接收的选通函数gll到网络输入X1;它还施加从输入节点52接收的和选通函数g21到网络输入X2;等等。
接着,如方框63所示,任何给定神经的选通输入的乘积用预定的加权值相乘产生这种神经的神经输出。任何给定神经可施加不同的加权值到其乘积。这一点更详细地表示在后面描述的图10中。
最后,关于方框65,各神经的输出相加,产生网络输出。
图6表示根据本发明具有多个输出的神经网络的概念图,多个网络输入X1,X2,…,Xn-1,和Xn被馈送到输入层中的输入节点71,72,…,73,和74。
输入层中的每个输入节点71,72,…,73和74的输出被分配到隐藏层的每个神经电路(仅表示出了神经电路75、76、77和78)。例如,输入节点71的输出被分配到隐藏层内的每个神经电路75,76、77、78和所有其它神经电路(未示出)。关于输入节点72、73、74的输出以及输入层中的所有其它输入节点(未示出)进行相同的连接。
对于该神经网络的这个实施例,神经电路75和76的输出由求和电路相加,产生第一网络输出Y1,以及神经电路77和78的输出由求和电路80相加产生第二网络输出Y2。
虽然图6表示输出层中每个求和电路,本领域的普通技术人员明白,可使用两个以上的求和电路。而且虽然图6所示出网络输出是断开的,应当明白,神经电路的输出可分配到一个以上的求和电路,例如,神经电路76的输出可分配到两个求和电路79和80。
图7表示使用图6所示的神经网络方法的流程图。如方框81所示,每个网络输入(即输入X1、X2、…、Xn-1、Xn)被分配到每个神经(图6中隐藏层的神经75、76、…、77、78)的输入。
接着,如方框82所示,每个神经施加一个选通函数到每个网络输入以产生相应的选通输入。如上面关于图5所述的,任何给定的神经可施加它接收的不同选通函数到每个不同的网络输入。
接着,如方框83所示,任何给定神经的选通输入一起相乘以产生一个乘积。
接着,如方框84所示,任何给定神经的选通输入的短线产品积用预定加权值相乘产生这种神经的神经输出。如上关于图5所述的,任何给定神经可施加不同的加权值到其乘积。
接着,关于方框85,第一组神经的输出相加产生一个第一网络输出Y1。
最后,关于方框86,第二组神经的输出相加产生一个第二网络输出Y2。
图8表示根据本发明的优选实施例神经网络的概念图,其输入被顺序地接收并且具有多个输出。多个网络输入X1,X2,…,Xn顺序地馈送到输入层的单个输入节点92。输入节点92的输出被分配到隐藏层的每个神经(仅示出神经93,-96)。
对于该神经网络的这个实施例来说,神经93和94的输出由术和电路97相加产生第一网络输出Y1,和神经95和96的输出由求和电路98相加产生第二网络输出Y2。应当明白,在隐藏层中另外的神经(未示出)的输出可用另外的求和电路(未示出)相加,产生另外的网络输出。
在工作中,首先X1经输入节点92被分配到所有神经93-96,而且这些神经开始并行处理X1(如在上述的相关发明的描述的)。然后,从刚刚描述的操作中保持该结果,然后X2经输入节点92被分配到所有神经93-96,并且这些神经并行处理X2。
这种操作连续进行,直到最后的输入Xn由神经处理为止,在那个时候,神经的输出被馈送到它们的各自的求和电路97和98。应当明白,某些神经输出可能在其它的输出之前相加。
图9表示使用图8所示神经网络的方法的流程图。如方框101所不,多个网络输入的第一个输入(例如X1);例如由输入节点92(图8)分配到每个神经的输入。
接着,如方框102所示,每个神经将多个选通函数中的一个函数加到第一网络输入,对每个神经产生各自的第一选通输入。如前所述,任何给定神经可将不同的选通函数加到网络输入。
接着,如判决方框103所示,进行检验看当前处理的网络输入是否是第N个网络输入(即,如果N=1,为X1;如果N2,为X2;等等)。N代表相应于选通输入的网络输入,该选通输入是预先的被乘以神经的加权值。N是小于或等于网络输入数目的正整数。因此,取决于N值,每个神经以第N个选通输入(相应于第N个网络输入)乘其各自的加权值。
在一个优选实施例中,N选择为1,以便每个神经以其第一选通输入乘其加权值,而不是等待直到所有其选通输入已经相乘。这样获得较好的效率,因为当前的操作在完成时,能够加载其后的加权值以准备下一个处理操作(即为下一个Xn网络输入组)。
如果当前处理的网络输入不是第N个网络输入,则过程前进到方框105,但是如果“是”,则过程前进到方框104。
如方框104所示,每个神经以加权值前面的乘积乘其各自的选通输入,如果有的话(即,在第N个网络输入之前,从处理的任何网络输入得到的),产生一个乘积。当退出方框104时,过程继续进行到方框106。
如果当前处理的网络输入不是第N个网络输入,过程前进到方框105,但是如果“是”的话,过程前进到方框104。
如方框105所示,每个神经用前面的乘积乘以其各自的选通输入,如果有的话,否则用1乘各自的选通输入,产生一个乘积。当退出方框105时,过程继续进行到方框106。
接着,如在判决方框106所示,进行检验以确定是否已经接收到所有网络输入。如果是的话,过程继续进行方框107,如果是否定的,过程返回到方框101,其中多个网络输入的下一个输入被分配到每个神经的输入,并且过程以上面关于第一网络输入所描述的类似方式继续进行。在过程已处理了所有的网络输入之后,过程退出判决方框106进到方框107。
在方框107,规定每个神经当前产生为神经的输出。
接着在方框108,第一组神经的输出相加在一起以产生第一网络输出Y1。最后,在方框109相加第二组神经的输出以产生第二网络输出Y2。
图10表示根据本发明如何可把图4所示神经网络应用于一个具体的例子中。
本发明的神经网络的工作是基于使用多项展开式,而不在严格的情况下使用正交函数,例如正弦、余弦、指数/对数、傅里叶变换、勒让德(Legendre)多项式、非线性基本函数,例如Volterra函数或径向基本函数,或类似的函数,或多项展开式和正交函数的组合。
优选实施例应用多项展开式,一般情况是用如下公式1表示Y= Wi-1 X1g1ix2g2i... xngni公式1其中Xi代表网络输入并且可能是诸如Xi=fi(zj)这样的函数,zj是任何的任意变量,符号i和j可是任何正整数;Y代表神经网络的输出;Wi-1代表第i个神经的加权;g1i、…、gni代表用于第i个神经的选通函数,并且是整数、0、或在一个实施例中更大;n是网络输入号码。
公式1的每一项表示神经输出和与该神经有关的加权和选通函数。在一个神经网络中使用的多项展开式的项数取决于因数的数目,因数的数目包括可用的神经数,训练实例数等等。应当明白,多项展开式的较高次项通常比较低次项具有较低的重要性。因此,在优选实施例中,根据上面描述的各种因数,只要有可能就选择较低次项。而且,因为与各种输入有关的测量单元可变化,在使用它们这前输入可能需要标称化。
公式2是公式1的另一种表示,表示的项达到第三次项。
y=wo+Σi=1nwixi+Σi=1nwfl(i)xi2]]>+Σi=1nΣj=1i+1nwf2(i,j)xixj+Σi=1nwf3(i)xi3]]>+Σi=1nΣj=i+1nwf4(i,j)xi2xj.+Σi=1nΣj=i+1nwf5(i,j)xixj2]]>+Σi=1nΣj=i+1nΣk=i++1nwf6(i,j,k)xixjxk]]>+ ...公式2其中变量具有与方程1中相同的含义,和其中fl(i)是n+1到2n范围内的指数函数;f2(i,j)是2n+1到2n+(n)(n-1)/2范围内的指数函数;和f3(i,j)是在2n+1+(n)(n-1)/2至3n+(n)(n-1)/2范围内的指数函数。而且f4至f6以相类似的方式表示。
本领域的技术人员将认识到,在由公式2表示的项内包括选通函数。例如,公式2可表示如下
y=W0+W1 X1+W2 X2+...Wi Xi+...+Wn Xn+Wn+1 X12+...+W2n Xn2+W2n+1 X1 X2+W2n+2 X1 X3+...
+W3n-1 X1 Xn+W3n X2 X3+W3n+1 X2 X4+...W2n+(n)(n-1)/2 Xn-1 Xn+...
+WN-1 X1g1N X2g2N...XngnN+...公式3其中变量具有与公式1相同的含义。
应当注意,虽然选通函数项giN明显地仅出现在公式3是最后所示项中,但应当明白,每一个其它项具有其明显地表示的giN项(例如对于W1X1项g12=1和其它项gi2=2,i=2,3,…,n)。N是任何正整数并表示该网络中的第N个神经。
公式1-3的每一项是由神经或神经电路的输出产生的。关于图10,例如,神经电路N1产生项W0。神经电路N2产生项W1X1,等等。
仍参见图10,多个网络输入X1、X2、…、Xn被馈送到输入层的输入节点111、112、…、114。输入层中的每个输入节点111、112、…、114的输出被分配到隐藏层的每个神经电路(仅表示了神经电路N1、N2、N3、Nn+1、Nn+2、N2n+1和NN)。例如输入节点111的输出被分配到隐藏层的每个神经电路N1、N2、N3、Nn+1、Nn+2、N2n+1和NN)及所有其它神经电路(未示出)。关于输入层中的输入节点112、114和所有其它输入节点(未示出)进行相同的连接。
对于该神经网络的这个实施例,用求和电路120相加每个神经电路N1、N2、N3、Nn+1、Nn+2、N2n+1和NN)的输出,以产生网络输出Y。
而图10仅表示出输出层中的一个求和电路,本领域的普通技术人员明白,如果具体应用需要多个输出的话,可使用两个或多个求和电路。
训练算法对于有用的该神经网络,必须确定每个神经电路加权。这可通过使用适当的训练算法来实现。
在实现本发明的神经网络中,一般选择神经或神经电路数等于或小于提供给网络的训练实例数。一个训练实例规定为一组给定输入和产生的输出。
对于本发明神经网络的优选实施例,使用图11中所示的训练算法。
图11示出本发明优选实施例确定每个神经的加权的方法。首先,对于方框121,提供许多训练实例。
接着,关于方框122,在提供的训练实例数和神经网络中的神经数之间进行比较。
关于判决方框123,如果神经数等于训练实例数,过程进入到方框125,该过程表示可以利用矩阵反演技术来解决每个加权的值。
关于判决方框123,如果神经数不等于训练实例数,过程进入到方框126,该过程表示利用最小二乘方估算技术求解每个加权值。适合的最小二乘方估算技术例如包括最小二乘方、扩展最小二乘方、伪变换(pseudo-inverse)、卡尔曼(Kalman)滤波器、最大似然算法、贝叶斯(Bayesian)估算等等。
训练算法的使用将参照图12在下面更详细地说明。
实例图12示出本发明的神经网络用于一个系统时的方框图。在这个系统中有两个输入X1和X2及一个输出Y。用表1中表示的四个实例代表该系统的工作。例如,第一个实例是其中X1=-1,X2=-1,和Y=0。
表1X1X2Y-1 -1 0-1 1 -11 -1 -11 1 0参见图12,第一输入X1馈送到输入层的输入节点130,而第二输入X2馈送到输入节点134。输入层中的每个输入节点130和134的输出被分配到隐藏层的每个神经电路132和136。即,输入节点130的输出接到神经电路132和136,和输入节点134的输出还接到神经电路132和136。
正如在上面确认的相关发明中所描述的,选通输入首行由各个神经电路产生。其次,由神经电路的乘法器电路和相乘选通输入,产生一个产物,该产物用预定加权乘以产生神经电路的输出。神经电路132和136的输出由输出层中的求和电路138相加,产生神经网络的输出Y。
如上所述,可用公式1描述神经网络,其中,用训练实例数规定神经电路数。因此,在这种情况下,四个神经电路规定如下Y=W0+W1X1+W2X2+W3X1X2公式4通过代入X1,X2的值,直接地求解加权W0,W1,W2和W3并用每个实例的Y代入到公式4并且求解得到的公式如下0=W0+W1(-1)+W2(-1)+W3(-1)(-1) 公式5-1=W0+W1(-1)+W2(1)+W3(-1)(1) 公式6-1=W0+W1(1)+W2(-1)+W3(1)(-1) 公式70=W0+W1(1)+W2(1)+W3(1)(1) 公式8求解上面的公式5-8产生W0=-0.5,W1=0,W2=0,和W3=+0.5。这些值代入公式4产生Y=-0.5+0.5(X1X2) 公式9
这种系统的神经网络表示在图12中。对于神经132,选通函数是gll=0,g21=0,和加权W0=0.5,而对于神经136选通函数是g12=1,g22=1,和加权W3=-0.5。神经132产生W0的输出值,和神经136产生W3X1X2的输出值。
应当明白,少数神经电路有时可用于执行所要求的计算。用上面的实例表示了这一点,其中仅需要两个神经电路而不是四个,因为加权中的两个加权(即W1和W2)等于0。
还应当明白,得出来的这种解决方案无任何重复训练。这种解决方案也是全局最小而不是局部最小值。
如果果设计者选择使用比给定实例较少的神经,那么下面的最小二乘方技术可被利用,正如现在将要表示的那样。使用由上面表1给定的相同训练实例,可选择仅包括两个神经的神经网络来说明该概念如下Y=W1X1+W2X2公式10公式10表示两个神经实例的应用。为了求解W1和W2的值,通过代入X1和X2的值可得到一组公式,X1和X2由表示1中训练实例给定,对于公式10中的X1和X2得到如下公式0=-W1-W2公式11-1=-W1+W2公式12-1=W1-W2公式130=W1+W2公式14
由此计算W1和W2是比较容易的,它使用普通技术人员熟悉的最小二乘方技术,得到如下方程Y=0.5X1-0.5X2公式15代入表1给定的X1和X2的值验证公式15,我们得出表2的结果表2X1X2Y-1 -1 0-1 1 -11 -1 11 1 0应当注意,表1和表2之间唯一的不同是在表2中X1=1和X2=-1,Y=1而不是Y=-1。一般地,使用较少的神经的代价将导致精度较低。
如果训练实例数少于神经数,那么使用伪变换技术,这种技术是最小二乘方解法的一种类型。
本领域的普通技术人员应注意,最小二乘程方技术可列出公式用于分批或递归解法。
因此,在这里已经描述了一种概念,以及包括优选实施例在内的一些神经网络的实施例,该神经网络利用多个神经,该神经不单独地包括任何非线性函数或相加函数,而且每个神经仅需要一个乘法器作为其主处理单元。
由于在这里所描述的神经网络的各种实施例和使用及训练神经网络的方法不要求重复训练并对每个给定输入矢量组提供全局最小值,它们以极精确的结果、极大地降低计算时间实现,并且极大地降低了成本和实现的复杂性,不管是在半导体芯片上还是用计算机程序实现。
此外,本领域的那些技术人员明白,可以以各种方式对本公开的发明进行修改并可采取不同于上面提出和描述的具体地优选形式的很多实施例。
应当明白,本发明的概念能以各种方式变化。例如,有关这种系统结构单元设计选择方面的问题,如输入节点数、神经或神经电路数、求和装置(或电路)数和它们的互连,取决于集成电路技术、实现的类型(例如模拟、数字、软件等等),模具尺寸(die size),管脚引出线(pin-outs)等等。
还应当明白,上面所述多项展开式截断的程度取决于希望的精度。
因此,预期由所附的权利要求书覆盖本发明的所有修改,这些修改都不脱离本发明的精神和范围。
权利要求
1.一种神经网络,具有多个网络输入和至少一个网络输出,所述神经网络特征在于多个神经,每个神经具有多个输入,它响应于所述多个网络输入的相应的网络输入,并产生一个输出;和用于相加所述神经输出并产生所述至少一个网络输出的装置。
2.根据权利要求1所述神经网络,其特征在于,所述神经包括一个线性转移函数。
3.根据权利要求1所述神经网络,其特征在于,所述神经网络至少包括一个集成电路。
4.根据权利要求1所述神经网络,其特征在于,所述神经网络包含计算机程序。
5.一种训练神经网络的方法,该神经网络包括多个神经,该方法需要计算加权值和该方法不需要重复训练,所述方法的特征在于包括如下步骤(a)提供多个训练实例;(b)比较所述训练实例数与所述神经网络中的神经数;(c)至少提供用于计算所述加权值的两种技术,其中(i)如果神经数等于训练实例数,使用矩阵反演技术求解每个加权的值;(ii)如果神经数不等于训练实例数,使用最小二乘方估算技术求解每个加权的值。
6.根据权利要求5的训练神经网络的方法,其特征在于,所述神经网络的工作是基于多项展开式。
7.根据权利要求6的训练神经网络的方法,其特征在于,所述多项展开式具有下述形式Y= Wi-1 X1g1ix2g2i... xngni式中Y表示神经网络的输出;Wi-1表示第i个神经的加权值;X1,X2,…,Xn表示到所述神经网络的输入;g1i,…gni表示被加到所述输入的第i个神经的选通函数;n是一个正整数。
8.根据权利要求7的训练神经网络的方法,其特征在于,每个Xi用函数Xi=fi(zj)表示,其中zj是任何任意变量,和其中i和j是任何正整数。
9.在一个神经网络中,该网络其特征在于包括多个网络输入和至少一个网络输出;多个神经,每个神经接收多个输入并产生一个输出;一种运行所述神经网络的方法,所述方法的特征在于包括如下步骤(a)分配每个所述网络输入到每个所述神经输入;(b)每个神经将一个选通函数加到每个所述网络输入以产生相应的选通输入;(c)每个神经相乘每个所述选通输入,以产生一个乘积;(d)每个神经用加权值乘所述产物,产生每个神经的一个神经输出;和(e)相加所述神经的输出,产生所述的至少一个网络输出。
10.根据权利要求9所述的运行所述神经网络的方法,其特征在于,所述神经网络的运行是基于多项展开式。
全文摘要
一种神经网络,该网络可用硬件或用软件实现,该网络由神经或神经电路构成,每一个神经电路仅具有以一个乘法器形式的主要处理单元。该神经网络利用一种不需要重复训练的训练算法,而且该网络产生每个给定的输入矢量组的全局最小值。
文档编号G06N3/04GK1100541SQ9410656
公开日1995年3月22日 申请日期1994年6月10日 优先权日1993年6月14日
发明者谢伊-平·托马斯·王 申请人:莫托罗拉公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1