一篇有关神经网络的文章Word格式文档下载.docx
《一篇有关神经网络的文章Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《一篇有关神经网络的文章Word格式文档下载.docx(11页珍藏版)》请在冰豆网上搜索。
高速数字计算机是近50年来最重要的技术发展之一。
它时常被称作冯.诺依曼计算机,以纪念这位杰出的科学家、计算机的缔造者。
由于计算机能像人脑一样对符号和数字进行操作,人们自然地想像脑是某种形式相当复杂的冯·
诺依曼计算机。
这种比较,如果陷入极端的话,将导致不切实际的理论。
计算机是构建在固有的高速组件之上的。
即便是个人计算机,其基本周期,或称时钟频率,也高于每秒1000万次操作。
相反地,一个神经元的典型发放率仅仅在每秒100个脉冲的范围内。
计算机要快上百万倍。
而像克雷型机那样的高速超级计算机速度甚至更高。
大致说来,计算机的操作是序列式的,即一条操作接着一条操作。
与此相反,脑的工作方式则通常是大规模并行的,例如,从每只眼睛到达脑的轴突大约有100万个,它们全都同时工作。
在系统中这种高度的并行情况几乎重复出现在每个阶段。
这种连线方式在某种程度上弥补了神经元行为上的相对缓慢性。
它也意味着即使失去少数分散的神经元也不大可能明显地改变脑的行为。
用专业术语讲,脑被称作“故障弱化”(degradegracefully)。
而计算机则是脆弱的,哪怕是对它极小的损伤,或是程序中的一个小错误,也会引起大的灾难。
计算机中出现错误则是灾难性的(degradecatastrophically)。
计算机在工作中是高度稳定的。
因为其单个组件是很可靠的,当给定相同的输入时通常产生完全同样的输出。
反之,单个神经元则具有更多的变化。
它们受可以调节其行为的信号所支配,有些特性边“计算”边改变。
一个典型的神经元可能具有来自各处的上百乃至数万个输入,其轴突又有大量投射。
而计算机的一个基本元件——晶体管,则只有极少数的输入和输出。
在计算机中,信息被编码成由0和1组成的脉冲序列。
计算机通过这种形式高度精确地将信息从一个特定的地方传送到另一个地方。
信息可以到达特定的地址,提取或者改变那里所贮存的内容。
这样就能够将信息存入记忆体的某个特殊位置,并在以后的某些时刻进一步加以利用。
这种精确性在脑中是不会出现的。
尽管一个神经元沿它的轴突发送的脉冲的模式(而不仅仅是其平均发放率)可能携带某些信息,但并不存在精确的由脉冲编码的信息。
这样,记忆必然将以不同的形式“存贮”。
脑看起来一点也不像通用计算机。
脑的不同部分,甚至是新皮层的不同部分,都是专门用来处理不同类型的信息的(至少在某种程度上是这样的)。
看来大多数记忆存贮在进行当前操作的那个地方。
所有这些与传统的冯·
诺依曼计算机完全不同,因为执行计算机的基本操作(如加法.乘法等等)仅在一个或少数几个地方,而它的记忆却存贮在许多很不同的地方。
最后,计算机是由工程师精心设计出来的,而脑则是动物经自然选择一代又一代进化而来的。
这就产生了如第一章 所述的本质上不同的设计形式。
人们习惯于从硬件和软件的角度来谈论计算机。
由于人们编写软件(计算机程序)时几乎不必了解硬件(回路等)的细节,所以人们——特别是心理学家——争论说没必要了解有关脑的“硬件”的任何知识。
实际上想把这种理论强加到脑的操作过程中是不恰当的,脑的硬件与软件之间并没有明显的差异。
对于这种探讨的一种合理的解释是,虽然脑的活动是高度并行的,在所有这些平行操作的顶端有某些形式的(由注意控制的)序列机制,因而,在脑的操作的较高层次,在那些远离感觉输入的地方,可以肤浅地说脑与计算机有某种相似之处。
人们可以从一个理论途径的成果来对它作判断。
计算机按编写的程序执行,因而擅长解决诸如大规模数字处理、严格的逻辑推理以及下棋等某些类型的问题。
这些事情大多数人都没有它们完成得那么快、那么好。
但是,面对常人能快速、不费气力就能完成的任务,如观察物体并理解其意义,即便是最现代的计算机也显得无能为力。
近几年在设计新一代的、以更加并行方式工作的计算机方面取得了重要进展。
大多数设计使用了许多小型计算机,或是小型计算机的某些部件。
它们被连接在一起,并同时运行。
由一些相当复杂的设备来处理小计算机之间的信息交换并对计算进行全局控制。
像天气预测等类似问题,其基本要素在多处出现。
此时超级计算机特别有用。
人工智能界也采取了行动设计更具有脑的特点的程序。
他们用一种模糊逻辑取代通常计算中使用的严格的逻辑。
命题不再一定是真的或假的,而只需是具有更大或更小的可能性。
程序试图在一组命题中发现具有最大可能性的那种组合,并以之作为结论,而不是那些它认为可能性较小的结论。
在概念的设置上,这种方法确实比早期的人工智能方法与脑更为相像,但在其他方面,特别是在记忆的存贮上,则不那么像脑。
因此,要检查它与真实的脑在所有层次上行为的相似性可能会有困难。
一群原先很不知名的理论工作者发展了一种更具有脑的特性的方法。
如今它被称为PDP方法(即平行分布式处理)。
这个话题有很长的历史,我只能概述一二。
在1943年沃仑·
麦卡洛克(WarrencMcCulloch)和沃尔特·
皮兹(WalterPitts)的工作是这方面最早的尝试之一。
他们表明,在原则上由非常简单的单元连接在一起组成的“网络”可以对任何逻辑和算术函数进行计算。
因为网络的单元有些像大大简化的神经元,它现在常被称作“神经网络”。
这个成就非常令人鼓舞,以致它使许多人受到误导,相信脑就是这样工作的。
或许它对现代计算机的设计有所帮助,但它的最引人注目的结论就脑而言则是极端错误的。
下一个重要的进展是弗兰克·
罗森布拉特(FrankRosenblatt)发明的一种非常简单的单层装置,他称之为感知机(Perceptron)。
意义在于,虽然它的连接最初是随机的,它能使用一种简单而明确的规则改变这些连接,因而可以教会它执行某些简单的任务,如识别固定位置的印刷字母。
感知机的工作方式是,它对任务只有两种反应:
正确或是错误。
你只需告诉它它所作出的(暂时的)回答是否正确。
然后它根据一种感知机学习规则来改变其连接。
罗森布拉特证明,对于某一类简单的问题——“线性可分”的问题——感知机通过有限次训练就能学会正确的行为。
由于这个结果在数学上很优美,从而吸引了众人的注目。
只可惜它时运不济,它的影响很快就消退了。
马文·
明斯基(MarVinMinsky)和西摩·
佩伯特(SegmourPapert)证明感知机的结构及学习规则无法执行“异或问题”(如,判断这是苹果还是桔子,但不是二者皆是),因而也不可能学会它。
他们写了一本书,通篇详述了感知机的局限性。
这在许多年内扼杀了人们对感知机的兴趣(明斯基后来承认做得过分了)。
此问大部分工作将注意力转向人工智能方法。
用简单单元构建一个多层网络,使之完成简单的单层网络所无法完成的异或问题(或类似任务),这是可能的。
这种网络必定具有许多不同层次上的连接,问题在于,对哪些最初是随机的连接进行修改才能使网络完成所要求的操作。
如果明斯基和佩伯特为这个问题提供了解答,而不是把感知机打入死路的话,他们的贡献会更大些。
下一个引起广泛注意的发展来自约翰·
霍普菲尔德(JohnHop-field),一位加利福尼亚州理工学院的物理学家,后来成为分子生物学家和脑理论家。
1982年他提出了一种网络,现在被称为霍普菲尔德网络。
这是一个具有自反馈的简单网络。
每个单元只能有两种输出:
一1(表示抑制)或十1(表示兴奋)。
但每个单元具有多个输入。
每个连接均被指派一个特定的强度。
在每个时刻单元把来自它的全部连接的效果总和起来。
如果这个总和大于0则置输出状态为十1(平均而言,当单元兴奋性输入大于抑制性输人时,则输出为正),否则就输出一1。
有些时候这意味着一个单元的输出会因为来自其他单元的输入发生了改变而改变。
尽管如此,仍有不少理论工作者默默无闻地继续工作。
这其中包括斯蒂芬.格罗斯伯格(stephenGrossberg),吉姆·
安德森(JimAnderson),托伊沃.科霍宁(TeuvoKohonen)和戴维·
威尔肖(DevidWillshaw)。
每个输入对单元的影响是将当前的输入信号(+1或-1)与其相应的权值相乘而得到的。
(如果当前信号是-1,权重是+2,则影响为-2。
)计算将被一遍遍地反复进行,直到所有单元的输出都稳定为止。
在霍普菲尔德网络中,所有单元的状态并不是同时改变的,而是按随机次序一个接一个进行,霍普菲尔德从理
论上证明了,给定一组权重(连接强度)以及任何输入,网络将不会无限制地处于漫游状态,也不会进入振荡,而是迅速达到一个稳态。
霍普菲尔德的论证令人信服,表达也清晰有力。
他的网络对数学家和物理学家有巨大的吸引力,他们认为终于找到了一种他们可以涉足脑研究的方法(正如我们在加利福尼亚州所
说的)。
虽然这个网络在许多细节上严重违背生物学,但他们并不对此感到忧虑。
如何调节所有这些连接的强度呢?
194年,加拿大心理学家唐纳德·
赫布(DonaldHebb)出版了《行为的组织》一书。
当时人们就像现在一样普遍相信,在学习过程中,一个关键因素是神经元的连接(突触)强度的调节。
赫布意识到,仅仅因为一个突触是活动的,就增加其强度,这是不够的。
他期望一种只在两个神经元的活动相关时才起作用的机制。
他的书中有一个后来被广泛引用的段落:
“当细胞A的一个轴突和细胞B很近,足以对它产生影响,并且持久地、不断地参与了对细胞B的兴奋,那么在这两个细胞或其中之一会发生某种生长过程或新陈代谢变化,以致于A作为能使B兴奋的细胞之一,它的影响加强了。
”这个机制以及某些类似规则,现在称为“赫布律”。
霍普菲尔德在他的网络中使用了一种形式的赫布规则来调节连接权重。
对于问题中的一种模式,如果两个单元具有相同的输出,则它们之间的相互连接权重都设为+1。
如果它们具有相反的输出,则两个权重均设为-1。
大致他说,每个单元激励它的“朋友”并试图削弱它的“敌人”。
霍普菲尔德网络是如何工作的呢?
如果网络输入的是正确的单元活动模式,它将停留在该状态。
这并没有什么特别的,因为此时给予它的就是答案。
值得注意的是,如果仅仅给出模式的一小部分作为“线索”,它在经过短暂的演化后,会稳定在正确的输出即整个模式上,在不断地调节各个单元的输出之后,网络所揭示的是单元活动的稳定联系。
最终它将有效地从某些仅仅与其存贮的“记忆”接近的东西中恢复出该记忆,此外,这种记忆也被称作是按“内容寻址”的——即它没有通常计算机中具有的分离的、唯一用于作为“地址”的信号。
输入模式的任何可察觉的部分都将作为地址。
这开始与人的记忆略微有些相似了。
请注意记忆并不必存贮在活动状态中,它也可以完全是被动的,因为它是镶嵌在权重的模式之中的即在所有各个单元之间的连接强度之中。
网络可以完全不活动(所有输出置为0),但只要有信号输入,网络突然活动起来并在很短时间内进入与其应当记住的模式相对应的稳定的活动状态。
据推测,人类长期记忆的回忆具有这种一般性质(只是活动模式不能永久保持)。
你能记住大量现在一时想不起来的事情。
神经网络(特别是霍普菲尔德网络)能“记住”一个模式,但是除此以外它还能再记住第二个模式吗?
如果几个模式彼此不太相似,一个网络是能够全部记住这几个不同模式,即给出其中一个模式的足够大的一部分,网络经过少数几个周期后将输出该模式。
因为任何一个记忆都是分布在许多连接当中的,所以整个系统中记忆是分布式的。
因为任何一个连接都可能包含在多个记忆中,因而记忆是可以叠加的。
此外,记忆具有鲁棒性,改变少数连接通常不会显著改变网络的行为。
为了实现这些特性就需要付出代价,这不足为奇。
如果将过多的记忆加到网络之中则很容易使它陷入混乱。
即使给出线索,甚至以完整的模式作为输入,网络也会产生毫无意义的输出。
有人提出这是我们做梦时出现的现象(弗洛伊德称之为“凝聚”——condensation),但这是题外话。
值得注意的是,所有这些特性是“自然发生”的。
它们并不是网络设计者精心设置的,而是由单元的本性、它们连接的模式以及权重调节规则所决定的。
霍普菲尔德网络还有另一个性质,即当几个输人事实上彼此大致相似时,在适当计算网络的连接权重后,它“记住”的将是训练的模式的某种平均。
这是另一个与脑有些类似的性质。
对我们人类而言,当我们听某个特定的声调时,即便它在一定范围内发生变化,我们也会觉得它是一样的。
输入是相似但不同的,而输出——我们所听到的——则是一样的。
这些简单网络是不能和脑的复杂性相提并论的,但这种简化确实使我们可能对它们的行为有所了解,即使是简单网络中出现的特点也可能出现在具有相同普遍特性的更复杂的网络中,此外,它们向我们提供了多种观点,表明特定的脑回路所可能具有的功能。
例如,海马中有一个称为CA3的区域,它的连接事实上很像一个按内容寻址的网络。
当然,这是否正确尚需实验检验。
有趣的是,这些简单的神经网络具有全息图的某些特点。
在全息图中,几个影像可以彼此重叠地存贮在一起;
全息图的任何一部分都能用来恢复整个图像,只不过清晰度会下降;
全息图对于小的缺陷是鲁棒的。
对脑和全息图两者均知之甚少的人经常会热情地支持这种类比。
几乎可以肯定这种比较是没有价值的。
原因有两个。
详细的数学分析表明神经网络和全息图在数学上是不同的。
更重要的是,虽然神经网络是由那些与真实神经元有些相似的单元构建的,没有证据表明脑中具有全息图所需的装置或处理过程。
一本更新的书产生了巨大的冲击力,这就是戴维·
鲁梅尔哈特(DavidRumelhart)、詹姆斯·
麦克莱兰(JamesMcClelland)和PDP小组所编的一套很厚的两卷著作《平行分布式处理》。
该书于1986年问世,并很快至少在学术界成为最畅销书。
名义上我也是PDP小组的成员,并和浅沼智行(ChikoAsanuma)合写了其中的一个章节。
不过我起的作用很小。
我几乎只有一个贡献,就是坚持要求他们停止使用神经元一词作为他们网络的单元。
加利福尼亚州立大学圣迭戈分校心理系离索尔克研究所仅有大约一英里。
在70年代末80年代初我经常步行去参加他们的讨论小组举行的小型非正式会议。
那时我时常漫步的地方如今已变成了巨大的停车场。
生活的步伐越来越快,我现在已改为驱车飞驰于两地之间了。
研究小组当时是由鲁梅尔哈特和麦克莱兰领导的,但是不久麦克莱兰就离开前往东海岸了。
他们俩最初都是心理学家,但他们对符号处理器感到失望并共同研制了处理单词的“相互作用激励器”的模型。
在克里斯托夫·
朗格特-希金斯(ChristopherLonguet-Higgins)的另一位学生杰弗里·
希尔顿(GeoffreyHinton)的鼓励下,他们着手研究一个更加雄心勃勃的“联结主义”方案。
他们采纳了平行分布式处理这个术语,因为它比以前的术语——联想记忆②——的覆盖面更广。
在人们发明网络的初期,一些理论家勇敢地开始了尝试。
他们把一些仍显笨拙的小型电子回路(其中常包括有老式继电器)连接在一起来模拟他们的非常简单的网络。
现在已发展出了复杂得多的神经网络,这得益于现代计算机的运算速度得到了极大的提高,也很便宜。
现在可以在计算机(这主要是数字计算机)上模拟检验关于网络的新思想,而不必像早期的研究那样仅靠粗糙的模拟线路或是用相当困难的数学论证。
1986年出版的《平行分布式处理》一书从1981年底开始经过了很长时间的酝酿。
这很幸运,因为它是一个特殊算法的最新发展(或者说是它的复兴或应用),在其早期工作基础上,很快给人留下了深刻的印象。
该书的热情读者不仅包括脑理论家和心理学家,还有数学家、物理学家和工程师,甚至有人工智能领域的工作者。
不过后者最初的反应是相当敌视的。
最终神经科学家和分子生物学家也对它的消息有所耳闻。
该书的副标题是“认知微结构的探索”。
它是某种大杂烩,但是其中一个的特殊的算法产生了惊人的效果。
该算法现在称作“误差反传算法”,通常简称为“反传法”。
为了理解这个算法,你需要知道一些关于学习算法的一般性知识。
在神经网络有些学习形式被称作是“无教师的”。
这意味着没有外界输入的指导信息。
对任何连接的改变只依赖于网络内部的局部状态。
简单的赫布规则具有这种特点。
与之相反,在有教师学习中,从外部向网络提供关于网络执行状况的指导信号。
无教师学习具有很诱人的性质,因为从某种意义上说网络是在自己指导自己。
理论家们设计了一种更有效的学习规则,但它需要一位“教师”来告诉网络它对某些输入的反应是好、是差还是很糟。
这种规则中有一个称作“δ律”。
训练一个网络需要有供训练用的输入集合,称作“训练集”。
很快我们在讨论网络发音器(NETtalk)时将看到一个这样的例子。
这有用的训练集必须是网络在训练后可能遇到的输入的合适的样本。
通常需要将训练集的信号多次输入,因而在网络学会很好地执行之前需要进行大量的训练。
其部分原因是这种网络的连接通常是随机的。
而从某种意义上讲,脑的初始连接是由遗传机制控制的,通常不完全是随机的。
网络是如何进行训练的呢?
当训练集的一个信号被输入到网络中,网络就会产生一个输出。
这意味着每个输出神经元都处在一个特殊的活动状态。
教师则用信号告诉每个输出神经元它的误差,即它的状态与正确之间的差异,δ这个名称便来源于这个真实活动与要求之间的差异(数学上δ常用来表示小而有限的差异)。
网络的学习规则利用这个信息计算如何调整权重以改进网络的性能。
Adaline网络是使用有教师学习的一个较早的例子。
它是1960年由伯纳德·
威德罗(Bernardwidrow)和霍夫(M.E.Hoff)设计的,因此δ律又称作威德罗-霍夫规则。
他们设计规则使得在每一步修正中总误差总是下降的。
①这意味着随着训练过程网络最终会达到一个误差的极小值。
这是毫无疑问的,但还不能确定它是真正的全局极小还是仅仅是个局域极小值。
用自然地理的术语说就是,我们达到的是一个火山口中的湖,还是较低的池塘。
海洋,还是像死海那样的凹下去的海(低于海平面的海)?
训练算法是可以调节的,因而趋近局域极小的步长可大可小。
如果步长过大,算法会使网络在极小值附近跳来跳去(开始时它会沿下坡走,但走得太远以致又上坡了)。
如果步子小,算法就需要极长的时间才能达到极小值的底端。
人们也可以使用更精细的调节方案。
反传算法是有教师学习算法中的一个特殊例子。
为了让它工作,网络的单元需要具有一些特殊性质。
它们的输出不必是二值的(即,或0,或者+1或-1),而是分成若干级。
它通常在0到+1之间取值。
理论家们盲目地相信这对应于神经元的平均发放率(取最大发放率为+1),但他们常常说不清应该在什么时候取这种平均。
如何确定这种“分级”输出的大小呢?
像以前一样,每个单元对输入加权求和,但此时不再有一个真实的阈值。
如果总和很小,输出几乎是0。
总和稍大一些时,输出便增加。
当总和很大时,输出接近于最大值。
图54所示的S形函数(sigmoid函数)体现了这种输入总和与输出间的典型关系。
如果将一个真实神经元的平均发放率视为它的输出,那么它的行为与此相差不大。
这条看似平滑的曲线有两个重要性质。
它在数学上是“可微的”,即任意一处的斜率都是有限的;
反传算法正依赖于这个特性。
更重要的是,这条曲线是非线性的,而真实神经元即是如此。
当(内部)输入加倍时输出并不总是加倍。
这种非线性使得它能处理的问题比严格的线性系统更加广泛。
现在让我们看一个典型的反传网络。
它通常具有三个不同的单元层。
最底层是输入层。
下一层被称作“隐单元”层,因为这些单元并不直接与网络外部的世界连接。
最顶层是输出层。
最底层的每个单元都与上一层的所有单元连接。
中间层也是如此。
网络只有前向连接,而没有侧向连接,除了训练以外也没有反向的投射。
它的结构几乎不能被简化。
训练开始的时候,所有的权重都被随机赋值,因而网络最初对所有信号的反应是无意义的。
此后给定一个训练输入,产生输出并按反传训练规则调节权重。
过程如下:
在网络对训练产生输出以后,告诉高层的每个单元它的输出与“正确”输出之间的差。
单元利用该信息来对每个从低层单元达到它的突触的权重进行小的调整。
然后它将该信息反传到隐层的每个单元。
每个隐层单元则收集所有高层单元传未的误差信息,并以此调节来自最底层的所有突触。
从整体上看具体的算法使得网络总是不断调节以减小误差。
这个过程被多次重复。
(该算法是普适的,可以用于多于三层的前向网络。
)经过了足够数量的训练之后网络就可以使用了。
此时有一个输入的测试集来检验网络。
测试集是经过选择的,它的一般(统计)特性与训练集相似,但其他方面则不同。
(权重在这个阶段保持不变,以便考察训练后网络的行为。
)如果结果不能令人满意,设计者会从头开始,修改网络的结构、输入和输出的编码方式、训练规则中的参数或是训练总数。
所有这些看上去显得很抽象。
举个例子或许能让读者清楚一些。
特里·
塞吉诺斯基和查尔斯·
罗森堡(CharlesRosenberg)在1987年提供了一个著名的演示。
他们把他们的网络称为网络发音器(NETtalk)。
它的任务是把书写的英文转化成英文发音。
英文的拼法不规则,这使它成为一门发音特别困难的语言,因而这个任务并不那么简单易行。
当然,事先并不把英语的发音规则清楚地告诉网络。
在训练过程中,网络每次尝试后将得到修正信号,网络则从中学习。
输入是通过一种特殊的方式一个字母接一个字母地传到网络中。
NETtalk的全部输出是与口头发音相对应的一串符号,为了让演示更生动,网络的输出与一个独立的以前就有的机器(一种数字发音合成器)耦合。
它能将NETtallk的输出变为发音,这样就可以听到机器“朗读”英语了。
由于一个英语字母的发音在很大程度上依赖于它前后的字母搭配,输入层每次读入一串7个字母。
①输出层中的单元与音素所要求的21个发音特征②相对应,还有5个单元处理音节分界和重音。
图56给出了它的一般结构。
③他们使用了两段文字的摘录来训练网络,每段文字都附有训练机器所需的标音法。
第一段文字摘自梅里亚姆-韦伯斯特袖珍词典。
第二段摘录则多少有些令人奇怪,是一个小孩的连续说话。
初始权重具有小的随机值,并在训练期内每处理一个词更新一次。
他们编写程序使得计算机能根据提供的输入和(正确的)输出信息自动地完成这一步。
在对真实的输出进行判断时,程序会采纳一个与真实发音最接近的音素作为最佳猜测,通常有好几个“发音”输出单元对此有关系。
聆听机器学着“读”英语是一件令人着迷的事情。
①最初,由于初始连接是随机的,只能听到一串令人困惑的声音。
NETtalk很快就学会了区分元音和辅音。
但开始时它只知道一个元音和一个辅音,因此像在咿呀学语。
后来它能识别词的边界,并能发出像词那样的一串
声音。
在对训练集进行了大约十次操作之后