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

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

还有更好的想法吗?

有帮助吗?

解决方案

在一个时间被编程我遗传算法予包含在值的那些值变异,基本上像您使用GA配置其本身说。它的工作出奇地好,尤其是因为我发现它是有益的这些值在过程中改变它的计算。

其他提示

我发现将这些问题想象成一幅风景是有帮助的,你试图在其中找到最低点。

当景观太大而无法仅测试所有点时,就会使用遗传算法等方法,并且景观的“形状”使得梯度下降等方法会让您陷入局部最小值。

Rastrigin 函数就是一个很好的例子(图像参考): alt text
(来源: 科学计算.com)
:

您的选择是:

生成规模:

  • 太大了:您将有一个漫长的时代,限制了每个人必须探索它的社区的机会。
  • 太小:您对搜索空间没有很好的覆盖范围。

突变率:

  • 太高:您冒险将个人“跳跃”到他们接近的解决方案上。
  • 太低:他们都会陷入当地的最小值。

所以它确实取决于您自己的特定搜索空间。对参数进行试验并尝试找到最佳组合。我同意使用另一个遗传算法来优化参数并不能解决问题。

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

另外还有 没有免费午餐定理 决不会阻止您找到最佳参数,因为已经有讨论质疑这一事实:

参数设置有两种类型:

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

有很多文献描述了如何找到这些最佳参数,这取决于您是想离线还是在线进行参数搜索。人们普遍认为,离线更适合大多数情况,因为在线参数控制方法会比离线增加太多复杂性。

以下是寻找“最佳”参数的一些示例:

参数调整:

参数控制:

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

这是不容易。

为什么呢?由于没有免费的午餐定理。这基本上说没有常规搜索算法,对于所有问题效果很好。

你能做的最好的是裁缝搜索了具体问题空间。你必须手动调整参数以适合您的解决方案。遗憾。

使用GA找到GA参数变得复杂。你如何找到你的GAGA搜索最优参数?另一个GA ...?

有真的不是一个自动的方式来做到这一点对一个给定的数据集。如果有,他们不会公开这些参数。使用第二GA调整第一GA的参数是危险的 - 你使用第三方GA调整的第二个参数?即使你这样做,它是无论如何过度拟合的秘诀。

我的建议是与参数玩,看看它们是如何影响你的人口分布状态,在每一代人,这多少代才能到达一个可以接受的答案,等等。如果你有太多的突变的人口将永远不会稳定。太少,你会同质化而告终。

这是气体的脏秘密调谐他们是一门艺术,不是一门科学。

至于其他人说,没有一个答案。虽然对0.1-0.3使用上0.7-0.9的水平和变异交叉率有些倾向真的要看。取决于问题,可能取决于适应度函数,绝对依赖于遗传算法本身。有许多GA变型中,最佳参数为相同的问题可能会发生变化。

作为使用遗传算法的目标GA的调谐参数有这样的方法,但是,因为它是所指出的,第一GA的如何调整参数?请记住,也许突变率应该在年初高,并且比它应该减少,而跨在速度应该增加。这是勘探与开采的问题。有办法让GA更加适应,让它改变其参数,因为它看起来的解决方案。模糊控制器有时被用来操纵GA的参数。也有其他的办法。

如果您想了解更多关于它的,买一些书,或者通过学术研究论文的样子。结果 如果您需要设置自己的GA没有广泛的研究,尝试一些值从别人的工作,并与他们进行实验。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top