[归纳]强化学习导论 - 第十章:基于拟合器的on-policy控制

文章目录

  • 1.本章内容概要
  • 2.episodic半梯度控制
  • 3.半梯度n-step Sarsa
  • 4.平均回报:针对连续任务一种新的回报形式
  • 5.连续任务中不要再用折扣回报了
  • 6.微分半梯度n-step Sarsa
  • 7.总结
  • 参考文献

1.本章内容概要

这一章,我们回到control问题,并结合参数化的动作值的拟合函数 q ^ ( s , a , w ) ≈ q ∗ ( s , a ) , \hat{q}(s, a, \mathbf{w}) \approx q_{*}(s, a), q^(s,a,w)q(s,a), where w ∈ R d \mathbf{w} \in \mathbb{R}^{d} wRd开展。我们主要着眼于on-policy方法,off-policy方法在下一章讨论。这一章将着重关注半梯度Sarsa算法,是从我们上一章介绍的半梯度TD(0)拓展而来的。对于episodic任务,半梯度Sarsa是很自然的,但是对于continuing任务,则需要重新回到折扣化的最优策略定义重新分析,实际上,对于函数拟合而言,我们需要去掉折扣因子,并定义平均回报的形式。

我们首先从episodic任务入手,首先把上一章的状态值形式延伸的动作值形式;然后讨论基于GPI和 ε \varepsilon ε -greedy的控制方法。然后将n-step线性Sarsa在Mountain Car问题上进行了测试;最后,扩展到continuing任务。

2.episodic半梯度控制

可以很直接地将上一章介绍的半梯度预测方法从状态值函数扩展到动作值函数,我们用以 w \mathbf{w} w为参数的函数拟合动作值函数 q ^ ≈ q π \hat{q} \approx q_{\pi} q^qπ,并以 S t , A t ↦ U t S_{t}, A_{t} \mapsto U_{t} St,AtUt作为训练样本,其中的更新目标 U t U_{t} Ut可以用我们前面一些章节介绍的任何方法计算,例如MC方法、n-step Sarsa等。

此时SGD更新公式为:
w t + 1 ≐ w t + α [ U t − q ^ ( S t , A t , w t ) ] ∇ q ^ ( S t , A t , w t ) \mathbf{w}_{t+1} \doteq \mathbf{w}_{t}+\alpha\left[U_{t}-\hat{q}\left(S_{t}, A_{t}, \mathbf{w}_{t}\right)\right] \nabla \hat{q}\left(S_{t}, A_{t}, \mathbf{w}_{t}\right) wt+1wt+α[Utq^(St,At,wt)]q^(St,At,wt)

特殊地,对于one-step Sarsa,则更新公式为(周期性半梯度one-step Sarsa):
w t + 1 ≐ w t + α [ R t + 1 + γ q ^ ( S t + 1 , A t + 1 , w t ) − q ^ ( S t , A t , w t ) ] ∇ q ^ ( S t , A t , w t ) \mathbf{w}_{t+1} \doteq \mathbf{w}_{t}+\alpha\left[R_{t+1}+\gamma \hat{q}\left(S_{t+1}, A_{t+1}, \mathbf{w}_{t}\right)-\hat{q}\left(S_{t}, A_{t}, \mathbf{w}_{t}\right)\right] \nabla \hat{q}\left(S_{t}, A_{t}, \mathbf{w}_{t}\right) wt+1wt+α[Rt+1+γq^(St+1,At+1,wt)q^(St,At,wt)]q^(St,At,wt)
对于固定的策略,这个算法的收敛界限与上一章介绍的TD(0)一样。

