带回路的神经网络
自从20世纪早期非常活跃的神经解剖学家拉蒙-卡哈尔(Ramón y Cajal)的时代起,我们就已经知道,中枢神经系统中的神经元形成一个互相缠绕的网络,这个网络的内部带有大量的回路,或者叫环路抑或重复联结(Sholl, 1956)。如果我们不了解网络回路的效应,就不可能弄懂中枢神经系统的运作方式。
我们已经了解到,回路有着非常重要的作用,它使得网络模型能够无限期地保留历史信息。前文也讨论过一小组神经元能够维持循环脉冲的反射作用。赫布在1949年指出,突触的变化会使得这种反射随之变化。因此而形成的细胞分组被赫布称为细胞集群。它们扼要地记录了那些对神经网络起重要作用的刺激活动。在重新构造记忆存储这幢大楼时,细胞集群就相当于这个建筑物的砖块。而且,这些细胞集群还能够帮助预测未来,这就类似于塞缪尔的国际跳棋程序中的预测。简而言之,带回路的网络能够大大突破前馈神经网络在模型模式识别上的局限。
无限期记忆
带回路的神经网络产生了无限期记忆这种现象很好地将带回路的神经网络和前馈神经网络区分开来。无限期记忆就是一种能够记住在过去无限长时间内发生的事件的能力。概括地说,这一能力就相当于假如有人见过3次彗星,那么无论再过多久,这一记忆都不会磨灭。在前馈神经网络中不能实现无限期记忆,这是一个技术上的论题,但是对这个问题的研究很有用。
要想精确地定义无限期记忆,我们必须研究沃伦·麦卡洛克和沃尔特·皮茨提出的关于“逻辑”神经元的模型。我们先建立一个逻辑神经元的前馈神经网络模型,使其包括“异或”或称为“互斥或”运算的概念。这个网络有两个输入和一个输出,当且仅当两个输入中只有一个脉冲输入时才产生一个输出脉冲。“异或”这个名字的由来是:仅当两个输入不相同时,输出才成立。接着,我们把“异或”的输出和它的一个输入相连,这就形成了一个带有一个回路的神经网络,在这个神经网络中,输出的脉冲又被重新输入(见图5-6中粗线部分)。带回路神经网络的这种行为是无限期记忆的一个简单例子。
回路的作用很大。这种只有一个自由输入源的网络可以记住自从网络开始运转起,在这个自由输入源中输入的脉冲数是偶数还是奇数。网络的记忆可以拓展到无限长的时间内。换句话说,这个网络能够对脉冲进行计数,并存储脉冲数的奇偶性。根据这一思想设计出来的晶体管网络,使得比特位计数电路(计算功能)和存储器(存储功能)得以实现,电子计算机由此诞生。
从异或网络建立之初,这种记录脉冲奇偶数的能力就显示了出来,数学家称之为以2为模的计算。这种能力还可以进一步扩展。通过将多个异或回路串联起来,我们可以构造出计数能力达到2的高次幂的网络。这种网络的简单性就是计算机通常使用二进制进行运算的根本原因。对这个回路略做修正,我们就能构造一个可以进行算术运算的网络。从这个意义上说,异或网络是构造通用可编程计算机的基石,它提供了存储和计算的能力。
根据上面的思路,我们可以构造一个带回路的网络,使它能够执行为通用可编程计算机编写的程序。任何以计算机为基础的模型所描述的处理过程都可以由这样的网络来模拟。相应地,我们可以证明任何不带回路的网络都不具有无限期记忆的能力,但这里不再赘述。很明显,不带回路的网络无法执行通用可编程计算机的各种计算工作。事实上,一个不带回路的网络——前馈神经网络所具备的功能只不过是带回路的网络所具备的功能的一个极小的子集。
EMERGENCE
我们在前面通过一个人造的神经元来对“异或电路”进行定义,这个神经元只有两个输入端,以及一个为1的固定阈值(见图5-5a)。对于这个神经元,它的第一个输入I1具有权重+1,而第二个输入I2具有权重-1。这个神经元的行为可以通过一张表来描述(见图5-5b)。我们可以从表中看出,当输入I1输入一个脉冲,而I2没有输入脉冲时,神经元将在下一个时间步长产生一个脉冲输出。这里的一个时间步长的延迟,就相应于前面麦卡洛克和皮茨讨论的处理时间。这个表还说明,任何其他输入脉冲的组合,都不会产生脉冲输出。总之,这个神经元会在一个时间步长后产生一个脉冲输出,前提是当且仅当它的第一个输入源输入一个脉冲而第二个输入源没有脉冲输入。
图5-5 神经网络的“异或”关
我们现在增加第二个神经元,让它成为第一个神经元的镜像。当且仅当它的第二个输入源输入脉冲而第一个输入源没有输入脉冲时,第二个神经元会产生一个脉冲输出。我们再添加第三个神经元以完成这个回路。第三个神经元的两个输入的权重均为+1(见图5-5c)。当它的两个输入源中的一个输入脉冲或者两个同时输入脉冲时,它产生一个脉冲输出,相当于逻辑运算兼或(inclusive or)。
我们把前两个神经元的输出分别连到第三个神经元的两个输入上,形成一个异或回路。我们还可以将第一个神经元的输入I1和第二个神经元的输入I1连接起来,让它们拥有相同的输入源;对于两个神经元的I2也做相同的处理(见图5-5c)。这样最后形成的网络就将有两个输入和一个输出。输入I1和输入I2是自由的,因为它们传输的脉冲是由网络外部提供的。网络中的其他输入由它们所连接的神经元的输出值来确定。
通过这种连接,第三个神经元将会产生前两个神经元输出的逻辑运算“或”的结果。因为前两个神经元的输入是连接在一起的,在给定的时间内,这两个神经元中至多有一个会产生脉冲。当且仅当第一个输入源输入一个脉冲而第二个输入源没有输入脉冲时,第三个神经元在两个时间步长后输出一个脉冲,反之亦然(见图5-5c)。按照规定,第三个神经元会产生对输入I1和I2进行逻辑“异或”运算的结果。
当我们将第三个神经元的输出连接到第二个输入I2上时,网络中就会形成一个异或回路,这就产生了无限期记忆。输入I2不再是自由的了,因为只有当第三个神经元产生一个脉冲输出时,I2上才会有脉冲。只有在网络开始运行时才需要“用户”来设置I2的值:我们只能在开始的时候说明网络的状态,这也就是物理学家所说的边界条件(boundary condition)。通常,我们将网络的初始状态设置为静止的,即开始时网络中没有脉冲循环。也就是说,我们初始时设置I2=0。这之后,I2的值就由第三个神经元的输出来决定。
由于输入I2的值已经被限定了,所以那些从网络外部输入的脉冲都被指定为输入I1(见图5-6)。如果开始时神经元是静止的,设时间t=1,那么在I1上有脉冲输入之前,神经元一直保持静止状态。当有一个脉冲出现时,它将在回路中不断循环直至I1上产生第二个脉冲。如果第二个脉冲始终没有出现,那么网络将无限期地持续这种状态。也就是说,网络将在无限长的时间内记住第一个脉冲的发生。如果在第二个脉冲产生之后I1上产生了第三个脉冲,网络将再次发射脉冲,并且等待下一个脉冲的来临(见图5-6)。
图5-6 神经网络的无限期记忆