如何理解RL中on-policy与off-policy

   on-policy 和off-policy是强化学习中出现最多的两个概念,也是最容易让初学者迷惑的概念之一。网上很多博客都是从是否使用当前policy和其它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 the data.

   提到on-policy和off-policy就不得不提起另外一对方法:SARSA和Q-learning算法啊,前者是on-policy,后者是q-learning(想当初笔者参加夏令营面试,老师就问了我这样一个概念,当时就蒙蔽了后悔没好好辨析概念,似是而非是科研的大忌)。话不多说先上伪代码:


由伪代码可以看到两者的区别就在于更新Q(s,a)的时候(即evaluation current policy),s'的选择是max还是原先的策略(current policy)π(这里是ε-greedy)。看到这里是否感觉似曾相识,是的。这两者的对比不就是policy evaluation跟value iteration的对比吗?

由代码可知,policy evaluation只是在用DP更新迭代V(s),期间并没有改变behavior/current policy(一直是π(a|s)),更新迭代利用的数据一直是current π生成的,经过一定迭代次数v(s)会收敛。value iteration是policy evaluation+policy improvement,但是每一步都用max (区别current π即ε-greedy,所以此时 更新/evaluation 的π有别于生current π)去选择最大的更新V(s) ,因此后者计算开销要远小于前者,收敛速度也更快,更贪心。

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

不知道笔者这样解释,是否会给你带来对这两个问题更深刻认识,欢迎讨论~~~

  • 7
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值