遗传算法学习笔记(1)
遗传算法(Genetic Algorithm)。
能解决任何实际问题,具有可实现的并行计算行为。
遗传算法的操作对象是一组可行解,而非单个可行解;搜索轨道有多条,因而具有良好的可行性。
遗传算法只需要利用目标的取值信息,而不需要梯度等高价值信息,因而适用于任何大规模,高度非线性的不连续多峰函数的优化以及无解析表达式的目标函数的优化,具有很好的通用性。
遗传算法择优机制是一种“软”选择,加上良好的并行性,使它具有全局优化性和稳健性。
遗传算法操作的可行解是经过编码化的(例如二进制),目标函数解释为编码化个体(可行解)的适应值,因而具有良好的可操作性和简单性。
遗传算法在神经网络、模糊系统和机器学习中的应用
神经网络:
I: 网络连接权重优化
II: 网络拓扑结构优化
基于梯度下降法的反向传播法(BP)的最大弱点:局部问题极小化和无法学习网络拓扑结构。
遗传算法术语:
- Chromosome : 染色体
- Compatible Score : 适应性分数
- Gene:基因
- Genome:基因组
- Epoch:时代
- Convergence:收敛
- Cross:杂交
- Variation:变异
- Iteration:迭代
Convergence(收敛)
赌轮算法
如果群体太快地收敛到了一个特殊类型的染色体,而且变异率很低,此时依靠本身变异已经不能去发现一个解了。由于赌轮选择的方式,时代任何一代的最合适的染色体无法保证传到下一代。
遗传操作:
reproduction (复制) :
从一个旧种群中选择生命力强的个体串产生新的种群的过程。
复制操作,根据个体的适应度(优劣)决定是否被淘汰,这仅仅是个概率,表示的是机会的大小,而不是绝对值。
crossover (交叉):
选择出两个父体,对其部分码值进行交换
模拟繁殖过程,在匹配池中任选两个个体,随机选择交换点并互换交换点后的部分。
mutation (变异):
简单的操作就是改变数码串上某个位置的数码
变异以很小的概率随机改变遗传基因。
参数选择:
这些参数的选择是重大的影响,但并没有快速有效的规则,仅仅是些建议。交叉概率 0.6~0.95 变异率:0.001~0.01
种群的染色体总数叫做种群规模:对算法有着明显的影响,太小不利于进化,太大不利于计算。对不同的问题有着不同的规模,一条有用的原则上讲基因组的数目取为染色体长度的2倍。
遗传算法的选择方法:
I : 轮盘赌选择 Roulette Wheel Selection
这是一种基于比例的选择。由于随机操作的原因,误差较大,有时即便适应度较高的个体也选择不上
II: 锦标赛选择 Tournament Selection
每次选取几个个体中适应度最高的一个个体遗传到下一代群体中。优点是对个体适应度取正负值无要求,但此方法的随机性更强,存在更大的随机误差,但是有较高概率保证最优个体被选择,最差个体被淘汰。
III:随机遍历选择
IV:基于种群交流选择
遗传算法中经常出现的问题,发生过早收敛,或者出现超级个体。
Roulette Wheel Selection :
这是一种基于比例的选择。