【问题标题】:Why Q-Learning is Off-Policy Learning?为什么 Q-Learning 是 Off-Policy 学习?
【发布时间】:2021-01-21 07:46:56
【问题描述】:

你好 Stack Overflow 社区!

目前,我正在关注 David Silver 的强化学习讲座,并且在他的“无模型控制”幻灯片中的某个时刻感到非常困惑。

在幻灯片中,Q-Learning 被认为是离策略学习。我无法理解这背后的原因。他还提到我们有目标和行为政策。行为策略在 Q-Learning 中的作用是什么?

当我查看算法时,它看起来非常简单,就像使用最大 Q(s',a') 函数更新您的 Q(s,a) 估计值。幻灯片中说“我们使用行为策略选择下一个动作”,但这里我们只选择最大值。

我对 Q-Learning 算法感到很困惑。你能帮帮我吗?

幻灯片链接(第 36-38 页): http://www0.cs.ucl.ac.uk/staff/d.silver/web/Teaching_files/control.pdf

【问题讨论】:

    标签: reinforcement-learning q-learning


    【解决方案1】:

    先检查这个答案https://stats.stackexchange.com/a/184794

    据我所知,目标策略是我们设置的策略,它可能是 epsilon-greedy 或其他。但是在行为策略中,我们只是使用贪婪策略来选择动作,甚至没有考虑我们的目标策略是什么,因此它估计我们的 Q 假设遵循了贪婪策略,尽管它没有遵循贪婪策略。

    【讨论】:

    • 那么,如果我们根据行为策略更新我们的 Q 函数估计,那么不采取最大化 Q 函数的行动而是更新我们的政策并采取一些概率的行动的原因是什么?方法?我们将获得什么?
    • 我们使用像 epsilon-greedy 这样的概率方法来进行一些探索,以便我们的代理可以更好地了解环境。另外,我认为 q-learning 使用行为策略是为了更快地收敛。让我知道这对你有帮助:)
    • 非常感谢您提供的信息,这很有帮助,但我想我无法表达我无法理解的观点。让我这样解释,我们正在根据我们的政策采取行动,这是目标政策。在这里,我们的目标是找到具有最优策略的最优 Q 函数值。如果我们在更新期间使用行为策略,那么在采取行动的同时遵循另一个策略,目标策略是什么意思?由于我知道探索问题,我们使用 epsilon-greedy 改进,但是如果我们使用行为策略来找到最优 Q,为什么我们遵循目标策略?
    • 我认为应该交换红色的文字。
    • @roachsinai 怎么来的?因为据我所知,目标政策是我们定义的(贪婪),而行为政策是我们更新价值函数的内容(不考虑我们的实际政策)
    【解决方案2】:

    理想情况下,您想学习真正的 Q 函数,即满足贝尔曼方程的函数

    Q(s,a) = R(s,a) + gamma*E[Q(s',a')]   forall s,a
    

    期望超过a' w.r.t 政策。

    首先,我们近似问题并摆脱“forall”,因为我们只能访问少量样本(特别是在连续动作中,其中“forall”导致无限多的约束)。其次,假设您想学习确定性策略(如果有最优策略,则存在确定性最优策略)。然后期望消失了,但是您需要以某种方式收集样本。这就是“行为”策略的用武之地,它通常只是您要优化的策略的噪声版本(最常见的是 e-greedy,或者如果动作是连续的,则添加高斯噪声)。

    因此,现在您已经从要优化的行为策略和目标策略(确定性)中收集了样本。 得到的方程是

    Q(s,a) = R(s,a) + gamma*Q(s',pi(s'))
    

    两个方面的区别在于 TD 误差,如果从行为策略中收集到样本,您希​​望将其最小化

    min E[R(s,a) + gamma*Q(s',pi(s')) - Q(s,a)] 
    

    使用行为策略收集的样本(s,a,s') 来近似预期。

    如果我们考虑 Soroush 的伪代码,如果动作是离散的,那么 pi(s') = max_A Q(s',A) 并且更新规则是 TD(0) 错误的导数。

    这些是了解 TD 更多信息的好书:1、2、3、4。


    编辑

    只是为了强调开启和关闭策略之间的区别。 SARSA 是 on-policy,因为更新策略的 TD 错误是

    min E[R(s,a) + gamma*Q(s',a') - Q(s,a)] 
    

    a' 是使用行为策略对数据进行采样时收集的操作,而不是pi(s')(目标策略在状态s' 中选择的操作)。

    【讨论】:

    • 所以,您是说我们正在尝试使用行为策略来创建目标策略。我们跟踪系统上的一些情节并更新行为策略,在更新它的同时,我们还更新我们的目标策略以最小化它们之间的差异。我们正在尝试获取目标策略,但我们正在遵循行为策略,所以 Q-learning 是离策略学习?
    • 是和不是。是:我们使用行为策略更新目标策略。不:我们不会更新行为,也不会最小化目标和行为之间的差异。该行为只是向目标添加噪声,而噪声不会更新(您可以将其定义为随着学习迭代而减少,但您不会学习)。
    • 哦,好吧。非常感谢:)
    【解决方案3】:

    @Soroush 的答案只有在交换红色文本时才是正确的。离策略学习意味着您尝试使用从另一个或多个策略采样的轨迹来学习最优策略 $\pi$。这意味着 $\pi$ 不用于生成在环境中执行的实际操作。由于 A 是来自 $\epsilon$-greedy 算法的执行动作,因此它不是来自 $\pi$(目标策略)而是另一个策略(行为策略,因此名称为“行为”)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-11-04
      • 2019-10-12
      • 1970-01-01
      • 1970-01-01
      • 2017-02-12
      • 2016-06-09
      • 1970-01-01
      • 2011-10-14
      相关资源
      最近更新 更多