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

1.本章内容概要

on-policy和off-policy方法是处理GPI中探索和利用矛盾的两种方法,其中on-policy方法只能学得一个次优的策略,而off-policy则能学得全局最优的策略。将off-policy方法结合拟合器,与on-policy方法的结合拟合器的方式相比要有很多区别,也更困难。之前我们介绍的那些off-policy方法可以直接扩展到拟合器的形式,但是收敛性不好。本章我们会研究下线性函数拟合器的收敛性问题,引入可学习性的概念,然后介绍在off-policy情形能更好地收敛的算法,但是这些方法还是不如on-policy时稳定。通过这些讨论,对于带拟合器的RL,无论是on-policy还是off-policy的,我们都会认识得更深刻。

在off-policy时,target策略 π \pi 是贪婪的,behavior策略 b b 是探索性的。对于预测问题,两个策略都是已知的;对于控制问题,两个策略都是变化的。我们的学习目标是得到 v ^ v π \hat{v} \approx v_{\pi} 或者 q ^ q π \hat{q} \approx q_{\pi}

off-policy方法中有两个关键挑战(更新目标的变化,更新分布的变化):

  1. 更新目标如何定义。由于得到的样本是遵循 b b 的,而欲学习的值函数是 π \pi 的,因此必须设置合理的更新目标。我们采用重要性采样解决,无论对表格方法还是拟合器方法都类似。注意,重要性采样会扩大方差,但是消除了偏差。
  2. 我们得到的样本服从off-policy分布,而不是on-policy分布。我们在第八章介绍过,选择哪个状态/状态动作对更新是有技巧的,采用trajectory sampling更新效果很好,实际上on-policy分布对半梯度方法[因为这里的梯度是不准确的]的稳定性非常重要。解决这个有两种方法,一个是基于重要性采样调整update分布到on-policy分布;一个是采用不依赖任何特殊分布的真正的梯度方法。目前这也是一个开放的问题。

2.半梯度方法

这里我们只关心第一个挑战,我们直接把off-policy方法拓展到拟合器的形式。由于没考虑第二个挑战,导致算法在一些情况下会偏离,但是也有很多成功的应用场景。这里介绍的方法的稳定性和渐进无偏性对表格情形是成立的,表格情形是拟合器的特殊形式。因此,结合一些特征提取方法是有可能保证算法稳定的。

我们直接把之前介绍的off-policy方法的更新公式改成梯度的形式即可。回顾下per-step重要性采样比率:
ρ t ρ t : t = π ( A t S t ) b ( A t S t ) \rho_{t} \doteq \rho_{t : t}=\frac{\pi\left(A_{t} | S_{t}\right)}{b\left(A_{t} | S_{t}\right)}
对于状态值,半梯度off-policy TD(0)的更新公式为:
w t + 1 w t + α ρ t δ t v ^ ( S t , w t ) \mathbf{w}_{t+1} \doteq \mathbf{w}_{t}+\alpha \rho_{t} \delta_{t} \nabla \hat{v}\left(S_{t}, \mathbf{w}_{t}\right)
式中的 δ t \delta_{t} 在episodic任务中是折扣的TD误差:
δ t R t + 1 + γ v ^ ( S t + 1 , w t ) v ^ ( S t , w t ) \delta_{t} \doteq R_{t+1}+\gamma \hat{v}\left(S_{t+1}, \mathbf{w}_{t}\right)-\hat{v}\left(S_{t}, \mathbf{w}_{t}\right)
在continuing任务中是平均回报TD误差:
δ t R t + 1 R t + v ^ ( S t + 1 , w t ) v ^ ( S t , w t ) \delta_{t} \doteq R_{t+1}-\overline{R}_{t}+\hat{v}\left(S_{t+1}, \mathbf{w}_{t}\right)-\hat{v}\left(S_{t}, \mathbf{w}_{t}\right)
对于动作值,半梯度Expected Sarsa的更新公式为:
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), 其中
δ t R t + 1 + γ a π ( a S t + 1 ) q ^ ( S t + 1 , a , w t ) q ^ ( S t , A t , w t ) , \delta_{t} \doteq R_{t+1}+\gamma \sum_{a} \pi\left(a | S_{t+1}\right) \hat{q}\left(S_{t+1}, a, \mathbf{w}_{t}\right)-\hat{q}\left(S_{t}, A_{t}, \mathbf{w}_{t}\right),
δ t R t + 1 R t + a π ( a S t + 1 ) q ^ ( S t + 1 , a , w t ) q ^ ( S t , A t , w t ) . \delta_{t} \doteq R_{t+1}-\overline{R}_{t}+\sum_{a} \pi\left(a | S_{t+1}\right) \hat{q}\left(S_{t+1}, a, \mathbf{w}_{t}\right)-\hat{q}\left(S_{t}, A_{t}, \mathbf{w}_{t}\right) .
需要注意,这里也没有用重要性采样因子,这其实不像表格化方法那么直观,因为各个状态的值通过函数参数是相关的,因而一个episode中各个状态-动作对的更新都修改了同一个值函数,那么不能说与其它状态-动作对的值无关。这个问题要等到我们对带拟合器的RL认识更进一步后才能明确。

而对于多step情形,则必须加入重要性采样比率,例如n-step半梯度Expected Sarsa更新公式为:
w t + n w t + n 1 + α ρ t + 1 ρ 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 ) \mathbf{w}_{t+n} \doteq \mathbf{w}_{t+n-1}+\alpha \rho_{t+1} \cdots \rho_{t+n-1}\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)
其中,
G t : t + n R t + 1 + + γ n 1 R t + n + γ n q ^ ( S t + n , A t + n , w t + n 1 ) , G_{t : t+n} \doteq R_{t+1}+\cdots+\gamma^{n-1} R_{t+n}+\gamma^{n} \hat{q}\left(S_{t+n}, A_{t+n}, \mathbf{w}_{t+n-1}\right),
G t : t + n R t + 1 R t + + R t + n R t + n 1 + q ^ ( S t + n , A t + n , w t + n 1 ) G_{t : t+n} \doteq R_{t+1}-\overline{R}_{t}+\cdots+R_{t+n}-\overline{R}_{t+n-1}+\hat{q}\left(S_{t+n}, A_{t+n}, \mathbf{w}_{t+n-1}\right)
注意,对于 k T k \geq T ρ k = 1 \rho_{k}=1 ,且对于 t + n T t+n \geq T G t : n = G t G_{t : n}=G_t

我们还介绍过一种去掉重要性采样的方法n-step tree-backup算法,这里也可以采用:
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 ) G t : t + n q ^ ( S t , A t , w t + n 1 ) + k = t t + n 1 δ k i = t + 1 k γ π ( A i S i ) \begin{aligned} \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) \\ G_{t : t+n} & \doteq \hat{q}\left(S_{t}, A_{t}, \mathbf{w}_\blue{t+n-1}\right)+\sum_{k=t}^{t+n-1} \delta_{k} \prod_{i=t+1}^{k} \gamma \pi\left(A_{i} | S_{i}\right) \end{aligned}
其中, δ t \delta_t 采用半梯度Expected Sarsa的形式。注意式子中蓝色的部分原文应该是写错了,原文此处为 w t 1 \mathbf{w}_{t-1} 。这个式子很容易和第七章中n-step tree-backup的迭代公式对应,实际上两个式子是一样的,就是换了个写法。

当然,之前介绍的n-step Q ( σ ) Q(\sigma) 也是可以改造的。

3.Off-policy发散的例子

这一小节我们讨论第二个挑战:behavior策略的轨迹与target策略的轨迹不同,导致trajectory sampling更新并不是对target策略的,从而导致收敛性的问题。下面给出几个例子说明:

