强化学习(Temporal-Diffference learning)-Today8

Temporal-Diffference learning简称TD,是一种时序差分算法,以下主要包括TD算法的state value形式、TD算法的action value形式,如Sarsa、Expected Sarsa、n-Step Sarsa、Q-learning.

①TD learning of state value:

主要是已知[(s_{t},r_{t+1},s_{t+1})],以及给出特定策略π,以t时刻的state value来更新t+1时刻的state value,其中v_{t}(s_{t})-[r_{t+1}+\gamma v_{t}(s_{t+1})]是TD error,r_{t+1}+\gamma v_{t}(s_{t+1})\bar{v}_{t},以下式子表述了在t+1时刻的state value和t时刻的state value的关系,使state value更接近最优的state value。

v_{t+1}(s_{t})=v_{t}(s_{t})-\alpha _{t}(s_{t})[v_{t}(s_{t})-[r_{t+1}+\gamma v_{t}(s_{t+1})]]

\bar{v}_{t}=r_{t+1}+\gamma v(s_{t+1})

\delta _{t}=v(s_{t})-[r_{t+1}+\gamma v(s_{t+1})]=v(s_{t})-\bar{v}_{t}

证明:t+1时刻的state value更接近t时刻的state value

v_{t+1}(s_{t})-v\bar{}_{t}=v_{t}(s_{t})-v\bar{}_{t}-\alpha _{t}(s_{t})[v_{t}(s_{t}-v\bar{}_{t})]

|v_{t+1}(s_{t})-v\bar{}_{t}|=|[1-\alpha _{t}(s_{t})]|v_{t}(s_{t})-v\bar{}_{t}|

|[1-\alpha _{t}(s_{t})]|<1

|v_{t+1}(s_{t})-v\bar{}_{t}|<|v_{t}(s_{t})-v\bar{}_{t}|

TD算法从数学上是来解决贝尔曼公式的:

贝尔曼公式可以写为:

v_{\pi }(s)=E[R+\gamma v_{\pi }(S^{​{}'})|S=s]

通过TD learning of state value来求解贝尔曼公式如下:

g(v(s))=v(s)-E[R+\gamma v_{\pi }(S^{​{}'})|S=s]

g(v(s))=0

g\tilde{}(v(s))^{}=v(s)-[r+\gamma v_{\pi }(s^{​{}'})]

=v(s)-E[R+\gamma v_{\pi }(S^{​{}'})|S=s]+E[R+\gamma v_{\pi }(S^{​{}'})|S=s]-[r+\gamma v_{\pi }(s^{​{}'})]

             =g(v(s))+E[R+\gamma v_{\pi }(S^{​{}'})|S=s]-[r+\gamma v_{\pi }(s^{​{}'})]

             =g(v(s))+\eta

因此,使用RM算法,RM算法在这里:强化学习(Stochastic iterative algorithms and Stochastic Gradient Descent)-Today7-CSDN博客

v_{k+1}(s)=v_{k}(s)-\alpha _{k}g\tilde{}(v(s))

                        ​​​​​​​        ​​​​​​​              =v_{k}(s)-\alpha _{k}(v_{k}(s)-[r_{k}+\gamma v_{\pi }(s{_{k}}')])

条件同样要满足RM的条件,\sum _{t}\alpha _{t}(s)=\infty ,\sum _{t}\alpha^{2} _{t}(s)<\infty来确保可以访问很多次state,一般α取很小的值。

②Sarsa(TD  learning of action value)

Sarsa全称是state-action-reward-state-action的简称,需要给定一个策略来估计action value,做policy evaluation,需要[(s_{t},a_{t},r_{t+1},s_{t+1},a_{t+1})]来作为experience,也是来计算贝尔曼公式的算法,具体公式如下:

q_{t+1}(s_{t},a_{t})=q_{t}(s_{t},a_{t})-\alpha _{t}(s_{t},a_{t}))[q_{t}(s_{t},a_{t})-[r_{t+1}+\gamma q_{t}(s_{t+1},a_{t+1})]]

来解决贝尔曼公式:q_{\pi }(s,a)=E[R+\gamma q_{\pi }(S^{​{}'},A^{​{}'})|s,a]

以上也也可以和Policy improvement结合,形成完整的policy,Policy improvement使用\varepsilon -Greedy,具体如下:

\pi _{t+1}(a|s_{t}=1-\frac{\varepsilon }{|A|}(|A|-1)),a=argmax_{a}q_{t+1}(s_{t},a)

\pi _{t+1}(a|s_{t})=\frac{\varepsilon }{|A|} ,a=其他policy

可以解决从一个固定状态找到一个最优路径。

③Expected Sarsa

其实和Sarsa算法类似,就是将\bar{q}_{t}=r_{t+1}+\gamma q(s_{t+1},a_{t+1})换成了\bar{q}_{t}=r_{t+1}+E[\gamma q(s_{t+1},a_{t+1})],具体算法如下:

q_{t+1}(s_{t},a_{t})=q_{t}(s_{t},a_{t})-\alpha _{t}(s_{t},a_{t}))[q_{t}(s_{t},a_{t})-[r_{t+1}+\gamma E[q_{t}(s_{t+1},a_{t+1})]]]

来解决贝尔曼公式:

q_{\pi }(s,a)=E[R_{t+1}+\gamma E[q_{\pi }(S_{t+1},A_{t+1})]|S_{t}=s,A_{t}=a]​​​​​​​=E[R_{t+1}+\gamma v_{\pi }S_{t+1}|S_{t}=s,A_{t}=a]

④n-step Sarsa

n-step Sarsa其实是介于Sarsa和MC之间的算法,以下是三个算法的对比:

(1)Sarsa(每采样一次数据可更新一次)

G_{t}^{(1)}=R_{t+1}+\gamma q_{t}(S_{t+1},A_{t+1})

G_{t}^{(2)}=R_{t+1}+\gamma R_{t+2}+\gamma^{2} q_{\pi }(S_{t+2},A_{t+2})

解决的贝尔曼公式:q_{\pi }(s,a)=E[R+\gamma q_{\pi }(S^{​{}'},A^{​{}'})|s,a]

(2)MC(每采样全部数据才可更新一次)MC算法更详细在这里:

强化学习(Monte Carlo learning)-Today6-CSDN博客

G_{t}^{(\infty )}=R_{t+1}+\gamma R_{t+2}+......

解决的贝尔曼公式:q_{\pi }(s,a)=E[R_{t+1}+\gamma R_{t+2}+......|s,a]

(3)n-step Sarsa(在t+n时数据才可更新一次)

G_{t}^{(n)}=R_{t+1}+\gamma R_{t+2}+......+\gamma^{n} q_{\pi }(S_{t+n},A_{t+n})

解决的贝尔曼公式:q_{\pi }(s,a)=E[R_{t+1}+\gamma R_{t+2}+......+\gamma^{n} q_{\pi }(S_{t+n},A_{t+n})|s,a]

当n很小时,n-step Sarsa趋近于Sarsa,有很少的随机变量但是可能误差较大

当n很小时,n-step Sarsa趋近于MC,有很大的随机变量但是可能误差较小

还可以和Policy improvement结合得出最优Policy:

\pi _{t+1}(a|s_{t}=1-\frac{\varepsilon }{|A|}(|A|-1)),a=argmax_{a}q_{t+1}(s_{t},a)

\pi _{t+1}(a|s_{t})=\frac{\varepsilon }{|A|} ,a=其他policy

⑤Q-learning(optimal action value)

Q-learning和以上的算法有一些区别,以上的算法是估计policy evaluation,可以结合policy improvement结合来得到最优policy,而Q-learning可以直接估计得到最优Policy,是用来解决贝尔曼最优公式的,具体算法如下:

q_{t+1}(s_{t},a_{t})=q_{t}(s_{t},a_{t})-\alpha _{t}(s_{t},a_{t}))[q_{t}(s_{t},a_{t})-[r_{t+1}+\gamma max_{a\in A}[q_{t}(s_{t+1},a_{t+1})]]]

解决的贝尔曼最优公式:

q_{\pi }(s,a)=E[R+\gamma max_{a}q_{\pi}(s_{t+1},a)|S_{t}=s,A_{t}=a]

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值