神经网络如何使用遗传算法和反向传播来玩游戏?

SSR*_*SSR 9 reinforcement-learning neural-network genetic-algorithm

在YouTube上看到了有关遗传算法的有趣视频.

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

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

谢谢!

Ami*_*mir 3

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

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

例如,该视频展示了遗传算法如何帮助选择“最佳”架构来玩马里奥,而且它做得非常好!然而,请注意,如果 GA 选择一种架构能够在一个关卡中很好地玩《马里奥》,那么该架构不一定在下一个关卡中表现良好,如另一个视频所示。在我看来,这是因为遗传算法和反向传播都倾向于找到局部最小值。所以还有很长的路要走...

来源