什么时候应该使用遗传算法而不是神经网络?

时间:2009-09-09 22:00:26

标签: artificial-intelligence machine-learning neural-network genetic-algorithm

是否有一个经验法则(或一组例子)来确定何时使用遗传算法而不是神经网络(反之亦然)来解决问题?

我知道有些情况下你可以混合两种方法,但我正在寻找这两种方法之间的高级别比较。

8 个答案:

答案 0 :(得分:120)

来自维基百科:

  

genetic algorithm(GA)是一种搜索技术,用于计算查找精确或近似解决方案以优化和搜索问题。

  

Neural networks是非线性统计数据建模工具。它们可用于模拟输入和输出之间的复杂关系,或用于在数据中查找模式

如果您遇到可以量化解决方案价值的问题,遗传算法可以执行解决方案空间的定向搜索。 (例如,找到两点之间的最短路线)

如果您有不同类别的项目,神经网络可以“学习”分类之前未“看到”的项目。 (例如,面部识别,语音识别)

还必须考虑执行时间。遗传算法需要很长时间才能找到可接受的解决方案。神经网络需要很长时间才能“学习”,但它几乎可以立即对新输入进行分类。

答案 1 :(得分:40)

遗传算法(尽管其性感名称)在大多数情况下都是优化技术。它主要归结为你有许多变量,并希望找到这些变量的最佳值组合。它只是借用自然进化的技术来实现目标。

神经网络对于识别模式非常有用。他们遵循一个简单的大脑模型,通过改变它们之间的权重,尝试根据输入预测输出。

它们是两个根本不同的实体,但有时它们能够解决的问题重叠。

答案 2 :(得分:37)

GAs在您定义的结构中生成新模式。

NN根据您提供的培训数据对现有模式进行分类(或识别)。

GAs在有效搜索大型解决方案的状态空间方面表现良好,并且可以融合到一个或多个好的解决方案上,但不一定是“最佳”解决方案。

NN可以学习识别模式(通过培训),但是很难弄清楚他们学到了什么,即在训练后从中提取知识,并在其他一些(非NN)中重用知识。

答案 3 :(得分:24)

你在这里比较两个完全不同的东西。

神经网络用于回归/分类 - 给定一组(x,y)示例,您希望对某些给定的x回归未知y。

遗传算法是一种优化技术。给定函数f(x),您需要确定最小化/最大化f(x)的x。

答案 4 :(得分:21)

它们之间有许多相似之处,所以我只会尝试概述差异

神经网络

能够分析在线模式(随时间变化的模式)。通常,这是一个需要匹配和预测的时变样本。

示例

  • 图表外推
  • 面部识别

遗传算法

当您可以编写您认为可能导致特定的,不变的问题的属性时使用。重点是能够编码这些属性(有时你知道它们是什么),并且问题在很大程度上是不变的(否则演变不会收敛)。

示例

  • 安排飞机/运输
  • 时间表。
  • 在人工环境中找到简单代理的最佳特征
  • 使用随机多边形渲染图片的近似值

答案 5 :(得分:14)

您可以使用遗传算法替代反向传播算法来更新神经网络中的权重。有关此示例,请参阅: http://www.ai-junkie.com/ann/evolved/nnt1.html

答案 6 :(得分:7)

遗传算法(通常)处理离散数据(枚举,整数范围等)。当唯一可用的替代方案是蛮力搜索(评估所有组合)时,GA的典型应用是在离散空间中搜索“足够好”的解决方案。

另一方面,

神经网络(通常)处理连续数据(浮点数等)。 NN的典型应用是函数逼近,其中您有一组输入X和一组Y相关输出,但分析函数f:X→Y。

当然,两者都有数千种变体,因此它们之间的界限有些模糊。

答案 7 :(得分:5)

没有经验法则。在许多情况下,您可以制定您的问题以使用它们中的任何一个。机器学习仍然是一个活跃的研究领域,使用哪种学习模式是值得商榷的。

GA从进化中学习性感语言,但是你在等待计算机通过随机过程偶然发现一个解决方案。研究你的数据,做出正确的假设,尝试知道你想要什么,并选择一种可以充分利用这些的方法。如果您的第一选择结果不佳,请知道原因是什么,并改进算法本身或选择更好的算法。