我正在大学里学习一门名为"智能机器"的课程.我们介绍了3种强化学习方法,并且我们给出了直接使用它们的直觉,并引用:
是否有任何好的例子说明何时选择一种方法而不是另一种方法?
machine-learning reinforcement-learning temporal-difference q-learning
I am attempting to implement the algorithm from the TD-Gammon article by Gerald Tesauro. The core of the learning algorithm is described in the following paragraph:
I have decided to have a single hidden layer (if that was enough to play world-class backgammon in the early 1990's, then it's enough for me). I am pretty certain that everything except the train() function is correct (they are easier to test), but I have no idea whether I have implemented this final …
python artificial-intelligence reinforcement-learning temporal-difference
我正在研究这篇文章中的时间差异学习.这里TD(0)的更新规则对我来说很清楚,但是在TD(λ)中,我不明白在一次更新中如何更新所有先前状态的效用值.
以下是用于比较机器人更新的图表:
上图解释如下:
在TD(λ)中,由于合格性迹线,结果传播回所有先前的状态.
我的问题是,即使我们使用具有资格跟踪的以下更新规则,如何将信息传播到单个更新中的所有先前状态?
在单个更新中,我们只更新单个状态Ut(s)的实用程序,然后如何更新所有先前状态的实用程序?
编辑
根据答案,很明显,此更新适用于每一步,这就是传播信息的原因.如果是这种情况,那么它再次让我困惑,因为更新规则之间的唯一区别是资格跟踪.
因此,即使资格跟踪的值对于先前的状态不为零,在上述情况下delta的值将为零(因为最初的奖励和效用函数被初始化为0).那么以前的状态如何在第一次更新中获得除零以外的其他效用值?
同样在给定的python实现中,在单次迭代后给出以下输出:
[[ 0. 0.04595 0.1 0. ]
[ 0. 0. 0. 0. ]
[ 0. 0. 0. 0. ]]
Run Code Online (Sandbox Code Playgroud)
这里只更新了2个值而不是所有5个先前的状态,如图所示.我在这里缺少什么?
我正在尝试构建一个包含卷积和LSTM(使用Torch库)的神经网络,通过Q学习或优势学习进行训练,这两者都需要在更新状态T的权重之前通过网络传播状态T + 1.
必须进行额外的传播会降低性能并且这很糟糕,但也不会太糟糕; 然而,问题是在这种情况下存在各种各样的状态.首先,反向传播的Torch实现具有一些效率快捷方式,这些快捷方式依赖于在前向传播之后立即发生的反向传播,这会导致额外的传播混乱.我可以通过让二级克隆网络共享权重值来解决这个问题,但我们遇到了第二个问题.
涉及LSTM的每个前向传播都是有状态的.当传播网络(T + 1)可能改变了LSTM的内容时,如何在T + 1更新权重?我试着看看在TD-Gammon中对TD重量更新的讨论,但它对我来说是迟钝的,无论如何都是前馈,而不是经常性的.
如何更新网络的权重,而不必将网络推进到T + 1,或者如何将网络推进到T + 1然后返回并调整权重,就好像它仍然是T?
reinforcement-learning neural-network temporal-difference torch lstm
我读到了Tesauro的TD-Gammon计划,并希望将其用于tic tac toe,但几乎所有的信息对我来说都是高中生无法访问的,因为我不知道术语.
这里的第一个等式,http://www.stanford.edu/group/pdplab/pdphandbook/handbookch10.html#x26-1310009.2
给出了"一般监督学习范式".它表示等式左边的w sub t是时间步t的参数向量."时间步长"究竟是什么意思?在设计用于输出电路板状态值的tic tac toe神经网络的框架内,时间步长是指给定游戏中播放的片段数量吗?例如,由字符串"xoxoxoxox"表示的板将在时间步骤9处并且板"xoxoxoxo"将在时间步骤8处?或者时间步骤是指自培训开始以来经过的时间量?
由于w sub t是给定时间步长的权重向量,这是否意味着每个时间步都有自己的评估函数(神经网络)?因此,要仅通过一次移动来评估电路板状态,您必须输入不同的NN,而不是通过两次移动来馈送电路板状态?我想我在这里误解了一些东西,因为据我所知,Tesauro只使用一个NN来评估所有的董事会状态(尽管很难找到关于TD-Gammon的可靠信息).
为什么输出的梯度取决于w而不是w sub?
提前感谢您澄清这些想法.我将不胜感激任何关于我的项目的建议或对易读阅读材料的建议.
machine-learning reinforcement-learning tic-tac-toe temporal-difference
我有一些关于时间差异学习的论文和讲座(有些与神经网络有关,比如TD-Gammon上的Sutton教程),但我很难理解方程式,这引出了我的问题.
- 预测值V_t来自哪里?接下来,我们如何获得V_(t + 1)?
- 当TD与神经网络一起使用时,究竟是什么回传?也就是说,返回传播的错误来自何时使用TD?
artificial-intelligence reinforcement-learning backpropagation neural-network temporal-difference
我目前正在阅读萨顿的Reinforcement Learning: An introduction书。阅读第6.1章后,我想TD(0)为此设置实现RL算法:
这样做时,我想知道如何执行此步骤A <- action given by ? for S:我可以A为当前状态选择最佳动作S吗?由于值函数V(S)仅取决于状态,而不取决于我并不真正知道的操作,因此如何实现。
我发现了这个问题(我从哪里获得图像),该问题涉及相同的练习-但在这里,操作是随机选择的,而不是由操作策略选择的?。
编辑:或者这是伪代码不完整的,所以我也必须以action-value function Q(s, a)另一种方式近似?