标签: temporal-difference

Q学习与时间差异与基于模型的强化学习

我正在大学里学习一门名为"智能机器"的课程.我们介绍了3种强化学习方法,并且我们给出了直接使用它们的直觉,并引用:

  1. Q-Learning - 无法解决MDP的最佳选择.
  2. 时间差异学习 - 当MDP已知或可以学习但无法解决时最佳.
  3. 基于模型 - 在无法学习MDP时最佳.

是否有任何好的例子说明何时选择一种方法而不是另一种方法?

machine-learning reinforcement-learning temporal-difference q-learning

20
推荐指数
1
解决办法
1万
查看次数

Implementing the TD-Gammon algorithm

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

11
推荐指数
1
解决办法
221
查看次数

坚持理解TD(0)和TD(λ)的更新用途之间的区别

我正在研究这篇文章中的时间差异学习.这里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个先前的状态,如图所示.我在这里缺少什么?

machine-learning reinforcement-learning temporal-difference

9
推荐指数
1
解决办法
230
查看次数

神经网络强化学习需要用于反向传播的下一状态传播

我正在尝试构建一个包含卷积和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

5
推荐指数
0
解决办法
326
查看次数

时间差异学习的更新

我读到了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

4
推荐指数
1
解决办法
1158
查看次数

神经网络与时间差异学习

我有一些关于时间差异学习的论文和讲座(有些与神经网络有关,比如TD-Gammon上的Sutton教程),但我很难理解方程式,这引出了我的问题.

- 预测值V_t来自哪里?接下来,我们如何获得V_(t + 1)?

- 当TD与神经网络一起使用时,究竟是什么回传?也就是说,返回传播的错误来自何时使用TD?

artificial-intelligence reinforcement-learning backpropagation neural-network temporal-difference

4
推荐指数
1
解决办法
1599
查看次数

如何在TD(0)学习中选择动作

我目前正在阅读萨顿的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)另一种方式近似?

reinforcement-learning temporal-difference

4
推荐指数
1
解决办法
740
查看次数