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

Artificial intelligence 什么时候应该使用遗传算法而不是神经网络?,artificial-intelligence,machine-learning,neural-network,genetic-algorithm,Artificial Intelligence,Machine Learning,Neural Network,Genetic Algorithm,是否有经验法则(或一组示例)来确定何时使用遗传算法而不是神经网络(反之亦然)来解决问题 我知道在某些情况下,两种方法可以混合使用,但我正在寻找两种方法之间的高级比较。GAs在您定义的结构中生成新模式 NNs根据您提供的培训数据对现有模式进行分类(或识别) GAs在有效搜索解的大状态空间和收敛于一个或多个好解方面表现良好,但不一定是“最佳”解 NNs可以学习识别模式(通过训练),但众所周知,很难弄清楚他们学到了什么,也就是说,一旦训练,就从他们身上提取知识,并在其他一些(非NN)中重用这些知识。它

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


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

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

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

GAs在有效搜索解的大状态空间和收敛于一个或多个好解方面表现良好,但不一定是“最佳”解


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

它们之间有许多相似之处,因此我将仅尝试概述它们的区别

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

示例

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

示例

  • 安排飞机/航运
  • 时间表
  • 在人工环境中寻找简单代理的最佳特性
  • 使用随机多边形渲染图片的近似值
    • 来自维基百科:

      A(GA)是一种搜索技术,用于在计算中找到精确或近似的以优化和搜索问题

      以及:

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

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

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

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

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

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

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

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

      另一方面,神经网络(通常)处理连续数据(浮动等)。NNs的一个典型应用是函数近似,这里有一组X的输入和一组Y的相关输出,但分析函数f:X→ Y


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

      您可以使用遗传算法代替反向传播算法来更新神经网络中的权重。有关这方面的示例,请参阅:
      .

      你在比较两件完全不同的事情

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


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

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


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

      还有NEAT()。使用javascript的C#实现at()进行检查。它也实现了整洁。它们是真正的“正交”技术。您可以使用GA来查找神经网络权重和/或结构。鉴于本主题和其他主题提供的其他答案,将它们称为“完全不同”或“正交”似乎有点过分。实际上,神经网络只是一种插值技术。:)+1因为遗传算法(优化)和神经网络(监督学习)几乎没有任何共同点。唯一的共同点是,它们在接近目标时会动态地重新安排自己。我不确定是否有任何重叠,真的。神经网络是一种具有代价函数的模型,遗传算法是一种优化算法