我们现在研究如何把值估计和策略提升结合来构造control算法,但是需要注意,如果希望处理连续的动作或者很大的离散动作空间,这是目前一个还在研究的问题,没有明确的解决方案。如果动作集合是离散的,且不是很大,我们直接用以前介绍过的一些技巧即可。也就是在状态 S t S_t St下,计算所有可能的 q ^ ( S t , a , w t ) \hat{q}\left(S_{t}, a, \mathbf{w}_{t}\right) q^(St,a,wt),然后选择贪婪(实际上采用soft greedy的)的动作 A t ∗ = arg ⁡ max ⁡ a q ^ ( S t , a , w t ) A_{t}^{*}=\arg \max _{a} \hat{q}\left(S_{t}, a, \mathbf{w}_{t}\right) At=argmaxaq^(St,a,wt),这样就通过值迭代的思路将策略提升融入到了值估计中,注意这里我们估计的策略与行动的策略是一致的(on-policy):

[归纳]强化学习导论 - 第十章:基于拟合器的on-policy控制_第1张图片

example 10.1 Mountain Car Task
一个小车要爬上一个高坡,由于动力不足,无法直接加速爬上去,必须先向对面一个较矮的坡攀爬积累能量,然后等小车达到对面最高点后,再借助重力势能向高坡加速。这个问题用经典的控制方法很难解决,因为必须要先让车先远离目标积累能量,然后再向目标前进,属于欠动力问题。
[归纳]强化学习导论 - 第十章:基于拟合器的on-policy控制_第2张图片
只要不到达目标,每个step的回报都是-1,到达目标后episode结束。动作则有三种可选:正向油门,反向油门,无油门,记为 { − 1 , 1 , 0 } \{-1, 1, 0\} {1,1,0}。小车的运动学和动力学方程为:
x t + 1 ≐ b o u n d [ x t + x ˙ t + 1 ] x_{t+1} \doteq b o u n d\left[x_{t}+\dot{x}_{t+1}\right] xt+1bound[xt+x˙t+1]
x ˙ t + 1 ≐ b o u n d [ x ˙ t + 0.001 A t − 0.0025 cos ⁡ ( 3 x t ) ] \dot{x}_{t+1} \doteq b o u n d\left[\dot{x}_{t}+0.001 A_{t}-0.0025 \cos \left(3 x_{t}\right)\right] x˙t+1bound[x˙t+0.001At0.0025cos(3xt)]
bound函数保证 − 1.2 ≤ x t + 1 ≤ 0.5 -1.2 \leq x_{t+1} \leq 0.5 1.2xt+10.5 and − 0.07 ≤ x ˙ t + 1 ≤ 0.07 -0.07 \leq \dot{x}_{t+1} \leq 0.07 0.07x˙t+10.07。此外,当 x t + 1 x_{t+1} xt+1到达左边界, x ˙ t + 1 \dot{x}_{t+1} x˙t+1设置为0;到达右边界则episode结束。每个episode从随机位置开始: x t ∈ [ − 0.6 , − 0.4 ) x_{t} \in[-0.6,-0.4) xt[0.6,0.4),且初始速度是0。
采用 8 × 8 8\times 8 8×8均匀分割的的8个tilings做特征表示,并用上一章介绍的随机偏移方法。然后针对特征向量 x ( s , a ) \mathbf{x}(s, a) x(s,a)构建线性拟合函数:
q ^ ( s , a , w ) ≐ w ⊤ x ( s , a ) = ∑ i = 1 d w i ⋅ x i ( s , a ) \hat{q}(s, a, \mathbf{w}) \doteq \mathbf{w}^{\top} \mathbf{x}(s, a)=\sum_{i=1}^{d} w_{i} \cdot x_{i}(s, a) q^(s,a,w)wx(s,a)=i=1dwixi(s,a)
上图中的几个曲面绘制的是cost-to-go函数,也就是代价函数,取值函数的相反数。学习初始时,所有动作值都是0,因此都是乐观的,有利于探索,因此从图中可以看到,算法从状态空间的中心附近向外扩展地逐步探索,而不是陷在中心不动。下图给出每个episode中steps数目的收敛曲线。
[归纳]强化学习导论 - 第十章:基于拟合器的on-policy控制_第3张图片

3.半梯度n-step Sarsa

使用n-step return,结合上一小节的内容,可以得到episodic半梯度Sarsa的n-step版本。n-step return的形式为:

