用强化学习训练神经网络

Ken*_*rey 61 language-agnostic algorithm machine-learning reinforcement-learning neural-network

我知道前馈神经网络的基础知识,以及如何使用反向传播算法对它们进行训练,但我正在寻找一种算法,而不是我可以用来通过强化学习在线训练ANN.

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

另一种情况是蛇游戏,其中反馈被延迟,并且仅限于目标和反目标,而不是奖励.

我可以为第一种情况考虑一些算法,比如爬山或遗传算法,但我猜它们都会很慢.它们也可能适用于第二种情况,但速度极慢,不利于在线学习.

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

Kir*_*ril 27

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

还有一些代码:

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

  • Q-learning是否涉及一系列有限的行动?理想的推车杆问题将有一系列连续的动作.那是问题吗? (2认同)

Jun*_*uxx 7

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

1)如果您在rmin-rmax范围内有一组奖励,请将它们重新调整0-(rmax-rmin)为非负值.奖励越大,所创造的强化越强.

2)对于负面奖励-r,反向传播随机输出r时间,只要它与导致负面奖励的时间不同.这不仅可以增强理想的产出,还可以扩散或避免不良产出.

  • 为什么要这样重新调整奖励?他们需要重新缩放吗?通过这样做,奖励'rmin`在重新缩放后变为'0`,因此应该是奖励将对网络没有强化效果. (4认同)