MDP中取出两个状态问题
我们从一个MDP中取出两个状态,特征向量都是常数,例如分别是 x ( s 1 ) = 1 , x ( s 2 ) = 2 x(s_1)=1,x(s_2)=2 ;线性拟合器我们因而也只取一个参数 w w 。在 s 1 s_1 下,我们只有一个动作可选,且确定性地导向状态 s 2 s_2 ,因而有:

s 1 s_1 的TD误差为:
δ t = R t + 1 + γ v ^ ( S t + 1 , w t ) v ^ ( S t , w t ) = 0 + γ 2 w t w t = ( 2 γ 1 ) w t \delta_{t}=R_{t+1}+\gamma \hat{v}\left(S_{t+1}, \mathbf{w}_{t}\right)-\hat{v}\left(S_{t}, \mathbf{w}_{t}\right)=0+\gamma 2 w_{t}-w_{t}=(2 \gamma-1) w_{t}
根据off-policy的半梯度TD(0),有:
w t + 1 = w t + α ρ t δ t v ^ ( S t , w t ) = w t + α 1 ( 2 γ 1 ) w t 1 = ( 1 + α ( 2 γ 1 ) ) w t w_{t+1}=w_{t}+\alpha \rho_{t} \delta_{t} \nabla \hat{v}\left(S_{t}, w_{t}\right)=w_{t}+\alpha \cdot 1 \cdot(2 \gamma-1) w_{t} \cdot 1=(1+\alpha(2 \gamma-1)) w_{t}
如果 ( 1 + α ( 2 γ 1 ) ) > 1.0 (1+\alpha(2 \gamma-1))>1.0 ,那么一直更新下去就会发散掉。因此,必须 γ > 0.5 \gamma>0.5
你可能注意到了,我们不断只利用 s 1 s 2 s_1\rightarrow{s_2} 这个转移更新,在on-policy时这是不可能的,因为我们按照trajectory更新的话,更新完 s 1 s 2 s_1\rightarrow{s_2} 这个转移后,一定会更新 s 2 s_2\rightarrow{*} 这个转移,如果 * 是终止状态,那么 s 2 s_2 会以常数 R 3 R_3 作为目标,因此如果 R 3 R_3 s 2 s_2 当前的值大,会导致 s 2 s_2 值的提高,然而无论如何,一旦 s 2 s_2 的值增长到高于 R 3 R_3 后,那么后面的更新就会下降了,从而减小 w t w_t 的值,最终达到一个平衡,而不会发散;但是对于off-policy情形,可能由于target策略中使转移 s 2 s_2\rightarrow{*} 出现的动作的概率为0,导致重要性采样比率 ρ = 0 \rho=0 ,因而实际上只会不断依据转移 s 1 s 2 s_1\rightarrow{s_2} 更新,导致上述情况。

Baird问题

共有七个状态,两种动作(虚线、实线),虚线导致平均地转移到上排六个状态之一。behavior策略按概率 6 7 \frac{6}{7} 选择虚线, 1 7 \frac{1}{7} 选择实线,因此无论处于哪个状态,转移到任何后续状态的概率都是 1 7 \frac{1}{7} ;target策略只选择实线。所有的转移的回报都是0,折扣因子 γ = 0.99 \gamma=0.99 ,由值函数的定义式,显然对所有状态 v π ( s ) = 0 v_{\pi}(s)=0
构造拟合器参数 w = ( w 1 , w 2 , w 3 , w 4 , w 5 , w 6 , w 7 , w 8 ) \textbf{w}=(w_1, w_2, w_3, w_4, w_5, w_6, w_7, w_8) ,根据每个圆中的内容,我们可以构造出每个状态的特征向量,例如对于上排第一个状态,有 x = ( 2 , 0 , 0 , 0 , 0 , 0 , 0 , 1 ) \textbf{x}=(2, 0, 0, 0, 0, 0, 0, 1) 。因为每个状态的值函数都是0,那么 w = 0 \textbf{w}=0 是唯一正确的解。但是结合线性拟合器半梯度地求解时,由于参数的数量是8个,而只有7个状态,因此可知有无穷多组解;且集合 { x ( s ) : s S } \{\mathbf{x}(s) : s \in \mathcal{S}\} 是线性无关集。
在这个问题上使用半梯度TD(0),甚至是半梯度DP,只要步长是整数,那么就一定发散。应用DP的话,实际上是使用下式更新,也就是计算所有的更新量后一次性地更新:
w k + 1 w k + α S s ( E π [ R t + 1 + γ v ^ ( S t + 1 , w k ) S t = s ] v ^ ( s , w k ) ) v ^ ( s , w k ) \mathbf{w}_{k+1} \doteq \mathbf{w}_{k}+\frac{\alpha}{|\mathcal{S}|} \sum_{s}\left(\mathbb{E}_{\pi}\left[R_{t+1}+\gamma \hat{v}\left(S_{t+1}, \mathbf{w}_{k}\right) | S_{t}=s\right]-\hat{v}\left(s, \mathbf{w}_{k}\right)\right) \nabla \hat{v}\left(s, \mathbf{w}_{k}\right)
结合behavior/target policy的特点,我们可以很容易地分析出off-policy/DP会发散的结论,你可以仔细想一想(提示,考虑 w 8 w_8 初值不为0的情况)。
但是如果我们采用on-policy方式,那么就可以收敛。

这个例子让我们认识到,即使是最简单的bootstrapping方式和拟合器形式结合,都有可能在off-policy时发散掉。

实际上,对于Q-learning,也有类似这样发散掉的例子。但是在实际中,如果behavior策略和target策略比较接近,例如behavior使用 ε \varepsilon -greedy,那么似乎从来不会发散掉,然而这是没有理论保证的。

如果我们不采用逐步逼近的形式,而是直接按照最小方差更新到return,那么当 { x ( s ) : s S } \{\mathbf{x}(s) : s \in \mathcal{S}\} 构成线性独立集合时(上例),则每次迭代我们都能得到精确的估计,则能收敛,变得类似于标准的表格化DP了。但是实际当中,精确的估计是难以得到的,而此时即使采用最小方差更新也会发散。所谓精确的,我认为等价于 { x ( s ) : s S } \{\mathbf{x}(s) : s \in \mathcal{S}\} 构成线性独立集。下面举例说明

example 11.1 Tsitsiklis and Van Roy’s Counterexample
这个例子说明,DP和拟合器的结合,有时即使每个时间步都能找到最小方差解,也可能不收敛。我们扩展下本节最初的例子:

所有的转移的回报都是0,所以每个状态的值理论上是0。采用DP方法,每轮我们同时计算出所有的误差,构成 V E \overline{\mathrm{VE}} ,然后对 w w 求导得到最佳值:
w k + 1 = argmin w R s S ( v ^ ( s , w ) E π [ R t + 1 + γ v ^ ( S t + 1 , w k ) S t = s ] ) 2 = argmin w R ( w γ 2 w k ) 2 + ( 2 w ( 1 ε ) γ 2 w k ) 2 = 6 4 ε 5 γ w k \begin{aligned} w_{k+1} &=\underset{w \in \mathbb{R}}{\operatorname{argmin}} \sum_{s \in \mathcal{S}}\left(\hat{v}(s, w)-\mathbb{E}_{\pi}\left[R_{t+1}+\gamma \hat{v}\left(S_{t+1}, w_{k}\right) | S_{t}=s\right]\right)^{2} \\ &=\underset{w \in \mathbb{R}}{\operatorname{argmin}}\left(w-\gamma 2 w_{k}\right)^{2}+\left(2 w-(1-\varepsilon) \gamma 2 w_{k}\right)^{2} \\ &=\frac{6-4 \varepsilon}{5} \gamma w_{k} \end{aligned}
因此当 γ > 5 6 4 ε \gamma>\frac{5}{6-4 \varepsilon} w 0 w_0 不为0时发散。

