【问题标题】:How to choose action in TD(0) learningTD(0)学习中如何选择动作
【发布时间】:2017-12-27 03:23:37
【问题描述】:

我目前正在阅读 Sutton 的 Reinforcement Learning: An introduction 书。阅读第 6.1 章后,我想为此设置实现 TD(0) RL 算法:

为此,我尝试实现此处提供的伪代码:

这样做我想知道如何执行此步骤A <- action given by π for S:我可以为当前状态S 选择最佳操作A?由于值函数V(S) 仅取决于状态而不取决于我不知道的操作,因此如何做到这一点。

我发现 this 问题(我从哪里得到图像)处理相同的练习 - 但这里的动作只是随机选择的,而不是由动作策略 π 选择的。

编辑:或者这是伪代码不完整,所以我也必须以另一种方式近似action-value function Q(s, a)

【问题讨论】:

    标签: reinforcement-learning temporal-difference


    【解决方案1】:

    你是对的,你不能只从价值函数V(s) 中选择一个动作(既不能派生策略π),因为正如你所注意到的,它只取决于状态s

    您可能在这里遗漏的关键概念是 TD(0) 学习是一种计算 给定 策略的价值函数的算法。因此,您假设您的代理遵循已知策略。在随机游走问题的情况下,策略在于随机选择动作。

    如果你想能够学习一个策略,你需要估计动作价值函数Q(s,a)。有几种方法可以基于时差学习来学习Q(s,a),例如 SARSA 和 Q-learning。

    在 Sutton 的 RL 书中,作者区分了两种问题:预测问题和控制问题。前者指的是估计给定策略的价值函数的过程,后者指的是估计策略(通常通过动作价值函数)。您可以在starting part of Chapter 6 中找到对这些概念的参考:

    像往常一样,我们首先关注政策评估或预测 问题,估计给定策略的价值函数的问题。 对于控制问题(寻找最优策略),DP、TD 和 Monte Carlo 方法都使用了一些广义策略迭代的变体 (GPI)。方法的不同主要在于方法的不同 他们解决预测问题的方法。

    【讨论】:

    • 好的,非常感谢。我认为策略π 只是一个函数,它为给定状态提供最佳操作 - 但要做到这一点,我必须知道所有值Q,因此该策略不仅仅是“选择最好的”程序动作”,还有(动作,状态)元组到它们的值的内部映射。这是正确的吗?
    • 嗯,不完全是,策略π 是从状态到操作的映射。具体来说,策略π 是从每个状态s 和动作a 到当代理处于状态s 时采取动作a 的概率的映射。最优策略是使代理在长期内获得的奖励最大化的策略。 给定策略的动作价值函数Q估计在状态s中采取动作a时获得的长期奖励。一些方法,例如 Q-learning,通过估计最优 Q 函数来工作,然后从中推导出最优策略。
    • 好的,这对我来说也很有意义。谢谢!我又得到了一个问题:我完成了上面的示例,并且能够在使用gamma = 1.0 时计算V 的理论期望值。但是当我将 gamma 降低到 0.9 时,分布发生了变化,我得到了 V = 0.063 0.144 0.262 0.431 0.694 的值 - 这该如何解释?
    • 太棒了! :) 我不知道我是否正确理解了您的问题,但是如果参数gamma 更改,值函数也应该更改,对吗?请记住,值函数被定义为预期返回R,这取决于gamma。然后,在将gamma = 1.0 替换为gamma = 0.9 时,预计V 会发生变化。
    • 嗯...是这样吗?我有点困惑,因为在 Sutton 的书中示例 6.2(见上图)中说,值函数V 的真实值可以计算为1/6, 2/6, ...,而无需提及gamma 的值。因此,我认为V 独立于gamma,而gamma 只是定义了算法收敛到真实值的速度。
    猜你喜欢
    • 2016-06-09
    • 1970-01-01
    • 2020-06-16
    • 2014-10-24
    • 2017-08-31
    • 1970-01-01
    • 2020-05-03
    • 1970-01-01
    • 2021-02-16
    相关资源
    最近更新 更多