强化学习中的off-policy 和on-policy

强化学习可以分成off-policy(离线)和on-policy(在线)两种学习方法,按照个人理解,判断一个强化学习是off-policy还是on-policy的依据在于生成样本的policy(value-funciton)和网络参数更新时的policy(value-funciton)是否相同。

off-policy的经典算法有Q-learning,而on-policy的经典算法有SARSA算法,两者的算法流程如下所示。

Q-learning算法:

initialize Q(s,a) randomly
for each episode:
    initialize state s;
    while s is not terminal:
        choose action a from s using ε-greedy strategy;
        observe reward r and next state s';
        Q(s,a) <- Q(s,a) + α[r + γ*maxQ(s',a') - Q(s,a);
        s <- s';]

SARAS算法:

initialize Q(s,a) randomly
for each episode:
    initialize state s;
    choose action a from s using ε-greedy strategy;
    while s is not terminal:
        observe reward r and next state s';
        choose a' from s' using ε-greedy strategy;
        Q(s,a) <- Q(s,a) + α[r + γ*Q(s',a') - Q(s,a);
        s <- s', a <- a';]

这两个算法的流程基本一致,唯一不同在于Q函数的更新:

Q-learning在计算下一状态的预期收益时使用了max操作,直接选择最优动作,而当前policy并不一定能选择到最优动作,因此这里生成样本的policy和学习时的policy不同,为off-policy算法;

而SARAS则是基于当前的policy直接执行一次动作选择,然后用这个样本更新当前的policy,因此生成样本的policy和学习时的policy相同,算法为on-policy算法。

而最近深度强化学里中使用的experience-replay机制将生成的样本与训练的样本独立开来,使用某一policy生成的样本拿来训练的时候,很可能当前policy已经和之前有所差别,因此使用experience-replay机制的DRL算法基本上是off-policy算法

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值