如何找到遗传算法的最佳参数?

Jad*_*ias 6 aforge genetic-algorithm

一些遗传算法框架,例如http://www.aforgenet.com/需要许多参数,例如突变率,种群大小等

这些参数有通用的最佳数字吗?我认为这取决于问题(适应度函数延迟,突变延迟,重组延迟,进化速率等).我的第一个想法是使用GA来配置另一个GA.

有更好的想法吗?

puf*_*ish 17

我发现将这些问题视为一种景观有助于您找到最低点.

当景观太大而不能仅测试所有点时,使用遗传算法等方法,并且景观的"形状"使得像渐变下降的方法会让你陷入局部最小值.

一个很好的例子是Rastrigin的功能(图片参考): 替代文字:

你的选择是:

代大小:

  • 太大了:你将有一个很长的纪元时间,限制每个人有多少机会探索它的邻居.
  • 太小:你没有很好地覆盖搜索空间.

突变率:

  • 太高:你冒着个人"跳过"他们接近的解决方案的风险.
  • 太低了:他们都会陷入局部最低点.

所以它确实取决于你自己的特定搜索空间.试验参数并尝试找到最佳组合.我同意使用另一个GA来优化参数并不能解决问题.

  • 我用遗传算法做了很多工作.这是一个很好的描述和可视化.做得好. (4认同)

chu*_*tsu 11

我觉得相当令人失望的是有很多答案假设你无法自动找到遗传算法的最佳参数.我同意参数确实取决于问题,但是有一些方法可以找到它们.

此外,无免费午餐定理绝不会阻止您找到最佳参数,因为已经有人讨论过这样的事实:

参数设置有两种类型:

  • 参数调整(离线参数搜索 - 运行GA之前)
  • 参数控制(在线参数调整 - 在GA运行期间)
    • 自适应
    • 自适应
    • 确定性

有很多文献描述了如何找到这些最佳参数,这取决于您是想要离线还是在线进行参数搜索.流行的观点是离线更适合大多数情况,因为在线参数控制方法会增加离线的复杂性.

以下是一些查找"最佳"参数的示例:

参数调整:

参数控制:

还有更多,只需使用上面使用的关键字搜索文献.有针对任何给定问题找到合适参数的科学方法!


Ray*_*Ray 7

这并不容易.

为什么?由于没有免费午餐定理.这基本上表明没有适用于所有问题的通用搜索算法.

您可以做的最好的事情是定制搜索特定的问题空间.您必须手动调整参数以适合您的解决方案.抱歉.

使用GA查找GA参数变得复杂.您如何找到GAGA搜索的最佳参数?另一个GA ......?


Gra*_*oob 5

有一次我编写了一个遗传算法,我将这些值包含在值中进行变异,基本上就像你说使用GA配置自己一样.它的效果非常好,特别是因为我发现它有助于这些值在计算过程中发生变化.