【问题标题】:How do neural networks use genetic algorithms and backpropagation to play games?神经网络如何使用遗传算法和反向传播来玩游戏?
【发布时间】:2016-04-05 19:49:13
【问题描述】:

我遇到了this interesting video on YouTube on genetic algorithms

正如您在视频中看到的那样,机器人学会了战斗。
现在,我研究神经网络已经有一段时间了,我想开始学习遗传算法。这以某种方式结合了两者。

您如何结合遗传算法和神经网络来做到这一点?
在这种情况下,您如何知道用于反向传播和更新权重并训练网络的错误?还有你认为视频中的程序是如何计算它的适应度函数的?我猜视频中的程序肯定发生了突变,但是交叉呢?

谢谢!

【问题讨论】:

  • 在这种情况下,反向传播通常比遗传算法好得多
  • 试着找到一个很好的反向传播介绍:)
  • 你认为视频中的程序如何...计算适应度函数?

标签: neural-network genetic-algorithm reinforcement-learning


【解决方案1】:

您如何结合遗传算法和神经网络来做到这一点?

可以使用遗传算法和反向传播算法的组合来训练神经网络,或者您可以使用反向传播算法训练一批网络,然后使用遗传算法选择您认为最有希望的一批。

以及如何知道在这种情况下您使用的错误 反向传播并更新您的权重并训练网络?

误差计算可能因算法而异,但一般来说,如果您使用监督学习方法,则必须将误差计算与期望的学习目标保持一定距离。

我建议看看最先进的(当前)遗传算法之一是NEAT

【讨论】:

  • 您认为视频中的程序是如何完成的?您认为它如何集成遗传算法和神经网络?
  • 我觉得你对视频不太了解(虽然我没看过)。此链接可能会有所帮助ai-junkie.com/ann/evolved/nnt1.html
  • @SSR 似乎使用遗传算法作为一种方法来教授神经网络而不是反向传播。
  • @Untitled123 可能是吧,我觉得是普通的多层感知器,把“老师”当成某种通用算法。
  • 不得不承认,没看到视频哈哈
【解决方案2】:

这是一个强化学习问题,其中神经网络的输出是键盘上的键,以使适应度函数给出的分数最大化。使用遗传算法 (GA) 并从初始神经网络架构开始,GA 倾向于找到更好的架构,以迭代方式最大化适应度函数。 GA 通过繁殖它们的种群来生成不同的架构,然后将它们用于任务(玩游戏),选择产生更高分数的架构(使用适应度函数)。下次 GA 使用最佳架构候选者(GA 术语中的父母)用于繁殖,并再次重复生成新种群(架构)的过程。当然,育种也包括变异。

此过程一直持续到满足终止标准(适应度函数的特定值或生成多个种群)。您可能会注意到遗传算法的计算量非常大,因此在处理大规模问题时有点被抛弃。自然,在生成架构时,它会使用反向传播或任何其他适用的优化技术(包括 GA)进行训练。

例如,this video 展示了遗传算法如何帮助选择“最佳”架构来玩马里奥,而且做得非常好!但是,请注意,如果 GA 选择了一个架构来在一个级别中很好地玩马里奥,那么该架构不一定会在下一个级别中表现良好,如 another video 所示。在我看来,这是因为遗传算法和反向传播都倾向于找到局部最小值。所以还有很长的路要走……

来源

【讨论】:

  • 什么是适应度函数..在我提到的视频的情况下?
  • @SSR 他们应该自己解释的,但我假设适应度函数拍摄成功。
  • @SSR 请注意,如今正在使用新的学习方法来使用神经网络玩游戏。去年,谷歌研究人员在伦敦完成了一项情感工作。您可以查看“深度 Q 学习”以了解更多信息。
  • 谢谢.. 但我正在寻找制作游戏,无论如何感谢您的回答!
【解决方案3】:

您可以使用通用算法作为优化神经网络的另一种方式。您可以使用遗传算法优化权重,而不是使用默认算法(也是迄今为止使用最多的反向传播)。

请看一下这个paper。在那里,我们提出了一种称为神经进化的算法,它是神经网络与称为差分进化的遗传算法的组合。它用于使人形机器人检测人类情绪并与之交互。关于这个问题也有广泛的最新技术。希望对您有所帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-04-15
    • 2014-03-15
    • 2017-09-28
    • 2015-03-03
    • 2012-02-21
    • 2011-01-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多