零基础入门进化算法(基本概念)

零基础入门进化算法

  • 人工智能
  • 进化算法
    • 概览
    • 遗传算法
    • 进化策略
    • 进化编程
    • 遗传编程
  • 基因表达式编程

由于笔者最近在研究有关于基因表达式编程的课题,对进化算法方面有了更为全面的理解,希望能给大家指点迷津。本文主要基于张克俊博士的毕业论文《基因表达式编程理论及其监督机器学习模型研究》,结合笔者的思考进行描述。

本篇博客是该入门系列的第一篇,后续关于基因表达式编程的详细讲解传送门在此:

  • 零基础入门进化算法(基因表达式编程)

    零基础入门进化算法(GEP)

人工智能

人工智能是当前的大热门,而且这浪潮必将持续数年,由此引发新一轮科技革命并不为过,但当前对于人工智能的研究水平,包括世界前沿,还是处于起步的基础研究阶段,距离真正的人工智能远之又远。下面对人工智能的细分类别进行简要介绍:
零基础入门进化算法(基本概念)_第1张图片
由图例我们可以看到人工智能下辖计算智能、模式识别以及专家系统等等,这个分类并不全面,而且相互之间交叉很多,在这里仅作示意。

在计算智能的分类中,就是我们较为熟悉的有关于机器学习的框架,不论是神经网络、模糊逻辑,还是概率推理、混沌系统,现如今都离不开机器学习的范畴,当然也包括今天的主角——进化算法。

进化算法

概览

进化算法可详细分为五大类方法:遗传算法、进化策略、进化编程、遗传编程以及基因表达式编程。它们的主要异同点可由下表作一总结:
零基础入门进化算法(基本概念)_第2张图片

对于进化算法来说,其主要可比较部分即为基因型、表现型、选择策略以及主要遗传操作,上表可帮助初学者快速建立对于各种进化算法的印象,在之后的深入学习中如鱼得水,更加自如。

遗传算法

遗传算法是进化算法中最早被提出的,在数十年间经过无数经典问题的磨练,是很成熟的一种进化算法,其流程图如下:
零基础入门进化算法(基本概念)_第3张图片

进化策略

进化策略采用浮点数进行编码,这是进化策略与早期遗传算法相区别的地方,但是现在遗传算法也可采用浮点数编码,因此进化策略与遗传算法之间的区别界限越发模糊。

进化策略是将遗传算法的选择、交叉、变异过程用一个正态分布随机向量进行完成,其他部分没有差别。

进化编程

与进化策略区别不大,也是将遗传算法的选择、交叉、变异过程采用高斯变异以及随机比较等方式进行计算,其他方面保持一致。

遗传编程

遗传编程与遗传算法的本质区别为非线性编码与线性编码,即遗传编程个体采用了动态的语法分析树状结构。因此可以通过搜索树结构空间来实现程序设计的自动化。其流程图如下:
零基础入门进化算法(基本概念)_第4张图片

基因表达式编程

可以看到在进化算法中有一个分支为基因表达式编程,也是本人最为花时间研究的部分,但其篇幅有些多,放到下一篇进阶篇进行详细讲解。

你可能感兴趣的:(教程,概念,理论,人工智能,机器学习,算法)