【问题标题】:When should I use genetic algorithms as opposed to neural networks? [closed]什么时候应该使用遗传算法而不是神经网络? [关闭]
【发布时间】:2010-11-27 00:08:15
【问题描述】:

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

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

【问题讨论】:

  • 值得指出的是有两种类型的神经网络——有监督的和无监督的。监督从人类那里获取训练数据,无监督反馈给自己,在这方面更像 GA。
  • 我认为它根本不是“list-y”。答案比较了两种方法,并阐明了何时使用其中一种方法。
  • 简短回答:当要建模的函数是非连续/离散的,或者当数据集是天文数字的高维时,使用 GA。其余部分使用神经网络或 GA(或其他模型),具体取决于为您提供最佳结果的方法。有关更多信息,请在此处查看我的答案:stackoverflow.com/a/49684833/1121352

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


【解决方案1】:

来自维基百科:

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

和:

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

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

当您有多个不同类别的项目时,神经网络可以“学习”以分类它以前没有“见过”的项目。 (如人脸识别、语音识别)

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

【讨论】:

  • 我只是想在 GA 定义中添加一点内容。有时人们将 GA 问题的解空间视为一组状态或值。例如“找出所有可以将一组四颗棋子排列在棋盘上以创建将死棋的方法。”然而,解空间也可以是一组算法。这就是遗传算法真正发挥作用的地方。它们可以帮助您回答诸如“用一组给定的棋子找出一系列将导致将死的动作。”
【解决方案2】:

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

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

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

【讨论】:

  • 神经网络实际上只是一种插值技术。 :)
  • +1 用于遗传算法(优化)和神经网络(监督学习)几乎没有共同点。
  • 唯一的共同点是它们在接近目标时会动态地重新排列自己。
  • 我不确定是否有任何重叠,真的。神经网络是具有成本函数的模型,正如@zenna 所说,GA 是一种可用于最小化该成本函数的优化技术。
【解决方案3】:

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

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

GA 在有效搜索解决方案的大型状态空间以及收敛到一个或多个好的解决方案方面表现出色,但不一定是“最佳”解决方案。

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

【讨论】:

    【解决方案4】:

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

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

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

    【讨论】:

    • 确实如此。它们是真正的“正交”技术。您可以使用 GA 来查找神经网络权重和/或架构。
    • 鉴于在此主题和其他主题上提供的其他答案,将它们称为“完全不同”或“正交”似乎有点过分。
    【解决方案5】:

    它们之间有很多相似之处,因此我将仅尝试概述它们的不同之处

    神经网络

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

    示例

    • 图形外推
    • 面部识别

    遗传算法

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

    示例

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

    【讨论】:

      【解决方案6】:

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

      【讨论】:

      【解决方案7】:

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

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

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

      【讨论】:

        【解决方案8】:

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

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

        【讨论】:

          猜你喜欢
          • 2019-04-15
          • 2017-10-25
          • 2011-06-30
          • 2016-07-28
          • 2010-10-24
          • 2011-01-06
          • 2023-03-03
          • 2018-05-11
          • 1970-01-01
          相关资源
          最近更新 更多