理解强化学习中的 On-Policy 和 Off-Policy

629 阅读2分钟

在强化学习中,

  • 有一个代理 A,负责与环境交互,做出动作并获取新的状态。
  • 有一个agent B,负责观察和学习,学习如何根据当前状态决定采取什么动作。

如果这两个代理相同,则它是在策略上的。

如果这两个代理不同,那就是off-policy。

有趣的例子

当我看围棋高手对战 AlphaGo 时,AlphaGo 就是环境。

Go master负责与Alphago交互,根据Alphago的选择来选择下一个走位。

我负责从围棋高手和Alphago的对弈中观察学习如何根据当前状态选择下一个位置。渐渐地,我学会了下围棋。

对我来说,Go master 是负责与环境交互的代理,而我是负责学习的代理。这两个agent是不同的,所以是off-policy。

另一个有趣的解释

在古代,一个国王想要更多地了解普通人的生活。

国王可以选择隐姓埋名,混入人群,了解他们的生活(这是on-policy),虽然是第一手资料,但国王本人不可能无处不在,得到的信息未必全面。

所以国王可以派大臣去了解情况,也可以在宫中听取汇报(这是外策)。

正式解释

On-Policy的代表算法是Sarsa。

Off-Policy的代表算法是Q-learning。

例如,有一个策略π,当它根据这个策略π到达状态s'时,它应该采取动作a'。

Sarsa(on-policy)更新Q值的方式是:

image.png

该值是根据a'更新的,这意味着确实使用了现有的策略π,因此称为on-policy。

Q-learning(off-policy)更新Q值的方式是:

image.png

更新不使用a',而是直接采取最大化Q值的动作a,  这与现有的策略π不同,因此称为off-policy。