神经网络与进化算法的区别
Posted
技术标签:
【中文标题】神经网络与进化算法的区别【英文标题】:Difference between Neural Network and Evolutionary algorithm 【发布时间】:2012-04-09 03:07:05 【问题描述】:我对进化算法有很好的基础,所以现在我开始阅读人工神经网络。我遇到了这个教程 http://www.ai-junkie.com/ann/evolved/nnt2.html, 展示如何使用人工神经网络进化收集地雷的坦克。它使用 GA 来演化每个神经元的输入权重。
我知道我可以使用 GA(没有 ANN)来解决同样的问题。我已经创建了一个俄罗斯方块机器人,仅使用 GA 来优化网格评估函数中的权重(查看我的博客 http://www.bitsrandomicos.blogspot.com.br/)。
我的问题是:在我可以单独使用 GA 的情况下,使用 ANN + GA 之间的概念/实际区别是什么?我的意思是,我的俄罗斯方块机器人是人工神经网络吗?(我不这么认为)。
有几个相关的问题,但我找不到答案:
Are evolutionary algorithms and neural networks used in the same domains?
When to use Genetic Algorithms vs. when to use Neural Networks?
谢谢!
【问题讨论】:
【参考方案1】:遗传算法是一种优化算法。
人工神经网络是函数逼近器。为了逼近一个函数,您需要一个优化算法来调整权重。 ANN 可用于监督学习(分类、回归)或强化学习,有些甚至可用于无监督学习。
在监督学习中,像遗传算法这样的无导数优化算法比大多数使用梯度信息的优化算法要慢。因此,只有在强化学习中使用遗传算法进化神经网络才有意义。这被称为“神经进化”。在这种设置中,多层感知器等神经网络的优势在于,当它们具有足够数量的隐藏节点时,它们可以以任意精度逼近任何函数。
当您创建俄罗斯方块机器人时,您不一定必须使用 ANN 作为函数逼近器。但是您需要某种函数逼近器来表示您的机器人的策略。我想它只是比人工神经网络简单。但是当你想创建一个复杂的非线性策略时,你可以这样做 e。 G。带有 ANN。
【讨论】:
所以,在我的俄罗斯方块机器人中,我有一个启发式算法,其中 GA 调整每个棋盘参数的权重(如网格高度、孔数等)。在 Tanks-Mines 示例中,我可以将每个神经元视为一个“匿名参数”(即,某些会影响 Tanks 行为但尚未命名的功能?) - 只是一个类比,谢谢! 是的,你可以这样做。神经网络被认为是黑盒函数逼近器。这意味着您通常无法通过查看其权重值来理解 ANN 的作用。很难提取任何简单的“规则”。 :)【参考方案2】:阿尔法的答案是完美的。这里只是一张图片来说明他所说的话:
元优化器 = 无(但可能) 优化器 = 遗传算法 问题 = 俄罗斯方块机器人(例如 ANN)
【讨论】:
【参考方案3】:如果您还不知道答案,您可以使用进化算法,但您能够以某种方式对候选者进行评分并提供有意义的突变。
如果您已经有了答案(和输入)并且您想要“训练计算机”以便它可以“猜测”未知输入的答案,那么神经网络非常棒。另外,你不用想太多问题,网络会自己解决的。
查看这个“游戏 AI”示例:https://synaptic.juancazala.com/#/ (注意它是多么简单,你所要做的就是给他们足够的训练,你不必知道关于游戏 AI 的任何事情——一旦它足够好,你所要做的就是“下载”内存和需要时运行)
【讨论】:
【参考方案4】:我不是专家,但根据我对该领域的了解..
人工神经网络最终以神经科学为基础。它试图通过在算法中构建类似神经元的结构来模拟/建模其行为。问题的学术性质比结果更重要。据我了解,出于这个原因,从工程的角度来看,ANN 并不是很受欢迎。机器学习的统计基础(HMM 和贝叶斯网络)产生更好的结果。
简而言之,只要它对某些潜在的神经科学主题有所认可,它就可以是一个人工神经网络,即使它使用某种形式的 GA。
如果您使用 GA,则不一定是 ANN。
【讨论】:
神经网络和神经科学之间有一些相似之处,但一般来说,神经网络不会尝试对自然神经元进行建模。以上是关于神经网络与进化算法的区别的主要内容,如果未能解决你的问题,请参考以下文章
BP回归预测基于matlab思维进化算法优化BP神经网络回归预测含Matlab源码 2031期
BP回归预测基于matlab思维进化算法优化BP神经网络回归预测含Matlab源码 2031期