我的研究心得

身体的智能:6进化:从零开始的认知




身体的智能:6进化:从零开始的认知


20世纪60年代,德国柏林工业大学的Ingo Rechenberg开始构想,也许能利用进化的力量来解决困难的工程问题。如何最优化地设计管道以使得流经管道的流量最大是一个复杂的问题。图6.1显示了其基本思想。液体从左边垂直管道流人系统,并且被转向流入顶部水平管道中。Rechenberg自己也在思考连接管的最优形状究竟是什么样,这里最优指的是流过管道的液体流量最大,本质上等同于将液体的扰动减小到最小。历代的工程师们甚至从没有考虑过这个问题,因为答案似乎很明显,应该是1/4圆周的圆管。Rechenberg的实验结果令他大为惊奇,所得到的管道的最优形状带有一个奇特的圆形隆起(或称驼峰,如果你喜欢这么称呼),


a


北造


b


6.1人工进化的创造性产物。两个人工进化的发明


aRechenberg驼峰状燃料管问题――连接液体流人的垂直管与液体流出的水平管的连接管的最优形状究竟是什么?Rechenberg设计了一种机构,通过该机构,连接管的形状可以在程序控制下任意改变。与1/4圆周的管子相比,人工进化得到的外形奇特的驼峰状管子更能减少液体扰动;


b)应用在美国字航局ST-5卫星上的天线。天线的形状由遗传算法进化得到。该算法是由在加州的美国宇航局埃姆斯研究中心的Jason Lohn及其同事们设计的


①Rechenberg的主要工作以德语发表;对进化计算的历史详情,包括Rechenberg所做的贡献有兴趣的读者,可参照Fogel1998


如图6.1a)所示。这一形状由一种进化算法自动生成;插注6.1中给出了这些算法的一个概述。事实上,当你就此问题做适当物理研究,你就能证实圆形隆起状的管道确实是最好的。我们在无意中给这个问题加上了一个虚拟的正方形边界条件,垂直和水平的管道构成了这个虚拟正方形的两边,而一个1/4圆周正符合这个边界条件。还记得你孩童时期的那个难题,从一个点开始,只用3条直线连接正方形的4个角,然后回到同一个点?问题的答案难以找到,因为我们在无意中,将思维限制在正方形的内部。尽管流量更大一些,我们今天却不使用这种改进型的圆形隆起状管道,其原因在于流量并不是唯一的要求―1/4圆周状的连接管比圆形隆起状的连接管的制造更廉价,并且占用更少的空间。


自从Rechenberg革命性的实验后,利用人工进化的思想在全世界的工程和计算机科学部门中传播开来,进化算法在包括从飞机机翼到计算机程序设计,再到诗歌创作等各种领域中得到了广泛的应用,像野火般迅速传播。除了设计机械装置、软件和艺术品外,在过去数年内,研究人员已开始将这种算法用于虚拟及实体机器人的设计,其中一些展现出了复杂的行为。


本章中,我们将首先着眼于揭示将人工进化应用于智能研究的某些可能动机。


接着,我们将给出该研究领域的历史背景,简要描述进化算法是如何运作的以及算法在真实世界中的一些应用。我们还会介绍进化机器人学,探讨如何最好地对具身化系统进行进化。更具体地说,我们将讨论为什么对于一个具身化系统,全面(即形态、材料、神经控制)进行非常重要,并且讨论如何进化。我们将关注基因调控网络模型,这是一个将自组织方法用于进化设计从而增加人工进化创造力的强大工具集。接着,同第5章一样,我们将审视这项技术的现状及该领域的发展。我们还将总结本章的主要观点并给出一系列设计原理。


6.1人工进化


人工进化从生物进化中获得了灵感。但是,正如人工神经网络的情形(见插注5.1),如果我们想将进化用于设计,我们就不得不进行高度的抽象。在现存大量有关进化算法的文献中,各种进化算法差异巨大,但是它们都可用图6.2中的简单循环来描述。学术界使用了许多生物学术语,如基因型、表现型、选择、变异等。尽管从生物学的角度,这些也许不总是合理的(因为生物世界要复杂得多),但是就算法本身而言,这些术语精确地表达了相关含义。


首先,你必须将你的设计问题编码成一条人工基因组。在Rechenberg的管道问题中,所有控制管道弯曲程度的拉杆位置均被编码;在一个控制机器人的神经网络中,所有连接的权重被编码。这些数值的集合叫做基因型。算法按照如下步骤进行循环:


1.产生初始种群。从一个随机选取的初始基因型种群开始(如由神经网络所有连接权重的序列作为个体所组成的种群)。


2.发育。通过一系列发育过程,将基因型转化成表现型(如将基因组中的数值指定


【为神经网络中突触的权重,并将这个网络嵌入到一个机器人中)。


3.选择。选择那些执行任务中表现最好的表现型来生成一个新的种群(如那些嵌入了神经网络,移动最远,没有撞到任何障碍物的机器人);丢弃其余的个体。表现最好是通过一个适应度函数来定义,例如,该函数可以是机器人所移动的距离减去碰撞次数。


4.繁殖。进行复制,接着修改所选中个体的基因型,产生一个新的种群。这里主要是通过变异和交叉方法(如基因组中某个突触的权重在编码时被改变了少许(变异),或者选择两个双亲以产生两个新的个体,各自分别继承了两个双亲的部分信息(交叉))。


