【问题标题】:Optimizing functions with GAs使用 GA 优化函数
【发布时间】:2014-09-27 08:04:50
【问题描述】:

首先,很抱歉,如果这不是这个问题的正确堆栈交换,它可能更适合数学。

我一直致力于一个项目,以使用 GA 最大化函数输出。但是,从我知道的有限微积分中,我认为有一些方法可以使用微积分找到数学函数的最大值?我假设有时使用 GA 来最大化函数的原因是因为有些函数的数学方法不起作用。我想知道那是什么条件?也许它不是连续的或可微的?

【问题讨论】:

标签: artificial-intelligence mathematical-optimization genetic-algorithm


【解决方案1】:

肤浅的解释

对于简单的™ 数学函数,解决方案是使用微积分并找到导函数 f'(x)。如果在数学上无法区分误差函数 f(x),则需要从数学盒中分离出其他工具。如果误差函数的解空间是凸的,您可以使用数值方法来找到最佳值,例如 gradient descentconjugate gradient 算法。

如果您尝试优化的函数包含多个未定义的变量,则遗传算法(和其他搜索算法)会派上用场。这将使使用微积分计算最优值变得非常困难。如果您熟悉神经网络:遗传算法已被用于寻找神经网络的最佳权重配置。在这些问题实例中,可能有数千个未知变量(权重)。

数学方法必须以某种增量方法搜索解决方案空间,遗传算法有点“无处不在”™。通过调整变异频率,遗传算法将能够在搜索空间中跳跃。

一个(过于简单化的)困难解空间:

图片:Ciumac Sergiu

【讨论】:

    【解决方案2】:

    嗯,对于初学者来说,你并不总是有容易区分的函数。您可能尤其具有非常高维的函数,这可能很难区分。

    此外,即使您确实有一个可以区分的函数,但您发现的是 局部 最优值,而不是全局最优值,您最终可能会发现其中很多——可能是无限数其中——没有明确的方法来决定哪些比其他更好。

    虽然您可能对某些特定函数有足够的了解,可以使用微积分进行优化,但没有任何方法可以保证您获得任何可能函数的全局最优值。因此,我们依赖于许多概率技术和启发式算法,遗传算法只是其中之一。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-02-13
      • 1970-01-01
      • 2019-09-20
      • 1970-01-01
      • 2017-11-25
      • 1970-01-01
      • 2020-11-25
      • 2013-03-25
      相关资源
      最近更新 更多