×

Loading...

基因算法使电脑设计自行演化

本文发表在 rolia.net 枫下论坛通过进化的神奇力量,大自然缔造了人类;而今,欧美科学家正试图在计算机软件工具中建立某种进化机制,让计算机自觉地经历进化过程,而动画和工程设计师成了轻松的指挥和愉快的观众在电脑屏幕上,一个动画人物探出一步,试图行走。但是它立即摔倒在地,无助地乱踢。过了一会儿,它又出现在屏幕的左侧,像婴儿般蹒跚了几步,又摔倒了。再次回到屏幕中之后,它抬起膝盖,自信地向前走了六七步,随即再次倒下……它一次又一次地尝试着,最后终于可以像真人那样行走了。
这个短片并不会赢得奥斯卡最佳动画片奖,但制造这一效果的计算机软件却堪称编程史上的奇迹,因为这个动画人物是自己学会行走的。这项智能技术归功于某些聪明的程序,这些程序模仿了自然界中筛选成功基因实现进化的过程。
“进化”就是随机应变
科学家把这种编程称为“基因算法”:给定问题,先随机找出一些潜在的解决方案并进行优选,再将这批成功者的“基因”伴随着一些少量“变异”传给它们的下一代。这个过程不断重复,直到演化出问题的可行解决方案。
基因算法最早是由美国密歇根大学的约翰?霍兰在20世纪60年代提出来的。现在它越来越多地被运用到实际生产中,例如设计制冷效率更高的冰箱。
基因算法使计算机可以做一些看起来很复杂的事情,例如思考。那个学走路的动画人就提供了一个计算机不依靠人类指导而自己做决定的范例。所以,最快从这项技术中受大益的,将是大众娱乐业。好莱坞的大片和动作游戏中充满了计算机制造的跑跳效果。为了使它们更逼真,必须让它们自己学会行走。
可在不久前,制片商们要做到这点,还不得不逐步设计每条胳臂怎么动,或者将真人动作的三维图像套用到虚拟动画人身上。这需要经过海量的计算工作,而且更糟糕的是,这种方法不具有灵活的变通性。如果动画师先设计一个动画人从山上走下来,随后他又改了主意,要让动画人跳过一块岩石,他就必须从头再把动作设计一遍。
“进化”能够节省脑力
托尔斯滕?赖尔原是英国牛津大学的一个研究者,后来改行做了动画。他决定借鉴自然界中进化的力量来解决这个问题,从而制造出一种更逼真的数码动画人。他解释道:“我们先制造出一个人物框架,它有重量,有关节。然后,我们给它加上虚拟肌肉和控制这些肌肉的神经网络。问题是,你如何使这些网络能按照你要求的那样工作?如果你只是随机地建立起网络,它将向肌肉传达复杂的信号,这通常无法使动画人行走,它只是胡乱地抽搐。”在这种情况下,“肌肉”可以动,它们也能和“神经中枢系统”相连,但是动画人还不知道如何行走。
一个动画人的身体要能像真人一样自然行走,需要优化的参数有700多个。赖尔说:“一旦你仔细观看一下这种动画系统,你就知道你根本就无法靠人类的脑力解决这个问题,因为它们太复杂了。所以,我们需要利用进化的力量。”
“进化”20代学会行走
赖尔和他的小组创建了一个基因算法,以探索能否对动画角色控制系统进行精确调控。基因算法的元素相对来说比较简单。它包括一些含有不同“基因”的“有机体”;决定这些基因组合以及变化的法则;适应功能,也就是评价出各代有机体中哪些是最优秀的――在动画中,该功能的评价标准为“从原点出发行走而不倒下的距离”。
赖尔利用这个算法创造了100个动画角色,每一个都由随机组合的神经中枢控制肌肉。随即让它们尝试着行走。正如所料,第一代无法实现行走功能。但是有几个表现得稍微要好一些,毕竟在摔倒前迈出了一步。根据适应功能的标准,它们在第一轮中成了优胜者。基因算法软件按照它们的神经中枢复制了20份,并对其进行了少许变异,又加上了80个新的随机参加者,进行下一代行走实验。
“进化”需要少数变通
像有机生命一样,基因算法也分有性和无性两种。有些算法和生存下来的算法“交配”,重新组合了基因。有些只是克隆成功的方案并接受突变的结果。
应用基因算法不可避免地要带来奇迹。赖尔的动画人很快就提高了自己的行走能力从而避免摔倒。但是,它们并不总能走得很好。有些根本不走而是向前翻筋斗或者是爬行。这些角色只是在机械执行游戏规则,所以赖尔不得不更改游戏规则:“我们只得加进少数一些变通――成功不只是根据行走距离的多少来判断,而是根据动画人的重心轨迹不低于某个点的情况下所经过的距离来判断。”
最终,赖尔只用了20代动画人,也就是几分钟的计算时间就完成了优化过程。小组做出了录像片,显示出了几代演进的过程:从第一代的不会行走到第二十代的成功大踏步行进。
自我进化的动画人只是众多基因算法的一个例子。看着记录其进化历程的录像,人们不由得联想到,这个虚拟的进化过程和百万年前我们的祖先在非洲草原上学会行走的过程是多么相像。那些动画人物可以行走,并不是哪个高人把它们装配出来,而是进化过程使它们能自己建立和选择出合适的运动和肌肉控制模式。
“进化”算法风光无限
赖尔的动画基因算法并没有使计算机有自我意识,但这种算法的确使计算机更有创造性了,它能够让动画人超越人类工程师的有意控制,大踏步地自我改进。现在,赖尔设计的动画基因算法已经被纳入一个叫作“Endorphin”的动画设计软件中。
将基因算法技术运用于实际的不止是赖尔和他的小组。在美国加州一个名为“创意”的发明实验室,比尔?格罗斯和他的发明小组也正在利用基因算法研制太阳能设备。格罗斯相信,遗传算法可以引发工程设计上的一场革命,未来不再只是应用某一软件作为表达设计思想的辅助工具,而是基因算法将能够独立掌管设计。
人们只需要定义出有机体、基因和适应功能,剩下的就是让软件去完成那一系列的艰苦运算。比如,要做一个桌子,你不用画出桌子,你只需给出你的条件:多高,多宽,边缘应当怎样等等,然后你把这些告诉那种设计软件,它就能以最低的成本给出最好的答案。这才是工程设计的理想状态!更多精彩文章及讨论,请光临枫下论坛 rolia.net
Sign in and Reply Report