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

Nei*_*l N 134 artificial-intelligence machine-learning neural-network genetic-algorithm

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

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

Daw*_*uss 125

来自维基百科:

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

和:

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

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

当你有不同类别的许多项目时,神经网络可以"学习" 之前没有"看到"的项目进行分类.(例如人脸识别,语音识别)

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

  • 我只想在GA定义中添加一些内容.有时人们会将GA问题的解决方案空间视为一组状态或值.例如"找到一组四个棋子可以安排在棋盘上以创造一个将死的所有方式." 然而,解空间也可以是一组算法.这就是遗传算法的真正力量发挥作用的地方.它们可以帮助你回答一个问题,比如"用给定的一组棋子找出一系列动作会导致一个将死的人". (13认同)

zen*_*nna 42

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

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

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

  • 实际上,神经网络只是一种插值技术.:) (22认同)
  • 遗传算法(优化)和神经网络(监督学习)的+1几乎没有任何共同之处. (3认同)
  • 唯一的共同点是他们在接近目标时动态重新排列. (2认同)
  • 我真的不确定是否有任何重叠。神经网络是一个具有成本函数的模型,遗传算法是一种优化技术,可以用来最小化这个成本函数,正如 @zenna 所说。 (2认同)

Ste*_*owe 37

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

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

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

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


bay*_*yer 26

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

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

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

  • 确实.它们实际上是"正交"技术.您可以使用GA来查找神经网络权重和/或体系结构. (10认同)

Unk*_*own 22

它们之间有许多相似之处,所以我只想概述它们之间的差异.

神经网络

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

示例:

  • 图外推
  • 面部识别

遗传算法

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

示例:

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


Amr*_*mro 14

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


小智 7

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

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

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


til*_*ish 5

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

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