我们可以使用特殊的函数拟合方法保证稳定性,特别地,当函数拟合方法不由观测到的目标外推时,就能保证稳定。这些方法叫做averagers,包括KNN和局部权重回归,但是ANN和tile coding都是不满足的。

4.死亡三元组

根据上面的讨论,我们观察到一旦以下三个要素同时出现,则就可能不稳定,只出现少于三个要素,则不会不稳定:

  • 拟合器
  • bootstrapping
  • off-policy训练(包含DP)
    前面几个小节关于稳定性的讨论,都只针对prediction过程,对于control过程分析起来比较复杂,但是只要同时包含这三个要素,就会出现风险。

那么我们能不能去掉这三个要素呢?目前在RL中,这三个要素都有重要的作用,不能轻易去除:

  • 函数器:解决大规模问题必须的。
  • bootstrapping:提高计算效率、存储效率;提高学习速率,得到极大似然估计;但是如果特征不好,则可能导致泛化性差、出现渐进偏差。
  • off-policy:分离behavior策略和target策略,同一个behavior策略可以指导多个target策略的学习。

因此,必须要想办法克服不稳定的问题。

5.线性值函数几何学

这一节,我们更深入地分析下值函数拟合的方法,以更好地理解off-policy中稳定性的问题。

对于状态空间 S S ,值函数的本质是状态到一个实数的映射: v : S R v : \mathcal{S} \rightarrow \mathbb{R} ,所有的值函数都是这个映射空间中的一个点。例如对于状态空间 S = { s 1 , s 2 , , s S } \mathcal{S}=\left\{s_{1}, s_{2}, \ldots, s_{|S|}\right\} ,我们可以把其值函数看成一个向量: [ v ( s 1 ) , v ( s 2 ) , , v ( s S ) ] \left[v\left(s_{1}\right), v\left(s_{2}\right), \ldots, v\left(s_{|S|}\right)\right]^{\top} 。而拟合器的参数数量一般是低于状态数量的。

特别地,考虑状态空间 S = { s 1 , s 2 , s 3 } \mathcal{S}=\left\{s_{1}, s_{2}, s_{3}\right\} ,线性拟合器 w = ( w 1 , w 2 ) \mathbf{w}=\left(w_{1}, w_{2}\right)^{\top} ,那么所有的值函数是三维空间中的一个点,而拟合器则提供了另一个坐标系统,每个参数向量都是这个子空间中的一个点,它也能表示一个完整的值函数 v w v_{\mathbf{w}} 。拟合器实际上是值函数空间中的一个平面,其形状由值函数的形式、特征形式决定。当值函数是线性的时候,它就是三维值函数空间的一个平面,形式比较简单,如下图所示:

对于固定的策略 π \pi ,我们假设其真实的值函数为 v π v_{\pi} 很复杂,无法用线性函数精确拟合,因此 v π v_{\pi} 不在拟合器的平面上。图中,值函数位于拟合器平面的上方。

如果 v π v_{\pi} 无法被精确拟合,那最好的拟合是什么样的呢?首先定义两个值函数之间的距离:给定两个值函数 v 1 v_1 v 2 v_2 ,那么它们之间的差向量为: v = v 1 v 2 v=v_{1}-v_{2} 。类似 VE \overline{\text{VE}} ,我们考虑对不同状态的重视程度,定义值函数之间的距离:
v μ 2 s S μ ( s ) v ( s ) 2 \|v\|_{\mu}^{2} \doteq \sum_{s \in \mathcal{S}} \mu(s) v(s)^{2}
VE \overline{\text{VE}} 也可以简写为:
V E ( w ) = v w v π μ 2 \overline{\mathrm{VE}}(\mathbf{w})=\left\|v_{\mathbf{w}}-v_{\pi}\right\|_{\mu}^{2}
对于任何值函数 v v ,找到它的最近拟合器实际上是个投影问题,我们把 v v 投影到拟合器平面上。定义投影算子 \prod
Π v v w \Pi v \doteq v_{\mathbf{w}} where w = argmin w R d v v w μ 2 \mathbf{w}=\underset{\mathbf{w} \in \mathbb{R}^{d}}{\operatorname{argmin}}\left\|v-v_{\mathbf{w}}\right\|_{\mu}^{2}
因此,对于值函数 v π v_{\pi} ,我们能找到其最近的拟合器: Π v π \Pi v_{\pi} ,这可以由MC方法渐进地找到。下表给出了更详细的解释:

The projection matrix
对于线性拟合器而言,投影也是线性的,因此可以用一个 S × S |\mathcal{S}| \times|\mathcal{S}| 的矩阵描述:
Π X ( X D X ) 1 X D \Pi \doteq \mathbf{X}\left(\mathbf{X}^{\top} \mathbf{D} \mathbf{X}\right)^{-1} \mathbf{X}^{\top} \mathbf{D}
其中, D \textbf{D} 是以 μ ( s ) \mu(s) 为对角元素的 S × S |\mathcal{S}| \times|\mathcal{S}| 的对角阵; X \textbf{X} 是每行为特征向量 x ( s ) \mathbf{x}(s)^{\top} S × d |\mathcal{S}| \times d 的矩阵;如果不可逆,那么求伪逆拟合(加号逆)。
值函数之间的距离可以写成: v μ 2 = v D v \|v\|_{\mu}^{2}=v^{\top} \mathbf{D} v
线性拟合器则为: v w = X w v_{\mathbf{w}}=\mathbf{X} \mathbf{w}

TD方法找到的解与MC不同,为了理解这个结论,回顾下值函数的Bellman方程:
v π ( s ) = a π ( a s ) s , r p ( s , r s , a ) [ r + γ v π ( s ) ] , v_{\pi}(s)=\sum_{a} \pi(a | s) \sum_{s^{\prime}, r} p\left(s^{\prime}, r | s, a\right)\left[r+\gamma v_{\pi}\left(s^{\prime}\right)\right], \qquad for all s S s \in \mathcal{S}

只有真实的值函数 v π v_{\pi} 才能让Bellman方程满足,如果用 v w v_{\mathbf{w}} 替代的话,则出现Bellman误差(TD误差的期望):
δ w ( s ) ( a π ( a s ) s , r p ( s , r s , a ) [ r + γ v w ( s ) ] ) v w ( s ) = E π [ R t + 1 + γ v w ( S t + 1 ) v w ( S t ) S t = s , A t π ] \begin{aligned} \overline{\delta}_{\mathbf{w}}(s) & \doteq\left(\sum_{a} \pi(a | s) \sum_{s^{\prime}, r} p\left(s^{\prime}, r | s, a\right)\left[r+\gamma v_{\mathbf{w}}\left(s^{\prime}\right)\right]\right)-v_{\mathbf{w}}(s) \\ &=\mathbb{E}_{\pi}\left[R_{t+1}+\gamma v_{\mathbf{w}}\left(S_{t+1}\right)-v_{\mathbf{w}}\left(S_{t}\right) | S_{t}=s, A_{t} \sim \pi\right] \end{aligned}

