PPT 截取有用信息。 课程网站做习题。总体 MOOC 过一遍

学堂在线 课程页面链接
中国大学MOOC 课程页面链接
B 站 视频链接

PPT和书籍下载网址: 【GitHub链接】


在这里插入图片描述

——————

7.1 状态值 的 TD 学习算法

P1

temporal-difference (TD) learning 时间差分学习

第 5 章 蒙特卡洛方法 model-free 方法 非增量
本章的 TD 学习 是 第二种 model-free 方法 增量式
下一章介绍 的值函数近似 基于 TD 方法。

本章 (表格) ——> 下一章 (函数表示)

在这里插入图片描述

用 RM 算法 求解 3 个 问题:

问题 1:
简单的均值估计问题:: 基于随机变量   X   ~X~  X 的独立同分布采样数据   { x }   ~\{x\}~  {x} ,计算 w = E [ X ] w=\mathbb E[\textcolor{blue}{X}] w=E[X]
  g ( w ) = w − E [ X ] ~g(w)=w-\mathbb E[X]  g(w)=wE[X], 将问题重新表述为 寻根问题   g ( w ) = 0 ~g(w)=0  g(w)=0
可获取的 带误差的值   g ~ ( w , η ) = w − x = ( w − E [ X ] ) + ( E [ X ] − x ) ≐ g ( w ) + η ~\textcolor{blue}{\widetilde g(w,\eta)=w-x=(w-\mathbb E[X])+(\mathbb E[X]-x)}\doteq g(w)+\eta  g (w,η)=wx=(wE[X])+(E[X]x)g(w)+η
RM 算法迭代求解公式: w k + 1 = w k − α k g ~ ( w k , η k ) = w k − α k ( w k − x k ) w_{k+1}=w_k-\alpha_k\widetilde g(w_k,\eta_k)=w_k-\alpha_k(w_k-\textcolor{blue}{x_k}) wk+1=wkαkg (wk,ηk)=wkαk(wkxk)

$\doteq$     ≐ ~~~\doteq    

问题 2:
估计函数 v ( X ) v(X) v(X) 的均值: w = E [ v ( X ) ] w=\mathbb E[\textcolor{blue}{v(X)}] w=E[v(X)], 基于   X   ~X~  X 的独立同分布采样数据   { x }   ~\{x\}~  {x} 
  g ( w ) = w − E [ v ( X ) ] ~g(w)=w-\mathbb E[v(X)]  g(w)=wE[v(X)], 将问题重新表述为 寻根问题   g ( w ) = 0 ~g(w)=0  g(w)=0
可获取的 带误差的值   g ~ ( w , η ) = w − v ( x ) = ( w − E [ v ( X ) ] ) + ( E [ v ( X ) ] − v ( x ) ) ≐ g ( w ) + η ~\textcolor{blue}{\widetilde g(w,\eta)=w-v(x)=(w-\mathbb E[v(X)])+(\mathbb E[v(X)]-v(x))}\doteq g(w)+\eta  g (w,η)=wv(x)=(wE[v(X)])+(E[v(X)]v(x))g(w)+η
RM 算法迭代求解公式: w k + 1 = w k − α k g ~ ( w k , η k ) = w k − α k ( w k − v ( x k ) ) w_{k+1}=w_k-\alpha_k\widetilde g(w_k,\eta_k)=w_k-\alpha_k(w_k-\textcolor{blue}{v(x_k)}) wk+1=wkαkg (wk,ηk)=wkαk(wkv(xk))

问题 3:
估计函数均值: w = E [ R + γ v ( X ) ] w=\mathbb E[\textcolor{blue}{R+\gamma v(X)}] w=E[R+γv(X)], 基于   X   ~X~  X 的独立同分布采样数据   { x }   ~\{x\}~  {x}    R   ~R~  R 的独立同分布采样数据   { r }   ~\{r\}~  {r} , γ \gamma γ 为常数。
  g ( w ) = w − E [ R + γ v ( X ) ] ~g(w)=w-\mathbb E[R+\gamma v(X)]  g(w)=wE[R+γv(X)], 将问题重新表述为 寻根问题   g ( w ) = 0 ~g(w)=0  g(w)=0
可获取的 带误差的值   g ~ ( w , η ) = w − [ r + γ v ( x ) ] = ( w − E [ R + γ v ( X ) ] ) + ( E [ R + γ v ( X ) ] − [ r + γ v ( x ) ] ) ≐ g ( w ) + η ~\textcolor{blue}{\widetilde g(w,\eta)=w-[r + \gamma v(x)]=(w-\mathbb E[R + \gamma v(X)])+(\mathbb E[R + \gamma v(X)]-[r+\gamma v(x)])}\doteq g(w)+\eta  g (w,η)=w[r+γv(x)]=(wE[R+γv(X)])+(E[R+γv(X)][r+γv(x)])g(w)+η
RM 算法迭代求解公式: w k + 1 = w k − α k g ~ ( w k , η k ) = w k − α k [ w k − ( r k + γ v ( x k ) ) ] w_{k+1}=w_k-\alpha_k\widetilde g(w_k,\eta_k)=w_k-\alpha_k[w_k-(\textcolor{blue}{r _k+\gamma v(x_k)})] wk+1=wkαkg (wk,ηk)=wkαk[wk(rk+γv(xk))]

——————
P2
TD 算法的目标:求解 给定策略 π \pi π 的 状态值
求解了 状态值, 相当于做了 策略评估,用于后续的 策略改进。

