《机器学习-遗传算法.ppt》由会员分享,可在线阅读,更多相关《机器学习-遗传算法.ppt(34页珍藏版)》请在三一办公上搜索。
1、机器学习-遗传算法 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏,1,机器学习,第9章 遗传算法,机器学习-遗传算法 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏,2,概述,遗传算法是一种大致基于模拟进化的学习方法假设通常被描述为二进制位串,也可以是符号表达式或计算机程序搜索合适的假设从若干初始假设的群体或集合开始当前群体的成员通过模拟生物进化的方式来产生下一代群体,比如随机变异和交叉每一步,根据给定的适应度评估当前群体中的假设,而后使用概率方法选出适应度最高的假设作为产生下一代的种子遗传算法已被成功用于多种学习任务和最优化问题中,比如学习机器人控制的规则集和优化人工神经网络的
2、拓扑结构和学习参数本章主要介绍了基于位串描述假设的遗传算法和基于计算机程序描述假设的遗传编程,机器学习-遗传算法 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏,3,动机,遗传算法(GA)是一种受生物进化启发的学习方法,它不再是从一般到特殊或从简单到复杂地搜索假设,而是通过变异和重组当前已知的最好假设来生成后续的假设每一步,更新被称为当前群体的一组假设,方法是使用当前适应度最高的假设的后代替代群体的某个部分这个过程形成了假设的生成测试的柱状搜索,其中若干个最佳当前假设的变体最有可能在下一步被考虑,机器学习-遗传算法 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏,4,动机(2),遗
3、传算法的普及和发展得益于下面的因素在生物系统中,进化被认为是一种成功的自适应方法,具有很好的健壮性遗传算法搜索的假设空间中,假设的各个部分相互作用,每一部分对总的假设适应度的影响难以建模遗传算法易于并行化本章内容安排描述了遗传算法,举例演示了它的用法,分析了它搜索的空间的特性描述了遗传算法的一个变体:遗传编程,这个方法中,整个计算机程序向着某个适应度准则进化介绍了一些有关生物进化的课题(遗传算法和遗传编程是进化计算领域中的两种普遍方法),比如鲍德温效应,它描述了个体的学习能力与整个群体进化速度之间的相互作用,机器学习-遗传算法 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏,5,遗传算法
4、,遗传算法研究的问题是搜索候选假设空间并确定最佳假设最佳假设被定义为使适应度最优的假设适应度是为当前问题预先定义的数字度量,比如:如果学习任务是在给定一个未知函数的输入输出训练样例后逼近这个函数,适应度可被定义为假设在训练数据上的精度如果是学习下国际象棋的策略,适应度可被定义为该个体在当前群体中与其他个体对弈的获胜率,机器学习-遗传算法 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏,6,遗传算法(2),遗传算法具有以下的共同结构:算法迭代更新一个假设池,这个假设池称为群体在每一次迭代中,根据适应度评估群体中的所有成员,然后用概率方法选取适应度最高的个体产生新一代群体在被选中的个体中,一
5、部分保持原样地进入下一代群体,其他被用作产生后代个体的基础,其中应用交叉和变异这样的遗传方法,机器学习-遗传算法 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏,7,表9-1 遗传算法原型,GA(Fitness,Fitness_threshold,p,r,m)Fitness:适应度评分函数Fitness_threshold:指定终止判据的阈值p:群体中包含的假设数量r:每一步中通过交叉取代群体成员的比例m:变异率初始化群体:P随机产生的p个假设评估:对于P中每个假设h,计算Fitness(h)当,应用交叉算子产生两个后代,把所有的后代加入PS变异:使用均匀的概率从PS中选择m%的成员,应
6、用变异算子更新:PPS评估:对于P中每个h计算Fitness(h)从P中返回适应度最高的假设,机器学习-遗传算法 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏,8,遗传算法(3),算法的每一次迭代以3种方式产生新一代群体直接从当前群体中选择在选中的个体中进行交叉操作在新群体上进行变异操作遗传算法执行一种随机的、并行柱状的搜索,根据适应度函数发现好的假设,机器学习-遗传算法 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏,9,表示假设,遗传算法中的假设常常被表示成二进制位串,这便于用变异和交叉遗传算子来操作把if-then规则编码成位串首先使用位串描述单个属性的值约束比如考虑属性O
7、utlook,它的值可以取以下3个中的任一个:Sunny、Overcast、Rain,因此一个明显的方法是使用一个长度为3的位串,每位对应一个可能值,若某位为1,表示这个属性可以取对应的值多个属性约束的合取可以很容易地表示为对应位串的连接整个规则表示可以通过把描述规则前件和后件的位串连接起来,机器学习-遗传算法 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏,10,表示假设(2),位串的特点表示规则的位串对假设空间中的每个属性有一个子串,即使该属性不被规则的前件约束。得到一个固定长度的规则位串表示,其中特定位置的子串描述对应特定属性的约束规则集的表示:单个规则的位串表示连接起来有必要让每
8、个句法合法的位串表示一个有意义的假设假设也可以用符号描述来表示,而不是位串,比如计算机程序,机器学习-遗传算法 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏,11,遗传算子,遗传算法使用一系列算子来决定后代,算子对当前群体中选定的成员进行重组表9-1列出了用来操作位串的典型遗传算法算子,它们是生物进化中的遗传过程的理想化形式最常见的算子是交叉和变异交叉:从两个双亲串中通过复制选定位产生两个新的后代,每个后代的第i位是从它的某个双亲的第i位复制来的双亲中的哪一个在第i位起作用,由另一个称为交叉掩码的位串决定:单点交叉:前n位来自第一个双亲,余下的位来自第二个双亲两点交叉:用一个双亲的中间
9、片断替换第二个双亲的中间片断均匀交叉:合并了从两个双亲以均匀概率抽取的位,机器学习-遗传算法 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏,12,遗传算子(2),变异:从单一双亲产生后代,对位串产生随机的小变化,方法是选取一个位,然后取反变异经常是在应用交叉之后其他算子使规则特化的算子直接泛化,机器学习-遗传算法 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏,13,适应度函数和假设选择,适应度函数定义了候选假设的排序准则如果学习任务是分类的规则,那么适应度函数中会有一项用来评价每个规则对训练样例集合的分类精度,也可包含其他的准则,比如规则的复杂度和一般性选择假设的概率计算方法适
10、应度比例选择(或称轮盘赌选择),选择某假设的概率是通过这个假设的适应度与当前群体中其他成员的适应度的比值得到的锦标赛选择,先从当前群体中随机选取两个假设,再按照事先定义的概率p选择适应度较高的假设,按照概率1-p选择适应度较低的假设排序选择,当前群体中的假设按适应度排序,某假设的概率与它在排序列表中的位置成比例,而不是与适应度成比例,机器学习-遗传算法 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏,14,举例,遗传算法可以被看作是通用的最优化方法,它搜索一个巨大的候选假设空间,根据适应度函数查找表现最好的假设遗传算法尽管不能保证发现最优的假设,但一般能够发现具有较高适应度的假设遗传算法
11、的广泛应用电路布线任务调度函数逼近选取人工神经网络的拓扑结构,机器学习-遗传算法 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏,15,Gabil系统,Dejong et al.1993的Gabil系统:遗传算法在概念学习方面的应用学习以命题规则的析取集合表示的布尔概念在对几个概念学习问题的实验中发现,在泛化精度方面Gabil与其他学习算法大体相当Gabil使用的算法就是表9-1描述的典型算法,机器学习-遗传算法 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏,16,Gabil系统(2),Gabil的具体实现表示:每个假设对应一个命题规则的析取集,按照9.2.1节描述的方法编码遗传
12、算子:变异:使用表9-2中的标准变异算子交叉:表9-2中的两点交叉算子的一个扩展,这种方法保证了产生的位串表示的规则集是良定义的适应度函数:每个规则集的适应度是根据它在训练数据上的分类精度计算的,Fitness(h)=(correct(h)2,机器学习-遗传算法 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏,17,Gabil系统的扩展,增加两个新算子AddAlternative,它泛化对某个特定属性的约束,方法是把这个属性对应的子串中的一个0改为1,使用概率为0.01DropCondition,把一个特定属性的所有位都替换为1,使用概率为0.60两种使用新算子的方法对每一代群体中的每个
13、假设以同样的概率应用对假设的位串进行扩展,使其包含另外两位以决定是否可以对该假设应用这两个新算子,机器学习-遗传算法 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏,18,假设空间搜索,遗传算法采用一种随机化的柱状搜索来寻找最大适应度的假设,与前面章节的搜索算法有很大不同梯度下降搜索从一个假设平滑移动到另一个非常相似的假设遗传算法的移动可能非常突然,使用和双亲根本不同的后代替换双亲假设遗传算法的搜索不太可能像梯度下降方法那样陷入局部最小值的问题遗传算法应用中的一个难题:拥挤问题拥挤:群体中某个体适应度大大高于其他个体,因此它迅速繁殖,以至于此个体和与它相似的个体占据了群体的绝大部分拥挤降
14、低了群体的多样性,从而减慢了进化的进程,机器学习-遗传算法 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏,19,假设空间搜索(2),降低拥挤的策略使用锦标赛选择或排序选择,而不用适应度比例轮盘赌选择适应度共享,根据群体中与某个体相似的个体数量,减小该个体的适应度对可重组生成后代的个体种类进行限制,比如受到生物进化的启示通过只允许最相似的个体重组,可以在群体中促成相似的个体聚类,形成亚种按空间分布个体,只允许相邻的个体重组,机器学习-遗传算法 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏,20,群体进化和模式理论,模式理论(Holland1975)提供了一种用数学方法刻画遗传算法
15、中群体进化的过程模式是由若干0、1和*组成的任意串,*表示任意符号模式理论根据每个模式的实例数量来刻画遗传算法中群体的进化令m(s,t)表示群体中的模式s在时间t的实例数量模式理论根据m(s,t)和模式、群体及其他属性来描述m(s,t+1)的期望值,机器学习-遗传算法 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏,21,群体进化和模式理论(2),遗传算法中群体的进化依赖于几个步骤,即选择、重组和变异。符号表示:f(h)表示位串个体h的适应度n为群体中个体的总数量 表示在时间t群体中所有个体的平均适应度 表示在时间t群体中模式s的实例的平均适应度 表示个体h既是模式s的一个代表,又是时间
16、t群体的一个成员,机器学习-遗传算法 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏,22,群体进化和模式理论(3),E(m(s,t+1)的推导,仅考虑选择的情况式子9.3表明,在t+1代中,模式s的实例期望数量与这个模式的实例在时间t内的平均适应度成正比,与群体的所有成员的平均适应度成反比,适应度高的模式的影响力会随着时间增加,机器学习-遗传算法 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏,23,群体进化和模式理论(4),同时考虑交叉和变异,仅考虑单点交叉和可能造成的负面影响最左一项描述了选择步的影响,中间一项描述了单点交叉算子的影响,最后一项描述了代表模式s的任意个体在应用
17、了变异算子后还代表s的概率模式理论不完备的是:无法考虑交叉和变异的正面影响其他一些新的理论分析:基于马尔可夫链模型和统计力学模型,机器学习-遗传算法 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏,24,遗传编程,遗传编程是进化计算的一种形式,其中进化群体中的个体是计算机程序而不是位串遗传编程中的程序一般被表示为程序的解析树,每个函数调用被表示为树的一个节点,函数的参数通过它的子节点给出遗传编程算法维护多个个体组成的群体,在每一步迭代中,它使用选择、交叉、变异产生新一代个体群体中某个体程序的适应度一般通过在训练数据上执行这个程序来决定交叉操作:在一个双亲程序中随机选择一个子树,然后用另一
18、个双亲的子树替代这个子树,机器学习-遗传算法 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏,25,遗传编程举例,学习堆砌图9-3所示的子块的算法(Koza1992)开发一个通用的算法来把字块堆叠成单个栈,拼出单词,无论这些字块初始的结构如何可执行的动作是每次只允许移动一个字块,栈中最上面的字块可以被移到桌面上,或者桌面上的字块移到栈顶原子函数包含3个端点参数CS,当前栈,即栈顶字块的名字,栈空时为FTB,最上面的正确字块,即该字块和它以下的字块均为正确顺序的字块NN,下一个所需字块,即为了拼成单词“universal”,栈内紧邻TB之上的所需字块的名字,当不再需要时为F,机器学习-遗传
19、算法 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏,26,遗传编程举例(2),原子函数MS x:移动到栈,如果字块x在桌面上,把x移动到栈顶,并且返回T;否则什么也不做,返回FMT x:移动到桌面,如果字块x是在栈中某个位置,把栈顶的字块移动到桌面,并且返回T;否则返回FEQ x y:如果x等于y,返回T;否则FNOT x:如果x=F,返回T;否则FDU x y:反复执行表达式x直到表达式y返回TKoza提供了166个训练问题,表示不同的初始字块结构,任意给定程序的适应度就是它解决的训练问题的数量群体被初始化为300个随机程序的集合,经过10代后,系统发现了下面的程序解决所有的166个
20、问题(EQ(DU(MT CS)(NOT CS)(DU(MS NN)(NOT NN),机器学习-遗传算法 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏,27,遗传编程说明,遗传编程把遗传算法扩展到对完整的计算机程序的进化尽管遗传算法要搜索巨大的假设空间,但已经证实相当数量的应用中遗传编程产生了很好的结果遗传编程在更复杂的任务中的应用电子滤波电路的设计蛋白质分子片断的分析在大多数情况下,表示方法的选择和适应度函数的选择对遗传编程的性能是至关重要的,一个活跃的研究领域是自动发现和合并子程序,改善最初的原子函数集合,从而允许系统动态地改变用以构建个体的原子,机器学习-遗传算法 作者:Mitch
21、ell 译者:曾华军等 讲者:陶晓鹏,28,进化和学习模型,有关进化系统的一个有趣问题:单一个体生命期间的学习与整个物种较长时期内由进化促成的学习,它们的关系是什么?拉马克进化拉马克在19世纪末提出,多代的进化直接受到个别生物体在它们生命期间的经验的影响目前的科学证据不支持拉马克模型但近来的计算机研究表明,拉马克过程有时可以提高计算机遗传算法的效率,机器学习-遗传算法 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏,29,进化和学习模型(2),鲍德温效应通过个体学习改变进化进程的机制基于以下现象如果一个物种在一个变化的环境中进化,那么进化的压力会支持有学习能力的个体,这种学习能力可以使个
22、体在其生命期间执行一种小的局部搜索,以最大化它的适应度,相反,不学习的个体的适应度完全取决于它的遗传结构,会处于相对劣势具备学习能力的个体可以通过学习克服遗传代码中的“丢失的”或“并非最优的”特性,从而支持更加多样化的基因池,然后促进适应性更加快速地进化提供了一种间接的机制,使个体的学习可以正面影响进化速度,机器学习-遗传算法 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏,30,进化和学习模型(3),人们一直努力开发研究鲍德温效应的计算模型Hinton&Nowlan1987对一个简单神经网络的群体进行试验在一个网络个体的“生命期”间,它的一些权值是固定的,而其他权是可被训练的在群体进化
23、初期的各代中,具有很多可训练权值的个体占据较大的比例随着进化的进行,群体向着遗传给定权值和较少依赖个体学习权值的方向进化,正确的固定权值的数量趋于增长,机器学习-遗传算法 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏,31,并行遗传算法,遗传算法很自然地适合并行实现粗粒度并行方法把群体细分成相对独立的个体群,称为类属,然后为每个类属分配一个不同的计算节点,在每个节点进行标准的GA搜索类属之间的通信和交叉发生的频率与类属内相比较低,类属之间的交换通过迁移来进行,也就是某些个体从一个类属复制或交换到其他类属这个过程模拟了以下的生物进化方式,即自然界中异体受精可能发生在分离的物种子群体之间这
24、种方法的一个好处是减少了非并行GA经常碰到的拥挤问题细粒度并行方法给每个个体分配一个处理器,然后相邻的个体间发生重组,机器学习-遗传算法 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏,32,小结,遗传算法用一种随机化的并行爬山搜索来发现使预先定义的适应度函数最优的假设遗传算法基于对生物进化的模拟,维护一个由竞争假设组成的多样化群体,在每一次迭代中,选出群体中适应度最高的成员来产生后代,替代群体中适应度最差的成员遗传算法阐明了如何把学习过程看成最优化过程的一个特例,学习任务就是根据预先定义的适应度函数发现最优假设遗传编程是遗传算法的变体,在遗传编程中,被操作的假设是计算机程序而不是位串,
25、机器学习-遗传算法 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏,33,补充读物,在计算机科学发展的早期,人们就开始探索基于进化的计算方法(Box1957、Bledsoe1964)Rechenberg1965,1973、Schwefel1975,1977,1995开发的进化策略用来优化工程设计中的数字参数Folgel&Owens&Walsh1966开发了进化编程,作为进化有限状态机的一种方法Koza1992介绍了遗传编程,把遗传算法的搜索策略应用到由计算机程序组成的假设中K.Dejong和他的学生开发了使用GA学习规则集的方法,每个规则集是竞争假设组成的群体的一个成员Holland和他的学生设定每个规则是群体的一个成员,群体本身是一个规则集,机器学习-遗传算法 作者:Mitchell 译者:曾华军等 讲者:陶晓鹏,34,补充读物(2),Mitchell1996和Goldberg1986给出了有关遗传算法的两本教材Koza1992关于遗传编程的专著是对遗传算法扩展到操作计算机程序的标准参考书会议遗传算法国际会议(主要会议)自适应行为仿真会议人工神经网络和遗传算法国际会议IEEE进化计算国际会议杂志进化计算杂志机器学习,