G t : t + n ≐ R t + 1 + γ R t + 2 + ⋯ + γ n − 1 R t + n + γ n q ^ ( S t + n , A t + n , w t + n − 1 ) , t + n < T G_{t : t+n} \doteq R_{t+1}+\gamma R_{t+2}+\cdots+\gamma^{n-1} R_{t+n}+\gamma^{n} \hat{q}\left(S_{t+n}, A_{t+n}, \mathbf{w}_{t+n-1}\right), \quad t+n<T Gt:t+nRt+1+γRt+2++γn1Rt+n+γnq^(St+n,At+n,wt+n1),t+n<T

t + n ≥ T t+n \geq T t+nT,取 G t : t + n ≐ G t G_{t : t+n} \doteq G_{t} Gt:t+nGt。n-step更新公式为:

w t + n ≐ w t + n − 1 + α [ G t : t + n − q ^ ( S t , A t , w t + n − 1 ) ] ∇ q ^ ( S t , A t , w t + n − 1 ) , 0 ≤ t < T \mathbf{w}_{t+n} \doteq \mathbf{w}_{t+n-1}+\alpha\left[G_{t : t+n}-\hat{q}\left(S_{t}, A_{t}, \mathbf{w}_{t+n-1}\right)\right] \nabla \hat{q}\left(S_{t}, A_{t}, \mathbf{w}_{t+n-1}\right), \qquad 0 \leq t<T wt+nwt+n1+α[Gt:t+nq^(St,At,wt+n1)]q^(St,At,wt+n1),0t<T

结合两个公式,可以得到算法的伪代码:
[归纳]强化学习导论 - 第十章:基于拟合器的on-policy控制_第4张图片

当选择适当的n时,n-step方法效果是最好的。对于上一节介绍的Mountain Car问题,选取n=8时,可以看到算法收敛速度加快了,且收敛到了更好的结果。

[归纳]强化学习导论 - 第十章:基于拟合器的on-policy控制_第5张图片 [归纳]强化学习导论 - 第十章:基于拟合器的on-policy控制_第6张图片

4.平均回报:针对连续任务一种新的回报形式

对于continuing任务,我们需要定义一种新的MDPs的值函数 — 平均回报。平均回报是没有折扣因子的,因此所有的后续回报对当前状态的值都有等价值的影响。实际上,平均回报是古典的动态规划理论最常用的值函数定义,而在RL中使用还是比较少的。在下个小节,我们将讨论为什么折扣的累积回报在带拟合器的方法中是不合适的,而平均回报则表现不错。

平均回报的定义如下:
r ( π ) ≐ lim ⁡ h → ∞ 1 h ∑ t = 1 h E [ R t ∣ S 0 , A 0 : t − 1 ∼ π ] = lim ⁡ t → ∞ E [ R t ∣ S 0 , A 0 : t − 1 ∼ π ] = ∑ s μ π ( s ) ∑ a π ( a ∣ s ) ∑ s ′ , r p ( s ′ , r ∣ s , a ) r \begin{aligned} r(\pi) & \doteq \lim _{h \rightarrow \infty} \frac{1}{h} \sum_{t=1}^{h} \mathbb{E}\left[R_{t} | S_{0}, A_{0 : t-1} \sim \pi\right] \\ &=\lim _{t \rightarrow \infty} \mathbb{E}\left[R_{t} | S_{0}, A_{0 : t-1} \sim \pi\right] \\ &=\sum_{s} \mu_{\pi}(s) \sum_{a} \pi(a | s) \sum_{s^{\prime}, r} p\left(s^{\prime}, r | s, a\right) r \end{aligned} r(π)hlimh1t=1hE[RtS0,A0:t1π]=tlimE[RtS0,A0:t1π]=sμπ(s)aπ(as)s,rp(s,rs,a)r