基于 数据 / 经验。 { ( s t , r t + 1 , s t + 1 ) } \{(s_t, r_{t+1}, s_{t+1})\} {(st,rt+1,st+1)}

TD 学习算法
v t + 1 ( s t ) ⏟ 新的估计值 = v t ( s t ) ⏟ 当前估计值 − α ( s t ) ⏟ 学习率 [ v t ( s t ) − [ r t + 1 + γ v t ( s t + 1 ) ] ⏟ T D  目标  v ˉ t ] ⏞ T D  误差  δ t \underbrace{v_{t+1}(s_t)}_{\textcolor{blue}{新的估计值}}=\underbrace{v_t(s_t)}_{\textcolor{blue}{当前 估计值}}-\underbrace{\alpha(s_t)}_{\textcolor{blue}{学习率}}\overbrace{[v_t(s_t)-\underbrace{[r_{t+1}+\gamma v_t(s_{t+1})]}_{\textcolor{blue}{{\rm TD} ~目标~ \bar v_t}}]}^{\textcolor{blue}{{\rm TD} ~误差~\delta_t}} 新的估计值 vt+1(st)=当前估计值 vt(st)学习率 α(st)[vt(st)TD 目标 vˉt [rt+1+γvt(st+1)]] TD 误差 δt
  ~  
v t + 1 ( s ) = v t ( s ) ,     ∀   s ≠ s t      v_{t+1}(s)=v_t(s), ~~~~\forall~s\neq s_t~~~~ vt+1(s)=vt(s)     s=st     未访问的状态 (非当前的 s t s_t st) 的值 不更新

  • t = 0 , 1 , 2 , . . . t = 0, 1, 2, ... t=0,1,2,...
  • v t ( s t ) v_t(s_t) vt(st) v π ( s t ) v_\pi(s_t) vπ(st) 的 状态值 估计。
  • α t ( s t ) \alpha_t(s_t) αt(st) s t s_t st 在时间 t t t 的学习率。

————

在时刻 t t t,只有访问过的状态 s t s_t st 的值被更新,而未访问过的状态 s t s_t st 的值保持不变。
新的估计 v t + 1 ( s t ) v_{t+1}(s_t) vt+1(st) 是当前估计 v t ( s t ) v_t(s_t) vt(st) 和 TD 误差的组合。

如何理解 TD 目标 v ˉ t \bar v_t vˉt

  • 算法 驱使 v ( s t ) v(s_t) v(st) v ˉ t \bar v_t vˉt 移动

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(s_t)-\alpha_t(s_t)[v_t(s_t)-\bar v_t] vt+1(st)=vt(st)αt(st)[vt(st)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)\textcolor{blue}{-\bar v_t}=v_t(s_t)\textcolor{blue}{-\bar v_t}-\alpha_t(s_t)[v_t(s_t)-\bar v_t] vt+1(st)vˉt=vt(st)vˉtαt(st)[vt(st)vˉt]

v t + 1 ( s t ) − v ˉ t = [ 1 − α t ( s t ) ] [ v t ( s t ) − v ˉ t ] v_{t+1}(s_t)-\bar v_t=[1-\alpha_t(s_t)][v_t(s_t)-\bar v_t] vt+1(st)vˉt=[1αt(st)][vt(st)vˉt]
∣ v t + 1 ( s t ) − v ˉ t ∣ = ∣ 1 − α t ( s t ) ∣ ∣ v t ( s t ) − v ˉ t ∣ |v_{t+1}(s_t)-\bar v_t|=|1-\alpha_t(s_t)||v_t(s_t)-\bar 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 − α t ( s t ) < 1 0 < 1-\alpha_t(s_t)<1 0<1αt(st)<1
∣ v t + 1 ( s t ) − v ˉ t ∣ ≤ ∣ v t ( s t ) − v ˉ t ∣ |v_{t+1}(s_t)-\bar v_t|\leq|v_t(s_t)-\bar v_t| vt+1(st)vˉtvt(st)vˉt
两者越来越近。

如何理解 TD误差? δ 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)]

  • 从经验 ( s t , r t + 1 , s t + 1 ) (s_t, r_{t+1},s_{t+1}) (st,rt+1,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})] δπ,tvπ(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}[R_{t+1}+\gamma v_\pi(S_{t+1})|S_t=s_t]=0 E[δπ,tSt=st]=vπ(st)E[Rt+1+γvπ(St+1)St=st]=0

在这里插入图片描述

如果 δ t ≠ 0 \delta_t\neq0 δt=0, 则 v t ≠ v π v_t\neq v_\pi vt=vπ

时序差分: 两个不同时刻。

TD学习的基本思想是根据新获得的信息修正 当前对状态值的估计。

————————————————

当前 TD 算法:仅能 估计给定策略的 状态值
后续 TD 算法:可估计动作值,然后搜索最优策略。

——————
P3
TD 算法的目标: 在没有模型的情况下,求解 给定策略的 贝尔曼公式。model-free

贝尔曼期望方程
策略 π \pi π 的状态值 v π ( s ) = E [ R + γ G ∣ S = s ] ,     s ∈ S v_\pi(s)=\mathbb E[R+\gamma G|S=s], ~~~s\in \mathcal S vπ(s)=E[R+γGS=s],   sS

  • G G G 是 折扣回报

