off-policy 和 on-policy 学习有什么区别?

机器算法验证 机器学习 强化学习 人工智能
2022-02-07 21:21:20

人工智能网站将 off-policy 和 on-policy 学习定义如下:

“离策略学习器独立于代理的动作学习最优策略的值。Q-learning 是离策略学习器。策略上学习器学习代理执行的策略的价值,包括探索步骤。”

我想请您对此进行澄清,因为它们似乎对我没有任何影响。这两个定义似乎是相同的。我真正理解的是无模型和基于模型的学习,我不知道它们是否与问题有关。

最优策略如何独立于代理的行为而学习?代理执行操作时是否学习了策略?

4个回答

首先,代理没有理由必须做贪婪的动作代理可以探索,也可以遵循选项这不是区分 on-policy 和 off-policy 学习的原因。

Q-learning 偏离策略的原因是它使用下一个状态的 Q 值和贪婪动作来更新其 Q 值。换句话说,它估计状态-动作对的回报(总折扣未来奖励),假设遵循贪婪策略,尽管它没有遵循贪婪策略。s a

SARSA 在策略上的原因是它使用下一个状态的 Q 值和当前策略的动作来更新其 Q 值。假设继续遵循当前政策,它估计状态-动作对的回报。sa

如果当前策略是贪婪策略,那么区别就消失了。但是,这样的代理不会很好,因为它从不探索。

你看过这本书可以在网上免费获得吗? 理查德 S. 萨顿和安德鲁 G. 巴托。强化学习:简介。第二版,麻省理工学院出版社,马萨诸塞州剑桥,2018 年。

首先,政策(由表示)的实际含义是什么? 策略指定在状态(或更准确地说,是在状态的概率)。π
asπas

其次,我们有哪些类型的学习?
1. 评估函数:预测未来折扣奖励的总和,其中是一个动作,是一个状态。 2. 找到产生最大奖励(实际上是Q(s,a)as
ππ(a|s)

回到最初的问题。On-policy 和 off-policy 学习仅与第一个任务有关:评估Q(s,a)

不同之处在于:
策略学习中,函数是从我们使用当前策略采取的行动中学习的。离策略学习中,函数是通过采取不同的动作(例如,随机动作)来学习的。我们甚至根本不需要政策!Q(s,a)π(a|s)
Q(s,a)

这是on-policy SARSA算法的更新函数: ,其中根据策略采取的操作。Q(s,a)Q(s,a)+α(r+γQ(s,a)Q(s,a))aπ

将其与off-policy Q 学习算法的更新函数进行比较: ,其中中探测的所有动作Q(s,a)Q(s,a)+α(r+γmaxaQ(s,a)Q(s,a))as

On-policy方法在使用策略进行控制时估计策略的价值。

off-policy方法中,用于生成行为的策略,称为行为策略,可能与被评估和改进的策略,称为估计策略无关。

这种分离的一个优点是估计策略可能是确定性的(例如贪婪的),而行为策略可以继续对所有可能的动作进行采样。

有关更多详细信息,请参阅《强化学习: Barto 和 Sutton的介绍》一书的第 5.4 和 5.6 节。

Off-policy 和 On-policy 方法之间的区别在于,首先您不需要遵循任何特定的策略,您的代理甚至可以随机运行,尽管如此,off-policy 方法仍然可以找到最佳策略。另一方面,on-policy 方法取决于所使用的策略。在离策略的 Q-Learning 的情况下,它会找到独立于探索期间使用的策略的最优策略,但是只有当您访问不同的状态足够多次时,这才是正确的。您可以在Watkins的原始论文中找到显示 Q-Learning 非常好的特性的实际证明。然而,有一个权衡,那就是离策略方法往往比在策略方法慢。这里有其他有趣摘要的链接两种方法的属性