用强化学习训练neural network

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

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

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

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

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

2 Solutions collect form web for “用强化学习训练neural network”

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

  • 通过演化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次,只要它不同于导致负面报酬的产出。 这不仅会加强理想的产出,而且会扩散或避免不好的产出。

  • tf.nn.conv2d在tensorflow中做什么?
  • 感知器学习algorithm不会收敛到0
  • InfogainLoss图层
  • Tensorflow步幅参数
  • 如何在caffe中训练/testing我自己的数据集?
  • 如何更新neural network反向传播的偏见?
  • convert_imageset.cpp指南
  • 深信仰networking与卷积neural network
  • Epoch vs迭代当训练neural network时
  • 为什么要将neural network的权重初始化为随机数?
  • Tensorflow一个热门编码器?