其中, μ π ( s ) ≐ lim ⁡ t → ∞ Pr ⁡ { S t = s ∣ A 0 : t − 1 ∼ π } \mu_{\pi}(s) \doteq \lim _{t \rightarrow \infty} \operatorname{Pr}\left\{S_{t}=s | A_{0 : t-1} \sim \pi\right\} μπ(s)limtPr{St=sA0:t1π},是continuing任务的稳态分布,该分布与策略 π \pi π有关,与初始状态 S 0 S_{0} S0无关(需要保证MDP具有遍历性)。第二个等号之所以成立,也是因为MDP最终能收敛到稳态分布。还应该注意,这个定义与当前状态 S t S_t St无关。那么,如何定义最优策略呢?我们可以认为所有策略中,使得 r ( π ) r(\pi) r(π)最大的就是最优策略。此外,我们还应该注意到稳态状态分布的性质:

∑ s μ π ( s ) ∑ a π ( a ∣ s ) p ( s ′ ∣ s , a ) = μ π ( s ′ ) \sum_{s} \mu_{\pi}(s) \sum_{a} \pi(a | s) p\left(s^{\prime} | s, a\right)=\mu_{\pi}\left(s^{\prime}\right) sμπ(s)aπ(as)p(ss,a)=μπ(s)

对于平均回报,return的定义应该为:

G t ≐ R t + 1 − r ( π ) + R t + 2 − r ( π ) + R t + 3 − r ( π ) + ⋯ G_{t} \doteq R_{t+1}-r(\pi)+R_{t+2}-r(\pi)+R_{t+3}-r(\pi)+\cdots GtRt+1r(π)+Rt+2r(π)+Rt+3r(π)+

这叫做微分return,而与之对应的值函数就是微分值函数: v π ( s ) ≐ E π [ G t ∣ S t = s ] v_{\pi}(s) \doteq \mathbb{E}_{\pi}\left[G_{t} | S_{t}=s\right] vπ(s)Eπ[GtSt=s] q π ( s , a ) ≐ E π [ G t ∣ S t = s , A t = a ] q_{\pi}(s, a) \doteq\mathbb{E}_{\pi}\left[G_{t} | S_{t}=s, A_{t}=a\right] qπ(s,a)Eπ[GtSt=s,At=a],对于 v ∗ v^* v q ∗ q^* q也是类似的。微分值函数也有Bellman方程(首先分析 G t G_t Gt的迭代形式,容易得出):

v π ( s ) = ∑ a π ( a ∣ s ) ∑ r , s ′ p ( s ′ , r ∣ s , a ) [ r − r ( π ) + v π ( s ′ ) ] v_{\pi}(s)=\sum_{a} \pi(a | s) \sum_{r, s^{\prime}} p\left(s^{\prime}, r | s, a\right)\left[r-r(\pi)+v_{\pi}\left(s^{\prime}\right)\right] vπ(s)=aπ(as)r,sp(s,rs,a)[rr(π)+vπ(s)]
q π ( s , a ) = ∑ r , s ′ p ( s ′ , r ∣ s , a ) [ r − r ( π ) + ∑ a ′ π ( a ′ ∣ s ′ ) q π ( s ′ , a ′ ) ] q_{\pi}(s, a)=\sum_{r, s^{\prime}} p\left(s^{\prime}, r | s, a\right)\left[r-r(\pi)+\sum_{a^{\prime}} \pi\left(a^{\prime} | s^{\prime}\right) q_{\pi}\left(s^{\prime}, a^{\prime}\right)\right] qπ(s,a)=r,sp(s,rs,a)[rr(π)+aπ(as)qπ(s,a)]
v ∗ ( s ) = max ⁡ a ∑ r , s ′ p ( s ′ , r ∣ s , a ) [ r − max ⁡ π r ( π ) + v ∗ ( s ′ ) ] , v_{*}(s)=\max _{a} \sum_{r, s^{\prime}} p\left(s^{\prime}, r | s, a\right)\left[r-\max _{\pi} r(\pi)+v_{*}\left(s^{\prime}\right)\right], v(s)=maxar,sp(s,rs,a)[rmaxπr(π)+v(s)],
q ∗ ( s , a ) = ∑ r , s ′ p ( s ′ , r ∣ s , a ) [ r − max ⁡ π r ( π ) + max ⁡ a ′ q ∗ ( s ′ , a ′ ) ] q_{*}(s, a)=\sum_{r, s^{\prime}} p\left(s^{\prime}, r | s, a\right)\left[r-\max _{\pi} r(\pi)+\max _{a^{\prime}} q_{*}\left(s^{\prime}, a^{\prime}\right)\right] q(s,a)=r,sp(s,rs,a)[rmaxπr(π)+maxaq(s,a)]

