何时使用遗传algorithm与什么时候使用neural network?
是否有经验法则或一组例子来确定何时使用遗传algorithm与何时使用neural network来解决问题?
我知道有些情况下可以混合使用这两种方法,但是我正在寻找两种方法之间的高层次推理。
从维基百科:
遗传algorithm (GA)是在计算中使用的search技术,以find用于优化和search问题的精确或近似解决scheme 。
和:
neural network是非线性统计数据build模工具。 它们可以用来build模input和输出之间的复杂关系,或者查找数据中的模式 。
如果您有一个问题可以量化解决scheme的价值,那么遗传algorithm可以执行解决scheme空间的定向search 。 (例如find两点之间的最短路线)
当你有不同类别的项目, neural network可以“学习” 分类它以前没有“见过”的项目。 (如人脸识别,语音识别)
执行时间也必须考虑。 遗传algorithm需要很长时间才能find可接受的解决scheme。 neural network需要很长时间才能“学习”,但是它几乎可以立即对新input进行分类。
一个遗传algorithm,尽pipe它的性感的名字,大多数目的只是一种优化技术。 它主要归结为你有很多variables,并希望find这些variables的最佳值组合。 它只是借鉴自然进化的技术到达那里。
neural network对识别模式很有用。 他们遵循一个简单的大脑模型,并通过改变他们之间的权重来尝试根据input来预测产出。
他们是两个根本不同的实体,但有时他们能够解决的问题重叠。
GAs在您定义的结构中生成新的模式
neural network根据您提供的培训对现有模式进行分类/识别
GAs在高效地search解决scheme的大型状态空间方面performance良好,并且聚合一个或多个优秀解决scheme,但不一定是“最佳”解决scheme
neural network可以学习识别模式(通过训练),但是很难弄清楚他们学到了什么,也就是说,一旦训练就从他们那里提取知识,并在其他一些(非neural network)
你在比较两个完全不同的东西。
neural network被用于回归/分类 – 给定一组(x,y)的例子,你需要回归给定x的未知y。
遗传algorithm是一种优化技术。 给定一个函数f(x),你需要确定x使f(x)最小化/最大化。
他们之间有很多相似之处,所以我只会试图概述他们的分歧。
neural network
能够分析在线模式(随时间变化的模式)。 通常这是需要匹配和预测的时变样本。
示例 :graphics外推。 面部识别。
遗传algorithm
当您可以编码您认为可能导致特定的,不变的问题的属性时使用。 重点在于能够对这些属性进行编码(有时你知道它们是什么),而且问题在很大程度上是不变的(否则演化不会收敛)。
例子 :安排飞机/航运。 时间表。 在人造环境中寻找简单代理的最佳特征。 渲染具有随机多边形的图片的近似值。
实际上,您可以使用遗传algorithm作为Backpropagationalgorithm的替代方法来更新neural network中的权重。 有关此示例,请参阅:
http://www.ai-junkie.com/ann/evolved/nnt1.html
遗传algorithm(通常)工作在离散数据(枚举,整数范围等)。 GAs的一个典型应用是寻找一个“足够好”解决scheme的独立空间,当唯一可用的select是蛮力search(评估所有组合)。
另一方面,neural network(通常)在连续的数据(浮游物等)上工作。 neural network的一个典型应用是函数逼近,其中有一组inputX和一组相关输出Y,但分析函数f:X→Y。
当然有两千种的变种,所以他们之间的界限有些模糊。
没有经验法则。 在许多情况下,你可以制定你的问题,以利用其中任何一个。 机器学习仍然是一个活跃的研究领域,学习模式的使用可能是有争议的。
GA从进化中汲取性感的语言,但是你正在等待你的电脑通过一个随机过程偶然发现一个解决scheme。 研究你的数据,做出好的假设,试着知道你想要什么,并select一种可以很好地利用这些的方法。 如果你的第一select给出的结果不好,那就知道为什么这样做了,改进algorithm本身或者select一个更好的algorithm。