总结:比较SARSA、SARSA(lambda)、Q-learning、on policy and off policy

前几天面试的时候被问到RL一些基础算法的区别,回来抽空做了一些整理方便加深理解。

On policy与off policy

为了解决强化学习中探索与利用的平衡问题,可以采用两个策略训练模型,一个策略为行为策略,用于保持探索性,提供多样化的数据,不断优化另一个策略(目标策略)。

on policy的目标策略与行为策略是一个策略,在优化时,两个策略同时被优化。而off policy的目标策略与行为策略不同,可以采用重要性采样的方法实现这一目标,一个具体的例子是蒙特卡洛on policy算法与蒙特卡洛off polic算法。

 

SARSA算法流程

本质是时序差分算法,它是on policy的

 

SARSA(lambda)即为TD(lambda)算法(eligibility trace),即在更新当前步时,也会同时对前面的步骤进行更新,具体算法如下

和Sarsa相比,Sarsa(lambda)算法有如下优势:

 Sarsa虽然会边走边更新,但是在没有获得奶酪之前,当前步的Q值是没有任何变化的,直到获取奶酪后,才会对获取奶酪的前一步更新,而之前为了获取奶酪所走的所有步都被认为和获取奶酪没关系。Sarsa(lambda)则会对获取奶酪所走的步都进行更新,离奶酪越近的步越重要,越远的则越不重要(由参数lambda控制衰减幅度)。因此,Sarsa(lambda) 能够更加快速有效的学到最优的policy。

在算法前几回合,老鼠由于没有头绪, 可能在原地打转了很久,从而形成一些重复的环路,而这些环路对于算法的学习没有太大必要。Sarsa(lambda)则可解决该问题,具体做法是:在E(s,a)←E(s,a)+1这一步之前,可先令E(s)=0,即把状态s对应的行置为0,这样就只保留了最近一次到达状态s时所做的action。

 

Q-learning是sarsa的off-policy版本,对于Q-Learning,我们会使用ϵ−贪婪法来选择新的动作,这部分和SARSA完全相同。但是对于价值函数的更新,在选取下一步最优动作时,Q-Learning使用的是MAX贪婪法(用目标策略选取动作进行评估),而不是SARSA的ϵ−贪婪法(用行为策略选取动作进行评估)。这一点就是SARSA和Q-Learning本质的区别。Q-learning具体算法如下:

 

转载于:https://www.cnblogs.com/statruidong/p/10856137.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值