【NMI 2021】从生物学角度看进化计算(6个生物进化特征)

news2024/11/25 13:35:47

 A biological perspective on evolutionary computation

“生物学视角下的进化计算”,总结了进化算法——通过对比模拟和真实的进化,指出当前进化算法与生物进化存在的六点差异,并指出了对应的改进方案。


何为进化算法?

将任意问题的解法看成一串if-else语句,可以将其解法编码为类似DNA的序列,之后通过模拟物竞天择的实验方案,再加上“解法编码”的变异和重组,就构成了进化算法的基础。进化算法不仅仅应用于解决诸如旅行商这样的最优化问题,还被广泛应用于机器人控制、机械设计等领域中。甚至可以利用进化算法来修复程序中的bug。

图1A:进化算法中的编码示意、突变和重组;图1B:进化算法如何与环境互动;图1C:进化算法随时间迭代的演变

随着数据规模的增加与复杂性的提升,研究人员需要在工程乃至未知的领域中考虑所有合理的可能性。2018年诺贝尔化学奖得主 Frances Arnold 使用定向进化来设计酶,使之改进并产生新的功能。定向进化创造变异,以随机突变为蓝本,变异根据一个特定的设计目标(如催化效率)被选择和放大。

人类专家定义问题,自动化工具进化执行搜索——通常工具找到的解决方案,比人类专家设计的效果要好。Arnold 指出,如今需要借助自动化方法来增强人类设计和创造力的这个难题,进化算法使之解决成为可能。目前进化算法已包含如蚁群算法、免疫算法等诸多变种。本文中,所有这些算法将被统称为进化计算。尽管进化计算已能在高度复杂的系统中提出解决方案,但在稳健性、通用性和可靠性等评估指标与自然界的进化过程相比,仍相形见绌。如何进一步提升进化算法,需要考虑算法中的进化和真实进化有何不同,从而进行针对性的改进。

比较进化计算与生物进化

1、进化是一个无限游戏

随着时间的推移,进化产生的生物体往往越来越复杂,这体现了进化过程的开放性。进化引发的新功能,将会成为未来进化的重要基石;长久来看,进化将导致不稳定的对环境的适应及无限扩展的发展空间,而非快速的收敛。生物体可以构建生态位,通过改变环境而非自身,以一种影响自然选择的方式来获得生存优势,在进化过程中加入反馈机制。