由于 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\limits_a\pi(a|s)\sum\limits_{s^\prime}p(s^\prime|s, a)v_\pi(s^\prime)=\mathbb E[v_\pi(S^\prime)|S=s] E[GS=s]=aπ(as)sp(ss,a)vπ(s)=E[vπ(S)S=s]

S ′ S^\prime S: 下一状态

v π ( s ) = E [ R + γ v π ( S ′ ) ∣ S = s ] ,     s ∈ S v_\pi(s)=\mathbb E[R+\gamma v_\pi(S^\prime)|S=s],~~~s\in \mathcal S vπ(s)=E[R+γvπ(S)S=s],   sS

如何求解上述 贝尔曼期望方程?

已知: R R R 的样本 r r r S ′ S^\prime S 的样本 s ′ s^\prime 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}\widetilde g(v(s))&=v(s)-[r+\gamma v_\pi(s^\prime)]\\ &=\underbrace{\Big(v(s)-\mathbb E[R+\gamma v_\pi(S^\prime)|s]\Big)}_{g(v(s))}+\underbrace{\Big(\mathbb E[R+\gamma v_\pi(S^\prime)|s]-[r+\gamma v_\pi(s^\prime)]\Big)}_{\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 ) ) = 0 g(v(s))=0 g(v(s))=0 的 RM 算法:

v k + 1 ( s ) = v k ( s ) − α k g ~ ( v k ( s ) ) = v ( s ) − α k ( v k ( s ) − [ r k + γ v π ( s k ′ ) ] ) ,     k = 1 , 2 , 3 , . . . \begin{aligned}v_{k+1}(s)&=v_k(s)-\alpha_k\widetilde g(v_k(s))\\ &=v(s)-\alpha_k \Big( v_k(s)-[r_k+\gamma v_\pi(s^\prime_k)]\Big), ~~~k=1, 2, 3, ...\end{aligned} vk+1(s)=vk(s)αkg (vk(s))=v(s)αk(vk(s)[rk+γvπ(sk)]),   k=1,2,3,...

上述解法需要满足两个前提:有些量未知!!!
1、已知 经验集 { s , r , s ′ } \{s, r, s^\prime\} {s,r,s}, 对于 k = 1 , 2 , 3 , . . . k=1, 2, 3,... k=1,2,3,...。——> 利用 一个 episode 的序列样本:改成 { ( s t , r t + 1 , s t + 1 } \{(s_t, r_{t+1}, s_{t+1}\} {(st,rt+1,st+1}
2、已知 任意 s ′ s^\prime s 的状态值 v π ( s ′ ) v_\pi(s^\prime) vπ(s)。 ——> 用估计值 v k ( s k ′ ) v_k(s_k^\prime) vk(sk) 代替

TD 学习的收敛性:
当对所有的 s ∈ S s\in\mathcal S sS, 均满足 ∑ t α t ( s ) = ∞ \sum\limits_t\alpha_t(s)=\infty tαt(s)= ∑ t α t 2 ( s ) < ∞ \sum\limits_t\alpha_t^2(s)<\infty tαt2(s)<,则当 t → ∞ t\to\infty t 时, v t ( s ) v_t(s) vt(s) 以 概率 1 收敛到 v π ( s ) v_\pi(s) vπ(s)

在这里插入图片描述

该定理表明,对于给定的策略,可以通过 TD 算法找到 状态值

要求 每个状态 被访问足够多次。

  • TD 学习 的 收敛性证明 7.1.3 P139 - P141

——————
TD 学习 和 MC 学习 都是 model-free

  • Sarsa 类似于 TD 学习, 但能估计 动作值
TD/Sarsa 学习 MC 学习
在线Online:在收到奖励后立即更新 状态值/行动值。 离线Offline:一个 episode 修改一次。
除了 episodic tasks, 还可以处理 continuing tasks 有终止状态的 episodic tasks
Bootstrapping:值的更新依赖于先前对该值的估计。因此,它需要初始猜测。 Non-bootstrapping:可直接估计状态/动作值,而不需要任何初始猜测。
低估计方差:随机变量更少。 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 ^2R_{t+3}+... Rt+1+γRt+2+γ2Rt+3+...
假设每个 episode 的长度为 L L L, 则共有 ∣ A ∣ L |\mathcal A|^L AL 个 episodes,只通过 一个 episode 来估计这么多值, 方差必然会很大。
估计值是否有偏差和 初始猜测 和 迭代次数 有关 无偏估计

7.2 动作值 的 TD 算法: Sarsa

P4

Sarsa 算法 可以 直接估计 动作值。
如何 使用 Sarsa 来找到 最优策略。

  • Sarsa 估计动作值 + 策略改进 步骤 , 即可寻找最优策略。

————————————
目标: 估计给定策略 π π π 的动作值。

一些经验: { ( s t , a t , r t + 1 , s t + 1 , a t + 1 ) } t \left\{(s_t,a_t,r_{t+1},s_{t+1}, a_{t+1})\right\}_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_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)]]
q t + 1 ( s , a ) = q t ( s , a ) ,     ∀   ( s , a ) ≠ ( s t , a t ) q_{t+1}(s, a)=q_t(s,a), ~~~\forall~(s, a)\neq (s_t, a_t) qt+1(s,a)=qt(s,a),    (s,a)=(st,at)

  • t = 0 , 1 , 2 , . . . t = 0, 1, 2,... 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 的学习率。

在时间 t t t,只有 ( s t , a t ) (s_t,a_t) (st,at) 的 q 值 被更新。