我们可以比较容易地写出TD形式的更新公式,然后基于此,可以写出微分TD误差:
δ t ≐ R t + 1 − R ‾ t + 1 + v ^ ( S t + 1 , w t ) − v ^ ( S t , w t ) \delta_{t} \doteq R_{t+1}-\overline{R}_{t+1}+\hat{v}\left(S_{t+1}, \mathbf{w}_{t}\right)-\hat{v}\left(S_{t}, \mathbf{w}_{t}\right) δtRt+1Rt+1+v^(St+1,wt)v^(St,wt)
δ t ≐ R t + 1 − R ‾ t + 1 + q ^ ( S t + 1 , A t + 1 , w t ) − q ^ ( S t , A t , w t ) \delta_{t} \doteq R_{t+1}-\overline{R}_{t+1}+\hat{q}\left(S_{t+1}, A_{t+1}, \mathbf{w}_{t}\right)-\hat{q}\left(S_{t}, A_{t}, \mathbf{w}_{t}\right) δtRt+1Rt+1+q^(St+1,At+1,wt)q^(St,At,wt)

R ‾ t \overline{R}_{t} Rt是在时刻t估计的 r ( π ) r(\pi) r(π)。基于这些式子,我们前面介绍的各种方法都能改成平均回报的形式。例如半梯度Sarsa(参考上一章 V E ‾ \overline{\mathrm{VE}} VE的定义和梯度更新公式的推导):
w t + 1 ≐ w t + α δ t ∇ q ^ ( S t , A t , w t ) \mathbf{w}_{t+1} \doteq \mathbf{w}_{t}+\alpha \delta_{t} \nabla \hat{q}\left(S_{t}, A_{t}, \mathbf{w}_{t}\right) wt+1wt+αδtq^(St,At,wt)

注意以下伪代码中 R ‾ t \overline{R}_{t} Rt的求法。

[归纳]强化学习导论 - 第十章:基于拟合器的on-policy控制_第7张图片

example 10.2 An Access-Control Queuing Task
服务器调度问题。共10台服务器,请求有四种优先级,到达后就存储在一个队列中,如果访问了一个服务器,则用户付出1, 2, 4, 8的回报给该服务器,回报的数字由优先级决定,高优先级付出的回报就多。在每个时间步,队列头的那个请求要么被接受(直接从队列移除,按照优先级回报),要么被拒绝(直接从队列移除,回报0);下个时间步则考虑队列中下一个请求。队列永远不为空,且请求的优先级是均匀分布的,如果每个服务器都被占用了,那么就不可能接受该请求。每个工作的服务器在每个时间步以概率 p = 0.06 p=0.06 p=0.06结束任务。每个时间步,我们根据需要被处理任务的优先级,以及空闲服务器的数量决策。目标是最大化累积回报,注意没有折扣。
设置参数 α = 0.01 , β = 0.01 , \alpha=0.01, \beta=0.01, α=0.01,β=0.01, and ε = 0.1 \varepsilon=0.1 ε=0.1,使用微分半梯度Sarsa算法,可以得到如下结果:
[归纳]强化学习导论 - 第十章:基于拟合器的on-policy控制_第8张图片

如果 G t G_t Gt当t趋近无穷时不收敛,可以修改值函数的定义为:

