四 不基于模型的控制(Sarsa,Q-learning)

我们之前已经学习了不基于模型的预测方法(eg. MC,TD),本次我们主要说明个体在不基于模型的条件下通过自身的学习,优化价值函数调整行为策略,从而获得最高奖励的过程,这个过程又叫不基于模型的控制。

我们将指导个体与环境进行交互的策略称为行为策略,而将评估状态和行为的策略成为目标策略,在学习的过程中,如果行为策略与目标策略为同一个策略时,我们把这个过程叫做现时策略学习(On-policy Learning),如果不是同一个策略的话,就叫做借鉴策略学习(Off-policy Learning)。在我们之前的学习过程中,目标策略中通常都是使用贪婪策略,在实验过程中,使用贪婪策略可以加快收敛的过程,但是也存在一些缺陷,贪婪策略可能无法探索到最好的状态序列

 

举个例子假设我们在进行开门实验,一共有三扇门,d1,d2,d3,在初始状态下,我们打开了d1,获得的奖励是0,第一次采样结束。此时各个行为的期望回报都是0,于是在下一回合我们继续随机选择,打开了d2,此时获得奖励为2,第二次采样结束。此时打开三扇门的期望收益分别是0,1,0,如果我们采用贪婪策略,我们将会一直打开d2.但是实际上,打开d3,可能会获得一个更大的回报。

因此我们引入一个名为\small \epsilon -贪婪策略(\small \epsilon -greedy policy),我们以\small 1-\epsilon的概率选择能够使行为值函数最大的动作,而其他的动作则以相同的均分的概率进行选择,设总共可选的行为总数为m,则有

\small \pi(a|s)=\left\{ \begin{aligned} & \frac{\epsilon}{m}+1-\epsilon,if a=max_aq(s,a) \\ & \frac{\epsilon}{m},otherwise \\ \end{aligned} \right.

当我们有了这个公式,我们开始学习一下Sarsa方法,它是现时策略学习,在状态s下,采用了某一个行为a,从而有了(s,a)状态行动对,可以获得环境给予的一个奖励,以及后续进入的状态\small s',在这个状态下基于当前的策略产生一个新行为\small a',但是并不执行这个行为,而是得到\small (s',a')带来的奖励,利用这个奖励以及之前的回报R,来更新之前的\small q(s,a)

\small {\color{Red} q(s,a)=q(s,a)+\alpha(R+\gamma q(s',a')-q(s,a))}      (1)

我们之前学习过\small G_t^{(n)}=R_{t+1}+\gamma R_{t+2}+...+\gamma^{n-1} R_{t+n}+\gamma^nv(s_{t+n}),我们知道,状态值函数和动作值函数的推导是非常相似的,我们可以用同样的方法推出

\small q_t^{(n)}=R_{t+1}+\gamma R_{t+2}+...+\gamma^{n-1} R_{t+n}+\gamma^nq(s_{t+n},a_{t+n})})

从而我们推出n-步Sarsa的公式

\small {\color{Red} q(s,a)=q(s,a)+\alpha(q_t^{n}-q(s,a))}           (2)

类似于\small TD(\lambda),我们可以推出

\small q_t^{\lambda}=(1-\lambda)\sum_{n=1}^{\infty}\lambda^{n-1}q_t^{n}.

从而,我们可以得到前向认识和后向认识的Sarsa(\small \lambda)更新公式分别是:

\small {\color{Red} q(s,a)=q(s,a)-\alpha(q_t^{\lambda}-q(s,a))}          (3)

\small {\color{Red} q(s,a)=q(s,a)+\delta \gamma E_t(s,a)}                     (4)   ,其中的\small \delta=R_{t+1}+\gamma q(s_{t+1},a_{t+1})-q(s,a)

 

最后,我们再来学习一种借鉴策略学习---Q Learning,按照借鉴策略学习的定义,假设指导行为的策略为是\small \mu (a|s),评价策略是\small \pi (a|s),这两个策略是不同的策略。在这里我们主要学习借鉴策略TD学习,它的值函数更新公式为:

\small {\color{Red} v(s_t)=v(s_t)+\alpha(\frac{\pi(a|s)}{\mu(a|s)}(R_{t+1}+\gamma v(s_{t+1}))-v(s_t))}             (5)

其中的\small \frac{\pi(a|s)}{\mu(a|s)}是评价策略和行为策略的比值。当两者的比值接近于1时,说明评价策略和行为策略在状态s下,采取行动的a的可能很相近,对于本次状态s的更新,收到两个策略的支持;如果比值小于1,评价策略则在状态s下采取动作a的要小一些,从而需要谨慎的更新本次状态s,也就是添加一个折扣;如果两者的比值大于1,则评价策略在状态s下选择动作a的可能性还要大于行为策略,所以可以更新的更加大胆一些。通常来说\small \mu (a|s)\small \epsilon-贪婪策略,而\small \pi (a|s)是全贪婪策略。

同样的,我们还可以给出行为值函数的更新公式:

\small {\color{Red}q(s_t,a_t)=q(s_t,a_t)+\alpha (R+\gamma max_{a'}q(s_{t+1},a')-q(s_t,a_t))}    (6)

给出Q Learning的伪代码:

Q Learning Policy
Input:折扣因子γ,步长α,episodes
Output:Q
initialize:Q(terminal state,·)=0,set Q(s,a) arbitrarilly
repeate episode in episodes:
    initialize:S as the first state
    repeate for each step of episode:
        A=policy(Q,S) #行为策略
        R,S'=perform_Action(S,A)
        Q(S,A)←Q(S,A)+α(R+γmaxQ(S',A')-Q(S,A) #function max choose the action A' which maximize the Q(S',A')
        S←S'
    until S is terminal state
until all episode are visited
    

Github地址:https://github.com/Autumncow/reinforcement-Learning

里面更新了Q-Learning算法

 

 

 

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值