用强化学习训练neural network

我知道前馈neural network的基础知识,以及如何使用反向传播algorithm来训练它们,但是我正在寻找一种algorithm,比我可以用来在线训练ANN强化学习。

例如, 推车杆摆动问题是我想用ANN解决的问题。 在这种情况下,我不知道应该怎样控制钟摆,我只知道我离理想位置有多近。 我需要根据奖励和惩罚来学习。 因此,监督式学习不是一种select。

另一种情况就像蛇游戏 ,反馈延迟,只限于目标和反目标,而不是奖励。

对于第一种情况,我可以考虑一些algorithm,比如爬山或者遗传algorithm,但是我猜测它们都会很慢。 他们也可能适用于第二种情况,但速度非常慢,不利于在线学习。

我的问题很简单: 是否有一个简单的algorithm来训练强化学习的人工neural network? 我主要对实时奖励情况感兴趣,但是如果有基于目标的情况的algorithm可用,甚至更好。

有一些关于这个话题的研究论文:

  • 通过演化neural network拓扑进行有效的强化学习(2002)
  • 使用neural network进行强化学习,以及在电机控制中的应用
  • 强化学习neural network对自主移动机器人避障问题的研究

还有一些代码:

  • neural network强化学习的代码示例 。

这些只是一些关于该主题的顶级谷歌search结果。 前两篇论文看起来很不错,虽然我没有亲自阅读。 如果您在Google学术search上进行快速search,我想您会发现更多有关强化学习的neural network信息。

如果导致奖励r的输出被反向传播到networkingr次,您将按比例增强networking的回报。 这不是直接适用于负面的奖励,但我可以想到两个解决scheme,将产生不同的影响:

1)如果您在rmin-rmax范围内有一组奖励,则将其重新调整为0-(rmax-rmin)以使它们均为非负值。 奖励越大,创build的钢筋就越强。

2)对于负面报酬-r ,反向传播随机产出r次,只要它不同于导致负面报酬的产出。 这不仅会加强理想的产出,而且会扩散或避免不好的产出。