把所有状态的Bellman误差综合,可以得到Bellman误差向量: δ w R S \overline{\delta}_{\mathbf{w}} \in \mathbb{R}^{|S|} ,其范数为衡量值函数误差的指标,叫做均方Bellman误差: B E ( w ) = δ w μ 2 \overline{\mathrm{BE}}(\mathbf{w})=\left\|\overline{\delta}_{\mathbf{w}}\right\|_{\mu}^{2} 。将 B E ( w ) \overline{\mathrm{BE}}(\mathbf{w}) 降低到0是不可能的,最小化 B E ( w ) \overline{\mathrm{BE}}(\mathbf{w}) 得到的点与最小化 VE \overline{\text{VE}} 得到的点是不同的,如何最小化 B E ( w ) \overline{\mathrm{BE}}(\mathbf{w}) 我们在后面两个小节讨论。

定义Bellman算子: B π : R S R S B_{\pi} : \mathbb{R}^{|S|} \rightarrow \mathbb{R}^{|S|} 为:
( B π v ) ( s ) a π ( a s ) s , r p ( s , r s , a ) [ r + γ v ( s ) ] \left(B_{\pi} v\right)(s) \doteq \sum_{a} \pi(a | s) \sum_{s^{\prime}, r} p\left(s^{\prime}, r | s, a\right)\left[r+\gamma v\left(s^{\prime}\right)\right]
因此Bellman误差向量可以改写为: δ w = B π v w v w \overline{\delta}_{\mathbf{w}}=B_{\pi} v_{\mathbf{w}}-v_{\mathbf{w}}

将Bellman算子应用到拟合器子空间中的值函数,将产生一个新的值函数,直到收敛(在平面上迭代)。对于表格型的DP算法,则Bellman算子迭代地应用到拟合器平面外的点上(在空间中),然后逐渐收敛,直到: v π = B π v π v_{\pi}=B_{\pi} v_{\pi} ,也就是达到Bellman不动点。

将Bellman误差向量映射到平面上,操作为: Π δ v w \Pi \overline{\delta}_{v_{\mathbf{w}}} ,标记为PBE,由此可以定义均方投影Bellman误差 P B E ( w ) = Π δ w μ 2 \overline{\mathrm{PBE}}(\mathbf{w})=\left\|\Pi \overline{\delta}_{\mathbf{w}}\right\|_{\mu}^{2} 。在拟合器平面上,可以逐渐迭代到 P B E = 0 \overline{\mathrm{PBE}}=0 的点,也就是TD不动点,这个点与 VE \overline\text{VE} BE \overline\text{BE} 都不同。

6.贝尔曼误差中的梯度下降

我们在上一节基础上,继续讨论off-policy学习的稳定性,这里考虑SGD算法,SGD算法本身收敛性是较好的。截止到目前,只有MC方法是真正的SGD算法,无论on-policy还是off-policy都是稳定的;但是我们常用的带bootstrapping的半梯度方法,在off-policy训练时却很可能发散掉。

SGD是很有吸引力的,现在已经有了很多将其应用到RL中的努力。这些工作中,首要的一点就是误差/目标函数的设计,我们的目标是最优化该函数。本节和下一节我们基于Bellman误差分析下一些比较重要的目标函数的原理和局限性。通过分析我们能发现,这些方法都不是好的学习算法。另一方面,我们通过这些分析能看到一些对设计更好的算法的启发。

通常,我们是通过TD误差不断更新值函数的:
δ t = R t + 1 + γ v ^ ( S t + 1 , w t ) v ^ ( S t , w t ) \delta_{t}=R_{t+1}+\gamma \hat{v}\left(S_{t+1}, \mathbf{w}_{t}\right)-\hat{v}\left(S_{t}, \mathbf{w}_{t}\right)
之前我们介绍了Bellman误差,这启发我们也用期望形式的TD误差降低方差,也就是均方TD误差:
TDE ( w ) = s S μ ( s ) E [ δ t 2 S t = s , A t π ] = s S μ ( s ) E [ ρ t δ t 2 S t = s , A t b ] = E b [ ρ t δ t 2 ] .  (如果  μ  是行为策略b下的on-policy分布  ) \begin{aligned} \overline{\operatorname{TDE}}(\mathbf{w}) &=\sum_{s \in \mathcal{S}} \mu(s) \mathbb{E}\left[\delta_{t}^{2} | S_{t}=s, A_{t} \sim \pi\right] \\ &=\sum_{s \in \mathcal{S}} \mu(s) \mathbb{E}\left[\rho_{t} \delta_{t}^{2} | S_{t}=s, A_{t} \sim b\right] \\ &=\mathbb{E}_{b}\left[\rho_{t} \delta_{t}^{2}\right] . \quad \text { (如果 } \mu \text { 是行为策略b下的on-policy分布 } ) \end{aligned}
这给了我们一种可采样的期望的目标形式,因此,可以得到拟合器参数更新公式:
w t + 1 = w t 1 2 α ( ρ t δ t 2 ) = w t α ρ t δ t δ t = w t + α ρ t δ t ( v ^ ( S t , w t ) γ v ^ ( S t + 1 , w t ) ) \begin{aligned} \mathbf{w}_{t+1} &=\mathbf{w}_{t}-\frac{1}{2} \alpha \nabla\left(\rho_{t} \delta_{t}^{2}\right) \\ &=\mathbf{w}_{t}-\alpha \rho_{t} \delta_{t} \nabla \delta_{t} \\ &=\mathbf{w}_{t}+\alpha \rho_{t} \delta_{t}\left(\nabla \hat{v}\left(S_{t}, \mathbf{w}_{t}\right)-\gamma \nabla \hat{v}\left(S_{t+1}, \mathbf{w}_{t}\right)\right) \end{aligned}
和半梯度TD算法相比,这个更新是全梯度的,因此能很好地保证收敛,但是不一定能收敛到我们期望的地方。这个算法叫做naive residual-gradient算法。

example 11.2 A-split example, showing the naiveté of the naive residual-gradient algorithm
考虑三状态的episodic MRP问题,每个episode从A开始,按照50%的概率转移到B与C之一,reward标记在转移线上。折扣因子选1,并on-policy( ρ t = 0 \rho_t=0 ),表格地训练。

简单分析可知,ABC三个状态的真实值分别是 1 2 1 0 \frac{1}{2},1,0 。但是naive residual-gradient 算法所计算的BC的值都是不对的,B是 3 4 \frac{3}{4} ,C是 1 4 \frac{1}{4} ,A是正确的,而这三个值确实最小化了 TDE \overline{\text{TDE}} 。我们可以计算一下真实值与naive residual-gradient 算法的 TDE \overline{\text{TDE}} ,这个很容易,分别得到 1 8 \frac{1}{8} 1 16 \frac{1}{16} 。可见 TDE \overline{\text{TDE}} 这个指标的问题。

上述例子说明了naive residual-gradient 算法确实比较 naive,它惩罚了所有的TD误差,但只得到了一个时间平滑的结果。

一个更好的想法是使用Bellman误差,当达到真实值时,Bellman误差是0。因此,最小化Bellman误差的算法在A-split问题上应该表现不错。 我们通常不会完全地达到零Bellman误差的状态,这是由我们拟合器有限的拟合能力决定的。Bellman误差和TD误差是紧密相连的,它是TD误差的期望值。基于Bellman均方误差,我们得到:

