这几天在学习遗传算法和神经网络。记录一下心得体会。
一开始看了网上介绍算法思想的文章(这种文章很多,就不再赘述了),对这个算法的思想有了大体的了解,然后作了两个例子,实现了最简单的遗传算法和神经网络。(觉的边实践,边看理论效果比较好)。
实践出真知,马上从运行结果发现遗传算法的缺点:进化停滞。往往前几代就找到了局部最优解,也就是早熟现象。
发现也有很多人对这方面最了改进。
比如调整选择算法 ,在最初几代降低优秀个体差异带来的选择概率,后面增加优秀个体被选择的概率。
还有变异时简单的单点变异会造成等位基因的缺失,所以采用两条染色体求同或和异或保证等位基因的多样性。
这些都能降低收敛速度 ,试验结果也不错。
现在遇到的问题是遗传算法的染色体编码的选择问题,正在学习中。
一开始看了网上介绍算法思想的文章(这种文章很多,就不再赘述了),对这个算法的思想有了大体的了解,然后作了两个例子,实现了最简单的遗传算法和神经网络。(觉的边实践,边看理论效果比较好)。
实践出真知,马上从运行结果发现遗传算法的缺点:进化停滞。往往前几代就找到了局部最优解,也就是早熟现象。
发现也有很多人对这方面最了改进。
比如调整选择算法 ,在最初几代降低优秀个体差异带来的选择概率,后面增加优秀个体被选择的概率。
还有变异时简单的单点变异会造成等位基因的缺失,所以采用两条染色体求同或和异或保证等位基因的多样性。
这些都能降低收敛速度 ,试验结果也不错。
现在遇到的问题是遗传算法的染色体编码的选择问题,正在学习中。