理科生的果壳有意思的文章

GAIC 大会预热之一——从进化计算到物的进化(上)

2016-10-23  本文已影响128人  朱小虎XiaohuZhu

Neil Zhu,简书ID Not_GOD,University AI 创始人 & Chief Scientist,致力于推进世界人工智能化进程。制定并实施 UAI 中长期增长战略和目标,带领团队快速成长为人工智能领域最专业的力量。
作为行业领导者,他和UAI一起在2014年创建了TASA(中国最早的人工智能社团), DL Center(深度学习知识中心全球价值网络),AI growth(行业智库培训)等,为中国的人工智能人才建设输送了大量的血液和养分。此外,他还参与或者举办过各类国际性的人工智能峰会和活动,产生了巨大的影响力,书写了60万字的人工智能精品技术内容,生产翻译了全球第一本深度学习入门书《神经网络与深度学习》,生产的内容被大量的专业垂直公众号和媒体转载与连载。曾经受邀为国内顶尖大学制定人工智能学习规划和教授人工智能前沿课程,均受学生和老师好评。

GAIC 全球人工智能大会有幸邀请到了荷兰著名计算机科学家、人工智能领域专家 Agoston E. Eiben 教授。Eiben 教授常年耕耘在进化计算领域。这是一个不为大众熟知的领域,如同此前沉默的深度学习(神经网络),世界上还有一些科学家在这里静静地研究。这也是未来可能会产生令人吃惊的成果的领域。因此,我们在这次会议上让 Eiben 教授来介绍这个神秘却又有趣的进化计算。


Nature Review

本文的标题叫做《从进化计算到事物的进化》,things 可以等同于前几年热门的物联网技术的“物”。稍微了解一些相关领域的人会想象到 evolution of things 就是物的进化。计算是一个抽象的思想模型,当计算设备足够小之后,也就会变得无处不在,所以计算就会下降到各种设备之上,也就诞生了现在的物联网技术。推至进化计算上,就是说我们可以在一些物体上尝试采用进化计算的技术,让其下降到实际的某个物体上去进行进化的计算从而达到自身的进化。

从计算机诞生起,进化思想就是算法设计思想的一个启发之源。而最终形成的领域,进化计算,也已经成功应用在解决从细到分子广至天文的工程问题上了。现在,这个领域进入了一个新的阶段,因为在硬件中可以发生的进化算法被开发出来了,打开了一条通向可以适应环境的自主机器的大道。本文将讨论进化计算与自然进化的对比,以及这些利处对其他计算观点的关联,同时引入了在物理系统中的人工进化这一初现领域。

进化可以用来作为问题解决的灵感之源其实在计算机诞生之时就有了。在 1970 和 1980 年代,这个主要的想法被发展成不同的算法,比如进化规划(evolutionary programming)、进化策略(evolution strategy)和遗传算法(genetic algorithms),后来又有了 遗传规划(genetic programming)。这些分支出现于 1990 年代,在过去的 20 年中统称为进化计算(evolutionary computation/computing) ,在很多的计算任务(比如优化、设计和建模)中取得了很大的成功。

进化计算的出现可被看成进化原理从“湿件 wetware”(生物学领域)向软件(计算机领域)的巨大转变。如今该领域进入了一个令人激动的阶段。机器人和快速原型技术(3D 打印)将会为其第二个重大转变铺平道路:从软件到硬件,从数字进化系统到物理进化系统的转变。

本文介绍了进化算法的原理,简要概述人工进化和自然进化的差异。我们会通过讨论一些成功的应用来解释进化式问题解决方法的能力,思考为何进化算法如此成功,回顾当前该领域的发展趋势,最后对未来的发展进行展望。

进化和问题解决

用进化思想来解决问题的本质是 将可能的解和群中个体的等同,并引入一个在解的质量基础上的适应值。为了获得一个有用的进化算法,我们需要进行一些设计的步骤。第一步,指定一个表示:合适的数据结构可以表达问题可能的解。第二步,定义一种基于特定问题的邀请的个体质量的度量方式。最后一步则是指定合适的选择和变异算子。

进化算法原理图

进化算法原理图. 初始化过程用随机创建的解群进行搜索初始化(seed)。在这个算法后,就进入评价这一代解的产生的质量的循环,选择其中一些作为下一代的解产生的基础,然后通过变体(变异或者交叉)。算法会周期性地检查用户指定的终止条件是否满足——比如说达到一个指定适应度的值,或者进行了若干代的进化后没有性能提升。

类似于自然进化,进化算法可以被当做在两个层级上工作。在高一些的层(原始问题上下文环境),表型(phenotypes)(候选解)会被进行适应性评估。选择机制然后使用这个度量来给每一代选出一个双亲池,然后决定哪个双亲和后代会出现到下一代。而在低层,基因型是按照一种可能产生变体的形式表示表型的对象。

Box1

基因型-表型映射联结了这两层。在基因层,变体算子从选择出来的双亲中产生新的个体(后代)。变异算子基于一个双亲(无性繁殖)并随机改变某些值。重组算子通过组合两个或者更多的双亲的基因型来创造后代。最后一个执行管理员控制这个算法的整体功能。它会管理第一代群的初始化,选择-变体过程和算法的终止。它同样还管理群的规模(通常是保持不变)而其他参数影响选择和变体。例如,它会决定每代的双亲数量,是否变异、重组或者两者都有来对给定的双亲集合产生后代。

进化算法可以轻易地从一个应用迁移到另一个应用上,因为这里只有两个部分是问题相关的:基因型转化为表型的方式和适应性函数。进化计算的历史已经说明了一些简单的数据结构合适的组合可以表示对大量不同问题的可能的解。换言之,相对小的可能的基因型可以适应于很多不同的表型。就像自然进化遵循的遗传机制,其实很大程度上是与物种无关的,就是 DNA 或者 RNA 的作用,所以在进化计算中,合适的变体算子的选择仅仅会依赖于在基因型中的数据结构,而非特定的待解决问题。选择算子甚至不会依赖于选定的表示,因为他们仅仅会考虑适应性信息。这意味着,对特定的问题,一个合适的进化算法可以轻易地被设计,只要问题相关的表型可以被映射到标准的基因型之上。所以,可方便获得的进化算法的机器就能应用。

值得注意的是,仅仅因为一个算法形式上合适,是不够的,有时候它不一定能够成功。合适性只是说进化算法能够在可能的解空间中进行搜索,但是对这个搜索是否有效或者高效却是没有任何的保证。

上一篇下一篇

猜你喜欢

热点阅读