Sarsa:state-action-reward-state-action 的缩写, ( s t , a t , r r + 1 , s t + 1 , a t + 1 ) (s_t,a_t,r_{r+1},s_{t+1},a_{t+1}) (st,at,rr+1,st+1,at+1)

Sarsa 是 TD 算法的 动作值版本。
v ( s ) → q ( s , a ) v(s)\to q(s, a) v(s)q(s,a)

Sarsa:求解 以下问题的随机近似算法。
q π ( s , a ) = E [ R + γ q π ( S ′ , A ′ ) ∣ s , a ] ,     ∀   s , a q_\pi(s, a)=\mathbb E[R+\gamma q_\pi(S^\prime, A^\prime)|s, a], ~~~\forall ~s, a qπ(s,a)=E[R+γqπ(S,A)s,a],    s,a
这是 Bellman方程 的另一个用动作值表示的表达式。

  • 电子书 证明 P143

Sarsa 学习 的收敛性:
当对所有的 ( s , a ) (s, a) (s,a), 均满足 ∑ t α t ( s , a ) = ∞ \sum\limits_t\alpha_t(s, a)=\infty tαt(s,a)= ∑ t α t 2 ( s , a ) < ∞ \sum\limits_t\alpha_t^2(s, a)<\infty tαt2(s,a)<,则当 t → ∞ t\to\infty t 时, q t ( s , a ) q_t(s, a) qt(s,a) 以 概率 1 收敛到 q π ( s , a ) q_\pi(s, a) qπ(s,a)

在这里插入图片描述

∑ t α t ( s , a ) = ∞ \sum\limits_t\alpha_t(s, a)=\infty tαt(s,a)= 要求 每个 状态-动作对 必须被访问 无数次 或至少 足够多 次。

在 时间 t t t, 如果 ( s , a ) = ( s t , a t ) (s, a)=(s_t,a_t) (s,a)=(st,at), 则 α t ( s , a ) > 0 \alpha_t(s, a)>0 αt(s,a)>0; 否则 α t ( s , a ) = 0 \alpha_t(s, a)=0 αt(s,a)=0

对于给定策略 π \pi π, 可以通过 Sarsa 算法 计算 动作值。

————————————

7.2.2 通过 Sarsa 学习最优策略

Sarsa + 策略改进 步骤

在这里插入图片描述

每次迭代有两个步骤。
第一步是更新被访问 状态-动作对的 q 值。
第二步是将策略更新为 ε \varepsilon ε-greedy 策略。q 值更新步骤仅更新所访问的单个状态-动作对

q ( s t , a t ) q(s_t, a_t) q(st,at) 更新之后,立即更新 s t s_t st 的策略。
平衡 利用exploitation 和 探索exploration: ϵ \epsilon ϵ-greedy。 访问更多的 ( s , a ) (s, a) (s,a)

例子:寻找从特定起始状态 [左上角] 到 目标状态 的最优路径。

可行路径 or 最优路径


Sarsa 的两个变形: Expected Sarsa、 n-step Sarsa。

研究思路:从经典算法出发,推广-改进

Expected Sarsa

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_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)]]
q t + 1 ( s , a ) = q t ( s , a ) ,     ∀   ( s , a ) ≠ ( s t , a t ) q_{t+1}(s, a)=q_t(s,a), ~~~\forall~(s, a)\neq (s_t, a_t) qt+1(s,a)=qt(s,a),    (s,a)=(st,at)
————————
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_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 \textcolor{blue}{\mathbb E}[q_t(s_{t+1}, \textcolor{blue}{A})])\Big] qt+1(st,at)=qt(st,at)αt(st,at)[qt(st,at)[rt+1+γE[qt(st+1,A)])]
q t + 1 ( s , a ) = q t ( s , a ) ,     ∀   ( s , a ) ≠ ( s t , a t ) q_{t+1}(s, a)=q_t(s,a), ~~~\forall~(s, a)\neq (s_t, a_t) qt+1(s,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\limits_{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(ast+1qt(st+1,a))vt(st+1)    【策略 π t \pi_t πt q t ( s t + 1 , a ) q_t(s_{t+1}, a) qt(st+1,a) 的期望值 】

计算量比 Sarsa 大, 但由于随机参数变少, 估计方差减小。
在这里插入图片描述

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[R_{t+1}+\gamma \mathbb E_{A_{t+1}\sim\pi(S_{t+1})}[q_\pi(S_{t+1}, A_{t+1})]|S_t=s, A_t=a], ~~~\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[R_{t+1}+\gamma v_\pi(S_{t+1})|S_t=s, A_t=a] qπ(s,a)=E[Rt+1+γvπ(St+1)St=s,At=a]

$\sim$    ∼ ~~\sim   

n-step Sarsa

Sarsa 和 MC 学习 是 n-step Sarsa 的两个极端情况

在这里插入图片描述

在这里插入图片描述

t + n t + n t+n 时刻 更新 ( s t , a t ) (s_t,a_t) (st,at) 时刻的 q 值。

如果 n 较大,则其性能接近 MC 学习,因此方差较大,但偏差较小。
如果 n 较小,则其性能接近 Sarsa,因此由于初始猜测和相对较低的方差,其偏差较大


7.4 最优动作值 的 TD 学习: Q-learning

P6
Q-learning 可以直接估计 最优动作值并获得最优策略。

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_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)]]
q t + 1 ( s , a ) = q t ( s , a ) ,     ∀   ( s , a ) ≠ ( s t , a t ) q_{t+1}(s, a)=q_t(s,a), ~~~\forall~(s, a)\neq (s_t, a_t) qt+1(s,a)=qt(s,a),    (s,a)=(st,at)
————————
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 ( s t + 1 ) 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)\Big[q_t(s_t, a_t)-[r_{t+1}+\gamma \textcolor{blue}{\max\limits_{a\in{\mathcal A}(s_{t+1})}} q_t(s_{t+1}, \textcolor{blue}{a})]\Big] qt+1(st,at)=qt(st,at)αt(st,at)[qt(st,at)[rt+1+γaA(st+1)maxqt(st+1,a)]]
q t + 1 ( s , a ) = q t ( s , a ) ,     ∀   ( s , a ) ≠ ( s t , a t ) q_{t+1}(s, a)=q_t(s,a), ~~~\forall~(s, a)\neq (s_t, a_t) qt+1(s,a)=qt(s,a),    (s,a)=(st,at)

  • 需要对 a a a 进行优化

