【问题标题】:Updates in Temporal Difference Learning时间差异学习的更新
【发布时间】:2012-05-28 14:14:12
【问题描述】:

我阅读了有关 Tesauro 的 TD-Gammon 程序的信息,并且很想在井字游戏中实施它,但作为一名高中生,我几乎无法获得所有信息,因为我不知道术语。

这里的第一个方程,http://www.stanford.edu/group/pdplab/pdphandbook/handbookch10.html#x26-1310009.2

给出了“一般监督学习范式”。它表示等式左侧的 w sub t 是时间步 t 的参数向量。 “时间步长”究竟是什么意思?在旨在输出棋盘状态值的井字游戏神经网络的框架内,时间步长是否指给定游戏中的棋子数量?例如,由字符串“xoxoxoxox”表示的棋盘将在时间步 9,而棋盘“xoxoxoxo”将在时间步 8?或者时间步长是指自训练开始以来经过的时间量?

既然 w sub t 是给定时间步的权重向量,这是否意味着每个时间步都有自己的评估函数(神经网络)?所以要评估一个只有一个动作的棋盘状态,你必须输入一个不同的神经网络,而不是用两个动作输入一个棋盘状态?我想我在这里误解了一些东西,因为据我所知,Tesauro 仅使用一个 NN 来评估所有棋盘状态(尽管很难找到有关 TD-Gammon 的可靠信息)。

为什么输出的梯度是相对于 w 而不是 w sub t 的?

提前感谢您澄清这些想法。对于我的项目或无障碍阅读材料的建议,我将不胜感激。

【问题讨论】:

    标签: machine-learning tic-tac-toe reinforcement-learning temporal-difference


    【解决方案1】:

    TD 在Markov Decision Process 的框架内处理学习。也就是说,你从某个状态 st 开始,执行一个动作 at,获得奖励 rt,最后进入另一个状态—— st+1。初始状态称为 s0。下标称为时间。

    TD 智能体开始不知道它会因为什么动作而获得什么奖励,或者这些动作会将它带到什么其他状态。它的目标是了解哪些行为可以最大化长期总回报。

    状态可以代表井字棋棋盘的状态。因此,在您的情况下, s0 将是一个清晰的板:“---------”, s1 可能是“-o---- ---", s2 可能是 "-o--x----" 等等。动作可能是要标记的单元格索引。使用此表示,您将拥有 39=19 683 个可能的状态和 9 个可能的操作。学习完游戏后,您会看到一张表格,告诉您在每个可能的棋盘上标记哪个单元格。

    同样的直接表示方式不适用于双陆棋,因为可能的状态太多了。 TD-Gammon 所做的是使用神经网络的近似状态。网络的权重被视为状态向量,奖励始终为 0,除非获胜。

    这里的棘手部分是 TD-Gammon 算法学习的状态是用于评估棋盘位置的神经网络的状态,而不是棋盘的状态。因此,在 t=0 时,您还没有玩过一场游戏,并且网络处于初始状态。每次您必须采取行动时,您都使用网络来选择可能的最佳行动,然后根据该行动是否导致胜利来更新网络的权重。在移动之前,网络的权重为 wt,之后的权重为 wt+1。在玩了数十万场游戏后,您会学习到权重,让神经网络能够非常准确地评估棋盘位置。

    我希望这可以解决问题。

    【讨论】:

    • 感谢唐热巴的详细回复!那么 TD-Gammon 会在程序每次移动时更新权重?
    • 是的,每次移动都会更新。如果移动未以胜利告终,则更新为零奖励。
    猜你喜欢
    • 2016-05-25
    • 2014-06-07
    • 1970-01-01
    • 2016-03-14
    • 2019-06-07
    • 2013-05-21
    • 1970-01-01
    • 2011-06-18
    • 2019-05-06
    相关资源
    最近更新 更多