用强化学习训练神经网络
我知道前馈神经网络的基础知识,以及如何使用反向传播算法来训练它们,但是我正在寻找一种算法,而不是我可以用来在线训练带有强化学习的ANN。
例如,推车杆摆动问题是我想用ANN解决的问题。 在那种情况下,我不知道应该怎样控制钟摆,我只知道我离理想位置有多近。 我需要根据奖励和惩罚让ANN学习。 因此,监督学习不是一种选择。
另一种情况就像蛇游戏一样,反馈延迟,只限于目标和反目标,而不是奖励。
对于第一种情况,我可以考虑一些算法,比如爬山或遗传算法,但我猜他们都会很慢。 它们也可能适用于第二种情况,但速度非常慢,并且不利于在线学习。
我的问题很简单: 是否有一个简单的算法来训练具有强化学习的人工神经网络? 我主要关注实时奖励情况,但是如果有基于目标的情况的算法可用,甚至更好。
有关于这个主题的一些研究论文:
还有一些代码:
这些只是该主题上的顶级谷歌搜索结果中的一部分。 前两篇论文看起来很不错,虽然我没有亲自阅读。 如果您在Google学术搜索上进行快速搜索,我想您会发现更多有关强化学习的神经网络信息。
如果导致奖励r
的产出被反向传播到网络r
时间内,您将按比例增加奖励。 这不直接适用于负面奖励,但我可以想到两种解决方案会产生不同的效果:
1)如果您在rmin-rmax范围内有一组奖励,将其重新调整为0-(rmax-rmin)
以使它们全部为非负值。 奖励越大,创建的钢筋就越强。
2)对于负面报酬-r
,只要与导致负面报酬的产品不同,就反向传播随机产出r
次。 这不仅会加强理想的产出,而且会扩散或避免不良的产出。
上一篇: Training a Neural Network with Reinforcement learning
下一篇: How to train an artificial neural network to play Diablo 2 using visual input?