大多数通过上述方法产生的基因型转换成表现型后,将表现得更糟糕,但有些会比它们的双亲表现得更好。


5.从第2步开始,重复循环。


令人惊讶的是,只要你等得足够久,总能找到一个好的解决方案。


大多数进化算法遵循着上述方法。可以从几个层面来对不同算法进行分类――信息是如何在基因组中被编码的;发育过程、选择和繁殖是如何进行的等。下面让我们对全过程做一个简略回顾。


就基因组编码而言,经典遗传算法(Holland1992)的基因型通常采用离散编码(如一连串的二进制或整型数,或者离散字母),然而在进化策略(Rechenberg1994)中为实数。


|对于遗传规划(genetic programming)(Banzhaf等,1998),基因型是用树状结构来描述一段计算机程序(不能用一个字符串来表示,因为如果只要有一位不正确,整个程序就不能运行,并且得到一个为零的适应度,这将对进化过程毫无贡献)。


发育过程经常被省略,所以可将表现型等同于基因型,并且可以直接对基因型进行选择操作。例如,在我想它像一只融鼠me thinks
it is like a weasel
)问题中,我们可以将一个给定句子与目标句的接近程度作为适应度函数,其可由计算处于正确位置的字母数量得到。对用于机器人的神经网络,还存在一个次级的发育过程一将带基因编码的神经网络嵌入到机器人中。在这种情况下,表现型将明显区别于基因型――对神经网络本身进行适应度测试是没有意义的;它必须被嵌入到机器人中。但是在几乎所有的进化算法中,发育过程中都没有和环境交互,基因组编码的权重被直接应用于机器人上。直到最近,学术界才开始在进行适应度测试前,考虑一个不断成长的生物体与其环境的交互作用。


至于选择,已经提出了许多方案,并且它们在进化过程中的效果得到了充分研究。


一个流行方法即所谓的轮盘赌,每个个体可被选择进行繁殖的概率与其适应度成正比。为了保持种群的多样性,不仅要选择最好的个体,选择适应度差一点的个体也是很重要的。


典型的繁殖是通过变异和交叉来实现的。这些过程带来许多变数,其对进化过程的影响已经得到充分研究。在经典遗传算法中,基因组的长度在繁殖期间不发生改变,但是在进化期间,如果我们对增加基因组复杂度感兴趣,基因组应该有增加(或许缩小)其长度的潜力。这个想法一直是遗传规划的一个特点,它也开始在一般的进化计算中得到


|研究(如Poli2001Bongard2003)。


人工进化能用于几乎任何类型的工程问题。在进化机器人学中,使用进化来设计机器人的某些部分,通常机器人本体被给定,用进化得到其神经网络的权重。但是我们对具身性智能体特别感兴趣;即我们想对整个智能体进行进化,而不仅仅是其神经控制器。方法之一就是在基因组中将机器人的形态编码成一个参数集(例如,躯体零件的形状、连接关节的类型),随后的进化将其作为变量进行修改。这一方法的问题是,对于一个由许多部分组成的复杂创造物,基因组会变得太长。另一种方法是将发育过程插入到进化循环中,如图6.2所示。


b


编码


二进制数


基因型整数


字母/符号


实数



无(表现型=基因型)


不与环境交互



与环境交互


表现型


・“轮盘赌


变异与交义….・精英主义


排序选择


竞争式


截断


稳态


繁殖


新种群】|・变异


|・交叉


6.2人工进化概况图。人工进化这一领域的大量文献可被浓缩至这一基本框图(a)主要构成部分。通过一系列发育过程,基因型被转换成表现型。在生态位中,通过优胜劣汰,选择表现更优异的表现型进行繁殖,得到新的基因型;(b)进化算法的分类尺度对基于发育的人工进化,人们已经提出了两个主要方法。第一个是参数化的,正如刚才所解释的,其所定义的片段或者模块可以在生物体构造时重复使用(如Sims1994a


LLipsonPollack2000)。另一个方法采用基因调控网络对发育过程进行建模(Eggen-


berger1999Bongard2002)。在后者的基因组中,不是对机器人的结构参数,而是对基|


因调控网络的参数进行编码。进化的目标是找到这些参数的最优值以引导智能体的成长。


简言之,一个人工基因调控网络是若干虚拟基因构成的一个集合,包含在人工基因组中,相互影响彼此的行为。基因调控网络中,转录因子是重要的组成部分。这些化学物质具有两种效果,它们能导通与关闭其他基因,在导通时,它们能产生自己的转录因子;或者能影响创造物的生长,如造成一个躯体分裂成两个,在创造物躯干某处生长感知器官,或者一个神经元产生一个新的突触连接。一条基因组由多个基因组成,例如,通常一条基因组中有100个基因,每个基因又由一些数字组成。这些数字表示了调控它的转录因子、导通时产生的转录因子及导通所必需的转录因子的浓度。使用基因调控网络来进行进化的虚拟生物的例子如Bongard的推块者和Eggenberger的形态结构。发育过程中,在与环境的交互上,基因调控网络和其他发育模型相比更容易建模,它包含一种简单的机制,能将物理作用(如撞击某个物体)转化到转录因子中。换句话说,在躯体与物体接触处产生转录因子,并且扩散到智能体内部。通过这种方法,环境能影响基因的活动,进而影响生长。







 





ETC注销ETC充值ETC客服ETC扣费查询


ETC发行合作