Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/algorithm/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Algorithm 用强化学习训练神经网络_Algorithm_Language Agnostic_Machine Learning_Neural Network_Reinforcement Learning - Fatal编程技术网

Algorithm 用强化学习训练神经网络

Algorithm 用强化学习训练神经网络,algorithm,language-agnostic,machine-learning,neural-network,reinforcement-learning,Algorithm,Language Agnostic,Machine Learning,Neural Network,Reinforcement Learning,我知道前馈神经网络的基础知识,以及如何使用反向传播算法对其进行训练,但我正在寻找一种算法,以便使用强化学习在线训练神经网络 例如,我想用人工神经网络来解决这个问题。在这种情况下,我不知道应该做什么来控制钟摆,我只知道我离理想位置有多近。我需要让安在奖惩的基础上学习。因此,监督学习不是一种选择 另一种情况类似于,反馈被延迟,仅限于目标和反目标,而不是奖励 我可以想到一些适用于第一种情况的算法,比如爬山算法或遗传算法,但我猜它们都会很慢。它们可能也适用于第二种情况,但速度非常慢,不利于在线学习 我的

我知道前馈神经网络的基础知识,以及如何使用反向传播算法对其进行训练,但我正在寻找一种算法,以便使用强化学习在线训练神经网络

例如,我想用人工神经网络来解决这个问题。在这种情况下,我不知道应该做什么来控制钟摆,我只知道我离理想位置有多近。我需要让安在奖惩的基础上学习。因此,监督学习不是一种选择

另一种情况类似于,反馈被延迟,仅限于目标和反目标,而不是奖励

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


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

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

还有一些代码:

  • 用于神经网络强化学习

这些只是谷歌在这个主题上的一些顶级搜索结果。前几篇文章看起来不错,尽管我没有亲自读过。我想如果你在Google Scholar上快速搜索,你会发现关于强化学习的神经网络的更多信息。

如果导致奖励
r
的输出被反向传播到网络中
r
次,你会根据奖励成比例地强化网络。这并不直接适用于负面奖励,但我可以想到两种会产生不同效果的解决方案:

1) 如果您有一组在rmin rmax范围内的奖励,请将其重新缩放为
0-(rmax rmin)
,使其均为非负。奖励越大,产生的强化作用越强


2) 对于负奖励
-r
,反向传播随机输出
r
次,只要它不同于导致负奖励的输出。这不仅能强化理想的输出,还能扩散或避免不良输出。

有趣。我想知道这如何适用于延迟的奖励。我猜将任何不是目标的东西都指定为一个小的负奖励是可行的。@Kendall Frey:对于一个比普通神经网络更能处理延迟的神经网络,请参见(),或者参见()。为什么要这样重新缩放奖励?他们需要重新缩放吗?通过这样做,重新缩放后,奖励
rmin
将变为
0
,因此本应是奖励的内容将不会对网络产生增强效果。这是一个绝妙的想法!!这很简单,但对我来说也很有效+1第三个链接提到了Q-learning。这是否适用于手推车杆问题?这似乎是适用的,因为它允许您在没有环境模型的情况下比较可用操作的预期效用。所以,如果你正在用硬件解决一个实际的车杆问题,那么这将是有帮助的。有关Q-learning的更多详细信息,请参见:Q-learning是否涉及一组有限的动作?理想的车杆问题将有一组连续的动作。这是一个问题吗?@ProQ链接包括一个前馈神经网络“train.c是一个c程序,用于训练多层前馈神经网络,使用提前停止和交叉验证进行误差反向传播。”@Lirik啊,对不起,我滚动得太远了。非常感谢。好问题,我的想法几乎完全一样,在我的例子中,神经网络是循环的。一个关键点是,您正在讨论两种不同的学习算法。除非你有办法解决问题,否则你不能对同一个问题应用两种不同的学习算法而不引起冲突。