给定 ( s t , a t ) (s_t,a_t) (st,at),需要的经验数据:
Sarsa: ( r t + 1 , s t + 1 , a t + 1 ) (r_{t+1},s_{t+1},\textcolor{blue}{a_{t+1}}) (rt+1,st+1,at+1)
Q-learning: ( r t + 1 , s t + 1 ) (r_{t+1},s_{t+1}) (rt+1,st+1)

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[R_{t+1}+\gamma \max\limits_a q(S_{t+1}, a)|S_t=s, A_t=a], ~~~\forall ~s, a q(s,a)=E[Rt+1+γamaxq(St+1,a)St=s,At=a],    s,a

  • 电子书 证明 上式为 贝尔曼最优公式

7.4.2 Off-policy vs on-policy

behavior policy: 和环境进行交互,然后生成 experience 样本。
target policy:不断朝 最优策略 更新。

on-policy:

  • behavior policy 和 target policy 相同
  • 用策略来和环境交互,得到 experience, 同时改进策略,然后用 改进的策略和环境交互。
  • Sarsa, MC

off-policy:

  • behavior policy 和 target policy 可以不同, 也可以相同。
  • 用一个策略和环境交互得到大量的经验,用这些经验不断改进一个策略,直到策略收敛。
  • Q-learning

——————
如何 判断 某个算法 是 on-policy 还是 off-policy?

  • 算法的目标是解决什么数学问题?
  • 算法需要哪些经验样本?

在这里插入图片描述
在这里插入图片描述

Sarsa:

  • 求解给定策略的贝尔曼公式
  • 需要
  • 在这里插入图片描述
    a t + 1 a_{t+1} at+1 和 策略有关。

在这里插入图片描述

MC: 估计 动作值

在这里插入图片描述

贝尔曼最优公式 不涉及 任何策略。

在这里插入图片描述
( s t , a t ) (s_t, a_t) (st,at) 给定, 从上述两个 转移概率公式可计算 ( s t + 1 , a t + 1 ) (s_{t+1}, a_{t+1}) (st+1,at+1), 不涉及 策略。

P7
Q-learning 算法 如何 实现?

on-policy 版本: 让 目标策略 和 行为策略 相同

在这里插入图片描述

在这里插入图片描述
b: behavior

根据已有的数据 寻找最优策略

这里 不再是 ε − \varepsilon- εgreedy。


例子: 为 每个状态 找对应的最优策略

探索性 比较强

在这里插入图片描述


P8

之前的内容:Q-learning 算法是什么?解决什么样的数学问题?
Sarsa 和 蒙特卡洛方法 都是 on-policy
Q-learning 是 off-policy

为什么将神经网络 和 TD 算法 结合的时候选择 Q-learning , 和 Q-learning 的 off-policy 性质有很大关系。

目标: 让 q t q_t qt 不断接近 TD target

在这里插入图片描述

在这里插入图片描述

——————————
7.6

TD-learning:Sarsa、n-step Sarsa 和 Q-learning

on-policy: 目标策略被用作行为策略来生成经验样本。

Q-learning 是 off-policy 的根本原因是,Q-learning 旨在解决 Bellman 最优性方程,而不是给定策略的 Bellman 方程。

7.7
为什么 Sarsa 的更新策略设计为 ε \varepsilon ε-greedy?
答:这是因为该策略也用于生成样本进行价值估计。产生足够的经验样本应该是探索性的。

为什么 Q-learning 的 off-policy 版本会将策略更新设为 greedy 而不是 ε \varepsilon ε-greedy?
答:这是因为目标策略不需要生成经验样本。因此,它不需要是探索性的


习题 笔记:

Sarsa 估计的是 动作值

Q-learning 每次使用经验数据包括 ( s t , a t , s t + 1 , r t + 1 ) (s_t,a_t,s_{t+1},r_{t+1}) (st,at,st+1,rt+1)。相比 Sarsa,Q-learning 不需要 a t + 1 a_{t+1} at+1.

PDF 补充

7.1.3 TD 学习 的 收敛性

在这里插入图片描述

考虑 任意状态 s ∈ S s\in\mathcal S sS, 在 时间 t t t

v t + 1 ( s ) = v t ( s ) − α t ( s ) ( v t ( s ) − ( r t + 1 + γ v t ( s t + 1 ) ) ) ,    s = s t v_{t+1}(s)=v_t(s)-\alpha_t(s)\big(v_t(s)-(r_{t+1}+\gamma v_t(s_{t+1}))\big),~~s=s_t vt+1(s)=vt(s)αt(s)(vt(s)(rt+1+γvt(st+1))),  s=st

