本文主要是介绍【RL】Temporal-Difference Learning(时序差分方法),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
Lecture 7: Temporal-Difference Learning
TD learning of state values
TD learning通常指的是一大类 RL 算法
TD学习也指用于估计state value的特定算法。
TD learning of state values – Algorithm description
算法中需要的data/experience:
( s 0 , r 1 , s 1 , . . . , s t , r t + 1 , s t + 1 , ⋯ ) (s_0, r_1, s_1, ..., s_t, r_{t+1}, s_{t+1}, \cdots) (s0,r1,s1,...,st,rt+1,st+1,⋯)或由给定的policy π \pi π生成的 { ( s t , r t + 1 ) , s t + 1 } \{ (s_t, r_{t+1}), s_{t+1} \} {(st,rt+1),st+1}。
TD learning算法为:
v t + 1 ( s t ) = v t ( s t ) − α t ( s t ) [ v t ( s t ) − [ r t + 1 + γ v t ( s t + 1 ) ] ] , ( 1 ) v t + 1 ( s ) = v t ( s ) , ∀ s ≠ s t , ( 2 ) \begin{align*} &v_{t+1}(s_t)=v_t(s_t)-\alpha_t(s_t)\Big[v_t(s_t)-[r_{t+1}+\gamma v_t(s_{t+1})]\Big], \;\;\;\;\; (1) \\ &v_{t+1}(s)=v_t(s),\quad\forall s\neq s_t, \;\;\;\;\; (2) \end{align*} vt+1(st)=vt(st)−αt(st)[vt(st)−[rt+1+γvt(st+1)]],(1)vt+1(s)=vt(s),∀s=st,(2)
其中, t = 0 , 1 , 2 , ⋯ t = 0, 1, 2, \cdots t=0,1,2,⋯, v t ( s t ) v_t(s_t) vt(st)是针对 v π ( s t ) v_{\pi}(s_t) vπ(st)的估计的state value, α t ( s t ) \alpha_t(s_t) αt(st)是在时间 t t t s t s_t st的 learning rate(学习率)。
- 在时间 t t t,仅更新已访问状态 s t s_t st 的值,而未访问状态 s ≠ s t s \ne s_t s=st 的值保持不变。
TD learning of state values – Algorithm properties
TD算法可以表示为:
v t + 1 ( s t ) ⏟ new estimate = v t ( s t ) ⏟ current estimate − α t ( s t ) [ v t ( s t ) − [ r t + 1 + γ v t ( s t + 1 ) ⏟ TD target v ˉ t ] ⏞ TD error δ t , ( 3 ) \underbrace{v_{t+1}(s_t)}_{\text{new estimate}}=\underbrace{v_t(s_t)}_{\text{current estimate}}-\alpha_t(s_t)[\overbrace{v_t(s_t)-[\underbrace{r_{t+1}+\gamma v_t(s_{t+1})}_{\text{TD target }\bar{v}_t}]}^{\text{TD error } \delta_t}, \;\;\;\;\;(3) new estimate vt+1(st)=current estimate vt(st)−αt(st)[vt(st)−[TD target vˉt rt+1+γvt(st+1)] TD error δt,(3)
其中:
v ‾ ≐ r t + 1 + γ v ( s t + 1 ) \overline{v} \doteq r_{t+1} + \gamma v(s_t + 1) v≐rt+1+γv(st+1)
被称为TD target;
δ t ≐ v ( s t ) − [ r t + 1 + γ v ( s t + 1 ) ] = v ( s t ) − v ˉ t \delta_t\doteq v(s_t)-[r_{t+1}+\gamma v(s_{t+1})]=v(s_t)-\bar{v}_t δt≐v(st)−[rt+1+γv(st+1)]=v(st)−vˉt
被称为 TD error;
很明显,新的估计 v t + 1 ( s t ) v_{t+1}(s_t) vt+1(st) 是当前估计 v t ( s t ) v_t(s_t) vt(st) 和 TD error的加权组合。
why is v ‾ t \overline{v}_t vt called the TD target?
这是因为算法使 v ( s t ) v(s_t) v(st)趋向于 v ‾ t \overline{v}_t vt
如下式:
v t + 1 ( s t ) = v t ( s t ) − α t ( s t ) [ v t ( s t ) − v ˉ t ] ⇒ v t + 1 ( s t ) − v ˉ t = v t ( s t ) − v ˉ t − α t ( s t ) [ v t ( s t ) − v ˉ t ] ⇒ v t + 1 ( s t ) − v ˉ t = [ 1 − α t ( s t ) ] [ v t ( s t ) − v ˉ t ] ⇒ ∣ v t + 1 ( s t ) − v ˉ t ∣ = ∣ 1 − α t ( s t ) ∣ ∣ v t ( s t ) − v ˉ t ∣ \begin{align*} &v_{t+1}(s_t)=v_t(s_t)-\alpha_t(s_t)[v_t(s_t)-\bar{v}_t] \\ \Rightarrow &v_{t+1}(s_t)-\bar{v}_t=v_t(s_t)-\bar{v}_t-\alpha_t(s_t)[v_t(s_t)-\bar{v}_t] \\ \Rightarrow &v_{t+1}(s_{t})-\bar{v}_{t}=[1-\alpha_{t}(s_{t})][v_{t}(s_{t})-\bar{v}_{t}] \\ \Rightarrow & |v_{t+1}(s_{t})-\bar{v}_{t}|=|1-\alpha_{t}(s_{t})||v_{t}(s_{t})-\bar{v}_{t}| \end{align*} ⇒⇒⇒vt+1(st)=vt(st)−αt(st)[vt(st)−vˉt]vt+1(st)−vˉt=vt(st)−vˉt−αt(st)[vt(st)−vˉt]vt+1(st)−vˉt=[1−αt(st)][vt(st)−vˉt]∣vt+1(st)−vˉt∣=∣1−αt(st)∣∣vt(st)−vˉt∣
因为 α t ( s t ) \alpha_t({s_t}) αt(st)是一个小的正数,故:
0 < 1 − α ( s t ) < 1 0 < 1-\alpha_(s_t) < 1 0<1−α(st)<1
因此,
∣ v t + 1 ( s t ) − v ˉ t ∣ ≤ ∣ v ( s t ) − v ˉ t ∣ |v_{t + 1}(s_t) - \bar{v}_t| \le |v_(s_t) - \bar{v}_t| ∣vt+1(st)−vˉt∣≤∣v(st)−vˉt∣
因此, v ( s t ) v(s_t) v(st)不断趋向于 v ˉ t \bar{v}_t vˉt。
what is the interpretation of the TD error?
δ t = v ( s t ) − [ r t + 1 + γ v ( s t + 1 ) ] \delta_t=v(s_t)-[r_{t+1}+\gamma v(s_{t+1})] δt=v(st)−[rt+1+γv(st+1)]
它是两个后续时间步长之间的差异。
其反映了 v t v_t vt和 v π v_{\pi} vπ之间的不足。 如下式:
δ π , t ≐ v π ( s t ) − [ r t + 1 + γ v π ( s t + 1 ) ] \delta_{\pi,t}\doteq v_\pi(s_t)-[r_{t+1}+\gamma v_\pi(s_{t+1})] δπ,t≐vπ(st)−[rt+1+γvπ(st+1)]
注意:
E [ δ π , t ∣ S t = s t ] = v π ( s t ) − E [ R t + 1 + γ v π ( S t + 1 ) ∣ S t = s t ] = 0. \mathbb{E}[\delta_{\pi,t}|S_t=s_t]=v_\pi(s_t)-\mathbb{E}\big[R_{t+1}+\gamma v_\pi(S_{t+1})|S_t=s_t\big]=0. E[δπ,t∣St=st]=vπ(st)−E[Rt+1+γvπ(St+1)∣St=st]=0.
- 如果 v t = v π v_t = v_{\pi} vt=vπ,那么 δ t \delta_t δt应该为0
- 因此,若 δ t \delta_t δt非0,那么 v t v_t vt不等于 v π v_{\pi} vπ
TD error可以理解为“创新”,即从experience(经验)中获得新的信息 ( s t , r t + 1 , s t + 1 ) (s_t,r_{t+1},s_{t+1}) (st,rt+1,st+1)。
等式(3)仅估计了给定policy的state value。
- 其没有估计action value
- 其没有搜索最优policy
TD learning of state values – The idea of the algorithm
What does this TD algorithm do mathematically?
它求解给定policy π \pi π 的Bellman方程。
第一,Bellman方程的新表达式。
policy π \pi π 的state value的定义为:
v π ( s ) = E [ R + γ G ∣ S = s ] , s ∈ S ( 4 ) v_{\pi}(s)=\mathbb{E}\big[R+\gamma G|S=s\big],\quad s\in\mathcal{S} \;\;\;\;\; (4) vπ(s)=E[R+γG∣S=s],s∈S(4)
其中, G G G使离散的return。因为:
E [ G ∣ S = s ] = ∑ a π ( a ∣ s ) ∑ s ′ p ( s ′ ∣ s , a ) v π ( s ′ ) = E [ v π ( S ′ ) ∣ S = s ] , \mathbb{E}[G|S=s]=\sum_a\pi(a|s)\sum_{s^{\prime}}p(s^{\prime}|s,a)v_\pi(s^{\prime})=\mathbb{E}[v_\pi(S^{\prime})|S=s], E[G∣S=s]=a∑π(a∣s)s′∑p(s′∣s,a)vπ(s′)=E[vπ(S′)∣S=s],
其中, S ′ S' S′是下一个state,因此等式(4)可以写为:
v π ( s ) = E [ R + γ v π ( S ′ ) ∣ S = s ] , s ∈ S . ( 5 ) v_\pi(s)=\mathbb{E}\big[R+\gamma v_\pi(S')|S=s\big],\quad s\in\mathcal{S}. \;\;\;\;\; (5) vπ(s)=E[R+γvπ(S′)∣S=s],s∈S.(5)
等式(5)是Bellman等式的另一种表达,其也被称为Bellman expectation equation。
第二,使用RM算法解决等式(5)
定义:
g ( v ( s ) ) = v ( s ) − E [ R + γ v π ( S ′ ) ∣ s ] , g(v(s))=v(s)-\mathbb{E}\big[R+\gamma v_{\pi}(S^{\prime})|s\big], g(v(s))=v(s)−E[R+γvπ(S′)∣s],
公式(5)可以写为:
g ( v ( s ) ) = 0 g(v(s)) = 0 g(v(s))=0
由于我们只能获得 R R R 和 S ′ S' S′ 的样本 r r r 和 s ′ s' s′ ,因此我们得到的噪声观测值是:
g ~ ( v ( s ) ) = v ( s ) − [ r + γ v π ( s ′ ) ] = ( v ( s ) − E [ R + γ v π ( S ′ ) ∣ s ] ) ⏟ g ( v ( s ) ) + ( E [ R + γ v π ( S ′ ) ∣ s ] − [ r + γ v π ( s ′ ) ] ) ⏟ η . \begin{aligned} \tilde{g}(v(s))& =v(s)-\begin{bmatrix}r+\gamma v_\pi(s')\end{bmatrix} \\ &=\underbrace{\left(v(s)-\mathbb{E}\big[R+\gamma v_\pi(S')|s\big]\right)}_{g(v(s))}+\underbrace{\left(\mathbb{E}\big[R+\gamma v_\pi(S')|s]-\big[r+\gamma v_\pi(s')\big]\right)}_{\eta}. \\ \end{aligned} g~(v(s))=v(s)−[r+γvπ(s′)]=g(v(s)) (v(s)−E[R+γvπ(S′)∣s])+η (E[R+γvπ(S′)∣s]−[r+γvπ(s′)]).
因此,为了计算 g ( v ( s ) ) g(v(s)) g(v(s)),RM算法为:
v k + 1 ( s ) = v k ( s ) − α k g ~ ( v k ( s ) ) = v k ( s ) − α k ( v k ( s ) − [ r k + γ v π ( s k ′ ) ] ) , k = 1 , 2 , 3 , ⋯ ( 6 ) \begin{align*} v_{k+1}(s) =&v_k(s)-\alpha_k\tilde{g}(v_k(s)) \\ =&v_k(s)-\alpha_k\Big(v_k(s)-\big[r_k+\gamma v_\pi(s_k^{\prime})\big]\Big), \end{align*} \;\;\; k=1, 2, 3, \cdots \;\;\;\;\; (6) vk+1(s)==vk(s)−αkg~(vk(s))vk(s)−αk(vk(s)−[rk+γvπ(sk′)]),k=1,2,3,⋯(6)
其中, v k ( s ) v_k(s) vk(s)是 v π ( s ) v_{\pi}(s) vπ(s)在第 k k k步的估计; r k , s k ′ r_k, s'_k rk,sk′是在第 k k k步中在 R , S ′ R, S' R,S′中的样本。
公式(6)中的RM算法有两个假设需要特别注意:
- 必须要有experience集合 { ( s , r , s ′ ) } , k = 1 , 2 , 3 , … \{ (s, r, s') \}, k=1, 2, 3, \dots {(s,r,s′)},k=1,2,3,…
- 假设对于任意 s ′ s' s′, v π ( s ′ ) v_{\pi}(s') vπ(s′)已知
为了在RM算法中移除这两个假设,可以将其修改为:
- 将 { ( s , r , s ′ ) } \{(s, r, s')\} {(s,r,s′)} 更改为 ( s t , r t + 1 , s t + 1 ) {(s_t, r_{t+1}, s_{t+1})} (st,rt+1,st+1),以便算法可以利用episode中的连续样本。
- v π ( s ′ ) v_{\pi}(s') vπ(s′) 被它的估计值取代,因为事先不知道它。
Theorem (Convergence of TD Learning)
By the TD algorithm (1), v t ( s ) v_t(s) vt(s) converges with probability 1 to v π ( s ) v_{\pi}(s) vπ(s) for all s ∈ S s \in S s∈S as t → ∞ t \rightarrow \infty t→∞ if ∑ t α t ( s ) = ∞ \sum_t \alpha_t(s) = \infty ∑tαt(s)=∞ and ∑ t α t 2 ( s ) < ∞ \sum_t \alpha_t^2(s) < \infty ∑tαt2(s)<∞ for all s ∈ S s \in S s∈S.
- 该定理表示,对于给定的policy π \pi π,可以通过 TD 算法找到state value
- ∑ t α t ( s ) = ∞ \sum_t \alpha_t(s) = \infty ∑tαt(s)=∞和 ∑ t α t 2 ( s ) < ∞ \sum_t \alpha_t^2(s) < \infty ∑tαt2(s)<∞必须对所有 s ∈ S s \in S s∈S都满足。在时间步 t t t,如果 s = s t s = s_t s=st,这意味着 s s s 在时间 t t t 被访问,则 α t ( s ) > 0 \alpha_t(s) > 0 αt(s)>0; 否则,对于所有其他 s ≠ s t s \ne st s=st, α t ( s ) = 0 \alpha_t(s) = 0 αt(s)=0。 这要求每个state必须被访问无限(或足够多)次。
- 学习率 α \alpha α通常被选为一个小的常数。 此时, ∑ t α t 2 ( s ) < ∞ \sum_t \alpha_t^2(s) < \infty ∑tαt2(s)<∞的条件不再成立。 当 α \alpha α一定时,仍然可以证明算法在期望意义上收敛。
算法比较:
TD/Sarsa learning | MC learning |
---|---|
Online: TD learning是online的。 它可以在收到reward后立即更新state/action value。 | offline: MC learning是offline的。 它必须等到一个episode完全收集完毕。 |
Continuing tasks:由于TD学习是online的,因此它可以处理episodic任务和连续任务。 | Episodic任务:由于MC学习是离线的,它只能处理具有终止状态的episodic任务。 |
Bootstrapping: TD bootstraps是因为值的更新依赖于该值的先前估计。 因此,它需要初始猜测。 | Non-bootstrapping: MC不是bootstrapping,因为它可以无需任何初始猜测即可估计state/action value。 |
低估计方差:TD 比 MC 低,因为随机变量较少。 例如,Sarsa 需要 R t + 1 、 S t + 1 、 A t + 1 R_{t+1}、S_{t+1}、A_{t+1} Rt+1、St+1、At+1。 | 高估计方差:为了估计 q π ( s t , a t ) q_{\pi}(s_t, a_t) qπ(st,at),需要 R t + 1 + γ R t + 2 + γ 2 R t + 3 + ⋯ R_{t+1} + \gamma R_{t+2} + \gamma^2 R_{t+3} + \cdots Rt+1+γRt+2+γ2Rt+3+⋯ 样本。假设每个episode的长度为 L L L。有$ |
TD learning of action values: Sarsa
Sarsa – Algorithm
上一节介绍的TD算法只能估计state value。
接下来将介绍Sarsa,一个可以直接估计state value的算法。
首先,我们的目标是估计给定policy π \pi π 的action value。假设有一些经验 { ( s t , a t , r t + 1 , s t + 1 , a t + 1 ) } t \{(s_t, a_t, r_{t+1}, s_{t+1}, a_{t+1})\}_t {(st,at,rt+1,st+1,at+1)}t。那么可以使用以下 Sarsa 算法来估计动作值:
q t + 1 ( s t , a t ) = q t ( s t , a t ) − α t ( s t , a t ) [ q t ( s t , a t ) − [ r t + 1 + γ q t ( s t + 1 , a t + 1 ) ] ] , q t + 1 ( s , a ) = q t ( s , a ) , ∀ ( s , a ) ≠ ( s t , a t ) , \begin{aligned}q_{t+1}(s_t,a_t)&=q_t(s_t,a_t)-\alpha_t(s_t,a_t)\Big[q_t(s_t,a_t)-[r_{t+1}+\gamma q_t(s_{t+1},a_{t+1})]\Big],\\q_{t+1}(s,a)&=q_t(s,a),\quad\forall(s,a)\neq(s_t,a_t),\end{aligned} qt+1(st,at)qt+1(s,a)=qt(st,at)−αt(st,at)[qt(st,at)−[rt+1+γqt(st+1,at+1)]],=qt(s,a),∀(s,a)=(st,at),
其中: t = 0 , 1 , 2 , ⋯ t = 0, 1, 2, \cdots t=0,1,2,⋯
- q t ( s t , a t ) q_t(s_t, a_t) qt(st,at)是 q π ( s t , a t ) q_{\pi}(s_t, a_t) qπ(st,at)的估计值
- α t ( s t , a t ) \alpha_t(s_t, a_t) αt(st,at)是依赖于 s t , a t s_t, a_t st,at的学习率。
Why is this algorithm called Sarsa?
因为算法的每一步都涉及 ( s t , a t , r t + 1 , s t + 1 , a t + 1 ) (s_t, a_t, r_{t+1}, s_{t+1}, a_{t+1}) (st,at,rt+1,st+1,at+1)。 Sarsa 是state-action-reward-state-action的缩写。
What is the relationship between Sarsa and the previous TD learning algorithm?
可以通过将TD算法中的state value估计 v ( s ) v(s) v(s)替换为action value估计 q ( s , a ) q(s,a) q(s,a)来获得Sarsa。 因此,Sarsa 是 TD 算法的action-value版。
What does the Sarsa algorithm do mathematically?
Sarsa 的表达式表明其是求解以下方程的随机近似算法:
q π ( s , a ) = E [ R + γ q π ( S ′ , A ′ ) ∣ s , a ] , ∀ s , a . q_{\pi}(s,a)=\mathbb{E}\left[R+\gamma q_{\pi}(S^{\prime},A^{\prime})|s,a\right],\quad\forall s,a. qπ(s,a)=E[R+γqπ(S′,A′)∣s,a],∀s,a.
这是Bellman方程的另一种以action value表示的表达式。
Theorem (Convergence of Sarsa learning)
By the e Sarsa algorithm, q t ( s , a ) q_t(s, a) qt(s,a) converges with probability 1 to action value q π ( s , a ) q_{\pi}(s, a) qπ(s,a) as t → ∞ t \rightarrow \infty t→∞ for all ( s , a ) (s, a) (s,a) if ∑ t α t ( s ) = ∞ \sum_t \alpha_t(s) = \infty ∑tαt(s)=∞ and ∑ t α t 2 ( s ) < ∞ \sum_t \alpha_t^2(s) < \infty ∑tαt2(s)<∞ for all ( s , a ) (s, a) (s,a).
该定理表明,对于给定的policy π \pi π,Sarsa 可以找到action value。
Sarsa – Implementation
强化学习的最终目标是找到最优policy。
为此,可以将 Sarsa 与policy improvement步骤结合起来。组合算法也称为 Sarsa。
- s t s_t st 的policy在 q ( s t , a t ) q(s_t, a_t) q(st,at)更新后立即更新。 这是基于广义policy迭代的思想。
- 政策是 ε \varepsilon ε-greedy而不是贪心,以很好地平衡开采(exploitation)和探索(exploration)。
- 核心思想很简单:就是用一种算法来求解给定policy的Bellman方程。
Sarsa – Examples
r target = 0 , r forbidden = r boundary = − 10 r_{\text{target}} = 0, r_{\text{forbidden}} = r_{\text{boundary}} = -10 rtarget=0,rforbidden=rboundary=−10, r other = − 1 r_{\text{other}} = -1 rother=−1,学习率 α = 0.1 \alpha = 0.1 α=0.1, ε = 0.1 \varepsilon = 0.1 ε=0.1
如上图左:并非所有state都有最优policy
如上图右:每episode总reward的指标将被频繁使用。
TD learning of action values: Expected Sarsa
Sarsa 的一个变体是 Expected Sarsa 算法:
q t + 1 ( s t , a t ) = q t ( s t , a t ) − α t ( s t , a t ) [ q t ( s t , a t ) − ( r t + 1 + γ E [ q t ( s t + 1 , A ) ] ) ] , q t + 1 ( s , a ) = q t ( s , a ) , ∀ ( s , a ) ≠ ( s t , a t ) , \begin{aligned} q_{t+1}(s_{t},a_{t})& =q_t(s_t,a_t)-\alpha_t(s_t,a_t)\Big[q_t(s_t,a_t)-(r_{t+1}+\gamma\mathbb{E}[q_t(s_{t+1},A)])\Big], \\ q_{t+1}(s,a)& =q_t(s,a),\quad\forall(s,a)\neq(s_t,a_t), \end{aligned} qt+1(st,at)qt+1(s,a)=qt(st,at)−αt(st,at)[qt(st,at)−(rt+1+γE[qt(st+1,A)])],=qt(s,a),∀(s,a)=(st,at),
其中,
E [ q t ( s t + 1 , A ) ] ) = ∑ a π t ( a ∣ s t + 1 ) q t ( s t + 1 , a ) ≐ v t ( s t + 1 ) \mathbb{E}[q_t(s_{t+1},A)])=\sum_a\pi_t(a|s_{t+1})q_t(s_{t+1},a)\doteq v_t(s_{t+1}) E[qt(st+1,A)])=a∑πt(a∣st+1)qt(st+1,a)≐vt(st+1)
是policy π t \pi_t πt 下 q t ( s t + 1 , a ) q_t(s_{t+1}, a) qt(st+1,a) 的期望值。
与Sarsa比较:
- TD target 从 Sarsa 中的 r t + 1 + γ q t ( s t + 1 , a t + 1 ) r_{t+1} + \gamma q_t(s_{t+1}, a_{t+1}) rt+1+γqt(st+1,at+1) 更改为 Expected Sarsa 中的 r t + 1 + γ E [ q t ( s t + 1 , A ) ] r_{t+1}+\gamma\mathbb{E}[q_t(s_{t+1},A)] rt+1+γE[qt(st+1,A)]。
- 需要更多的计算。 但从减少估计方差的意义上来说,它是有益的,因为它将 Sarsa 中的随机变量从 { s t , a t , r t + 1 , s t + 1 , a t + 1 } \{s_t,a_t,r_{t+1},s_{t+1},a_{t+1}\} {st,at,rt+1,st+1,at+1}减少到 { s t , a t , r t + 1 , s t + 1 } \{s_t,a_t,r_{t+1},s_{t+1}\} {st,at,rt+1,st+1}。
What does the algorithm do mathematically?
Expected Sarsa 是一种随机近似算法,用于求解以下方程:
q π ( s , a ) = E [ R t + 1 + γ E A t + 1 ∼ π ( S t + 1 ) [ q π ( S t + 1 , A t + 1 ) ] ∣ S t = s , A t = a ] , ∀ s , a . q_{\pi}(s,a)=\mathbb{E}\Big[R_{t+1}+\gamma\mathbb{E}_{A_{t+1}\sim\pi(S_{t+1})}[q_{\pi}(S_{t+1},A_{t+1})]\Big|S_{t}=s,A_{t}=a\Big],\quad\forall s,a. qπ(s,a)=E[Rt+1+γEAt+1∼π(St+1)[qπ(St+1,At+1)] St=s,At=a],∀s,a.
上式是Bellman方程的另一种表达:
q π ( s , a ) = E [ R t + 1 + γ v π ( S t + 1 ) ∣ S t = s , A t = a ] q_\pi(s,a)=\mathbb{E}\Big[R_{t+1}+\gamma v_\pi(S_{t+1})|S_t=s,A_t=a\Big] qπ(s,a)=E[Rt+1+γvπ(St+1)∣St=s,At=a]
TD learning of action values: n-step Sarsa
n n n-step Sarsa:可以统一 Sarsa 和 Monte Carlo learning
action value的定义为:
q π ( s , a ) = E [ G t ∣ S t = s , A t = a ] . q_\pi(s,a)=\mathbb{E}[G_t|S_t=s,A_t=a]. qπ(s,a)=E[Gt∣St=s,At=a].
discount return G t G_t Gt 可以写成不同的形式:
Sarsa ⟵ G t ( 1 ) = R t + 1 + γ q π ( S t + 1 , A t + 1 ) , G t ( 2 ) = R t + 1 + γ R t + 2 + γ 2 q π ( S t + 2 , A t + 2 ) , ⋮ n -step Sarsa ⟵ G t ( n ) = R t + 1 + γ R t + 2 + ⋯ + γ n q π ( S t + n , A t + n ) , ⋮ MC ⟵ G t ( ∞ ) = R t + 1 + γ R t + 2 + γ 2 R t + 3 + … \begin{align*} \text{Sarsa} \longleftarrow G_t^{(1)}&=R_{t+1} + \gamma q_\pi(S_{t+1},A_{t+1}),\\ G_t^{(2)}&=R_{t+1}+\gamma R_{t+2}+\gamma^2q_\pi(S_{t+2},A_{t+2}),\\ &\vdots \\ n\text{-step Sarsa} \longleftarrow G_t^{(n)}&=R_{t+1}+\gamma R_{t+2}+\cdots+\gamma^nq_\pi(S_{t+n},A_{t+n}),\\ &\vdots\\ \text{MC} \longleftarrow G_t^{(\infty)}&=R_{t+1}+\gamma R_{t+2}+\gamma^2R_{t+3}+\ldots \end{align*} Sarsa⟵Gt(1)Gt(2)n-step Sarsa⟵Gt(n)MC⟵Gt(∞)=Rt+1+γqπ(St+1,At+1),=Rt+1+γRt+2+γ2qπ(St+2,At+2),⋮=Rt+1+γRt+2+⋯+γnqπ(St+n,At+n),⋮=Rt+1+γRt+2+γ2Rt+3+…
需要注意的是, G t = G t ( 1 ) = G t ( 2 ) = G t ( n ) = G t ( ∞ ) \begin{aligned}G_t=G_t^{(1)}=G_t^{(2)}=G_t^{(n)}=G_t^{(\infty)}\end{aligned} Gt=Gt(1)=Gt(2)=Gt(n)=Gt(∞),其中上标仅表示 G t G_t Gt的不同分解结构。
Sarsa目的是解决:
q π ( s , a ) = E [ G t ( 1 ) ∣ s , a ] = E [ R t + 1 + γ q π ( S t + 1 , A t + 1 ) ∣ s , a ] . q_{\pi}(s,a)=\mathbb{E}[G_{t}^{(1)}|s,a]=\mathbb{E}[R_{t+1}+\gamma q_{\pi}(S_{t+1},A_{t+1})|s,a]. qπ(s,a)=E[Gt(1)∣s,a]=E[Rt+1+γqπ(St+1,At+1)∣s,a].
MC目的是解决:
q π ( s , a ) = E [ G t ( ∞ ) ∣ s , a ] = E [ R t + 1 + γ R t + 2 + γ 2 R t + 3 + … ∣ s , a ] . q_\pi(s,a)=\mathbb{E}[G_t^{(\infty)}|s,a]=\mathbb{E}[R_{t+1}+\gamma R_{t+2}+\gamma^2R_{t+3}+\ldots|s,a]. qπ(s,a)=E[Gt(∞)∣s,a]=E[Rt+1+γRt+2+γ2Rt+3+…∣s,a].
n n n-step Sarsa 的中间算法目的是解决:
q π ( s , a ) = E [ G t ( n ) ∣ s , a ] = E [ R t + 1 + γ R t + 2 + ⋯ + γ n q π ( S t + n , A t + n ) ∣ s , a ] . \begin{aligned}q_\pi(s,a)=\mathbb{E}[G_t^{(n)}|s,a]=\mathbb{E}[R_{t+1}+\gamma R_{t+2}+\cdots+\gamma^nq_\pi(S_{t+n},A_{t+n})|s,a].\end{aligned} qπ(s,a)=E[Gt(n)∣s,a]=E[Rt+1+γRt+2+⋯+γnqπ(St+n,At+n)∣s,a].
n n n-step Sarsa 算法目的是解决:
q t + 1 ( s t , a t ) = q t ( s t , a t ) − α t ( s t , a t ) [ q t ( s t , a t ) − [ r t + 1 + γ r t + 2 + ⋯ + γ n q t ( s t + n , a t + n ) ] ] . q_{t+1}(s_t,a_t)=q_t(s_t,a_t) -\alpha_t(s_t,a_t)\Big[q_t(s_t,a_t)-[r_{t+1}+\gamma r_{t+2}+\cdots+\gamma^nq_t(s_{t+n},a_{t+n})]\Big]. qt+1(st,at)=qt(st,at)−αt(st,at)[qt(st,at)−[rt+1+γrt+2+⋯+γnqt(st+n,at+n)]].
n n n-step Sarsa 更通用,因为当 n = 1 n = 1 n=1 时它变成(one-step)Sarsa 算法,当 n = ∞ n = \infty n=∞ 时它变成 MC learning算法。
n n n-step Sarsa需要 ( s t , a t , r t + 1 , s t + 1 , a t + 1 , … , r t + n , s t + n , a t + n ) . (s_t,a_t,r_{t+1},s_{t+1},a_{t+1},\ldots,r_{t+n},s_{t+n},a_{t+n}). (st,at,rt+1,st+1,at+1,…,rt+n,st+n,at+n).
由于 ( r t + n , s t + n , a t + n ) (r_{t+n}, s_{t+n}, a_{t+n}) (rt+n,st+n,at+n)在时间 t t t 尚未收集,因此无法在步骤 t t t 实现 n n n-step Sarsa。 然而,可以等到时间 t + n t + n t+n 来更新 ( s t , a t ) (s_t, a_t) (st,at) 的 q 值:
q t + n ( s t , a t ) = q t + n − 1 ( s t , a t ) − α t + n − 1 ( s t , a t ) [ q t + n − 1 ( s t , a t ) − [ r t + 1 + γ r t + 2 + ⋯ + γ n q t + n − 1 ( s t + n , a t + n ) ] ] \begin{align*} q_{t+n}(s_t,a_t)=&q_{t+n-1}(s_t,a_t)\\&-\alpha_{t+n-1}(s_t,a_t)\Big[q_{t+n-1}(s_t,a_t)-[r_{t+1}+\gamma r_{t+2}+\cdots+\gamma^nq_{t+n-1}(s_{t+n},a_{t+n})]\Big] \end{align*} qt+n(st,at)=qt+n−1(st,at)−αt+n−1(st,at)[qt+n−1(st,at)−[rt+1+γrt+2+⋯+γnqt+n−1(st+n,at+n)]]
由于 n n n-step Sarsa 将 Sarsa 和 MC learning作为两种极端情况,因此其性能是 Sarsa 和 MC learning的混合:
- 如果 n n n很大,它的性能接近MC learning,因此方差很大但偏差很小。
- 如果 n n n较小,则其性能接近Sarsa,因此由于初始猜测和相对较低的方差而具有相对较大的偏差。
n-step Sarsa 也用于policy evaluation。 它可以与policy improvement步骤相结合来搜索最优policy。
TD learning of optimal action values: Q-learning
Sarsa 可以估计给定policy的action value。 它必须与policy improvement步骤相结合才能找到最佳policy。
Q-learning 可以直接估计最优action value,从而估计最优policy。
Q-learning – Algorithm
Q-learning算法为:
q t + 1 ( s t , a t ) = q t ( s t , a t ) − α t ( s t , a t ) [ q t ( s t , a t ) − [ r t + 1 + γ max a ∈ A q t ( s t + 1 , a ) ] ] , q t + 1 ( s , a ) = q t ( s , a ) , ∀ ( s , a ) ≠ ( s t , a t ) , \begin{aligned} q_{t+1}(s_{t},a_{t})& =q_t(s_t,a_t)-\alpha_t(s_t,a_t)\left[q_t(s_t,a_t)-[r_{t+1}+\gamma\max_{a\in\mathcal{A}}q_t(s_{t+1},a)]\right], \\ q_{t+1}(s,a)& =q_t(s,a),\quad\forall(s,a)\neq(s_t,a_t), \end{aligned} qt+1(st,at)qt+1(s,a)=qt(st,at)−αt(st,at)[qt(st,at)−[rt+1+γa∈Amaxqt(st+1,a)]],=qt(s,a),∀(s,a)=(st,at),
Q-learning 与 Sarsa 非常相似。 它们仅在 TD target方面有所不同:
- Q-learning 中的 TD target是: r t + 1 + γ max a ∈ A q t ( s t + 1 , a ) r_{t+1}+\gamma\max_{a\in\mathcal{A}}q_t(s_{t+1},a) rt+1+γmaxa∈Aqt(st+1,a)
- Sarsa 中的 TD target是: r t + 1 + γ q t ( s t + 1 , a t + 1 ) r_{t+1}+\gamma q_t(s_{t+1},a_{t+1}) rt+1+γqt(st+1,at+1)
What does Q-learning do mathematically?
其目的是解决:
q ( s , a ) = E [ R t + 1 + γ max a q ( S t + 1 , a ) ∣ S t = s , A t = a ] , ∀ s , a . \left.q(s,a)=\mathbb{E}\left[R_{t+1}+\gamma\max_aq(S_{t+1},a)\right|S_t=s,A_t=a\right],\quad\forall s,a. q(s,a)=E[Rt+1+γamaxq(St+1,a) St=s,At=a],∀s,a.
这是用action values表示的Bellman最优方程。
Off-policy vs on-policy
在进一步研究Q-learning之前,需要首先介绍两个重要的概念:on-policy learning和off-policy learning。
TD learning任务中存在两种policy:
- behavior policy用于生成经验样本
- target policy不断更新以达到最优policy
On-policy vs off-policy:
- 当behavior policy与target policy相同时,这种学习称为on-policy learning。
- 当不同时,称为off-policy learning。
Advantages of off-policy learning:
它可以根据任何其他policy生成的经验样本来搜索最优policy。
作为一个重要的特例,behavior policy可以选择具有探索性。 例如,如果想估计所有state-action对的action value,可以使用探索性policy来生成多次访问每个state-action对的episode。
How to judge if a TD algorithm is on-policy or off-policy?
首先,检查算法在数学上的作用。
其次,检查实现算法需要哪些东西。
Sarsa is on-policy.
首先,Sarsa 的目标是求解给定policy π \pi π 的Bellman方程:
q π ( s , a ) = E [ R + γ q π ( S ′ , A ′ ) ∣ s , a ] , ∀ s , a . q_\pi(s,a)=\mathbb{E}\left[R+\gamma q_\pi(S^{\prime},A^{\prime})|s,a\right],\quad\forall s,a. qπ(s,a)=E[R+γqπ(S′,A′)∣s,a],∀s,a.
其中, R ∼ p ( R ∣ s , a ) , S ′ ∼ p ( S ′ ∣ s , a ) , A ′ ∼ π ( A ′ ∣ S ′ ) . R\sim p(R|s,a),S^{\prime}\sim p(S^{\prime}|s,a),{A^{\prime}\sim\pi(A^{\prime}|S^{\prime})}. R∼p(R∣s,a),S′∼p(S′∣s,a),A′∼π(A′∣S′).
其次,算法是:
q t + 1 ( s t , a t ) = q t ( s t , a t ) − α t ( s t , a t ) [ q t ( s t , a t ) − [ r t + 1 + γ q t ( 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)\Big[q_t(s_t,a_t)-[r_{t+1}+\gamma q_t(s_{t+1},a_{t+1})]\Big], qt+1(st,at)=qt(st,at)−αt(st,at)[qt(st,at)−[rt+1+γqt(st+1,at+1)]],
需要 ( s t , a t , r t + 1 , s t + 1 , a t + 1 ) (s_t,a_t,r_{t+1},s_{t+1},a_{t+1}) (st,at,rt+1,st+1,at+1)
如果给出 ( s t , a t ) (s_t, a_t) (st,at),则 r t + 1 r_{t+1} rt+1 和 s t + 1 s_{t+1} st+1 不依赖于任何policy。 a t + 1 a_{t+1} at+1 是根据 π t ( s t + 1 ) π_t(s_{t+1}) πt(st+1)生成的。
π t \pi_t πt 既是behavior policy又是target policy。
Monte Carlo learning is on-policy.
首先,MC方法目的是计算:
q π ( s , a ) = E [ R t + 1 + γ R t + 2 + … ∣ S t = s , A t = a ] , ∀ s , a . q_{\pi}(s,a)=\mathbb{E}\left[R_{t+1}+\gamma R_{t+2}+\ldots|S_{t}=s,A_{t}=a\right],\quad\forall s,a. qπ(s,a)=E[Rt+1+γRt+2+…∣St=s,At=a],∀s,a.
其中样本是根据给定policy π \pi π 生成的。
其次,MC方法的实现是:
q ( s , a ) ≈ r t + 1 + γ r t + 2 + … q(s,a)\approx r_{t+1}+\gamma r_{t+2}+\ldots q(s,a)≈rt+1+γrt+2+…
action value用于生成样本,样本进一步用于估计policy的action value。 基于action value,可以改进policy。
Q-learning is off-policy.
首先,Q-learning旨在求解Bellman最优方程:
q ( s , a ) = E [ R t + 1 + γ max a q ( S t + 1 , a ) ∣ S t = s , A t = a ] , ∀ s , a . q(s,a)=\mathbb{E}\left[R_{t+1}+\gamma\max_aq(S_{t+1},a)\Big|S_t=s,A_t=a\right],\quad\forall s,a. q(s,a)=E[Rt+1+γamaxq(St+1,a) St=s,At=a],∀s,a.
其次,算法为:
q t + 1 ( s t , a t ) = q t ( s t , a t ) − α t ( s t , a t ) [ q t ( s t , a t ) − [ r t + 1 + γ max a ∈ A q t ( s t + 1 , a ) ] ] q_{t+1}(s_t,a_t)=q_t(s_t,a_t)-\alpha_t(s_t,a_t)\left[q_t(s_t,a_t)-[r_{t+1}+\gamma\max_{a\in\mathcal{A}}q_t(s_{t+1},a)]\right] qt+1(st,at)=qt(st,at)−αt(st,at)[qt(st,at)−[rt+1+γa∈Amaxqt(st+1,a)]]
需要 ( s t , a t , r t + 1 , s t + 1 ) . (s_t,a_t,r_{t+1},s_{t+1}). (st,at,rt+1,st+1).
根据 s t s_t st 生成 a t a_t at 的behavior policy可以是任何内容。 target policy将收敛于最优policy。
由于 Q-learning是off-policy的,因此它可以既可以以off-policy形式实现也可以以on-policy形式实现。
Q-learning – Examples
r boundary = r forbidden = − 1 r_{\text{boundary}} = r_{\text{forbidden}} = -1 rboundary=rforbidden=−1, r target = 1 r_{\text{target}} = 1 rtarget=1。discount rate γ = 0.9 \gamma=0.9 γ=0.9。学习率 α = 0.1 \alpha=0.1 α=0.1。
下图是behavior policy和其生成的样本( 1 0 5 10^5 105步):
off-policy Q-learning 学习到的policy:
探索的重要性: 1 0 5 10^5 105个episode
如果policy探索性不够,样本就不够好。如下图:
A unified point of view
本讲介绍的所有算法都可以用一个统一的表达式来表示:
q t + 1 ( s t , a t ) = q t ( s t , a t ) − α t ( s t , a t ) [ q t ( s t , a t ) − q ˉ t ] , 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)-\bar{q}_t], qt+1(st,at)=qt(st,at)−αt(st,at)[qt(st,at)−qˉt],
其中, q ˉ t \bar{q}_t qˉt是TD target。
不同的TD算法有不同的 q ˉ t \bar{q}_t qˉt。
Algorithm | Expression of q ˉ t \bar{q}_t qˉt |
---|---|
Sarsa | q ˉ t = r t + 1 + γ q t ( s t + 1 , a t + 1 ) \bar{q}_t=r_{t+1}+\gamma q_t(s_{t+1},a_{t+1}) qˉt=rt+1+γqt(st+1,at+1) |
n n n-step Sarsa | q ˉ t = r t + 1 + γ r t + 2 + ⋯ + γ n q t ( s t + n , a t + n ) \bar{q}_t=r_{t+1}+\gamma r_{t+2}+\cdots+\gamma^nq_t(s_{t+n},a_{t+n}) qˉt=rt+1+γrt+2+⋯+γnqt(st+n,at+n) |
Expected Sarsa | q ˉ t = r t + 1 + γ ∑ a π t ( a ∣ s t + 1 ) q t ( s t + 1 , a ) \bar{q}_t=r_{t+1}+\gamma\sum_a\pi_t(a | s_{t+1})q_t(s_{t+1}, a) qˉt=rt+1+γ∑aπt(a∣st+1)qt(st+1,a) |
Q-learning | q ˉ t = r t + 1 + γ max a q t ( s t + 1 , a ) \bar{q}_t=r_{t+1}+\gamma\max_aq_t(s_{t+1},a) qˉt=rt+1+γmaxaqt(st+1,a) |
Monte Carlo | q ˉ t = r t + 1 + γ r t + 2 + … \bar{q}_t=r_{t+1}+\gamma r_{t+2}+\ldots qˉt=rt+1+γrt+2+… |
MC 方法也可以通过设置 α t ( s t , a t ) = 1 \alpha_t(s_t, a_t) = 1 αt(st,at)=1 从而 q t + 1 ( s t , a t ) = q ˉ t q_{t+1}(s_t, a_t) = \bar{q}_t qt+1(st,at)=qˉt 来表达在这个统一表达式中。
所有算法都可以看作求解Bellman方程或Bellman最优方程的随机近似算法:
Algorithm | Equation aimed to solve |
---|---|
Sarsa | BE: q π ( s , a ) = E [ R t + 1 + γ q π ( S t + 1 , A t + 1 ) S t = s , A t = a ] \text{BE: }q_\pi(s,a)=\mathbb{E}\left[R_{t+1}+\gamma q_\pi(S_{t+1},A_{t+1})S_t=s,A_t=a\right] BE: qπ(s,a)=E[Rt+1+γqπ(St+1,At+1)St=s,At=a] |
n n n-step Sarsa | BE: q π ( s , a ) = E [ R t + 1 + γ R t + 2 + ⋯ + γ n q π ( s t + n , a t + n ) S t = s , A t = a ] \text{BE: }q_\pi(s,a)=\mathbb{E}[R_{t+1}+\gamma R_{t+2}+\cdots+\gamma^nq_\pi(s_{t+n},a_{t+n})S_t=s,A_t=a] BE: qπ(s,a)=E[Rt+1+γRt+2+⋯+γnqπ(st+n,at+n)St=s,At=a] |
Expected Sarsa | BE: q π ( s , a ) = E [ R t + 1 + γ E A t + 1 [ q π ( S t + 1 , A t + 1 ) ] ∣ S t = s , A t = a ] \text{BE: }q_\pi(s,a)=\mathbb{E} \big[R_{t+1}+\gamma \mathbb{E}_{A_{t+1}}\big[q_\pi(S_{t+1},A_{t+1})\big] | S_t=s, A_t=a \big] BE: qπ(s,a)=E[Rt+1+γEAt+1[qπ(St+1,At+1)]∣St=s,At=a] |
Q-learning | BE: q ( s , a ) = E [ R t + 1 + max a q ( S t + 1 , a ) ∣ S t = s , A t = a ] \text{BE: }q(s,a)=\mathbb{E}\left[R_{t+1}+\max_aq(S_{t+1},a) | S_t = s, A_t = a \right] BE: q(s,a)=E[Rt+1+maxaq(St+1,a)∣St=s,At=a] |
Monte Carlo | BE: q π ( s , a ) = E [ R t + 1 + γ R t + 2 + … ∣ S t = s , A t = a ] \text{BE: }q_\pi(s,a)=\mathbb{E}[R_{t+1}+\gamma R_{t+2}+\ldots | S_t = s, A_t = a] BE: qπ(s,a)=E[Rt+1+γRt+2+…∣St=s,At=a] |
Summary
- Introduced various TD learning algorithms
- Their expressions, math interpretations, implementation, relationship, examples
- Unified point of view
以上内容为B站西湖大学智能无人系统 强化学习的数学原理 公开课笔记。
这篇关于【RL】Temporal-Difference Learning(时序差分方法)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!