w t + 1 = w t 1 2 α ( E π [ δ t ] 2 ) = w t 1 2 α ( E b [ ρ t δ t ] 2 ) = w t α E b [ ρ t δ t ] E b [ ρ t δ t ] = w t α E b [ ρ t δ t ( R t + 1 + γ v ^ ( S t + 1 , w ) v ^ ( S t , w ) ) ] E b [ ρ t δ t ] = w t + α [ E b [ ρ t ( R t + 1 + γ v ^ ( S t + 1 , w ) ) ] v ^ ( S t , w ) ] [ v ^ ( S t , w ) γ E b [ ρ t v ^ ( S t + 1 , w ) ] ] \begin{aligned} \mathbf{w}_{t+1} &=\mathbf{w}_{t}-\frac{1}{2} \alpha \nabla\left(\mathbb{E}_{\pi}\left[\delta_{t}\right]^{2}\right) \\ &=\mathbf{w}_{t}-\frac{1}{2} \alpha \nabla\left(\mathbb{E}_{b}\left[\rho_{t} \delta_{t}\right]^{2}\right) \\ &=\mathbf{w}_{t}-\alpha \mathbb{E}_{b}\left[\rho_{t} \delta_{t}\right] \nabla \mathbb{E}_{b}\left[\rho_{t} \delta_{t}\right] \\ &=\mathbf{w}_{t}-\alpha \mathbb{E}_{b}\left[\rho_{t} \delta_{t}\left(R_{t+1}+\gamma \hat{v}\left(S_{t+1}, \mathbf{w}\right)-\hat{v}\left(S_{t}, \mathbf{w}\right)\right)\right] \mathbb{E}_{b}\left[\rho_{t} \nabla \delta_{t}\right] \\ &=\mathbf{w}_{t}+\alpha\left[\mathbb{E}_{b}\left[\rho_{t}\left(R_{t+1}+\gamma \hat{v}\left(S_{t+1}, \mathbf{w}\right)\right)\right]-\hat{v}\left(S_{t}, \mathbf{w}\right)\right]\left[\nabla \hat{v}\left(S_{t}, \mathbf{w}\right)-\gamma \mathbb{E}_{b}\left[\rho_{t} \nabla \hat{v}\left(S_{t+1}, \mathbf{w}\right)\right]\right] \end{aligned}

这也可以通过采样的方式实现。如果在两个期望中都简单地用期望代替,那么这个式子与naive residual-gradient 算法收敛的结果是一样的,这是因为式子中两个期望中都涉及下个状态 S t + 1 S_{t+1} ,而且两个期望的值是相乘的,如果我们希望结果无偏,那么必须用两次不同的采样代替两个期望。这种residual-gradient算法中的问题的有两种解决方式,第一种是针对确定性环境的,由于转移到哪个状态是确定地,因此用一个采样也没问题;另一种方式是采样两次 S t + 1 S_{t+1} ,这在与仿真环境交互的时候容易实现。上述两种方式可以保证算法收敛到最小 B E \overline{\mathrm{BE}} ,对于SGD方法,这种收敛性是能得到保证的(线性、非线性拟合器都成)。

但是residual-gradient 算法有三个重大缺陷:1. 经验表明,比半梯度方法收敛速度慢很多很多,可以首先用半梯度方法初始化,再用这种方法优化;2. 表格时能收敛到正确的值,但是一旦涉及拟合器,就无法保证,实际上是此时 B E \overline{\mathrm{BE}} 指导的目标是不正确的,参考下面的A-presplilt例子;3. 有些时候 B E \overline{\mathrm{BE}} 的收敛性也无法得到保证,这在下一节说明。

example 11.3 A-presplit example, a counterexample for the B E \overline{\mathrm{BE}}
考虑如下的MRP,episode等概率从A1和A2开始,而且令A1和A2的特征相同,因此就如单个状态A一样;函数拟合器有三个参数,一个给B赋值,一个给C赋值,一个给A赋值。回报值标记在线上。

对于算法而言,这个问题与A-split是一样的,因为两个起始状态在算法看来是一个。共享值A,B,C的真实值分别为 1 2 1 0 \frac{1}{2},1,0 。由于后面的状态转移是确定的,因此residual-gradient与之前的naive residual-gradient算法收敛到同样的结果,这也是最小 B E \overline{\mathrm{BE}} 得到的结果,实际上只要是确定性问题, B E \overline{\mathrm{BE}} T D E \overline{\mathrm{TDE}} 是等价的。

7.Bellman误差是不能学习的

在机器学习中,可学习的含义是能通过多项式数量的样本训练出模型。这一节我们放宽可学习的要求:如果模型是良好定义的,且能在已知环境结构的前提下计算出来,但是不能通过特征向量、动作、回报序列计算出来(即不能通过有限的样本学习出模型),该模型就是不可学习的。 B E \overline{\mathrm{BE}} 就是不可学习的,因而去最小化 B E \overline{\mathrm{BE}} 并不是好的方法,下面举例说明其不可学习性。

考虑以下两种MRPs:

模型中,涉及多种转移时,我们设置其等概率。上述三个状态的特征向量我们认为是一样的( x = 1 x=1 ),因此其拟合器只需一个参数,我们用 w w 表征其值。很容易分析,这两个MRPs的回报序列都是由随机的 0 2 0,2 组成的。因此,即使用无限的数据,我们也没法知道数据来源于哪个模型,因此这是不可学习的。

这个例子也能说明, V E \overline{\mathrm{VE}} 也是不可学习的。如果 γ = 0 \gamma=0 ,那么左侧模型的值是1,右侧则是0和2。如果 w = 1 w=1 ,那么左侧模型 V E = 0 \overline{\mathrm{VE}}=0 ,右侧模型 V E = 1 \overline{\mathrm{VE}}=1 ,这说明了其不可学习性。但是,无论模型结构是哪种,我们发现最小化其 V E \overline{\mathrm{VE}} 的参数都是 w = 1 w=1 ,因此虽然 V E \overline{\mathrm{VE}} 是不可学习的,我们仍然可以用它来优化参数。下面论证不同模型的最优参数是一致的:

我们先看一个简单的例子,我们设计一个新的目标函数:均方return误差( R E \overline{\mathrm{RE}} ),这个误差是可学习的。on-policy时, R E \overline{\mathrm{RE}} 可以写为:
R E ( w ) = E [ ( G t v ^ ( S t , w ) ) 2 ] = V E ( w ) + E [ ( G t v π ( S t ) ) 2 ] \begin{aligned} \overline{\mathrm{RE}}(\mathbf{w}) &=\mathbb{E}\left[\left(G_{t}-\hat{v}\left(S_{t}, \mathbf{w}\right)\right)^{2}\right] \\ &=\overline{\mathrm{VE}}(\mathbf{w})+\mathbb{E}\left[\left(G_{t}-v_{\pi}\left(S_{t}\right)\right)^{2}\right] \end{aligned}
附加项与参数无关,因此 R E \overline{\mathrm{RE}} V E \overline{\mathrm{VE}} 的最优参数是一致的。

然后我们来考虑 B E \overline{\mathrm{BE}} ,它与 V E \overline{\mathrm{VE}} 类似,可以从MDP中计算,但是都不可从数据中学习;不过, V E \overline{\mathrm{VE}} 的最优参数是可学习的,而 B E \overline{\mathrm{BE}} 的最优参数不可学习。如下例所示:

example 11.4 Counterexample to the learnability of the Bellman error
考虑如下两个MRPs:

同样,多个转移时,认为其都是等概率的,回报标在线上。其中A表示一个特征,B/B’表示另外一个特征,分别用两个参数表示这两种特征的值。对于右侧的MRP,可以看出三个状态的on-policy分布是等概率的, μ = 1 3 \mu=\frac{1}{3} 。因此,两个MRP观测到的序列也是一样的,特别地,连续出现k个B的概率都是 2 k 2^{-k}
假设 w = 0 \mathbf{w}=\mathbf{0} ,第一个MRP的 B E = 0 \overline{\mathrm{BE}}=0 ,第二个MRP的 B E = 2 3 \overline{\mathrm{BE}}=\frac{2}{3} 。因此 B E \overline{\mathrm{BE}} 是不可学习的。
针对两个MRPs最小化参数 w \mathbf{w} ,对于第一个MRP,其为: w = 0 \mathbf{w}=\mathbf{0} (无论 γ \gamma 是多少);对于第二个MRP则与 γ \gamma 有关,特别地,当 γ 1 \gamma \rightarrow 1 时,其为 ( 1 2 , 0 ) \left(-\frac{1}{2}, 0\right)^{\top} 。因此最优参数不可学习的。因此,原则上用 B E \overline{\mathrm{BE}} 作为目标函数是不合适的。
对于第二个MRP,最小化后,B的值是0,A连到B的回报也是0,那么为什么A的值是 1 2 -\frac{1}{2} 呢?这个很容易分析,你可以思考下。

