历史

第十三章 神经网络(2/2)

的凹下去的海(低于海平面的海)?

    训练算法是可以调节的,因而趋近局域极小的步长可大可小。如果步长过大,算法会使网络在极小值附近跳来跳去(开始时它会沿下坡走,但走得太远以致又上坡了)。如果步子小,算法就需要极长的时间才能达到极小值的底端。人们也可以使用更精细的调节方案。

    反传算法是有教师学习算法中的一个特殊例子。为了让它工作,网络的单元需要具有一些特殊性质。它们的输出不必是二值的(即,或0,或者+1或-1),而是分成若干级。它通常在0到+1之间取值。理论家们盲目地相信这对应于神经元的平均发放率(取最大发放率为+1),但他们常常说不清应该在什么时候取这种平均。

    如何确定这种“分级”输出的大小呢?像以前一样,每个单元对输入加权求和,但此时不再有一个真实的阈值。如果总和很小,输出几乎是0。总和稍大一些时,输出便增加。当总和很大时,输出接近于最大值。图54所示的S形函数(sigmoid函数)体现了这种输入总和与输出间的典型关系。如果将一个真实神经元的平均发放率视为它的输出,那么它的行为与此相差不大。

    这条看似平滑的曲线有两个重要性质。它在数学上是“可微的”,即任意一处的斜率都是有限的;反传算法正依赖于这个特性。更重要的是,这条曲线是非线性的,而真实神经元即是如此。当(内部)输入加倍时输出并不总是加倍。这种非线性使得它能处理的问题比严格的线性系统更加广泛。

    现在让我们看一个典型的反传网络。它通常具有三个不同的单元层(见图55)。最底层是输入层。下一层被称作“隐单元”层,因为这些单元并不直接与网络外部的世界连接。最顶层是输出层。最底层的每个单元都与上一层的所有单元连接。中间层也是如此。网络只有前向连接,而没有侧向连接,除了训练以外也没有反向的投射。它的结构几乎不能被简化。

    训练开始的时候,所有的权重都被随机赋值,因而网络最初对所有信号的反应是无意义的。此后给定一个训练输入,产生输出并按反传训练规则调节权重。过程如下:在网络对训练产生输出以后,告诉高层的每个单元它的输出与“正确”输出之间的差。单元利用该信息来对每个从低层单元达到它的突触的权重进行小的调整。然后它将该信息反传到隐层的每个单元。每个隐层单元则收集所有高层单元传未的误差信息,并以此调节来自最底层的所有突触。

    从整体上看具体的算法使得网络总是不断调节以减小误差。这个过程被多次重复。(该算法是普适的,可以用于多于三层的前向网络。)

    经过了足够数量的训练之后网络就可以使用了。此时有一个输入的测试集来检验网络。测试集是经过选择的,它的一般(统计)特性与训练集相似,但其他方面则不同。(权重在这个阶段保持不变,以便考察训练后网络的行为。)如果结果不能令人满意,设计者会从头开始,修改网络的结构、输入和输出的编码方式、训练规则中的参数或是训练总数。

    所有这些看上去显得很抽象。举个例子或许能让读者清楚一些。特里·塞吉诺斯基和查尔斯·罗森堡(Charles

    Rosenberg)在1987年提供了一个著名的演示。他们把他们的网络称为网络发音器(NETtalk)。它的任务是把书写的英文转化成英文发音。英文的拼法不规则,这使它成为一门发音特别困难的语言,因而这个任务并不那么简单易行。当然,事先并不把英语的发音规则清楚地告诉网络。在训练过程中,网络每次尝试后将得到修正信号,网络则从中学习。输入是通过一种特殊的方式一个字母接一个字母地传到网络中。

    NETtalk的全部输出是与口头发音相对应的一串符号,为了让演示更生动,网络的输出与一个独立的以前就有的机器(一种数字发音合成器)耦合。它能将NETtallk的输出变为发音,这样就可以听到机器“朗读”英语了。

    由于一个英语字母的发音在很大程度上依赖于它前后的字母搭配,输入层每次读入一串7个字母。①输出层中的单元与音素所要求的21个发音特征②相对应,还有5个单元处理音节分界和重音。图56给出了它的一般结构。③

    他们使用了两段文字的摘录来训练网络,每段文字都附有训练机器所需的标音法。第一段文字摘自梅里亚姆-韦伯斯特袖珍词典。第二段摘录则多少有些令人奇怪,是一个小孩的连续说话。初始权重具有小的随机值,并在训练期内每处理一个词更新一次。他们编写程序使得计算机能根据提供的输入和(正确的)输出信息自动地完成这一步。在对真实的输出进行判断时,程序会采纳一个与真实发音最接近的音素作为最佳猜测,通常有好几个“发音”输出单元对此有关系。

    聆听机器学着“读”英语是一件令人着迷的事情。①最初,由于初始连接是随机的,只能听到一串令人困惑的声音。

    NETtalk很快就学会了区分元音和辅音。但开始时它只知道一个元音和一个辅音,因此像在咿呀学语。后来它能识别词的边界,并能发出像词那样的一串声音。在对训练集进行了大约十次操作之后,单词变得清楚,读的声音也和幼儿说话很像了。

    实际结果并不完美,在某种情况下英语发音依赖于词意,而NETtalk对此一无所知。一些相似的发音通常引起混淆,如论文(thesis)和投掷(throw)的“th”音。把同一个小孩的另一段例文作为检测,机器完成得很好,表明它能把从相当小的训练集(1024个单词)中学到的推广到它从未遇到的新词上。②这称为“泛化”。

    显然网络不仅仅是它所训练过的每一个单词的查询表。它的泛化能力取决于英语发音的冗余度。并不是每一个英语单词都按自己唯一的方式发音,虽然首次接触英语的外国人容易这样想。(这个问题是由于英语具有两个起源造成的,即拉丁语系和日尔曼语系,这使得英语的词汇十分丰富。)

    相对于大多数从真实神经元上收集的资料而言,神经网络的一个优点在于在训练后很容易检查它的每一个隐单元的感受野。一个字母仅会激发少数几个隐单元,还是像全息图那样它的活动在许多隐单元中传播呢?答案更接近于前者。虽然在每个字母一发音对应中并没有特殊的隐单元,但是每个这种对应并不传播到所有的隐单元。

    因此便有可能检查隐单元的行为如何成簇的(即具有相同的特性)。塞吉诺斯基和罗森堡发现“……最重要的区别是元音与辅音完全分离,然而在这两类之中隐单元簇具有不同的模式,对于元音而言,下一个重要的变量是字母,而辅音成簇则按照了一种混合的策略,更多地依赖于它们声音的相似性。”

    这种相当杂乱的布置在神经网络中是典型现象,其重要性在于它与许多真实皮层神经元(如视觉系统中的神经元)的反应惊人地相似,而与工程师强加给系统的那种巧妙的设计截然不同。

    他们的结论是:

    NETtalk是一个演示,是学习的许多方面的缩影。首先,网络在开始时具有一些合理的“先天”的知识,体现为由实验者选择的输入输出的表达形式,但没有关于英语的特别知识——网络可以对任何具有相同的字母和音素集的语言进行训练。其次,网络通过学习获得了它的能力,其间经历了几个不同的训练阶段,并达到了一种显著的水平。最后,信息分布在网络之中,因而没有一个单元或连接是必不可少的,作为结果,网络具有容错能力,对增长的损害是故障弱化的。此外,网络从损伤中恢复的速度比重新学习要快得多。

    尽管这些与人类的学习和记忆很相似,但NETtalk过于简单,还不能作为人类获得阅读能力的一个好的模型。网络试图用一个阶段完成人类发育中两个阶段出现的过程,即首先是儿童学会说话;只有在单词及其含义的表达已经建立好以后,他们才学习阅读。同时,我们不仅具有使用字母-发音对应的能力,似乎还能达到整个单词的发音表达,但在网络中并没有单词水平的表达。注意到网络上并没有什么地方清楚地表达英语的发音规则,这与标准的计算机程序不同。它们内在地镶嵌在习得的权重模式当中。这正是小孩学习语言的方式。它能正确他说话,但对它的脑所默认的规则一无所知。①

    NETtalk有几条特性是与生物学大为抵触的。网络的单元违背了一条规律,即一个神经元只能产生兴奋性或抑制性输出,而不会二者皆有。更为严重的是,照字面上说,反传算法要求教师信息快速地沿传递向前的操作信息的同一个突触发送回去。这在脑中是完全不可能发生的。试验中用了独立的回路来完成这一步,但对我而言它们显得过于勉强,并不符合生物原型。

    尽管有这些局限性,NETtalk展示了一个相对简单的神经网络所能完成的功能,给人印象非常深刻。别忘了那里只有不足500个神经元和2万个连接。如果包括(在前面的脚注中列出的)某些限制和忽略,这个数目将会大一些,但恐怕不会大10倍。而在每一侧新皮层边长大约四分之一毫米的一小块表面(比针尖还小)有大约5000个神经元。因而与脑相比,NETtalk仅是极小的一部分。②所以它能学会这样相对复杂的任务给人印象格外深刻。

    另一个神经网络是由西德尼·莱基(Sidney

    Lehky)和特里·塞吉诺斯基设计的。他们的网络所要解决的问题是在不知道光源方向的情况下试图从某些物体的阴影中推断出其三维形状(第四章描述的所谓从阴影到形状问题)。对隐层单元的感受野进行检查时发现了令人吃惊的结果。其中一些感受野与实验中在脑视觉第一区(V1区)发现的一些神经元非常相似。它们总是成为边缘检测器或棒检测器,但在训练过程中,并未向网络呈现过边或棒,设计者也未强行规定感受野的形状。它们的出现是训练的结果。此外,当用一根棒来测试网络时,其输出层单元的反应类似于V1区具有端点抑制(end-stopping)的复杂细胞。

    网络和反传算法二者都在多处与生物学违背,但这个例子提出了这样一个回想起来应该很明显的问题:仅仅从观察脑中一个神经元的感受野并不能推断出它的功能,正如第十一章描述的那样,了解它的投射野,即它将轴突传向哪些神经元,也同样重要。

    我们已经关注了神经网络中“学习”的两种极端情况:由赫布规则说明的无教师学习和反传算法那样的有教师学习。此外还有若干种常见的类型。一种同样重要的类型是“竞争学习”。①其基本思想是网络操作中存在一种胜者为王机制,使得能够最好地表达了输入的含义的那个单元(或更实际他说是少数单元)抑制了其他所有单元。学习过程中,每一步中只修正与胜者密切相关的那些连接,而不是系统的全部连接。这通常用一个三层网络进行模拟,如同标准的反传网络,但又有显著差异,即它的中间层单元之间具有强的相互连接。这些连接的强度通常是固定的,并不改变。通常短程连接是兴奋性的,而长程的则是抑制性的,一个单元倾向于与其近邻友好而与远处的相对抗。这种设置意味着中间层的神经元为整个网络的活动而竞争。在一个精心设计的网络中,在任何一次试验中通常只有一个胜者。

    这种网络并没有外部教师。网络自己寻找最佳反应。这种学习算法使得只有胜者及其近邻单元调节输入权重。这种方式使得当前的那种特殊反应在将来出现可能性更大。由于学习算法自动将权重推向所要求的方向,每个隐单元将学会与一种特定种类的输入相联系。①

    到此为止我们考虑的网络处理的是静态的输入,并在一个时间间隔后产生一个静态的输出。很显然在脑中有一些操作能表达一个时间序列,如口哨吹出一段曲调或理解一种语言并用之交谈。人们初步设计了一些网络来着手解决这个问题,但目前尚不深入。(NETtalk确实产生了一个时间序列,但这只是数据传入和传出网络的一种方法,而不是它的一种特性。)

    语言学家曾经强调,目前在语言处理方面(如句法规则)根据人工智能理论编写的程序处理更为有效。其本质原因是网络擅长于高度并行的处理,而这种语言学任务要求一定程度的序列式处理。脑中具有注意系统,它具有某种序列式的本性,对低层的并行处理进行操作,迄今为止神经网络并未达到要求的这种序列处理的复杂程度,虽然它应当出现。

    真实神经元(其轴突、突触和树突)都存在不可避免的时间延迟和处理过程中的不断变化。神经网络的大多数设计者认为这些特性很讨厌,因而回避它们。这种态度也许是错的。几乎可以肯定进化就建立在这些改变和时间延迟上,并从中获益。

    对这些神经网络的一种可能的批评是,由于它们使用这样一种大体上说不真实的学习算法,事实上它们并不能揭示很多关于脑的情况。对此有两种答案。一种是尝试在生物学看来更容易接受的算法,另一种方法更有效且更具有普遍性。加利福尼亚州立大学圣迭戈分校的戴维·齐帕泽(David

    Zipser),一个由分子生物学家转为神经理论学家,曾经指出,对于鉴别研究中的系统的本质而言,反传算法是非常好的方法。他称之为“神经系统的身份证明”。他的观点是,如果一个网络的结构至少近似于真实物体,并了解了系统足够多的限制,那么反传算法作为一种最小化误差的方法,通常能达到一个一般性质相似于真实生物系统的解。这样便在朝着了解生物系统行为的正确方向上迈出了第一步。

    如果神经元及其连接的结构还算逼真,并已有足够的限制被加入到系统中,那么产生的模型可能是有用的,它与现实情况足够相似。这样便允许仔细地研究模型各组成部分的行为。与在动物上做相同的实验相比,这更加快速也更彻底。

    我们必须明白科学目标并非到此为止,这很重要。例如,模型可能会显示,在该模型中某一类突触需要按反传法确定的某种方式改变。但在真实系统中反传法并不出现。因此模拟者必须为这一类突触找到合适的真实的学习规则。例如,那些特定的突触或许只需要某一种形式的赫布规则。这些现实性的学习规则可能是局部的,在模型的各个部分不尽相同。如果需要的话,可能会引入一些全局信号,然后必须重新运行该模型。

    如果模型仍能工作,那么实验者必须表明这种学习方式确实在预测的地方出现,并揭示这种学习所包含的细胞和分子机制以支持这个观点。只有如此我们才能从这些“有趣”的演示上升为真正科学的有说服力的结果。

    所有这些意味着需要对大量的模型及其变体进行测试。幸运的是,随着极高速而又廉价的计算机的发展,现在可以对许多模型进行模拟。这样人们就可以检测某种设置的实际行为是否与原先所希望的相同,但即便使用最先进的计算机也很难检验那些人们所希望的巨大而复杂的模型。

    “坚持要求所有的模型应当经过模拟检验,这令人遗憾地带来了两个副产品。如果一个的假设模型的行为相当成功,其设计者很难相信它是不正确的。然而经验告诉我们,若干差异很大的模型也会产生相同的行为。为了证明这些模型哪个更接近于事实,看来还需要其他证据,诸如真实神经元及脑中该部分的分子的准确特性。

    另一种危害是,对成功的模型过分强调会抑制对问题的更为自由的想像,从而会阻碍理论的产生。自然界是以一种特殊的方式运行的。对问题过于狭隘的讨论会使人们由于某种特殊的困难而放弃极有价值的想法。但是进化或许使用了某些额外的小花招来回避这些困难。尽管有这些保留,模拟一个理论,即便仅仅为了体会一下它事实上如何工作,也是有用的。

    我们对神经网络能总结出些什么呢?它们的基础设计更像脑,而不是标准计算机的结构,然而,它们的单元并没有真实神经元那样复杂,大多数网络的结构与新皮层的回路相比也过于简单。目前,如果一个网络要在普通计算机上在合理的时间内进行模拟,它的规模只能很小。随着计算机变得越来越快,以及像网络那样高度并行的计算机的生产商业化,这会有所改善,但仍将一直是严重的障碍。

    尽管神经网络有这些局限性,它现在仍然显示出了惊人的完成任务的能力。整个领域内充满了新观点。虽然其中许多网络会被人们遗忘,但通过了解它们,抓住其局限性并设计改进它们的新方法,肯定会有坚实的发展。这些网络有可能具有重要的商业应用。尽管有时它会导致理论家远离生物事实,但最终会产生有用的观点和发明。也许所有这些神经网络方面的工作的最重要的结果是它提出了关于脑可能的工作方式的新观点。

    在过去,脑的许多方面看上去是完全不可理解的。得益于所有这些新的观念,人们现在至少瞥见了将来按生物现实设计脑模型的可能性,而不是用一些毫无生物依据的模型仅仅去捕捉脑行为的某些有限方面。即便现在这些新观念已经使我们对实验的讨论更为敏锐,我们现在更多地了解了关于个体神经元所必须掌握的知识。我们可以指出回路的哪些方面我们尚不足够了解(如新皮层的向回的通路),我们从新的角度看待单个神经元的行为,并意识到在实验日程上下一个重要的任务是它们整个群体的行为。神经网络还有很长的路要走,但它们终于有了好的开端。

    ①查尔斯·安德森(charles

    Anderson)和戴维·范·埃森提出脑中有些装置将信息按规定路线从一处传至另一处。不过这个观点尚有争议。

    ①该网络以一个早期网络为基础。那个网络被称为“自旋玻璃”,是物理学家受一种理论概念的启发而提出的。

    ①这对应于一个适定的数学函数(称为“能量函数”,来自自旋玻璃)的(局域)极小值。霍普菲尔德还给出了一个确定权重的简单规则以使网络的每个特定的活动模式对应于能量函数的一个极小值。

    ①对于霍普菲尔德网络而言,输出可视为网络存贮的记忆中与输出(似为“输入”之误——译者注)紧密相关的那些记忆的加权和。

    ①在1968年,克里斯托夫·朗格特-

    希金斯(Christopher Longuet-Higgins)从全息图出发发明了一种称为“声音全息记录器”(holophone)的装置。此后他又发明了另一种装置称为“相关图”,并最终形成了一种特殊的神经网络形式。他的学生戴维·威尔肖在完成博士论文期间对其进行了详细的研究。

    (2)他们和其他一些想法接近的理论家合作,在1981年完成了《联想记忆的并行模式》,由杰弗里·希尔顿(Geoffrey

    Hinton)和吉姆·安德森编著。这本书的读者主要是神经网络方面的工作者,它的影响并不像后一本书那样广泛。

    (1)

    PDP即平行分布式处理(Parallel Distributed Processing)的缩写。

    ①更准确他说是误差的平方的平均值在下降,因此该规则有时又叫做最小均方(LMS)规则。

    ①

    29个“字母”各有一个相应的单元;这包括字母表中的26个字母,还有三个表示标点和边界。因而输入层需要29x7=203个单元。

    ②例如,因为辅音p和b发音时都是以拢起嘴唇开始的,所以都称作“唇止音”。

    ③中间层(隐层)最初有80个隐单元,后来改为120个,结果能完成得更好。机器总共需要调节大约2万个突触。权重可正可负。他们并没有构造一个真正的平行的网络来做这件事,而是在一台中型高速计算机上(一台VAX

    11//780 FPA)模拟这个网络。

    ①计算机的工作通常不够快,不能实时地发音,因而需要先把输出录下来,再加速播放,这样人们才能听明白。

    ②塞吉诺斯基和罗森堡还表明,网络对于他们设置的连接上的随机损伤具有相当的抵抗力。在这种环境下它的行为是”故障弱化”。他们还试验以11个字母(而不是7个字母)为一组输入。这显著改善了网络的成绩。加上第二个隐单元层并不能改善它的成绩,但有助于网络更好地进行泛化。

    ①除了上面列出的以外,NEttalk还有许多简化。虽然作者们信奉分布式表达,在输入输出均有“祖母细胞”即,例如有一个单元代表“窗口中第三个位置上的字母a”。这样做是为了降低计算所需要的时间,是一种合理的简化形式。虽然数据顺序传入7个字母的方式在人工智能程序是完全可以接受的,却显得与生物事实相违背。输出的“胜者为王”这一步并不是由“单元”完成的,也不存在一组单元去表达预计输出与实际输出之间的差异(即教师信号)。这些运算都是由程序执行的。

    ②这种比较不太公平,因为神经网络的一个单元更好的考虑是等价于脑中一小群相神经元。因而更合适的数字大约是8万个神经元(相当于一平方毫米皮层下神经元的数目)。

    ①它是由斯蒂芬·格罗斯伯格、托伊沃·科霍宁等人发展的。

    ①我不打算讨论竞争网络的局限性。显然必须有足够多的隐单元来容纳网络试图从提供的输入中所学的所有东西,训练不能太快,也不能太慢,等等。这种网络要正确工作需要仔细设计。毫无疑问,不久的将来会发明出基于竞争学习基本思想的更加复杂的应用。