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


139

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

我知道在某些情况下可以将两种方法混合使用,但是我正在寻找两种方法之间的高级比较。


3
值得指出的是,有两种类型的神经网络-有监督的和无监督的。监督人员从人的,未经监督的反馈中获得训练数据,在这方面更像是GA。
克里斯·S

3
我根本不认为它是“ list-y”。答案比较了两种方法,并阐明了何时使用一种方法。
尼尔N

简短答案:当要建模的函数不连续/离散时,或者当数据集在天文上是高维时,请使用GA。对于其余部分,请使用神经网络或GA(或其他模型),具体取决于获得最佳效果的内容。有关更多信息,请在此处查看我的答案:stackoverflow.com/a/49684833/1121352
令人讨厌的

Answers:


129

从维基百科:

遗传算法(GA)是在计算到所使用的搜索技术找到精确的或近似的解决方案,以优化和搜索问题。

和:

神经网络是非线性统计数据建模工具。它们可用于为输入和输出之间的复杂关系建模或查找数据中的模式

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

当您有许多不同类别的项目时,神经网络可以“学习” 以前从未“看到”的项目进行分类。(例如人脸识别,语音识别)

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


13
我只想向GA定义添加一些内容。有时,人们将GA问题的解决空间视为一组状态或值。例如:“找到在棋盘上安排一组四个棋子以创建将死的所有方式。” 但是,解决方案空间也可以是一组算法。这就是遗传算法真正发挥作用的地方。它们可以帮助您回答诸如“用给定的一组棋子查找将导致死斗的棋子的移动顺序”之类的问题。
lfalin 2014年

44

在大多数情况下,遗传算法(尽管名字叫性感)是一种优化技术。它主要归结为您具有多个变量,并希望找到这些变量的最佳值组合。它只是借鉴了自然进化的技术才能达到目标。

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

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


22
实际上,神经网络只是一种插值技术。:)
唐·雷巴

3
遗传算法(优化)的+1和神经网络(监督学习)的+1几乎没有共同之处。
alfa 2012年

2
唯一的共同点是,他们在接近目标时会动态地重新安排自己。
lfalin 2014年

1
我不确定是否真的有重叠。神经网络是具有成本函数的模型,遗传算法是一种优化技术,可用于最小化此成本函数,如@zenna所说。
Matthieu Brucher

37

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

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

GA在有效地搜索解决方案的大型状态空间并收敛于一个或多个好的解决方案(但不一定是“最佳”解决方案)方面表现良好。

NN可以学习(通过训练)识别模式,但是要弄清楚他们学到了什么是众所周知的,即一旦训练就从他们那里提取知识,然后在其他(非NN)中重用知识。


26

您在这里比较两件事。

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

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


10
确实。它们确实是“正交”技术。您可以使用GA查找神经网络权重和/或体系结构。
redcalx

23

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

神经网络

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

例子

  • 图外推
  • 面部识别

遗传算法

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

例子

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


8

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

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

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


5

没有经验法则。在许多情况下,您可以提出问题以利用它们中的任何一个。机器学习仍然是研究的活跃领域,使用哪种学习模型尚有争议。

Google Analytics(分析)从发展中汲取了性感的语言,但您正在等待计算机偶然通过随机过程找到解决方案。研究您的数据,做出正确的假设,尝试知道您想要什么,然后选择一种可以充分利用这些数据的方法。如果您的第一选择给出的结果很差,请知道为什么会这样,并改进算法本身或选择更好的算法。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.