如何找到最优的变异概率和交叉概率?

人工智能 算法 遗传算法 变异算子
2021-10-31 18:15:16

我有一个遗传算法,可以最大化具有两个变量 f(X,Y) 的适应度函数。

我一直在使用突变和交叉概率(0.1、0.2、...)中的各种参数运行算法

由于我对遗传算法没有太多的理论知识,我该如何进行才能找到突变和交叉概率的最佳值,以及必要时的最佳种群规模?

1个回答

正如@Oliver Mason 所说,选择控制 GA 行为的参数(有时称为“超参数”)在历史上更像是一门艺术而不是一门科学。

进化计算文献有许多关于高变异与低变异以及高与低交叉的优点的理论。我合作过的大多数从业者要么使用高交叉、低突变(例如 Xover = 80%,突变 = 5%),要么使用中度交叉、中度突变(例如,Xover = 40%,突变 = 40%)。

近年来,出现了超参数优化领域,并专注于开发自动选择这些参数的方法。一个非常简单的超参数优化示例是 ScikitLearn 中的GridSearchCV 函数这系统地尝试了 10 个交叉值与 10 个突变值中的每一个的每一个组合,并报告哪个最有效。它使用交叉验证来防止在此过程中过度拟合。更复杂的方法是贝叶斯超参数优化,它执行一种优化实验设计,以使用尽可能少的测试来发现最佳值。例如,这种方法在调整深度神经网络的超参数方面非常成功。