55

我知道前馈神经网络的基础知识,以及如何使用反向传播算法训练它们,但是我正在寻找一种算法,而不是我可以用来在线训练ANN以进行强化学习。例如,cart pole swing up问题是我想用ANN解决的问题。在那种情况下,我不知道应该怎样控制钟摆,我只知道我离理想位置有多近。我需要根据奖励和惩罚让ANN学习。因此,监督学习不是一种选择。使用增强学习训练神经网络

另一种情况类似于snake game,其中反馈延迟,并限于目标和反目标,而不是奖励。

我能想到的第一种情况的一些算法,如爬山或遗传算法,但我猜他们都会很慢。它们也可能适用于第二种情况,但速度非常慢,并且不利于在线学习。

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

+1

好问题,我在想几乎完全一样的东西,在我的情况下神经网络是经常性的。关键之一是你正在谈论2种不同的学习算法。除非您有办法解决这些问题,否则您不能将两种不同的学习算法应用于同一问题而不会导致冲突。 –

回答

24

上有一些课题研究论文:

而且一些代码:

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

+0

第三个链接提到了一些关于Q-learning的内容。这适用于推车问题吗? –

+0

它似乎是适用的,因为它允许您比较可用操作的预期效用,而无需使用环境模型。所以,如果你正在用硬件来做一个实际的推车问题,那么这将会很有帮助。有关Q学习的更多详细信息,请参阅:http://www.applied-mathematics.net/qlearning/qlearning.html – Kiril

+2

Q学习是否涉及有限的一组操作?理想的手推车问题将会有一连串的行动。那是问题吗? –

7

如果将导致奖励r的输出反向传播到网络r次,则您将按比例增强网络的奖励。这不直接适用于负面奖励,但我可以想到两种解决方案会产生不同的效果:

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

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

+0

有趣。我想知道这是如何适用于延迟奖励。我猜测这将有助于指定任何不是目标的东西作为一个小的负面报酬。 –

+0

@Kendall Frey:对于可以更好地处理正常神经网络延迟的神经网络,请参阅[长期短期记忆](https://en.wikipedia.org/wiki/Long_short_term_memory)([Youtube视频](http: /www.youtube.com/watch?v=izGl1YSH_JA)),或参见[分层时间记忆](https://en.wikipedia.org/wiki/Hierarchical_temporal_memory)([Youtube视频](http://www.youtube .COM /手表?ν= 48R-IeYOvG4))。 – HelloGoodbye

+3

为什么要重新调整那样的奖励呢?他们是否需要重新缩放?通过这样做,奖励'rmin'在重新缩放之后变为'0',所以应该是奖励的结果将对网络没有强化效果。 – HelloGoodbye