我对进化算法有很好的基础,所以现在我开始阅读人工神经网络。我遇到过这个教程 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?
谢谢!
答案 0 :(得分:19)
遗传算法是优化算法。
人工神经网络是函数逼近器。为了逼近函数,您需要一个优化算法来调整权重。人工神经网络可用于监督学习(分类,回归)或强化学习,有些甚至可用于无监督学习。
在监督学习中,像遗传算法这样的无导数优化算法比使用梯度信息的大多数优化算法要慢。因此,在强化学习中用遗传算法进化神经网络才有意义。这被称为“神经进化”。像这种设置中的多层感知器这样的神经网络的优势在于,当它们具有足够数量的隐藏节点时,它们可以以任意精度逼近任何函数。
当您创建一个俄罗斯方块机器人时,您不一定必须使用ANN作为函数逼近器。但是你需要某种函数近似来代表机器人的政策。我想它比ANN更简单。但是当你想要创建一个复杂的非线性策略时,你可以做到这一点。 G。与ANN。
答案 1 :(得分:6)
阿尔法的答案是完美的。这只是一张图片来说明他所说的话:
Meta-Optimizer =无(但可能)
优化器=遗传算法
问题=俄罗斯方块机器人(例如人工神经网络)
答案 2 :(得分:3)
如果你不知道答案,你可以使用进化算法但是你能够以某种方式对候选人进行评分并提供有意义的突变。
如果您已经有了答案(和输入)并且您想“训练计算机”以便它可以“猜测”未知输入的答案,那么神经网络就很棒。此外,您不必考虑很多问题,网络将自行解决。
检查此“游戏AI”示例:https://synaptic.juancazala.com/#/
(注意它是多么简单,你所要做的就是给他们足够的训练,你不必知道关于游戏AI的事情 - 一旦它足够好你所要做的就是“下载”内存和在需要时运行它)
答案 3 :(得分:0)
我不是专家,而是基于我在现场所知道的......
人工神经网络最终具有神经科学的基础。它试图通过在算法中构建类似神经元的结构来模拟/建模其行为。强调问题的学术性质而不是结果。据我所知,由于这个原因,ANN从工程角度来看并不是很受欢迎。机器学习的统计基础(HMM和贝叶斯网络)产生更好的结果。
简而言之,只要它对一些潜在的神经科学科目有点头,它就可以是人工神经网络,即使它使用某种形式的遗传算法。
如果您使用GA,则不一定是ANN。