图2:CoDeepNEAT框架图,通过进化算法,设计并搭建评估神经网络适应度的模块,通过不断改变评估函数,该方法可以使神经网络产生重复的深度结构,而进化的过程是开放的,没有预设,参考Evolving Deep Neural Networks(https://arxiv.org/pdf/1703.00548/)

实际应用中,增加程序的复杂性并不总是必须的,然而开放式的进化可以带来意想不到的、有用的解决方案。如果引入进化思想,只是解决了工业系统中的一个微小缺点——这样的解决方案在工程上并没有什么用处。由于工程上的目标是解决特定的问题,因此开放式方法在目前并不常见。随着进化计算规模越来越大,我们完全有理由引入开放性,以产生具有更多创造性与更高复杂性的设计。

2、重大转变-进化中常见的跃迁

《生命进化的跃升》这本书讲述了40亿年进化史中,诸如多细胞生物、性以及大脑等的出现——所有这些变化中,个体单位形成群体,分化成不同的合作角色,失去了独立复制的能力。此类现象被称为 major transition,是生物体复杂性的主要来源。

在进化算法中,这样的突然改变并不存在。突变发生前后,编码和行为的对应方式会发生彻底的改变。但通过模拟生物学机制,可以在进化计算中加入更高的组织层级,例如控制虚拟生物的神经网络,可以将转向、奔跑、击打等动作作为模块封装起来,再据此之上,进化出战斗、逃跑等策略。然而上述过程中,抽象层级的增加来自人为介入,而非进化自发产生。未来的进化算法,需要应对这一挑战提出解决方案。

图4:智能机器人及对其行为的封装,从而使系统能够在更高抽象的层次使用进化算法寻找控制策略,来自Increasing Behavioral Complexity for Evolved Virtual Creatures with the ESP Method

3、中性进化:并不是所有的突变都有意义

中性进化意指那些对生物体适应性无影响的遗传突变。基因库中保留的突变位点大多是由于随机而非选择压力导致而改变,此种现象被称为遗传漂变。在生物进化中,对于新功能的产生,中性进化与遗传漂变都是必不可少的机制。

在进化计算中,可以模仿自然进化——例如好奇心机制可以将优化的目标,由具体的问题,改为探索未知搜索空间的部分,再判断新找到的解决方案是否比之前的解法更好,从而实现进化。这一过程,就体现了中性进化思维。在针对旅行商问题的混合遗传算法中,传统方法没有引入选择函数,不会去掉迭代过程中产生的任何一种参数;而通过引入中性进化,可避免模型过早地收敛于局部最优解,参考:The massively parallel mixing genetic algorithm for the traveling salesman problem。

在自动化程序编码中,30%-40%的情况下,代码改变都未影响功能。引入进化计算后,随机漂变为弱选择的发生提供了原材料,因此哪怕在短期看起来有微小害处的改变,长期来看也会成为程序创新解法的组成部分。如今进化计算中过渡的强选择,使得算法不同于真实进化。未来的进化计算,可尝试结合中性进化甚至更长的时间尺度。

4、多目标:不是只盯着一个路标

生物体的适应性是一个涉及多个元素的复杂过程——生物体需要照顾下一代,也需要自己觅食、吸引配偶。上述多种目标,需要全部完成才能繁衍下一代。这其中的多维且间接的权衡,为生物引入了复杂性。

在进化计算中,也会涉及目标存在于一个多维度的空间中,从而可以将目标进行拆解。然而,如果选择压力过小,那么过于弱小的信号将无法指导进化。通过在高层目标之下,设计用于指导进化的直接目标——例如解法复杂性、准确度、成本等——可实现指导算法在对应的维度上进行取舍,继而使用外部标准来选择一组特定的权衡。

在生物学中,适应性有多个维度——意味着在复杂的环境中,可使用不同的生存策略。由于环境中包含多种生态位及其对应的生存策略,可以促进物种的形成。在进化计算中,物种的形成也是有用的——可提升多样性及保护创新。

然而进化计算中,物种的出现,需要提升策略的多样性,而这需要改变优化函数,将策略的新颖性作为目标的一部分,从而显示促进策略构建自己的生态位。但对于复杂度更高的问题,人工定义的干涉不便过多参与,这就需要更为激进、也更为自然的方式,来促成高抽象层级的目标,包含分割众多子目标。

5、间接的基因型-表现型对应

进化算法中的基因型,目前大多直接和策略对应,而变异和重组则会直接修改解决方案的组成部分。但在生物进化中,大部分对适应性有所影响的基因突变,不会直接改变蛋白质本身,而是通过修改蛋白质调控网络,间接地影响适应性的改变:这体现了生物进化与进化计算在基因型与表现型的差异上的区别。

通过探究细胞之间、细胞与环境之间的相互作用,进化中基因型与表现型的复杂关系,使得策略的搜索得以在一个互动的、多方面的过程中,构建起更高自由度。例如上位基因(Epistasis)——如两只灰色的兔子,可以在下一代中出现黑色的兔子。又比如表观遗传的改变,进化改变的不是下一代所遗传的策略本身,而是某一策略是否执行。

在进化计算中,可以使用多种策略,来增加基因型和表现型之间的复杂度,例如神经进化中最初的HyperNEAT[A Hypercube-Based Encoding for Evolving Large-Scale Neural Networks],通过神经网络对称,让一个神经网络通过进化,为另一个真正完成具体任务的网络赋予权重,这类似人类大脑中负责学习技能的神经网络,可操纵真正执行技能的网络。另一个例子是DeepGA[Deep Neuroevolution: Genetic Algorithms Are a Competitive Alternative for Training Deep Neural Networks for Reinforcement Learning],它能够通过进化计算而非梯度下降的方式,训练神经网络,并系统化地从压缩的网络结果扩展到完全的神经网络。以上都是利用模仿生物体,模仿基因型-表现型之间的对应复杂度来改进进化计算的案例。

6、共同进化:在合作与竞争中共同成长

生物体的进化从来都不是单独进行的,个体之间普遍同时既存在合作,也存在竞争。进化计算中,个体的进化往往是独立的。当适应性取决于个体与其他人群中的个体竞争或合作,这种开放式动态,使得生物进化需要协同各个子模块及目标,从而无限期地创造更复杂的解决方案。

Alpha GO通过自我博弈进行训练的过程,就是共进化这一思想的应用。深度学习中热门的对抗神经网络(GAN),其中包含编码网络和识别网络,也是利用智能体的相互竞争,通过共进化以便让算法自行提升复杂度的。

图5:GAN模块示意图

除了上述对抗性的共进化,合作型的共进化的典型案例是CoDeepNEAT,通过实现子模块各自的进化,之后从这些模块中,选出最优或由子模块合作组成的解法,当做算法得出的最终解。解的适应性经过综合评估后,再分拆到各个模块,以激励各模块的合作。该方法得出的解,具有超过单模块进化时能产生的复杂度。

动态环境下,能够产生更为复杂的表征。而如今进化计算中,基因型-表现型的简单对应,以及算法环境的复杂性欠缺,使得这条改进路线未来的潜力,更多取决于计算资源、训练数据,而非算法机制的创新。

进化计算的挑战与机遇

进化算法自从60多年前出现,已有了长足的进展和广泛的应用,在《终极算法》一书中,被称为实现强人工智能的一条可行路线然而,受限于缺乏生物有机体和生态系统的复杂性、灵活性和可塑性,进化计算还远远没有达到其试图模仿的生物对应物所达到的水平——如免疫算法应对威胁的能力远远不及自然免疫系统,也没有任何人工神经网络能够达成人类天生具有的基础几何推理能力。

虽然进化算法不必完全模仿自然进化,但自然进化产生了各种复杂性的机制——诸如中性进化、基因型-表现型间的间接关联等,需要在进化计算中以适当的形式重现;而共同进化、多目标进化、开放性这三个用来描述进化过程的特征参数,目前已在进化计算中有所应用。同时随着算法规模提升,这些方案将会有更广泛的体现。而进化中的跃迁,则是生命进化过程中最难能可贵之处的闪光处,需要结合上述多条路线,并引入新的规则,才可能实现。

如果我们能够在未来成功应对上述的六点进化计算与真实进化不同所带来的挑战,进化计算将成为复杂工程系统的创新引擎。随着进化计算的改进,它可以捕捉到足够多的相关生物学信息,作为一个有用的模型,反过来推动生物的进化过程。如今,巨大的计算能力使我们能够模拟庞大的种群和深层时间,从而使检验生物进化理论成为可能。在未来,我们希望能利用进化计算来反馈生物进化学,回答诸如“选择是在多个层次上运作的吗?”“是高层次的组织逐渐被发现,还是它是否需要多个组织同时进行的创新?”等进化理论中的未解之谜。

进化计算前沿综述:值得算法学习的6个生物进化特征 - 知乎

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/550207.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

第二部分——长难句——第二章——复合句——第二节——状语从句

最后一类了哦 一,状语从句的概述 (一)状语从句的含义 一个句子作状语表达描述性的信息 一个主句可以组合好几个状语从句,因为可以表述不同方面的信息。 (二)状语从句的写法 状语从句的连接词叫做从属连…

Java--内部类学习笔记

本文介绍了什么是内部类,Java中的内部类:实例内部类. 静态内部类.局部内部类.匿名内部类的语法和注意事项,以及每个内部类的运用场景,以及简单介绍了匿名内部类更简洁更特殊的语法->lambda表达式 Java内部类学习笔记 一.什么是内部类?二. 内部类的分类1.实例内部类2.静态内…

【计算机视觉 | 扩散模型】新论文 | DragGAN论文:如果甲方想把大象 P 转身,你只需要拖动 GAN 就好了

文章目录 一、论文说明二、前言三、论文理解四、实验4.1 定性评估4.2 定量评估4.3 讨论 一、论文说明 2023年5月18日提交的论文,华人一作。 论文地址: https://arxiv.org/pdf/2305.10973.pdf项目地址: https://vcai.mpi-inf.mpg.de/projec…

pg事务:子事务

什么是子事务? 一般事务只能整体提交或回滚,而子事务允许部分事务回滚。 SAVEPOINT p1 在事务里面打上保存点标记。不能直接提交子事务,子事务也是通过事务的提交而提交。不过可以通过ROLLBACK TO SAVEPOINT p1回滚到该保存点。 子事务在大…

人工智能基础部分19-强化学习的原理和简单应用,一看就懂

大家好,我是微学AI,今天给大家介绍一下人工智能基础部分19-强化学习的原理和简单应用,随着人工智能的不断发展,各种新兴技术不断涌现。作为人工智能的一个重要分支,强化学习近年来受到了广泛关注。本文将介绍强化学习的…

基于C++的物资管理系统的设计与实现

访问【WRITE-BUG数字空间】_[内附完整源码和文档] 一 需求分析 程序需实现以下功能: 新物资信息录入(编号、名称、库存) 查询已录入的所有物资信息(编号或名称为索引) 添加物资信息(编号或名称为索引&…

Python 初识基础

Python 初识基础 一、Python 变量定义使用二、Python 是弱类型的语言三、Python 注释四、Python 编码规范五、Python 标识命名规格六、Python 保留字表七、Python 内置函数表 一、Python 变量定义使用 声明:变量名 value值1、变量的值不是一成不变的,它…

成为顶级黑客:从零开始学习网络渗透的完整指南

前言 网络安全再进一步细分,还可以划分为:网络渗透、逆向分析、漏洞攻击、内核安全、移动安全、破解PWN等众多子方向。今天的这篇,主要针对网络渗透方向,也就是大家所熟知的“黑客”的主要技术,其他方向仅供参考&…

计算机视觉 YOLOv5_3.1实验记录

YOLOv5_3.1 I. 散点图II. 指标III. precision-recall_curveIV. labelsv. 可视化 I. 散点图 这些参数通常用于目标检测模型的评估。其中: Box表示目标检测模型检测出的所有边界框的数量;val Box表示用于验证检测模型性能的边界框数量;Objectn…

国内IEEEXplore访问加速(adblock)

访问IEEEXplore,需要加载一个网页需要等好久,然后才出来,就很奇怪,查到网上有同样这个问题 感谢原博主:ieeexplore加载慢的解决办法 核心原因: 国内无法访问地址: https://cdn.jwplayer.com/…

Docker搭建企业邮箱,poste.io教程

poste.io介绍 首先要知道,搭建企业邮箱即可拥有自己的域名后缀邮箱,自定义邮件地址,什么admin,root,info都是随便用的。Poste.io官网:https://poste.io/ 文档:https://poste.io/doc/ Poste.io…

洛谷P1618

一、问题引出 三连击(升级版) 题目描述 将 1 , 2 , … , 9 1, 2,\ldots, 9 1,2,…,9 共 9 9 9 个数分成三组,分别组成三个三位数,且使这三个三位数的比例是 A : B : C A:B:C A:B:C,试求出所有满足条件的三个三位…

声音好听,颜值能打,基于PaddleGAN给人工智能AI语音模型配上动态画面(Python3.10)

借助So-vits我们可以自己训练五花八门的音色模型,然后复刻想要欣赏的任意歌曲,实现点歌自由,但有时候却又总觉得少了点什么,没错,缺少了画面,只闻其声,却不见其人,本次我们让AI川普的…

Linux软件包管理器yum

Linux软件包管理器yum 一.什么是安装包二.关于rese1.windows传到Linux2.linux到windows 三.安装四.卸载五.yum扩展源六.一些好玩的软件1.第一个2.第二个 一.什么是安装包 1.在Linux下安装软件, 一个通常的办法是下载到程序的源代码, 并进行编译, 得到可执行程序. 2.但是这样太麻…

阿里云服务器ECS是什么?详细介绍

阿里云服务器ECS是什么?云服务器和传统的物理服务器有什么区别?云服务器有哪些优势?云服务器可以什么?云服务器架构及云服务器包含哪些功能组件?阿里云百科来详细说下什么是云服务器ECS: 目录 阿里云服务…

Python+Selenium教程

PythonSelenium教程 准备工作1.安装selenium2.下载浏览器驱动3.测试执行 元素定位控制浏览器操作控制浏览器窗口大小浏览器后退前进浏览器刷新 Webelement常用方法点击和输入提交其他 鼠标操作键盘操作获取断言信息等待页面加载完成显示等待隐式等待 Selenium是一个用电脑模拟人…

验证知识点总结

1、常用总线对比 AMBA (Advanced Microcontroller Bus Architecture) 高级处理器总线架构 AHB (Advanced High-performance Bus) 高级高性能总线 ASB (Advanced System Bus) 高级系统总线 APB (Advanced Peripheral Bus) 高级外围总线 AXI (Advanced eXtensible Interface) 高…

521之虚拟女友-程序猿的你不认领一个?

520已经来了,你准备好迎接这一浪漫的日子了吗? 作为知否AI问答向你推荐一个值得期待的礼物——知否AI虚拟女友。目前人们对虚拟女友的需求越来越高,而知否AI虚拟女友正是满足这一需求的最佳选择。 01 — 知否AI虚拟女友 作为一款基于ChatG…

Compose For Desktop 实践:使用 Compose-jb 做一个时间水印助手

前言 在我之前的文章 在安卓中实现读取Exif获取照片拍摄日期后以水印文字形式添加到照片上 中,我们已经实现了在安卓端读取 Exif 信息后添加文字水印到图片上。 也正如我在这篇文章中所说的,其实这个需求使用手机来实现是非常不合理的,一般…

CPU和显卡才是最抗热的?

高温是电脑蓝屏和掉帧的罪魁祸首,虽然硬件有了保护不会因为高温烧坏,但当你的工作进行到一半时突然蓝屏,或是游戏中的关键时刻突然掉帧,你的内心肯定是崩溃的,那么电脑中的硬件温度应该控制在多少度呢? 首先…