- 进化计算的代表算法(Genetic Programming)
- GA & GP
- GA和GP很像
- 有人说GP就是GA的一个分支
- 区别
- GA(遗传算法)中:用0101的串来表示选择、不选择
- GP中:进化的是一个计算机的程序
- 输出
- GA:一组参数值0.5、0.3等等
- GP:一个计算机的程序(程序可以做很多事情,例如控制机器人等等)
- GP发明人:John Koza
- 人类的很多专利,可以用计算机的方法自己发明出来(reinvent重新创造)
- GA和GP很像
- Functions & Terminals
- GP中是一个树状结构,它在进化的是一棵树,这棵树代表了一段计算机的程序(我想要计算机做什么事情,就让它进化出这样一段程序,使计算机可以去做这件事情)
- Terminal Set
- variables(变量)
- constants(常量)
- Function Set(函数)
- Crossover
- 树的杂交:交换子树
- 当时是老师教的一元二次方程的求根公式,但是计算机可以自己发现(通过进化)
- 区别
- GA:
- 两个100维的向量杂交只会生成100维的向量
- 两个相同的父代的杂交没有任何意义(交换完和交换前一模一样)
- GP:
- 非常灵活,树的高度可能增加(减少)
- 两个相同的父代的杂交子代可不同,因不需要一一对应的交换(如图所示)
- GA:
- Mutation
- An Example of GP(用GP做回归)
- 思路:根据某个公式生成点,使用GP进化出来我生成点用的是哪个公式
- Fitness Evaluation
- 真实值和预测值之间的差的绝对值的和
- Generation 0
- 随机生成一些树,每一棵树代表一个可能的Candidate
- Terminal是X(一元)
- R代表1、2、3、4、5、6....(可以加这些数值)
- Function是加减乘除
- 评价
- 蓝色表示“误差”,求积分(0.67,1.0,1.70,2.67)
- evaluate每一个candidate,,之后通过selection、crossover、mutation,不断迭代变化,总有一代可进化成与Ground Truth相同的结果曲线
- Review
- Evolvable Machine(可进化硬件)
- 电路可以根据环境变化而变化其结构和行为(超过了设计师当初给它设计的功能)
- Evolvable Machine(可进化硬件)
10.6遗传程序设计
于 2023-12-13 14:14:08 首次发布