我知道前馈神经网络的基础知识,以及如何使用反向传播算法对它们进行训练,但我正在寻找一种算法,而不是我可以用来通过强化学习在线训练ANN。
例如,cart pole swing up问题是我想用ANN解决的问题。在那种情况下,我不知道应该怎样做才能控制钟摆,我只知道我与理想位置有多接近。我需要根据奖励和惩罚来学习ANN。因此,监督学习不是一种选择。
另一种情况类似于snake game,其中反馈被延迟,并且仅限于目标和反目标,而不是奖励。
我可以为第一种情况考虑一些算法,例如爬山或遗传算法,但我猜他们都会很慢。它们也可能适用于第二种情况,但速度极慢,不利于在线学习。
我的问题很简单:是否有一种简单的算法来训练具有强化学习的人工神经网络?我主要对实时奖励情况感兴趣,但是如果算法是基于目标的情况可用,甚至更好。
答案 0 :(得分:26)
有一些关于这个主题的研究论文:
还有一些代码:
这些只是该主题的一些顶级谷歌搜索结果。前几篇论文看起来很不错,虽然我没有亲自阅读。如果您在Google学术搜索中快速搜索,我想您会发现有关强化学习的神经网络的更多信息。
答案 1 :(得分:7)
如果导致奖励r
的输出反向传播到网络r
次,您将按比例增加网络奖励。这不能直接适用于负面奖励,但我可以想到两种产生不同效果的解决方案:
1)如果您在rmin-rmax范围内有一组奖励,请将它们重新调整为0-(rmax-rmin)
,以便它们都是非负数。奖励越大,所创造的强化就越强。
2)对于否定奖励-r
,反向传播随机输出r
次,只要它与导致负面奖励的那个不同。这不仅可以增强理想的产出,还可以扩散或避免不良产出。