而其它的bootstrapping方法,如 P B E \overline{\mathrm{PBE}} T D E \overline{\mathrm{TDE}} ,是可学习的,其最优参数却互不相同,与 B E \overline{\mathrm{BE}} 的最优参数也不同。

B E \overline{\mathrm{BE}} 不可学习性及其最小化参数不可学习性,限制了其应用。这就是 B E \overline{\mathrm{BE}} 在收敛性上的问题。因此residual-gradient算法也是比较局限的。因此我们转而考虑 P B E \overline{\mathrm{PBE}}

8.梯度TD方法

这一节讨论如何用SGD方法最小化 P B E \overline{\mathrm{PBE}} ,而 P B E \overline{\mathrm{PBE}} 的SGD是真正的SGD方法,具有很好的鲁棒性(即使在off-policy、非线性拟合器情形下)。在线性拟合器时,能得到精确的解,即TD不动点,此时 P B E = 0 \overline{\mathrm{PBE}}=0 ,这个解可以通过LSTD算法得到,但是复杂度是 O ( d 2 ) O\left(d^{2}\right) 的。这里我们用SGD方法—梯度TD方法,把复杂度降到 O ( d ) O\left(d\right) ,并保证收敛的鲁棒性。梯度TD方法比普通TD方法计算量大两倍。

首先把 P B E \overline{\mathrm{PBE}} 写成矩阵形式(用到了前面的投影矩阵):
P B E ( w ) = Π δ w μ 2 = ( Π δ W ) D Π δ w = δ w Π D Π δ w = δ w D X ( X D X ) 1 X D δ w = ( X D δ w ) ( X D X ) 1 ( X D δ w ) \begin{aligned} \overline{\mathrm{PBE}}(\mathbf{w}) &=\left\|\Pi \overline{\delta}_{\mathbf{w}}\right\|_{\mu}^{2} \\ &=\left(\Pi \overline{\delta}_{\mathbf{W}}\right)^{\top} \mathbf{D} \Pi \overline{\delta}_{\mathbf{w}} \\ &=\overline{\delta}_{\mathbf{w}}^{\top} \Pi^{\top} \mathbf{D} \Pi \overline{\delta}_{\mathbf{w}} \\ &=\overline{\delta}_{\mathbf{w}}^{\top} \mathbf{D} \mathbf{X}\left(\mathbf{X}^{\top} \mathbf{D} \mathbf{X}\right)^{-1} \mathbf{X}^{\top} \mathbf{D} \overline{\delta}_{\mathbf{w}} \\ &=\left(\mathbf{X}^{\top} \mathbf{D} \overline{\delta}_{\mathbf{w}}\right)^{\top}\left(\mathbf{X}^{\top} \mathbf{D} \mathbf{X}\right)^{-1}\left(\mathbf{X}^{\top} \mathbf{D} \overline{\delta}_{\mathbf{w}}\right)\end{aligned}

因此梯度为:
P B E ( w ) = 2 [ X D δ w ] ( X D X ) 1 ( X D δ w ) \nabla \overline{\mathrm{PBE}}(\mathbf{w})=2 \nabla\left[\mathbf{X}^{\top} \mathbf{D} \overline{\delta}_{\mathbf{w}}\right]^{\top}\left(\mathbf{X}^{\top} \mathbf{D} \mathbf{X}\right)^{-1}\left(\mathbf{X}^{\top} \mathbf{D} \overline{\delta}_{\mathbf{w}}\right)

我们需要把它改成采样(期望)的形式,这样才能用SGD方法。我们用 μ \mu 表示行为策略下的trajectory上的状态分布,上面公式三个括号中的内容都能由此写成期望的形式,例如对第三项,有:

X D δ w = s μ ( s ) x ( s ) δ w ( s ) = E [ ρ t δ t x t ] \mathbf{X}^{\top} \mathbf{D} \overline{\delta}_{\mathbf{w}}=\sum_{s} \mu(s) \mathbf{x}(s) \overline{\delta}_{\mathbf{w}}(s)=\mathbb{E}\left[\rho_{t} \delta_{t} \mathbf{x}_{t}\right]

回顾下半梯度off-policy TD(0): w t + 1 w t + α ρ t δ t v ^ ( S t , w t ) \mathbf{w}_{t+1} \doteq \mathbf{w}_{t}+\alpha \rho_{t} \delta_{t} \nabla \hat{v}\left(S_{t}, \mathbf{w}_{t}\right) ,如果拟合器是线性的,其中梯度就是 x t \mathbf{x}_t ,因此发现完全可以用半梯度off-policy TD(0)的采样方法处理第三项。

第一项则为:
E [ ρ t δ t x t ] = E [ ρ t δ t x t ] = E [ ρ t ( R t + 1 + γ w x t + 1 w x t ) x t ] = E [ ρ t ( γ x t + 1 x t ) x t ] \begin{aligned} \nabla \mathbb{E}\left[\rho_{t} \delta_{t} \mathbf{x}_{t}\right]^{\top} &=\mathbb{E}\left[\rho_{t} \nabla \delta_{t}^{\top} \mathbf{x}_{t}^{\top}\right] \\ &=\mathbb{E}\left[\rho_{t} \nabla\left(R_{t+1}+\gamma \mathbf{w}^{\top} \mathbf{x}_{t+1}-\mathbf{w}^{\top} \mathbf{x}_{t}\right)^{\top} \mathbf{x}_{t}^{\top}\right] \\ &=\mathbb{E}\left[\rho_{t}\left(\gamma \mathbf{x}_{t+1}-\mathbf{x}_{t}\right) \mathbf{x}_{t}^{\top}\right] \end{aligned}

第二项为:
X D X = s μ ( s ) x s x s = E [ x t x t ] \mathbf{X}^{\top} \mathbf{D X}=\sum_{s} \mu(s) \mathbf{x}_{s} \mathbf{x}_{s}^{\top}=\mathbb{E}\left[\mathbf{x}_{t} \mathbf{x}_{t}^{\top}\right]

因此,我们得到了 P B E \overline{\mathrm{PBE}} 的期望形式:
P B E ( w ) = 2 E [ ρ t ( γ x t + 1 x t ) x t ] E [ x t x t ] 1 E [ ρ t δ t x t ] \nabla \overline{\mathrm{PBE}}(\mathbf{w})=2 \mathbb{E}\left[\rho_{t}\left(\gamma \mathbf{x}_{t+1}-\mathbf{x}_{t}\right) \mathbf{x}_{t}^{\top}\right] \mathbb{E}\left[\mathbf{x}_{t} \mathbf{x}_{t}^{\top}\right]^{-1} \mathbb{E}\left[\rho_{t} \delta_{t} \mathbf{x}_{t}\right]

其中,第一项和第三项是相关的,都依赖 x t + 1 \mathbf{x}_{t+1} 向量,因此不能直接采样,否则会有偏。一个可行的办法是,独立的估计这三个部分的期望,然后再结合起来,但是这需要很大的计算量,尤其是还涉及求逆的过程;可以弱化这个过程:利用增量方法估计其中两个项,然后采样第三个项,这样复杂度会大大下降,但是仍然有 O ( d 2 ) O\left(d^{2}\right)

