《惊人的假说 [英]弗兰西斯[1].克里克》

下载本书

添加书签

惊人的假说 [英]弗兰西斯[1].克里克- 第25部分


按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
网络所揭示的是单元活动的稳定联系。最终它将有效地从某些仅仅与其存贮的“记忆”接近的东西中恢复出该记忆,此外,这种记忆也被称作是按“内容寻址”的——即它没有通常计算机中具有的分离的、唯一用于作为“地址”的信号。输入模式的任何可察觉的部分都将作为地址。这开始与人的记忆略微有些相似了。
    请注意记忆并不必存贮在活动状态中,它也可以完全是被动的,因为它是镶嵌在权重的模式之中的即在所有各个单元之间的连接强度之中。网络可以完全不活动(所有输出置为0),但只要有信号输入,网络突然活动起来并在很短时间内进入与其应当记住的模式相对应的稳定的活动状态。据推测,人类长期记忆的回忆具有这种一般性质(只是活动模式不能永久保持)。你能记住大量现在一时想不起来的事情。
    神经网络(特别是霍普菲尔德网络)能“记住”一个模式,但是除此以外它还能再记住第二个模式吗?如果几个模式彼此不太相似,一个网络是能够全部记住这几个不同模式,即给出其中一个模式的足够大的一部分,网络经过少数几个周期后将输出该模式。因为任何一个记忆都是分布在许多连接当中的,所以整个系统中记忆是分布式的。因为任何一个连接都可能包含在多个记忆中,因而记忆是可以叠加的。此外,记忆具有鲁棒性,改变少数连接通常不会显著改变网络的行为。
    为了实现这些特性就需要付出代价,这不足为奇。如果将过多的记忆加到网络之中则很容易使它陷入混乱。即使给出线索,甚至以完整的模式作为输入,网络也会产生毫无意义的输出。①
    有人提出这是我们做梦时出现的现象(弗洛伊德称之为“凝聚”——condensation),但这是题外话。值得注意的是,所有这些特性是“自然发生”的。它们并不是网络设计者精心设置的,而是由单元的本性、它们连接的模式以及权重调节规则所决定的。
    霍普菲尔德网络还有另一个性质,即当几个输人事实上彼此大致相似时,在适当计算网络的连接权重后,它“记住”的将是训练的模式的某种平均。这是另一个与脑有些类似的性质。对我们人类而言,当我们听某个特定的声调时,即便它在一定范围内发生变化,我们也会觉得它是一样的。输入是相似但不同的,而输出——我们所听到的——则是一样的。
    这些简单网络是不能和脑的复杂性相提并论的,但这种简化确实使我们可能对它们的行为有所了解,即使是简单网络中出现的特点也可能出现在具有相同普遍特性的更复杂的网络中,此外,它们向我们提供了多种观点,表明特定的脑回路所可能具有的功能。例如,海马中有一个称为CA3的区域,它的连接事实上很像一个按内容寻址的网络。当然,这是否正确尚需实验检验。
    有趣的是,这些简单的神经网络具有全息图的某些特点。在全息图中,几个影像可以彼此重叠地存贮在一起;全息图的任何一部分都能用来恢复整个图像,只不过清晰度会下降;全息图对于小的缺陷是鲁棒的。对脑和全息图两者均知之甚少的人经常会热情地支持这种类比。几乎可以肯定这种比较是没有价值的。原因有两个。详细的数学分析表明神经网络和全息图在数学上是不同的。更重要的是,虽然神经网络是由那些与真实神经元有些相似的单元构建的,没有证据表明脑中具有全息图所需的装置或处理过程。(1)
    一本更新的书产生了巨大的冲击力,这就是戴维·鲁梅尔哈特(David Rumelhart)、詹姆斯·麦克莱兰(James McClelland)和PDP小组所编的一套很厚的两卷著作《平行分布式处理》(1)。该书于1986年问世,并很快至少在学术界成为最畅销书。名义上我也是PDP小组的成员,并和浅沼智行(Chiko Asanuma)合写了其中的一个章节。不过我起的作用很小。我几乎只有一个贡献,就是坚持要求他们停止使用神经元一词作为他们网络的单元。
    加利福尼亚州立大学圣迭戈分校心理系离索尔克研究所仅有大约一英里。在70年代末80年代初我经常步行去参加他们的讨论小组举行的小型非正式会议。那时我时常漫步的地方如今已变成了巨大的停车场。生活的步伐越来越快,我现在已改为驱车飞驰于两地之间了。
    研究小组当时是由鲁梅尔哈特和麦克莱兰领导的,但是不久麦克莱兰就离开前往东海岸了。他们俩最初都是心理学家,但他们对符号处理器感到失望并共同研制了处理单词的“相互作用激励器”的模型。在克里斯托夫·朗格特…希金斯(Christopher Longuet…Higgins)的另一位学生杰弗里·希尔顿(Geoffrey Hinton)的鼓励下,他们着手研究一个更加雄心勃勃的“联结主义”方案。他们采纳了平行分布式处理这个术语,因为它比以前的术语——联想记忆②——的覆盖面更广。
    在人们发明网络的初期,一些理论家勇敢地开始了尝试。他们把一些仍显笨拙的小型电子回路(其中常包括有老式继电器)连接在一起来模拟他们的非常简单的网络。现在已发展出了复杂得 多的神经网络,这得益于现代计算机的运算速度得到了极大的提高,也很便宜。现在可以在计算机(这主要是数字计算机)上模拟检验关于网络的新思想,而不必像早期的研究那样仅靠粗糙的模拟线路或是用相当困难的数学论证。
    1986年出版的《平行分布式处理》一书从1981年底开始经过了很长时间的酝酿。这很幸运,因为它是一个特殊算法的最新发展(或者说是它的复兴或应用),在其早期工作基础上,很快给人留下了深刻的印象。该书的热情读者不仅包括脑理论家和心理学家,还有数学家、物理学家和工程师,甚至有人工智能领域的工作者。不过后者最初的反应是相当敌视的。最终神经科学家和分子生物学家也对它的消息有所耳闻。
    该书的副标题是“认知微结构的探索”。它是某种大杂烩,但是其中一个的特殊的算法产生了惊人的效果。该算法现在称作“误差反传算法”,通常简称为“反传法”。为了理解这个算法,你需要知道一些关于学习算法的一般性知识。
    在神经网络有些学习形式被称作是“无教师的”。这意味着没有外界输入的指导信息。对任何连接的改变只依赖于网络内部的局部状态。简单的赫布规则具有这种特点。与之相反,在有教师学习中,从外部向网络提供关于网络执行状况的指导信号。
    无教师学习具有很诱人的性质,因为从某种意义上说网络是在自己指导自己。理论家们设计了一种更有效的学习规则,但它需要一位“教师”来告诉网络它对某些输入的反应是好、是差还是很糟。这种规则中有一个称作“δ律”。
    训练一个网络需要有供训练用的输入集合,称作“训练集”。很快我们在讨论网络发音器(NETtalk)时将看到一个这样的例子。这有用的训练集必须是网络在训练后可能遇到的输入的合适的样本。通常需要将训练集的信号多次输入,因而在网络学会很好地执行之前需要进行大量的训练。其部分原因是这种网络的连接通常是随机的。而从某种意义上讲,脑的初始连接是由遗传机制控制的,通常不完全是随机的。
    网络是如何进行训练的呢?当训练集的一个信号被输入到网络中,网络就会产生一个输出。这意味着每个输出神经元都处在一个特殊的活动状态。教师则用信号告诉每个输出神经元它的误差,即它的状态与正确之间的差异,δ这个名称便来源于这个真实活动与要求之间的差异(数学上δ常用来表示小而有限的差异)。网络的学习规则利用这个信息计算如何调整权重以改进网络的性能。
    Adaline网络是使用有教师学习的一个较早的例子。它是1960年由伯纳德·威德罗(Bernard widrow)和霍夫(M。E。Hoff)设计的,因此δ律又称作威德罗…霍夫规则。他们设计规则使得在每一步修正中总误差总是下降的。①这意味着随着训练过程网络最终会达到一个误差的极小值。这是毫无疑问的,但还不能确定它是真正的全局极小还是仅仅是个局域极小值。用自然地理的术语说就是,我们达到的是一个火山口中的湖,还是较低的池塘。海洋,还是像死海那样的凹下去的海(低于海平面的海)?
    训练算法是可以调节的,因而趋近局域极小的步长可大可小。如果步长过大,算法会使网络在极小值附近跳来跳去(开始时它会沿下坡走,但走得太远以致又上坡了)。如果步子小,算法就需要极长的时间才能达到极小值的底端。人们也可以使用更精细的调节方案。
    反传算法是有教师学习算法中的一个特殊例子。为了让它工作,网络的单元需要具有一些特殊性质。它们的输出不必是二值的(即,或0,或者+1或…1),而是分成若干级。它通常在0到+1之间取值。理论家们盲目地相信这对应于神经元的平均发放率(取最大发放率为+1),但他们常常说不清应该在什么时候取这种平均。
    如何确定这种“分级”输出的大小呢?像以前一样,每个单元对输入加权求和,但此时不再有一个真实的阈值。如果总和很小,输出几乎是0。总和稍大一些时,输出便增加。当总和很大时,输出接近于最大值。图54所示的S形函数(sigmoid函数)体现了这种输入总和与输出间的典型关系。如果将一个真实神经元的平均发放率视为它的输出,那么它的行为与此相差不大。
    这条看似平滑的曲线有两个重要性质。它在数学上是“可微的”,即任意一处的斜率都是有限的;反传算法正依赖于这个特性。更重要的是,这条曲线是非线性的,而真实神经元即是如此。当(内部)输入加倍时输出并不总是加倍。这种非线性使得它能处理的问题比严格的线性系统更加广泛。
    现在让我们看一个典型的反传网络。它通常具有三个不同的单元层(见图55)。最底层是输入层。下一层被称作“隐单元”层,因为这些单元并不直接与网络外部的世界连接。最顶层是输出层。最底层的每个单元都与上一层的所有单元连接。中间层也是如此。网络只有前向连接,而没有侧向连接,除了训练以外也没有反向的投射。它的结构几乎不能被简化。
    训练开始的时候,所有的权重都被随机赋值,因而网络最初对所有信号的反应是无意义的。此后给定一个训练输入,产生输出并按反传训练规则调节权重。过程如下:在网络对训练产生输出以后,告诉高层的每个单元它的输出与“正确”输出之间的差。单元利用该信息来对每个从低层单元达到它的突触的权重进行小的调整。然后它将该信息反传到隐层的每个单元。每个隐层单元则收集所有高层单元传未的误差信息,并以此调节来自最底层的所有突触。
    从整体上看具体的算法使得网络总是不断调节以减小误差。这个过程被多次重复。(该算法是普适的,可以用于多于三层的前向网络。)
    经过了足够数量的训练之后网络就可以使用了。此时有一个输入的测试集来检验网络。测试集是经过选择的,它的一般(统计)特性与训练集相似,但其他方面则不同。(权重在这个阶段保持不变,以便考察训练后网络的行为。)如果结果不能令人满意,设计者会从头开始,修改网络的结构、输入和输出的编码方式、训练规则中的参数或是训练总数。
    所有这些看上去显得很抽象。举个例子或许能让读者清楚一些。特里·塞吉诺斯基和查尔斯·罗森堡(Charles Rosenberg)在1987年提供了一个著名的演示。他们把他们的网络称为网络发音器(NETtalk)。它的任务是把书写的英文转化成英文发音。英文的拼法不规则;这使它成为一门发音特别困难的语言,因而这个任务并不那么简单易行。当然,事先并不把英语的发音规则清楚地告诉网络。在训练过程中,网络每次尝试后将得到修正信号,网络则从中学习。输入是通过一种特殊的方式一个字母接一个字母地传到网络中。 NETtalk的全部输出是与口头发音相对应的一串符号,为了让演示更生动,网络的输出与一个独立的以前就有的机器(一种数字发音合成器)耦合。它能将NETtallk的输出变为发音,这样就可以听到机器“朗读”英语了。
    由于一个英语字母的发音在很大程度上依赖于它前后的字母搭配,输入层每次读入一串7个字母。①输出层中的单元与音素所要求的21个发音特征②相对应,还有5
小提示:按 回车 [Enter] 键 返回书目,按 ← 键 返回上一页, 按 → 键 进入下一页。 赞一下 添加书签加入书架