hbpanpan的个人博客分享 http://blog.sciencenet.cn/u/hbpanpan 内得心源,外师造化。

博文

拾遗之二:基本遗传算法、理想主义及其他

已有 4916 次阅读 2013-6-5 20:11 |系统分类:科研笔记| 复杂系统, 遗传算法, 理想主义

研究生阶段参加数模竞赛写的东西。正是这次参赛的经历,引起了我对复杂系统和复杂性科学的浓厚兴趣,现在读来,仍是警醒,我还在坚持当初的理想吗?

 

蒹葭苍苍,白露为霜.所谓伊人,在水一方.溯洄从之,道阻且长.溯游从之,宛在水中央.
蒹葭凄凄,白露未晞.所谓伊人,在水之湄.溯洄从之,道阻且跻.溯游从之,宛在水中坻.
蒹葭采采,白露未已.所谓伊人,在水之涘.溯洄从之,道阻且右.溯游从之,宛在水中沚.
--题记

   前段时间为参加数模竞赛,稍微研究了一下遗传算法。时间紧迫,只得其大概,离掌握还有相当距离,更不用说精通了。不过在试验程序的过程中倒也发现了一些有意思的话题,后因无故瞎忙,未能记录,今天重新发现,赶紧拾遗。 遗传算法是一个优化算法,可用于求函数的极值。方便之处在于,它对函数的可导性没有要求。这就意味着通常的优化算法不能操作的函数,甚至是没有公式的抽象函数都可用其求极值。还有一个值得注意的特点,它使用了编码和解码技术,即算法操作的对象并非通常意义的数,而是编码。因此可以将非数值型(如符号、汉字等等)的函数编码,算法只对编码进行操作,求得满足预先制定要求(评价函数)的值。 
   其基本思路为模仿生物物种竞争原理。在一个(或多个)种群中,存在相当数量的个体(函数自变量),这些个体是随机分布的。按照一定的规则演化出下一代(选择、交叉、变异、重插入)。在演化过程中,外界可为其预制一个评价函数,比如求最大值,使得函数值越大的个体遗传下来的概率最高。经过若干代之后,这些个体中就会出现这个函数的最大值,这就是我们想要找到的那个体及其所对应的值。 
    基本概念就是这些,求极值是我们的目的。然而,观察这些个体的进化规律,却发现一些很有意思的信息。好玩的马上就来了。 
    首先我仿照例程编写了基本遗传函数,对如图1所示的多极值函数(y=x*sinx)求最大值。 


图1 用来求极值的函数,圆圈处为求得的极值    

图2 历代极值及均值追踪曲线(实线:最大值;虚线:均值)

   从图1看到,函数求得的极值集中在次优值附近,而不是在最大值附近;并且各代种群的最大值始终在次优值附近,而没有在其他地方出现。从图2看到,在演化过程中,各个子代的最大值迅速的收敛到一个极值附近,而整个种群的均值也迅速的上升到该极值附近振荡。 
   很有意思的现象,整个种群迅速变为一个较为优势的个体的后代,但却丧失了进一步进化和提高的空间。比较优秀,但缺乏活力。这种现象叫做遗传算法的早熟,是遗传算法应用过程中经常出现的现象,也是人们努力希望消除的现象。 
   下面两幅图同样是对同一函数求最大值的结果,但是有一些重要的差别。 


图3 用来求极值的函数,圆圈处为求得的极值    

图4 历代极值及均值追踪曲线(实线:最大值;虚线:均值)

   图3中各代最大值的分布不象图1那样集中,在全部曲线的各个部位都出现过,甚至一些最大值仅仅在0附近;大多数最大值都出现在整个函数的最大值处,达到了求函数最大值的目的。图4的各代最大值与平均值追踪曲线则表现出与图2非常不同的风格。首先,随着各代的进化的进行,各代最大值能迅速上升到次优值,之后继续向更高的值进化;其次,各代均值并非集中到极值附近,在进化过程中,群体均值也呈现出波动的特征,其趋势是螺旋型上升。 
   两个程序在同一评价函数作用下表现不同,其中最重要的差别在于,第二个程序的优选策略不同。关键程序语句如下 