梯度-TD算法直接估计和存储后面两项的乘积,我们可以看到其乘积是一个向量:
v E [ x t x t ] 1 E [ ρ t δ t x t ] \mathbf{v} \approx \mathbb{E}\left[\mathbf{x}_{t} \mathbf{x}_{t}^{\top}\right]^{-1} \mathbb{E}\left[\rho_{t} \delta_{t} \mathbf{x}_{t}\right]
这个式子与线性最小二乘问题的解法是很相似的,其中 ρ t δ t \rho_{t} \delta_{t} 是希望预测的值,最小二乘解的一般形式为: x ^ = ( H T H ) 1 H T y \hat{x}=(H^TH)^{-1}H^Ty ,因此我们可以用SGD方法来最小化期望平方误差: ( v x t ρ t δ t ) 2 \left(\mathbf{v}^{\top} \mathbf{x}_{t}-\rho_{t} \delta_{t}\right)^{2} ,叫做最小均方(LMS)准则,因此有:
v t + 1 v t + β ( ρ t δ t v t x t ) x t \mathbf{v}_{t+1} \doteq \mathbf{v}_{t}+\beta \left(\blue{\rho_{t}}\delta_{t}-\mathbf{v}_{t}^{\top} \mathbf{x}_{t}\right) \mathbf{x}_{t}
蓝色的部分原文应该是写错了。

其中 β \beta 是步长因子,且加入了重要性采样。这是 O ( d ) O(d) 的复杂度。因此,我们总体上就得到了一个 O ( d ) O(d) 的算法。

现在,我们可以就能得到拟合器参数的更新公式了:
w t + 1 = w t 1 2 α P B E ( w t ) = w t 1 2 α 2 E [ ρ t ( γ x t + 1 x t ) x t ] E [ x t x t ] 1 E [ ρ t δ t x t ] = w t + α E [ ρ t ( x t γ x t + 1 ) x t ] E [ x t x t ] 1 E [ ρ t δ t x t ] w t + α E [ ρ t ( x t γ x t + 1 ) x t ] v t w t + α ρ t ( x t γ x t + 1 ) x t v t \begin{aligned} \mathbf{w}_{t+1} &=\mathbf{w}_{t}-\frac{1}{2} \alpha \nabla \overline{\mathrm{PBE}}\left(\mathbf{w}_{t}\right) \\ &=\mathbf{w}_{t}-\frac{1}{2} \alpha 2 \mathbb{E}\left[\rho_{t}\left(\gamma \mathbf{x}_{t+1}-\mathbf{x}_{t}\right) \mathbf{x}_{t}^{\top}\right] \mathbb{E}\left[\mathbf{x}_{t} \mathbf{x}_{t}^{\top}\right]^{-1} \mathbb{E}\left[\rho_{t} \delta_{t} \mathbf{x}_{t}\right] \\ &=\mathbf{w}_{t}+\alpha \mathbb{E}\left[\rho_{t}\left(\mathbf{x}_{t}-\gamma \mathbf{x}_{t+1}\right) \mathbf{x}_{t}^{\top}\right] \mathbb{E}\left[\mathbf{x}_{t} \mathbf{x}_{t}^{\top}\right]^{-1} \mathbb{E}\left[\rho_{t} \delta_{t} \mathbf{x}_{t}\right] \\ & \approx \mathbf{w}_{t}+\alpha \mathbb{E}\left[\rho_{t}\left(\mathbf{x}_{t}-\gamma \mathbf{x}_{t+1}\right) \mathbf{x}_{t}^{\top}\right] \mathbf{v}_{t} \\ & \approx \mathbf{w}_{t}+\alpha \rho_{t}\left(\mathbf{x}_{t}-\gamma \mathbf{x}_{t+1}\right) \mathbf{x}_{t}^{\top} \mathbf{v}_{t} \end{aligned}
这个算法叫做GTD2,我们可以先计算 x t v t \mathbf{x}_t^{\top}\mathbf{v}_t ,这样就是 O ( d ) O(d) 的复杂度。

在上述推导过程中,我们可以做一些变化,这样能得到类似的一个算法:
w t + 1 = w t + α E [ ρ t ( x t γ x t + 1 ) x t ] E [ x t x t ] 1 E [ ρ t δ t x t ] = w t + α ( E [ ρ t x t x t ] γ E [ ρ t x t + 1 x t ] ) E [ x t x t ] 1 E [ ρ t δ t x t ] = w t + α ( E [ x t x t ] γ E [ ρ t x t + 1 x t ] ) E [ x t x t ] 1 E [ ρ t δ t x t ] = w t + α ( E [ x t ρ t δ t ] γ E [ ρ t x t + 1 x t ] E [ x t x t ] 1 E [ ρ t δ t x t ] ) w t + α ( E [ x t ρ t δ t ] γ E [ ρ t x t + 1 x t ] v t ) w t + α ρ t ( δ t x t γ x t + 1 x t v t ) \begin{aligned} \mathbf{w}_{t+1} &=\mathbf{w}_{t}+\alpha \mathbb{E}\left[\rho_{t}\left(\mathbf{x}_{t}-\gamma \mathbf{x}_{t+1}\right) \mathbf{x}_{t}^{\top}\right] \mathbb{E}\left[\mathbf{x}_{t} \mathbf{x}_{t}^{\top}\right]^{-1} \mathbb{E}\left[\rho_{t} \delta_{t} \mathbf{x}_{t}\right] \\ &=\mathbf{w}_{t}+\alpha\left(\mathbb{E}\left[\rho_{t} \mathbf{x}_{t} \mathbf{x}_{t}^{\top}\right]-\gamma \mathbb{E}\left[\rho_{t} \mathbf{x}_{t+1} \mathbf{x}_{t}^{\top}\right]\right) \mathbb{E}\left[\mathbf{x}_{t} \mathbf{x}_{t}^{\top}\right]^{-1} \mathbb{E}\left[\rho_{t} \delta_{t} \mathbf{x}_{t}\right] \\ &=\mathbf{w}_{t}+\alpha\left(\mathbb{E}\left[\mathbf{x}_{t} \mathbf{x}_{t}^{\top}\right]-\gamma \mathbb{E}\left[\rho_{t} \mathbf{x}_{t+1} \mathbf{x}_{t}^{\top}\right]\right) \mathbb{E}\left[\mathbf{x}_{t} \mathbf{x}_{t}^{\top}\right]^{-1} \mathbb{E}\left[\rho_{t} \delta_{t} \mathbf{x}_{t}\right] \\ &=\mathbf{w}_{t}+\alpha\left(\mathbb{E}\left[\mathbf{x}_{t} \rho_{t} \delta_{t}\right]-\gamma \mathbb{E}\left[\rho_{t} \mathbf{x}_{t+1} \mathbf{x}_{t}^{\top}\right] \mathbb{E}\left[\mathbf{x}_{t} \mathbf{x}_{t}^{\top}\right]^{-1} \mathbb{E}\left[\rho_{t} \delta_{t} \mathbf{x}_{t}\right]\right) \\ & \approx \mathbf{w}_{t}+\alpha\left(\mathbb{E}\left[\mathbf{x}_{t} \rho_{t} \delta_{t}\right]-\gamma \mathbb{E}\left[\rho_{t} \mathbf{x}_{t+1} \mathbf{x}_{t}^{\top}\right] \mathbf{v}_{t}\right) \\ & \approx \mathbf{w}_{t}+\alpha \rho_{t}\left(\delta_{t} \mathbf{x}_{t}-\gamma \mathbf{x}_{t+1} \mathbf{x}_{t}^{\top} \mathbf{v}_{t}\right) \end{aligned}

