我知道前馈神经网络的基础知识,以及如何使用反向传播算法训练它们,但我正在寻找一种算法,而不是我可以用来通过强化学习在线训练ANN .
例如,cart pole swing up问题是我知道应该如何控制钟摆的问题,我只知道我与理想位置有多接近 . 我需要根据奖励和惩罚来学习ANN . 因此,监督学习不是一种选择 .
另一种情况类似于snake game,其中反馈被延迟,并且仅限于目标和反目标,而不是奖励 .
我可以为第一种情况考虑一些算法,比如爬山或遗传算法,但我猜它们都会很慢 . 它们也可能适用于第二种情况,但速度极慢,不利于在线学习 .
我的问题很简单: Is there a simple algorithm for training an artificial neural network with reinforcement learning? 我主要对实时奖励情况感兴趣,但如果基于目标的情境算法可用,甚至更好 .
2 回答
有一些关于这个主题的研究论文:
Efficient Reinforcement Learning Through Evolving Neural Network Topologies (2002)
Reinforcement Learning Using Neural Networks, with Applications to Motor Control
Reinforcement Learning Neural Network To The Problem Of Autonomous Mobile Robot Obstacle Avoidance
还有一些代码:
这些只是该主题的一些顶级谷歌搜索结果 . 前几篇论文看起来很不错,虽然我没有亲自阅读 . 如果您在Google学术搜索中快速搜索,我想您会发现有关强化学习的神经网络的更多信息 .
如果导致奖励
r
的输出反向传播到网络r
次,您将按比例增加网络奖励 . 这不能直接适用于负面奖励,但我可以想到两种产生不同效果的解决方案:1)如果您在rmin-rmax范围内有一组奖励,请将它们重新调整为
0-(rmax-rmin)
,以便它们都是非负数 . 奖励越大,创造的强化越强 .2)对于负面奖励
-r
,反向传播一个随机输出r
次,只要它与导致负面奖励的那个不同 . 这不仅可以增强理想的产出,还可以扩散或避免不良产出 .