使用GA优化功能

时间:2014-08-04 18:55:53

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

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

我一直致力于使用GA最大化功能输出的项目。然而,从有限的微积分我知道我认为有方法使用微积分找到最大的数学函数?我假设GAs有时用于最大化函数的原因是因为存在数学方法不起作用的函数。我想知道那是什么条件?也许这不是连续的或可分的?

2 个答案:

答案 0 :(得分:1)

表面解释

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

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

数学方法必须以某种增量方法搜索解空间,遗传算法在整个地方#34;™。通过调整突变频率,GA可以在搜索空间中跳转。

A(过度简化)难以解决的空间:

enter image description here

图片:Ciumac Sergiu

答案 1 :(得分:0)

嗯,对于初学者来说,你并不总是有轻松的差异化功能。您可能特别具有非常高的维度函数,这可能很难区分。

此外,即使你有一个功能,你可以区分,你发现本地最佳,而不是全球最优,你可能最终找到其中很多 - 可能是无限的数字他们 - 没有明确的方法来决定哪些比其他人更好。

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