按键盘上方向键 ← 或 → 可快速上下翻页,按键盘上的 Enter 键可回到本书目录页,按键盘上方向键 ↑ 可回到本页顶部!
————未阅读完?加入书签已便下次继续阅读!
为自己获取可信值呢?
对荷兰德来说,最显在的答案就是采用一种赫伯式的强化作用。每当一个作用者做
对了什么事,从环境中得到了一个正反馈,它就应该强化那些与此相关的分类器。而每
当它做错了什么事,它就同样应该削弱相关的分类器。无论采取强化的方法,还是采取
削弱的方法,它同时应该不去理会那些不相干的分类器。
当然,关键是要弄明白这些分类器所起的作用。作用者不能奖赏那些在颁奖的时候
正巧表现活跃的分类器。那就会像把得分的一切功劳都归于那个凑巧带球冲过底线的队
员,而对操纵全局、把球传给他的四分卫,对拦截了对方进攻、为他开路的前锋,或任
何替他传球的队员的功劳一笔勾销了。这也像把赢得一盘国际象棋的全部功劳都归于将
住了对手的国王的最后一步棋,而无视为获得全局胜利而布局中的许多关键的棋步。但
还有其它替代办法吗?如果作用者为了奖赏正确的分类器而必须预期回报,在没有被编
入程序的情况下立该怎么做呢?在事先一无所知的情况下,作用者如何得知这些布局的
价值呢?
这确实是一个问题。不幸的是,赫伯式的强化作用是一个过于广泛的一般性概念,
无法提供解答。荷兰德感到非常困惑,一直到有一天他偶然回想起他在麻省理工学院上
的基本经济学课程,那是著名的经济学教科书撰写人保尔·塞缪尔森上的课,他才意识
到他几乎已经解决了这个问题。他的布告栏前的拍卖已经为他在系统中建立了某种市场
机制,通过允许分类器量力叫价的办法,他已经创造出了通货。所以,为什么不采取下
一步行动?为什么不创造一个完整的自由市场经济,让强化能够在利益驱动下发生作用
呢?
确实,为什么不呢?当他终于看到了这一点,就发现这与经济非常相似。荷兰德认
识到,如果把张贴在布告栏上的布告当作是上市叫卖的货物和市场上提供的服务,那么
就能把分类器想成是生产这些产品和提供这些服务的公司和厂家。当一个分类器看到有
一个布告满足了它的“如果条件”,它就会叫一个价,那么就可以把它想成是一个正在
求购生产所需供应的厂家。为使这一相似性更加完善,他要做的是,必须要使每一个分
类器对自己消耗的供应付出报酬。他决定,当一个分类器赢得了张贴自己的布告的权力,
它就得将自己的一部分力量转给供应商,也就是那些触发其张贴布告的分类器。在这个
过程中,这些分类器就会被削弱。但在下一轮拍卖中,一旦它的布告上市,它会有重新
聚集力量的机会,甚至能够获利。
但这些财富究竟是从何而来的呢?当然是从最终消费者而来的:环境就是系统的所
有报偿之源。荷兰德认识到,除此之外,对凑巧在颁奖的时候活跃异常的分类器给予奖
赏是完全正确的。既然每一个分类器都对供应有所付出,那么市场就会保证其奖赏普及
到所有中选的分类器,从而产生他所寻求的某种自动报偿和惩罚机制。他说:“如果你
生产出对大家都合适的产品,那么你就会获利。如果不是这样的话,那就没人会买你的
东西,你就会破产。”所有能够产生有效行动的分类器都会被强化,任何参与布局的分
类器都不会被忽略。随着时间的日积月累,随着整个系统不断汲取经验和从环境中获得
反馈,每一个分类器的强度就会与自己对作用者的真正价值相符。
荷兰德将适应性作用者的这部分称为“水桶队列”算法,因为其方法是将奖赏从一
个分类者传到前一个分类者。这有如希伯的强化神经突触的大脑理论的直接翻版。或者,
从这个意义上来说,与在计算机上调训模拟的神经网络也如出一辙。当想到这些时,荷
兰德知道他快要触及到问题的实质了。以利益为驱动力的经济强化是一个极为强大的组
织力量,就如亚当·斯密的那只看不见的手在现实经济中具有强大的力量一样。荷兰德
认识到,从原则上说,你可以用一组完全随意的分类器来启动系统,这样,作用者这个
软件就会像新生婴儿一样手舞足蹈地乱蹬乱踹。然后,随着环境不断强化某些行为,随
着水桶队列发生作用,你可以看到分类器将自己组织为前后连贯的序列,从而产生预期
的行为表现。一句话,学习从头开始就被设入于系统之中了。
这么说,荷兰德几乎就摸到门了,但还不尽然。荷兰德把水桶队列算法建立在基本
的基于法则的系统之上,并赋予了他的适应性作用者某种形式的学习功能。但适应性作
用者还缺少另一种学习的形式,开采式学习与探险式学习之间是有区别的,水桶队列算
法能够强化作用者已有的分类器,可以打磨已有的技能,但它却无法创新。仅仅只依靠
水桶队列算法,会使系统趋于最大化的平庸状态,因为这个算法无法使系统在无限广阔
的可能性空间搜索到新的分类器。
荷兰德认为,搜索于可能性空间正是基因算法可以承担的工作。事实上,当你想到
这一点时你就会看到,达尔文的比喻和亚当·斯密的比喻恰好可以相辅相成:企业能够
随时间进化,为什么分类器不能够呢?
荷兰德当然不会为这一洞见而大惊小怪:基因算法一直存储在他脑子里。他刚开始
对分类器做二进制的表述时就想到了基因算法。分类器用英文来陈述就像:“如果有两
个布告,其模型分别是1###0#00和0#00####则张贴布告01110101。”但在计
算机里,各部分信息会被串在一起,被写成一连串的信息:“1###0#000#00##
##01110101”。对基因算法而言,这就像是数字染色体。所以可以完全用同一种方式
来执行这个算法。在大多数情况下,分类器会像以往一样在市场上欣然买进或卖出。但
系统会经常性地选择最强的一对分类器来繁衍后代。这些中选的分类器会通过性交换来
产生一对后代,从而重组它们的数字化建设砖块。而新生代会取代一对力弱的分类器。
然后,新生代将有机会来证明自己的价值,通过水桶队列算法使自己越变越强壮。
结果就是,这群规则会随时间而改变和进化,在可能性空间中不断发现新的领域。
由此你就会达到目的:将基因算法当作第三层,置于水桶队列算法和基本的基于规则的
系统之上,荷兰德终于构筑成了一个不仅能够吸取经验,而且具有自发性和创造性的适
应性作用者。
他现在所要做的就是,将这个构想变为一个可以运作的软件程序。
荷兰德从1977年左右开始为第一个分类器系统编码。奇怪的是,这项工作并不像他
期望的那样直截了当。“我真以为只消几个月时间我就可以编出能够运作、对我有用的
程序来。但实际上,我用了大半年的时间才做到令我自己满意的地步。”他说。
另一方面,这也要怪他自己让自己做难。他以真正的荷兰德的风格来编写第一个分
类器系统:完全依靠自己,而且是在家里,用的是十三年前他用于旋风计划的十六进位
码和他家的一台康莫多(modore)计算机。
巴奇小组的成员们至今在说到这一段故事时还带着诧异的神情。当时满校园都是计
算机:VAX机、大型计算机、甚至高功能的绘图工作站。为什么要用康莫多机?为什么
要用十六进位码?几乎没人还在用十六进位码了。如果你真是个死心塌地的计算机高手,
想方设法要从一台计算机的程序中榨出最后一点利用价值的话,你也可以用所谓组合语
言来写,那起码能够用像MOV、JMZ和SUB这样的帮助记忆的符号来取代数字。或者,你
也可以用PASCAL、C、FORTRAN或LISP这样的高级语言来编写程序。这些语言是人类比较
容易理解的。尤其是科恩,仍然记得为此与荷兰德做过长时间的激烈争论。如果用这些
夹杂字母的数字将程序写得杂乱无章,谁会相信它能运作呢?就算有人相信你,但如果
你的分类器系统是在家用计算机上编写成的,谁又会用它呢?
最终荷兰德只好做出让步。不过到他同意将分类器系统交给一个研究生,里克·里
奥罗(Rick Riolo)时,早已是八十年代初了。里克将这个系统改编成一个一般性功能
的、能够在所有类型的计算机上运行的软件系统。荷兰德承认说:“只不过这不是出于