强化学习五、时间差分(二)

前面已经讨论了基本的时间差分的预测方法强化学习(五):时间差分(一),本节将介绍时间差分在控制方面的两个算法SARSA和Q-learning,分别为on-policy(在线控制)和off-policy(离线控制)。我们回顾一下控制问题的描述:给定强化学习的5个要素:状态集S, 动作集A, 即时奖励R,衰减因子γ, 探索率ϵ, 求解最优的动作价值函数q∗和最优策略π∗。

时间差分是免模型的强化学习问题,对于它的控制问题求解,和蒙特卡罗法类似,都是价值迭代,即通过价值函数的更新,来更新当前的策略,再通过新的策略,来产生新的状态和即时奖励,进而更新价值函数。一直进行下去,直到价值函数和策略都收敛。

控制问题一般都会分为两个阶段:即策略评估和策略迭代。SARSA和Q-learning分别采用的on-policy和off-policy在这两个阶段有所区别,on-policy是使用同一个策略(一般都是ϵ−greedy)来更新价值函数和选择新的动作,而off-policy在更新价值函数和选择新动作采用不同的策略,一般更新价值函数采用贪婪法,选择新动作采用ϵ−greedy法。

SARSA和Q-learning算法的伪代码分别如下:

SARSA算法:

图片

      Q-learning算法:

图片

我们以SARSA算法为例介绍一下整个流程:建立一个Q Table来保存状态s和将会采取的所有动作a,也就是Q(s,a) 在每个回合中,先随机初始化第一个状态,再对回合中的每一步都先从Q Table中使用ϵ−贪婪法在当前状态S(如果Q表没有该状态就创建s-a的行,且初始为全0)选择一个动作A,这样系统会转到一个新的状态S′, 同时给我们一个即时奖励R, 在新的状态S′,我们会基于ϵ−贪婪法在状态S′选择一个动作A′,但是注意这时候我们并不执行这个动作A′,只是用来更新的我们的价值函数,价值函数的更新公式是:

Q(S,A)=Q(S,A)+α(R+γQ(S′,A′)−Q(S,A))

下面我们总结下SARSA算法的伪代码:

输入:迭代轮数T,状态集S, 动作集A, 步长α,衰减因子γ, 探索率ϵ

输出:所有的状态和动作对应的价值Q

1. 随机初始化所有的状态和动作对应的价值Q. 对于终止状态其Q值初始化为0.

2. for i from 1 to T,进行迭代。

a) 初始化S为当前状态序列的第一个状态。设置A为ϵ−贪婪法在当前状态S选择的动作。

b) 在状态S执行当前动作A,得到新状态S′和奖励R

c) 用ϵ−贪婪法在状态S′选择新的动作A′

d) 更新价值函数Q(S,A):

Q(S,A)=Q(S,A)+α(R+γQ(S′,A′)−Q(S,A))

e) S=S′,A=A′

f) 如果S′是终止状态,当前轮迭代完毕,否则转到步骤b)

注意的是,步长α一般需要随着迭代的进行逐渐变小,这样才能保证动作价值函数Q可以收敛。当Q收敛时,我们的策略ϵ−贪婪法也就收敛了

我们把SARSA和Q-learning作个对比,Q-learning会在s'上选择产生最大期望的动作a',但是真正到s'状态要选择下一步的动作a'时,却不一定选择a'。而Sarsa在s'状态下估计的动作a'就是到状态s'后的真正选择动作。Sarsa说到做到,通过自己真正要做的事情进行学习,属于on-policy在线学习;Q-learning说到不一定做到,通过不一定要去做的事情学习,属于off-policy离线学习。Q learning 机器人永远都会选择最近的一条通往成功的道路, 不管这条路会有多危险;而 Sarsa 则是相当保守, 他会保证拿到宝藏是次要的,保证安全是主要的。因为Q learning算法更新时使用max Q值更新,Sarsa使用走过的路更新Q值,导致后者的Q表的负值要更多一些,所以更能避免一些陷阱。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

wshzd

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值