v t + 1 ( s ) = v t ( s ) ,    s ≠ s t v_{t+1}(s)=v_t(s), ~~s\neq s_t vt+1(s)=vt(s),  s=st

估计误差 Δ t ( s ) = v t ( s ) − v π ( s ) \Delta_t(s)=v_t(s)-v_\pi(s) Δt(s)=vt(s)vπ(s)

v π ( s ) v_\pi(s) vπ(s): 策略 π \pi π 下状态 s s s 的状态值 。

s = s t s=s_t s=st

v t + 1 ( s ) − v π ( s ) = v t ( s ) − v π ( s ) − α t ( s ) ( v t ( s ) − v π ( s ) + v π ( s ) − ( r t + 1 + γ v t ( s t + 1 ) ) ) ,    s = s t v_{t+1}(s)\textcolor{blue}{-v_\pi(s)}=v_t(s)\textcolor{blue}{-v_\pi(s)}-\alpha_t(s)\big(v_t(s)\textcolor{blue}{-v_\pi(s)+v_\pi(s)}-(r_{t+1}+\gamma v_t(s_{t+1}))\big),~~s=s_t vt+1(s)vπ(s)=vt(s)vπ(s)αt(s)(vt(s)vπ(s)+vπ(s)(rt+1+γvt(st+1))),  s=st

Δ t + 1 ( s ) = Δ t ( s ) − α t ( s ) ( Δ t ( s ) + v π ( s ) − ( r t + 1 + γ v t ( s t + 1 ) ) ) = ( 1 − α t ( s ) ) Δ t ( s ) + α t ( s ) ( r t + 1 + γ v t ( s t + 1 ) − v π ( s ) ⏟ η t ( s ) ) = ( 1 − α t ( s ) ) Δ t ( s ) + α t ( s ) η t ( s ) \begin{aligned}\Delta_{t+1}(s)&=\Delta_t(s)-\alpha_t(s)\big(\Delta_t(s)+v_\pi(s)-(r_{t+1}+\gamma v_t(s_{t+1}))\big)\\ &=(1-\alpha_t(s))\Delta_t(s)+\alpha_t(s)(\underbrace{r_{t+1}+\gamma v_t(s_{t+1})-v_\pi(s)}_{\eta_t(s)})\\ &=(1-\alpha_t(s))\Delta_t(s)+\alpha_t(s)\eta_t(s)\end{aligned} Δt+1(s)=Δt(s)αt(s)(Δt(s)+vπ(s)(rt+1+γvt(st+1)))=(1αt(s))Δt(s)+αt(s)(ηt(s) rt+1+γvt(st+1)vπ(s))=(1αt(s))Δt(s)+αt(s)ηt(s)

s ≠ s t s\neq s_t s=st

v t + 1 ( s ) − v π ( s ) = v t ( s ) − v π ( s ) v_{t+1}(s)\textcolor{blue}{-v_\pi(s)}=v_t(s)\textcolor{blue}{-v_\pi(s)} vt+1(s)vπ(s)=vt(s)vπ(s)

Δ t + 1 ( s ) = Δ t ( s ) \Delta_{t+1}(s)=\Delta_t(s) Δt+1(s)=Δt(s)

证明

Δ t + 1 ( s ) = ( 1 − α t ( s ) ) Δ t ( s ) + α t ( s ) η t ( s ) \Delta_{t+1}(s)=(1-\alpha_t(s))\Delta_t(s)+\alpha_t(s)\eta_t(s) Δt+1(s)=(1αt(s))Δt(s)+αt(s)ηt(s)

满足 定理 6.3 的 3 个条件。

在这里插入图片描述

条件 2:
对 所有的 s ∈ S s\in \cal S sS,有 ∣ ∣ E [ η t ( s ) ∣ H t ] ∣ ∣ ∞ ≤ γ ∣ ∣ Δ t ( s ) ∣ ∣ ∞ ||\mathbb E[\eta_t(s)|\mathcal H_t]||_\infty\leq\gamma||\Delta_t(s)||_\infty ∣∣E[ηt(s)Ht]γ∣∣Δt(s)

H t \cal H_t Ht 表示历史信息。

由马尔可夫性质, 一旦 s s s 给定, η t ( s ) = r t + 1 + γ v t ( s t + 1 − v π ( s ) ) \eta_t(s)=r_{t+1}+\gamma v_t(s_{t+1}-v_\pi(s)) ηt(s)=rt+1+γvt(st+1vπ(s)) η t ( s ) = 0 \eta_t(s)=0 ηt(s)=0, 和 历史信息无关。

对于 s ≠ s t s\neq s_t s=st η t ( s ) = 0 \eta_t(s)=0 ηt(s)=0
∣ E [ η t ( s ) ] ∣ = 0 ≤ γ ∣ ∣ Δ t ( s ) ∣ ∣ ∞ |\mathbb E[\eta_t(s)]|=0\leq\gamma||\Delta_t(s)||_\infty E[ηt(s)]=0γ∣∣Δt(s)

