On-policy and Off-policy

理想情况下,强化学习应该直奔最优策略而去–确定性的“状态-最优行为选择”。我们称之为target policy。

这是on-policy的目标,但在实施时,会遭遇探索-利用的矛盾:光利用目前已知的最优选择,可能学不到最优解,收敛到局部最优;而加入探索又降低了学习效率。 ε \varepsilon ε-greedy 算法是这种矛盾下的折衷。

为避免on-policy的问题,off-policy索性把问题一分为二,采取了从行为策略来学习目标策略的办法,两者可以互不干扰。

具体来说:
先产生某概率分布下的大量行为数据(behavior policy),意在探索。从这些偏离(off)最优策略的数据中寻求target policy。当然这么做是需要满足数学条件的:假設 π \pi π是目标策略, μ \mu μ是行为策略,那么从 μ \mu μ学到 π \pi π的条件是:π(a|s) > 0 必然有 µ(a|s) > 0成立。
两种学习策略的关系是:on-policy是off-policy 的特殊情形,其target policy 和behavior policy是一个。on-policy优点是直接了当,速度快,劣势是不一定找到最优策略。off-policy劣势是曲折,收敛慢,但优势是更为强大和通用。其强大是因为它确保了数据全面性,所有行为都能覆盖。甚至其数据来源可以多样,自行产生、或者外来数据均可。

On-policy methods attempt to evaluate or improve the policy that is used to make decisions, whereas off-policy methods evaluate or improve a policy different from that used to generate data.

on-policy 和 off-policy 的两种典型算法:SARSA 和 Q-learning

在这里插入图片描述
在这里插入图片描述
由上面的pseudocode可知,两者的区别主要在于更新 Q ( s , a ) Q(s, a) Q(s,a)时, s ′ {s}' s的选择是max还是原先的策略(这里是 ε − g r e e d y \varepsilon-greedy εgreedy)。看到这里是否感觉似曾相识,没错,这两者的对比不就是policy evaluation 和 value iteration的对比吗?
在这里插入图片描述
在这里插入图片描述
由pseudocode可知,policy evaluation只是在用DP更新 V ( s ) V(s) V(s),期间并没有改变current policy,更新迭代的数据一直是current policy产生的,经过一定的迭代次数 V ( s ) V(s) V(s)会收敛。而value iteration是policy evaluation+policy improvement,但是每一步都用max去选择最大的更新 V ( s ) V(s) V(s),因此后者的计算开销要远小于前者,收敛速度也更快。

In short,on-policy属于policy evaluation 其寻找最优策略的过程基于所给的behavior policy(current policy),或者说其evaluation的是current π;而off-policy属于value iteration其寻找最优策略的过程更新的策略有别于生成数据的策略(如贪心策略)。

Reference:
https://www.zhihu.com/question/56561878/answer/149892732
https://blog.csdn.net/yangshaokangrushi/article/details/79774031

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值