进化算法和神经网络是否在同一领域中使用?
artificial-intelligence
machine-learning
neural-network
5
0

我试图了解各种类型的机器学习算法之间的区别。

我知道进化算法的实现与神经网络的实现有很大不同。

但是,它们似乎都适合于从一组可能嘈杂的训练/历史数据中确定输入和输出之间的相关性。

从定性的角度来看,是否存在与进化算法相对更好的神经网络目标领域?

我浏览了一些文章,建议以互补的方式使用它们。是否有一个合适的用例示例?

参考资料:
Stack Overflow
收藏
评论
共 4 个回答
高赞 时间 活跃

解决的方法是:在机器学习问题中,通常有两个组成部分:

a)模型(功能类等)

b)拟合模型的方法(优化算法)

神经网络是一个模型:给定布局和权重设置,神经网络会产生一些输出。存在一些拟合神经网络的规范方法,例如反向传播,对比发散等。但是,神经网络的重点在于,如果有人给您“正确的”权重,那么您会在此问题上做得很好。

进化算法解决第二部分-拟合模型。同样,演化算法还包含一些规范模型:例如,演化编程通常尝试对特定类型的所有程序进行优化。但是,EA本质上是一种为特定模型找到正确的参数值的方法。通常,您以一种合理的方式编写模型参数,以便进行交叉操作,然后转动EA曲柄以获取合理的参数设置。

现在,例如,您可以使用进化算法来训练神经网络,并且我确定它已经完成。但是,EA需要工作的关键一点是,交叉操作必须是一件合理的事情-通过从一个合理的设置中获取部分参数,并从另一个合理的设置中获取其余参数,您通常会得到一个更好的参数设置。大多数情况下,使用EA并非如此,最终它就像模拟退火一样,只会更加混乱和效率低下。

收藏
评论

看神经进化。 (东北)

当前最好的方法是Kenneth Stanley的NEATHyperNEAT

遗传算法只能找到某种基因组。创建神经网络的基因组非常好,因为您可以获得神经网络的反应性,而不仅仅是一堆静态基因。

它可以学到的东西没有很多限制。但是,这当然需要时间。必须通过通常的突变和交叉以及权重更新来发展神经拓扑。不能有反向传播。

此外,您还可以使用适应度函数来训练它,因此当您不知道输出应该是什么时,它优于反向传播。对于您不了解任何最佳策略的系统而言,它非常适合学习复杂的行为。唯一的问题是它将学习您未曾预料到的行为。通常,这种行为可能非常陌生,尽管它确实可以满足您在健身功能中所获得的回报。因此,您将花费与创建反向传播输出集一样多的时间来推导适应度函数:P

收藏
评论

需要“直觉”的问题更适合ANN,例如手写识别。您训练带有大量输入的神经网络并对其进行评估,直到完成为止(这需要很长时间),但是此后,您便拥有了一个黑盒算法/系统,可以“ 猜测 ”手写内容,因此您只需花一点时间大脑,并将其用作模块已有多年之久。因为针对一个复杂的问题训练高质量的人工神经网络可能要花几个月的时间,但我最糟糕的情况还是运气。

大多数其他进化算法都以一种爬山的方式在现场“ 计算 ”一个自组织解。

另外,作为另一种回答指出,在运行时的ANN能“ 猜测 ”的速度比其他大多数进化算法可以“ 计算 ”。但是,必须小心,因为ANN只是“ 猜测 ”,可能是错误的。

收藏
评论

进化的或更一般的遗传算法和神经网络都可以用于相似的目标,其他答案很好地描述了差异。

但是,在一种特定情况下,进化算法比神经网络更受关注: 解空间不可微

实际上,神经网络使用梯度下降来向后传播(或类似算法)学习。梯度的计算依赖于导数,该导数需要一个连续的导数空间,换句话说,您可以从一个解决方案逐步地逐步转移到下一个解决方案。

如果您的解决方案空间是不可微的(即,您可以选择解决方案A或B或C,但中间没有其他选项(如0.5%A + 0.5%B,因此某些解决方案是不可能的)),那么您正在尝试拟合不可微函数,然后神经网络就无法工作。

(旁注:离散状态空间部分共享相同的问题,因此对于大多数算法来说是一个常见问题,但是通常需要做一些工作来解决这些问题,例如决策树可以轻松地处理分类变量,而其他模型如svm则具有难度更大,通常需要将分类变量编码为连续值)。

在这种情况下,进化算法和遗传算法是完美的,甚至可以说是上帝赐教,因为它们可以从一个解决方案“跳跃”到下一个解决方案,而不会出现任何问题。他们不在乎某些解决方案是不可能的,也不在乎可能的状态空间的子集之间的差距是大还是小,进化算法可以随机跳远或接近,直到找到合适的解决方案。

还值得一提的是,进化算法不像任何其他机器学习算法(包括神经网络)那样受维度诅咒的困扰。这似乎有点违反直觉,因为不能保证收敛到全局最大值,并且该过程似乎很慢,无法发展成一个好的解决方案,但是在实践中,选择过程可以快速运行并收敛到一个好的局部最大值。

这使进化算法成为天真的解决任何问题的非常通用的通用工具,并且是处理不可微函数,离散函数或天文高维数据集的极少数工具之一。

收藏
评论
新手导航
  • 社区规范
  • 提出问题
  • 进行投票
  • 个人资料
  • 优化问题
  • 回答问题

关于我们

常见问题

内容许可

联系我们

@2020 AskGo
京ICP备20001863号