[Chrom ObjV]=reins(Chrom, SelCh, 1, 1, ObjV, ObjVSel); %重插入子代的新种群

   该语句作用在于,按照评价函数值的大小,以一定的几率从新的子代中选择一部分插入老种群中,形成新的一代种群。第一个程序则是直接按照评价函数挑选较优的个体组成新一代的种群。问题的关键是,第二个程序保存了种群中的多样性,既让最优的个体优先继承,也不放弃表现中等甚至不好的个体。在下一次交叉和变异过程中,这些表现平平的个体的子代有可能相互发展出更高水平的个体。 
   一些启示: 
   遗传算法的使用是严格的,对应于不同的应用环境需要小心设计各个步骤、选择相应的技术和参数。当把结果外推时,在什么范围中是适用的,需要小心求证。然而,从以上结果中我们仍然可以大胆的假想,得到一些有意义的启示。至于它们是否正确,那就仁者见仁了。 
1、  个体和评价函数 
   上例中的个体从数学意义中来讲,并无特殊之处,仅仅为某定义域范围内的数集,它们均是平等的个体。而评价函数是人为的。我们外加给个体以评价函数,从而在一个给定的评价标准下评估各个数字的优劣高低,并以此决定该个体的生存机会。
对使用遗传算法的人来说,我们关注这些个体在应用领域中的表现,在不同的应用环境中,评价函数不同,则同一个体的表现不同。在此评价函数下表现良好的个体,在另一个评价函数下反而很糟。比如上例,当评价函数从极大值换到极小值或求函数导数的极值时,现在为最大值的个体反而得分最低。 
   而对一个具体应用环境中的个体,并无从感知应用环境。在它自身所处的微观世界中,只有自身趋向于该评价标准,才能获得最大的生存机会。表现在上例中,即被选择以产生下一子代的概率最大。 
   对这个结论外推时,很容易与我们现实生活中的情景联系起来。在我们所处的时代,各种各样的评估体系始终围绕着我们。高考自不必说,每一个中国小孩自打上学伊始就被灌输要为高考而努力。即使我们顺利通过黑色六月,完成大学学业,成为社会新鲜人之后,仍然会发现外语、职称、晋升、出国、奖金、效益、销售额、政绩等等评估如影随形,相伴一生。 
   种种评估体系是我们社会得以正常运转的需要,体现了社会对一个正常社会人的要求。通过这些体系,使得合适的人才各得其所,各尽其能,共同完成各个社会组织的功能,更好的达成既定目标。一个领域的评价体系制定是否合理,即直接影响该体制中的每一个个体,更对这个组织乃至社会的发展具有重要作用。好的评价机制可以激发个体的活力,使社会更加发展和进步。不好的评价机制则会抑制个体的创新和进取,不利于个体工作能力的提高,甚至阻碍社会的进步和发展。作为非明文规定而在实际生活中大行其道的潜规则,也事实上起着一定的评价机制的作用。 
   对于规则制定者的决策层来说,如何制定出好的评价机制,改进、废除不好的评价机制,是事关公民幸福和国家发展的重要问题。 
   作为社会人个体,我们与数字最大的不同,一是主观能动性,二是多元化。主动即选择,我们拥有选择的自由。多元是指每一个人都有多方面的特质,有长处短处,优点缺点,而不是一个单一的数集。一方面,我们能够认识自我,认识社会,从而选择适合自己特点的评价体系。即通过自己的工作,满足评价体系的要求,既使自身获得发展和收益,同时自己的工作也使组织和社会获得发展和收益。此为做好的事情,即做适合自己,且能获得成就的事情。另一方面,当我们选择的余地有限,甚至不能选择评价体系的时候,就调整自己多元的一面,努力适应这个体系的要求,使自己生存下去,而不要坐以待毙。此为把事情做好。记住,总有一天,我们可以用自己的努力去改进不合理的规则,使其更符合个人和社会的发展规律。而这本身,也是社会进步的规律。因此,对个人来讲,结论就是:尽量做好的事情;不能做好的事情的时候,就把事情做好。 
2、  评价函数与理想主义 
   起初看到图2和图4两幅图象的对比时,我突然就有灵光一闪的感觉,似乎困扰着我很久的一个问题就要解决了。那就是理想主义的作用。 