v π ( s ) ≐ lim ⁡ γ → 1 lim ⁡ h → ∞ ∑ t = 0 h γ t ( E π [ R t + 1 ∣ S 0 = s ] − r ( π ) ) v_{\pi}(s) \doteq \lim _{\gamma \rightarrow 1} \lim _{h \rightarrow \infty} \sum_{t=0}^{h} \gamma^{t}\left(\mathbb{E}_{\pi}\left[R_{t+1} | S_{0}=s\right]-r(\pi)\right) vπ(s)limγ1limht=0hγt(Eπ[Rt+1S0=s]r(π))

[这一节的练习题有一点难度,留着有机会分析下]

5.连续任务中不要再用折扣回报了

对于表格化的问题,以前介绍的折扣的方法是很好的,但是当我们决定使用拟合器的时候,这种办法则会出现一些问题。我们考虑一个没有始终的无穷序列,也没有明确定义的状态,状态只使用特征向量表示,我们假设特征向量一直是不变的(或者说只有一个状态)。我们需要只利用回报序列和动作序列评价好坏。由于我们没有状态,因此实际上无法给出各个状态的值,我们只好计算从当前时刻起很长区间的折扣累积回报,但是不同的时刻累积折扣回报是不同的,有的大有的小,所以我们可以算不同时刻的累积折扣回报的均值作为该序列好快的衡量。这种做法实际上等价于上一节介绍的平均回报方法,且得到的结果是: r ( π ) / ( 1 − γ ) r(\pi) /(1-\gamma) r(π)/(1γ)[证明见下表]。因此,折扣因子实际上是没什么意义的。

The Futility of Discounting in Continuing Problems
J ( π ) = ∑ s μ π ( s ) v π γ ( s ) = ∑ s μ π ( s ) ∑ a π ( a ∣ s ) ∑ s ′ ∑ r p ( s ′ , r ∣ s , a ) [ r + γ v π γ ( s ′ ) ] = r ( π ) + ∑ s μ π ( s ) ∑ a π ( a ∣ s ) ∑ s ′ ∑ r p ( s ′ , r ∣ s , a ) γ v π γ ( s ′ )  (def of average return)  = r ( π ) + γ ∑ s ′ v π γ ( s ′ ) ∑ s μ π ( s ) ∑ a π ( a ∣ s ) p ( s ′ ∣ s , a ) = r ( π ) + γ ∑ s ′ v π γ ( s ′ ) μ π ( s ) = r ( π ) + γ J ( π ) = r ( π ) + γ r ( π ) + γ 2 J ( π ) = 1 1 − γ r ( π ) \begin{aligned} J(\pi) &=\sum_{s} \mu_{\pi}(s) v_{\pi}^{\gamma}(s) \\ &=\sum_{s} \mu_{\pi}(s) \sum_{a} \pi(a | s) \sum_{s^{\prime}} \sum_{r} p\left(s^{\prime}, r | s, a\right)\left[r+\gamma v_{\pi}^{\gamma}\left(s^{\prime}\right)\right] \\ &=r(\pi)+\sum_{s} \mu_{\pi}(s) \sum_{a} \pi(a | s) \sum_{s^{\prime}} \sum_{r} p\left(s^{\prime}, r | s, a\right) \gamma v_{\pi}^{\gamma}\left(s^{\prime}\right) \text { (def of average return) } \\ &=r(\pi)+\gamma \sum_{s^{\prime}} v_{\pi}^{\gamma}\left(s^{\prime}\right) \sum_{s} \mu_{\pi}(s) \sum_{a} \pi(a | s) p\left(s^{\prime} | s, a\right) \\ &=r(\pi)+\gamma \sum_{s^{\prime}} v_{\pi}^{\gamma}\left(s^{\prime}\right) \mu_{\pi}(s) \\ &=r(\pi)+\gamma J(\pi) \\ &=r(\pi)+\gamma r(\pi)+\gamma^{2} J(\pi) \\ &=\frac{1}{1-\gamma} r(\pi) \end{aligned} J(π)=sμπ(s)vπγ(s)=sμπ(s)aπ(as)srp(s,rs,a)[r+γvπγ(s)]=r(π)+sμπ(s)aπ(as)srp(s,rs,a)γvπγ(s) (def of average return) =r(π)+γsvπγ(s)sμπ(s)aπ(as)p(ss,a)=r(π)+γsvπγ(s)μπ(s)=r(π)+γJ(π)=r(π)+γr(π)+γ2J(π)=1γ1r(π)