对于 s = s t s=s_t s=st
E [ η t ( s ) ] = E [ η t ( s t ) ] = E [ r t + 1 + γ v t ( s t + 1 ) − v π ( s t ) ∣ s t ] = E [ r t + 1 + γ v t ( s t + 1 ) ∣ s t ] − v π ( s t ) \begin{aligned}\mathbb E[\eta_t(s)]&=\mathbb E[\eta_t(s_t)]\\ &=\mathbb E[r_{t+1}+\gamma v_t(s_{t+1})-v_\pi(s_t)|s_t]\\ &=\mathbb E[r_{t+1}+\gamma v_t(s_{t+1})|s_t]-v_\pi(s_t)\end{aligned} E[ηt(s)]=E[ηt(st)]=E[rt+1+γvt(st+1)vπ(st)st]=E[rt+1+γvt(st+1)st]vπ(st)

由于 v π ( s t ) = E [ r t + 1 + γ v π ( s t + 1 ) ∣ s t ] v_\pi(s_t)=\mathbb E[r_{t+1}+\gamma v_\pi(s_{t+1})|s_t] vπ(st)=E[rt+1+γvπ(st+1)st]

E [ η t ( s ) ] = E [ r t + 1 + γ v t ( s t + 1 ) ∣ s t ] − v π ( s t ) = E [ r t + 1 + γ v t ( s t + 1 ) ∣ s t ] − E [ r t + 1 + γ v π ( s t + 1 ) ∣ s t ] = γ E [ v t ( s t + 1 ) − v π ( s t + 1 ) ∣ s t ] = γ ∑ s ′ ∈ S p ( s ′ ∣ s t ) [ v t ( s ′ ) − v π ( s ′ ) ] \begin{aligned}\mathbb E[\eta_t(s)]&=\mathbb E[r_{t+1}+\gamma v_t(s_{t+1})|s_t]-v_\pi(s_t)\\ &=\mathbb E[r_{t+1}+\gamma v_t(s_{t+1})|s_t]-\mathbb E[r_{t+1}+\gamma v_\pi(s_{t+1})|s_t]\\ &=\gamma\mathbb E[v_t(s_{t+1})-v_\pi(s_{t+1})|s_t]\\ &=\gamma\sum\limits_{s^\prime\in\mathcal S}p(s^\prime|s_t)[v_t(s^\prime)-v_\pi(s^\prime)]\end{aligned} E[ηt(s)]=E[rt+1+γvt(st+1)st]vπ(st)=E[rt+1+γvt(st+1)st]E[rt+1+γvπ(st+1)st]=γE[vt(st+1)vπ(st+1)st]=γsSp(sst)[vt(s)vπ(s)]

∣ E [ η t ( s ) ] ∣ = γ ∣ ∑ s ′ ∈ S p ( s ′ ∣ s t ) [ v t ( s ′ ) − v π ( s ′ ) ] ∣ ≤ γ ∑ s ′ ∈ S p ( s ′ ∣ s t ) max ⁡ s ′ ∈ S ∣ v t ( s ′ ) − v π ( s ′ ) ∣ = γ max ⁡ s ′ ∈ S ∣ v t ( s ′ ) − v π ( s ′ ) ∣ = γ ∣ ∣ v t ( s ′ ) − v π ( s ′ ) ∣ ∣ ∞ = γ ∣ ∣ Δ t ( s ) ∣ ∣ ∞ \begin{aligned}|\mathbb E[\eta_t(s)] |&=\gamma\Big|\sum\limits_{s^\prime\in\mathcal S}p(s^\prime|s_t)[v_t(s^\prime)-v_\pi(s^\prime)]\Big|\\ &\leq\gamma\sum\limits_{s^\prime\in\mathcal S}p(s^\prime|s_t)\max\limits_{s^\prime\in\cal S}\Big|v_t(s^\prime)-v_\pi(s^\prime)\Big|\\ &=\gamma \max\limits_{s^\prime\in\cal S}\Big|v_t(s^\prime)-v_\pi(s^\prime)\Big|\\ &=\gamma ||v_t(s^\prime)-v_\pi(s^\prime)||_\infty\\ &=\gamma||\Delta_t(s)||_\infty\end{aligned} E[ηt(s)]=γ sSp(sst)[vt(s)vπ(s)] γsSp(sst)sSmax vt(s)vπ(s) =γsSmax vt(s)vπ(s) =γ∣∣vt(s)vπ(s)=γ∣∣Δt(s)

条件 3:

对于 s = s t s=s_t s=st
v a r [ η t ( s ) ∣ H t ] = v a r [ r t + 1 + γ v t ( s t + 1 ) − v π ( s t ) ∣ s t ] = v a r [ r t + 1 + γ v t ( s t + 1 ) ∣ s t ] {\rm var}[\eta_t(s)|\cal H_t]={\rm var}[r_{t+1}+\gamma v_t(s_{t+1})-v_\pi(s_t)|s_t]={\rm var}[r_{t+1}+\gamma v_t(s_{t+1})|s_t] var[ηt(s)Ht]=var[rt+1+γvt(st+1)vπ(st)st]=var[rt+1+γvt(st+1)st]

对于 s ≠ s t s\neq s_t s=st
v a r [ η t ( s ) ∣ H t ] = 0 {\rm var}[\eta_t(s)|\cal H_t]=0 var[ηt(s)Ht]=0

由于 r t + 1 r_{t+1} rt+1 有界。

???

证明: 7.13 是贝尔曼公式 P142

在这里插入图片描述
动作值 的 贝尔曼公式 为:

q π ( s , a ) = ∑ r r p ( s ∣ s , a ) + γ ∑ s ′ ∑ a ′ q π ( s ′ , a ′ ) p ( s ′ ∣ s , a ) π ( a ′ ∣ s ′ ) = ∑ r r p ( s ∣ s , a ) + γ ∑ s ′ p ( s ′ ∣ s , a ) ∑ a ′ q π ( s ′ , a ′ ) π ( a ′ ∣ s ′ ) \begin{aligned}q_\pi(s, a)&=\sum\limits_rrp(s|s, a)+\gamma\sum\limits_{s^\prime}\sum\limits_{a^\prime}q_\pi(s^\prime,a^\prime)p(s^\prime|s, a)\pi(a^\prime|s^\prime)\\ &=\sum\limits_rrp(s|s, a)+\gamma\sum\limits_{s^\prime}p(s^\prime|s, a)\sum\limits_{a^\prime}q_\pi(s^\prime,a^\prime)\pi(a^\prime|s^\prime)\end{aligned} qπ(s,a)=rrp(ss,a)+γsaqπ(s,a)p(ss,a)π(as)=rrp(ss,a)+γsp(ss,a)aqπ(s,a)π(as)

这个方程建立了 动作值 之间的关系

p ( s ′ , a ′ ∣ s , a ) = p ( s ′ ∣ s , a ) p ( a ′ ∣ s ′ , s , a ) = p ( s ′ ∣ s , a ) p ( a ′ ∣ s ′ ) = p ( s ′ ∣ s , a ) π ( a ′ ∣ s ′ ) \begin{aligned}p(s^\prime,a^\prime|s, a)&=p(s^\prime|s, a)p(a^\prime|s^\prime,s,a)\\ &=p(s^\prime|s, a)p(a^\prime|s^\prime)\\ &=p(s^\prime|s, a)\pi(a^\prime|s^\prime)\end{aligned} p(s,as,a)=p(ss,a)p(as,s,a)=p(ss,a)p(as)=p(ss,a)π(as)

q π ( s , a ) = ∑ r r p ( s ∣ s , a ) + γ ∑ s ′ ∑ a ′ q π ( s ′ , a ′ ) p ( s ′ , a ′ ∣ s , a ) q_\pi(s, a)=\sum\limits_rrp(s|s, a)+\gamma\sum\limits_{s^\prime}\sum\limits_{a^\prime}q_\pi(s^\prime,a^\prime)p(s^\prime,a^\prime|s, a) qπ(s,a)=rrp(ss,a)+γsaqπ(s,a)p(s,as,a)

证明: 7.19 为贝尔曼最优公式 P149

在这里插入图片描述
根据 期望值 定义, (7.19) 可改写为:

q ( s , a ) = ∑ r p ( r ∣ s , a ) r + γ ∑ s ′ p ( s ′ ∣ s , a ) max ⁡ a ∈ A ( s ′ ) q ( s ′ , a ) q(s, a)=\sum\limits_rp(r|s, a)r+\gamma\sum\limits_{s^\prime}p(s^\prime|s, a)\max\limits_{a\in\mathcal A(s^\prime)}q(s^\prime,a) q(s,a)=rp(rs,a)r+γsp(ss,a)aA(s)maxq(s,a)

max ⁡ a ∈ A ( s ) q ( s , a ) = max ⁡ a ∈ A ( s ) [ ∑ r p ( r ∣ s , a ) r + γ ∑ s ′ p ( s ′ ∣ s , a ) max ⁡ a ∈ A ( s ′ ) q ( s ′ , a ) ] \textcolor{blue}{\max\limits_{a\in\mathcal A(s)}}q(s, a)=\textcolor{blue}{\max\limits_{a\in\mathcal A(s)}}\Big[\sum\limits_rp(r|s, a)r+\gamma\sum\limits_{s^\prime}p(s^\prime|s, a)\max\limits_{a\in\mathcal A(s^\prime)}q(s^\prime,a)\Big] aA(s)maxq(s,a)=aA(s)max[rp(rs,a)r+γsp(ss,a)aA(s)maxq(s,a)]

v ( s ) = max ⁡ a ∈ A ( s ) q ( s , a ) v(s)=\max\limits_{a\in\mathcal A(s)}q(s, a) v(s)=aA(s)maxq(s,a)

v ( s ) = max ⁡ a ∈ A ( s ) [ ∑ r p ( r ∣ s , a ) r + γ ∑ s ′ p ( s ′ ∣ s , a ) v ( s ′ ) ] = max ⁡ π ∑ a ∈ A ( s ) π ( a ∣ s ) [ ∑ r p ( r ∣ s , a ) r + γ ∑ s ′ p ( s ′ ∣ s , a ) v ( s ′ ) ] \begin{aligned}v(s)&=\max\limits_{a\in\mathcal A(s)}\Big[\sum\limits_rp(r|s, a)r+\gamma\sum\limits_{s^\prime}p(s^\prime|s, a)v(s^\prime)\Big]\\ &=\max\limits_\pi\sum\limits_{a\in\mathcal A(s)}\pi(a|s)\Big[\sum\limits_rp(r|s, a)r+\gamma\sum\limits_{s^\prime}p(s^\prime|s, a)v(s^\prime)\Big]\end{aligned} v(s)=aA(s)max[rp(rs,a)r+γsp(ss,a)v(s)]=πmaxaA(s)π(as)[rp(rs,a)r+γsp(ss,a)v(s)]

正是 第 3 章的 贝尔曼最优公式

在这里插入图片描述

Logo

更多推荐