这叫梯度矫正的TD(0),简称TDC,或者叫做GTD(0)。同样地,如果先计算 ( x t v t ) \left(\mathbf{x}_{t}^{\top} \mathbf{v}_{t}\right) ,那么也是 O ( d ) O(d) 的。下图展示了TDC算法sample或者exptected形式在Baird问题中的效果,可以看到 P B E \overline{\mathrm{PBE}} 收敛到了0,但是仍然不是最好的策略,因为此时所有的状态值都是0,1000轮迭代后, VE \overline\text{VE} 收敛到2,但是仍然与最好的策略相差很远。算法虽然能收敛到最优,但是速度非常慢,因为 P B E \overline{\mathrm{PBE}} 太接近0了。

GTD2和TDC都包含两个学习过程,即 w v \mathbf{w}、\mathbf{v} 的学习。且前者依赖后者。我们把这种非对称的依赖关系叫做串联(cascade),在串联中,前者往往比后者的学习快很多。这类算法收敛性的证明都假设前者依赖后者,且后者能比前者快得多地渐进收敛,这叫做双时间尺度证明,第二个过程是快速的时间尺度,前面的过程是慢的时间尺度。我们用 α \alpha 表示第一个学习过程的步长, β \beta 表示第二个学习过程的步长,那么可以证明,只要满足 β 0 \beta \rightarrow 0 ,且 α β 0 \frac{\alpha}{\beta} \rightarrow 0 就能收敛。

梯度-TD算法是目前解释性最好且应用最广泛的off-policy方法,已经有了扩展到动作值及控制过程的算法(GQ, Maei et al.,2010),也有扩展到资格迹的算法(GTD( λ \lambda ) and GQ( λ \lambda ), Maei, 2011; Maei and Sutton, 2010),以及扩展到非线性拟合器的算法(Maei et al., 2009)。现在也有一些将半梯度TD和梯度TD混合起来的算法(Hackman, 2012;White and White, 2016),Hybird-TD,它在behavior与target策略很不同的那些状态像梯度-TD,在behavior与target策略相似的那些状态像半梯度TD。与最邻近思想和控制过程的变体相结合,能得到一些更高效的算法(Mahadevan et al., 2014; Du et al., 2017)。

9.Emphatic-TD方法

这里介绍第二种off-policy+拟合器+bootstrapping且能保证收敛的算法。线性半梯度TD方法在on-policy下是高效稳定的,我们证明了TD不动点的稳定性。在off-policy时,我们用重要性采样加权每个更新,这样可以让其学习target策略,但是更新的分布却仍然是基于behavior策略的,这可能会导致发散。因此,我们可以考虑用一些方法去区分不同更新的重要性,使得更新的分布满足on-policy分布,这样就能让off-policy下也收敛了,我们在第九章介绍的Interest和Emphasis法就是这个思想,这里叫做emphatic-TD方法。

实际上,on-policy分布的概念是不精确的,因为有很多个on-policy分布(最优值函数是唯一的),其中的任何一个都能保证稳定性。对于一个非折扣的episodic问题,episodes结束的方式完全由转移的概率决定,但是episodes开始的方式却可能不同。无论从哪个状态开始,只要按照target策略动作,就能得到一个on-policy分布。我们可能从一个很靠近终点的状态开始,那么也许只有很少的几个状态被访问就结束了,也可能从一个距离终点很远的状态开始,那么可能会访问很多状态,但是无论如何,这都是on-policy分布,因而能保证线性半梯度方法的稳定性。

如果折扣因子 γ < 1.0 \gamma<1.0 的话,我们认为每个状态以 1 γ 1-\gamma 的概率终止,并立刻从该状态的下个状态重启下个episode。这个思想在第五章Discounting-aware重要性采样一节也提到了。这种伪终止的处理方式,不会影响状态转移产生的序列,但是会影响学习过程。这种伪终止的方法在off-policy中很重要,因此如果到目前基于behavior的序列和target给出的一致,就正常处理,否则就伪终止,从下个状态重启。

上述思路可以通过一定的设计实现。one-step Emphatic-TD算法学习episodic状态值的公式如下( M t M_t 计算式中的重要性比率实现了上面的讨论):
δ t = R t + 1 + γ v ^ ( S t + 1 , w t ) v ^ ( S t , w t ) \delta_{t}=R_{t+1}+\gamma \hat{v}\left(S_{t+1}, \mathbf{w}_{t}\right)-\hat{v}\left(S_{t}, \mathbf{w}_{t}\right)
w t + 1 = w t + α M t ρ t δ t v ^ ( S t , w t ) \mathbf{w}_{t+1}=\mathbf{w}_{t}+\alpha M_{t} \rho_{t} \delta_{t} \nabla \hat{v}\left(S_{t}, \mathbf{w}_{t}\right)
M t = γ ρ t 1 M t 1 + I t M_{t}=\gamma \rho_{t-1} M_{t-1}+I_{t}

其中, I t I_t 根据需要设置, M t 1 M_{t-1} 设置为0。对于Baird问题,设置 I t = 1 I_t=1 ,则得到如下结果:

最后 V E \overline{VE} 收敛到了0,但是有一些震荡。这里给出的是期望曲线,没有直接使用Emphatic-TD算法,因为其虽然理论上能收敛到最优解,但是方差很大,导致收敛不下去。我们下一节介绍如何降低其方差。

10.降低方差

off-policy学习与on-policy相比方差肯定更大的,这是显而易见的。但是由于每个策略都有一些很相似的邻居策略,因此off-policy的方式能够提高策略的泛化能力,泛化到这些相似的策略上。前面我们已经介绍了如何使算法的期望稳定了,但是方差问题还没有解决。

重要性采样因子虽然期望是1,但是其本身的方差是比较大的,这导致算法的方差很大。前面我们已经介绍过引入重要性采样后降低方差的一些办法,这里其实也是类似的:动量法(Derthick, 1984)、Polyak-Ruppert平均法(Polyak, 1990; Ruppert, 1988; Polyak and Juditsky, 1992)、分别针对每个参数设计不同的步长(Jacobs, 1988; Sutton, 1992);前面介绍的weighted重要性采样;前面介绍的Tree Buckup方法等。

11.总结

off-policy学习是很有挑战性的,但是也很重要,因为off-policy方法是解决探索问题重要的途径;并且把behavior与target分离,避免受到target策略太多的限制;off-policy方法甚至能让我们从一个经验流中学习多个不同的target,就像我们人脑一样。

这一章,我们把off-policy的两类挑战都分别讨论并给出了一些解决办法。第一个挑战是关于学习目标的,我们引入重要性采样矫正学习目标(同时也带来的高方差的问题);第二个挑战是关于半梯度方法稳定性的,死亡三元组合在一起,就容易引起发散问题,然后我们首先介绍了全梯度TD,其确实能收敛,但是收敛不到我们希望的地方,马上又介绍了基于Bellman误差的全梯度的SGD方法,然而我们发现Bellman误差本身存在一些问题(三条:速度、收敛点错误、可学习性),而后提出了梯度-TD方法,对投影Bellman误差应用SGD,这是可学习的,但是需要两个梯度过程,收敛很慢;最后给出了Emphatic-TD方法,却方差比较大,这可以采用一些办法克服,因此是本章介绍的比较好的方法。

总的来说,off-policy学习还是未完全解决的领域,还需要大量的研究。

参考文献

[1].Sutton书。

发布了27 篇原创文章 · 获赞 61 · 访问量 9098

猜你喜欢

转载自blog.csdn.net/u013695457/article/details/91431818