对于拟合器方法,由于我们计算的是 V E ‾ \overline{\mathrm{V} \mathrm{E}} VE关于参数的导数,也就是我们关注的是策略整体的性能好坏,是所有状态的值函数的加权均值,因此就如这里的讨论,折扣因子并不影响策略的相对好坏,因而对于连续任务,拟合器类的方法使用平均回报实际上就比较好了。但是我们最初一些章节的表格化方法,针对每个状态下的策略是单独考虑的,不会互相影响,不必看成一个整体,因此就可以使用折扣类的值函数定义。

如果从理论上分析,则是拟合器的引入导致策略提升定理失效,因此单个状态值函数的提高不能导致整体的提高了,因为单个状态值函数的变化在拟合器上也会影响其它状态。

实际上,即使对于episodic任务,使用平均回报,仍然无法保证策略提升。因此拟合器类的方法在理论上是没有保证的,这目前还是开放的问题。我们在第十三章会介绍策略梯度理论,该理论类似于策略提升,在该理论下是可以保证策略的改善的。

6.微分半梯度n-step Sarsa

为了泛化n-step自举,我们需要n-step版本的TD误差,其微分形式为:

G t : t + n ≐ R t + 1 − R ‾ t + 1 + R t + 2 − R ‾ t + 2 + ⋯ + R t + n − R ‾ t + n + q ^ ( S t + n , A t + n , w t + n − 1 ) G_{t : t+n} \doteq R_{t+1}-\overline{R}_{t+1}+R_{t+2}-\overline{R}_{t+2}+\cdots+R_{t+n}-\overline{R}_{t+n}+\hat{q}\left(S_{t+n}, A_{t+n}, \mathbf{w}_{t+n-1}\right) Gt:t+nRt+1Rt+1+Rt+2Rt+2++Rt+nRt+n+q^(St+n,At+n,wt+n1)

R t ‾ \overline{R_t} Rt是不同时刻 r ( π ) r(\pi) r(π)的估计; n ≥ 1 n \geq 1 n1 t + n < T t+n<T t+n<T;当 t + n ≥ T t+n \geq T t+nT时,令 G t : t + n ≐ G t G_{t : t+n} \doteq G_{t} Gt:t+nGt,n-step TD误差定义为:

δ t ≐ G t : t + n − q ^ ( S t , A t , w ) \delta_{t} \doteq G_{t : t+n}-\hat{q}\left(S_{t}, A_{t}, \mathbf{w}\right) δtGt:t+nq^(St,At,w)

基于此,得到微分半梯度n-step Sarsa:

[归纳]强化学习导论 - 第十章:基于拟合器的on-policy控制_第9张图片

β \beta β参数应该设得小一些,但是这样会导致初始化值造成很长期的偏差;我们也可以不这样,直接用所有R的均值,但是由于策略在逐渐改善,因此这个估计就不是很准确,虽然是渐进无偏的,但是拖慢了收敛速度。这里可以采用第二章Optimistic Initial Values一节引入的Unbiased Constant-Step-Size技巧[暂时没写这个技巧,因为还没分析清其原理,后续补上,如果有兴趣可以自行阅读下图]。

[归纳]强化学习导论 - 第十章:基于拟合器的on-policy控制_第10张图片

7.总结

本节把prediction采用的思路扩展到了control过程。对于episodic任务,可以直接简单的扩展;对于continuing任务则需要重新定义值函数,然后在此基础上扩展。

  • 平均回报。
  • 各种式子的微分形式。
  • 拟合器的引入导致折扣失效的原因:策略提升失效。

参考文献

[1].(张文知乎)https://zhuanlan.zhihu.com/c_1060499676423471104

你可能感兴趣的:(强化学习)