其实作为评价函数,往往是一个极端的情况。极少数人能考试考满分,而他们也不能每次考试都考满分。真正完全满足评价函数的个体是及其少数的。对很多函数而言,能达到最大值的个体往往只有精确的一个,其他个体可以趋近最大值,却永远达不到。这不正象理想主义的特征吗?一个远方的灯塔,指引着方向,却永远到达不了理想的彼岸。图2的追踪曲线停留在次优值附近,而图4的追踪曲线则一直趋近于理想的最大值,而估计到进化结束时,它也到不了――根据概率论原理,在有限次试验中,数值精确落到连续曲线上某给定点的概率为零。 
   一个永远也到不了的地方,一个永远也实现不了的梦想,那还要理想主义何用? 
   蒹葭苍苍,白露为霜;所谓伊人,在水一方;溯洄从之,道阻且长;溯流从之,宛在水中央。 
   美是人类永远的追求,《蒹葭》一诗充分反映了人类对真、善、美的追求,可为之魂牵梦萦,衣带渐宽乃至舍身取义。这种求而不可得,却又矢志不渝的文学意象,本身就是美的。任何人读到这句话,都能触动内心深处的情愫,宁静、肃然而又欣喜。 
   尊敬的读者,请允许我打断一下,虽然是外推,允许一定的想象,但基于全文的基调,我还是要将您拉回现实。我想要传递给你的信息是:理想主义不仅是美的,并且还是用的。 
   理想主义对一个社会而言,相当于评价函数的作用。理想主义的评价作用通过激励作用和规范作用而得到实现。在理想主义的激励下,大量的社会个体以其为标准,提升自我的水平,从而使整个社会在某方面的水平提升,实现社会的进步。利益的驱动是个人和社会发展的动力,而理想主义起到更高的规范作用,这种规范作用来源于人类发展的历史、生理结构和社会结构。历史的经验教给人们,哪些思想和行为是对人类发展有益的,从而固化在人类社会的道德标准和行为规范中。规范存之于人的内心,即为良心;规范化为外在压力,即为道德、法律及公共舆论。这是一种微弱的,但却又无比强大和坚韧的作用。微弱在于对个体的作用力度,不会使人肉体消亡;强大在于其作用面广泛,社会成员无一不被囊括;坚韧在于时间跨度,无论社会如何变革,理想主义始终存在。 
   第二个要点是,理想主义不是全部。理性主义根源于人类的行为,为一个标准而忽视人类行为的其他方面,则是理想主义易导致的误区。人是神性、人性和兽性的统一体,因此决不能求全责备,甚至以偏概全。比如图2的现象,从部分表现上与上世纪中国的经历相合。在极高的政治与道德标准的要求下,强调每个人的个人道德素质,评价机制单一而严格。最后的结果是,个体素质较高,但整个群体如一个模子倒出来的,缺乏活力,丧失了进步的原动力。而图4的结果说明,一方面对符合要求的个体予以奖励,扩大其规模,另一方面保证其余个体的生存权力。这样可使整个社会不断产生最优秀的个体,也使得社会群体的平均水平随时间以振荡式上升。这意味着,在一段时间内,在某一个方面的评分上,整个社会的均值出现下降,而从最优秀的个体和整个社会的发展来看,整体表现出充满活力和向上的态势。 
   启示1分析较为严格,可信度较高。启示2则更多是个人的感悟,缺乏实证,读者们姑且看之。您若有心得,吾心甚慰。若有不同意之处,作者本人相当支持,还请据理反驳。 

 



https://blog.sciencenet.cn/blog-63496-696887.html

上一篇:戒骄戒躁,踏实奋进!
下一篇:拾遗之三:如果工业革命是从中国开始
收藏 IP: 112.90.151.*| 热度|

4 袁贤讯 方锦清 李本先 强涛

该博文允许注册用户评论 请点击登录 评论 (4 个评论)

数据加载中...

Archiver|手机版|科学网 ( 京ICP备07017567号-12 )

GMT+8, 2024-4-25 16:18

Powered by ScienceNet.cn

Copyright © 2007- 中国科学报社

返回顶部