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
b 是探索性的。对于预测问题,两个策略都是已知的;对于控制问题,两个策略都是变化的。我们的学习目标是得到
v
^
≈
v
π
\hat{v} \approx v_{\pi}
v ^ ≈ v π 或者
q
^
≈
q
π
\hat{q} \approx q_{\pi}
q ^ ≈ q π 。
off-policy方法中有两个关键挑战(更新目标的变化,更新分布的变化):
更新目标如何定义。由于得到的样本是遵循
b
b
b 的,而欲学习的值函数是
π
\pi
π 的,因此必须设置合理的更新目标。我们采用重要性采样解决,无论对表格方法还是拟合器方法都类似。注意,重要性采样会扩大方差,但是消除了偏差。
我们得到的样本服从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)}
ρ t ≐ ρ t : t = b ( A t ∣ S t ) π ( A t ∣ S t ) 对于状态值 ,半梯度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)
w t + 1 ≐ w t + α ρ t δ t ∇ v ^ ( S t , w t ) 式中的
δ
t
\delta_{t}
δ 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)
δ t ≐ R t + 1 + γ v ^ ( S t + 1 , w t ) − v ^ ( S t , w t ) 在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)
δ t ≐ R t + 1 − R t + v ^ ( S t + 1 , w t ) − v ^ ( S t , w t ) 对于动作值 ,半梯度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),
w t + 1 ≐ w t + α δ t ∇ q ^ ( S t , A t , w t ) , 其中
δ
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 + γ ∑ a π ( a ∣ S t + 1 ) q ^ ( S t + 1 , a , w t ) − q ^ ( S t , A t , w t ) , 或
δ
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) .
δ 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 ) . 需要注意,这里也没有用重要性采样因子,这其实不像表格化方法那么直观,因为各个状态的值通过函数参数是相关的,因而一个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)
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 ) 其中,
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 + ⋯ + γ n − 1 R t + n + γ n q ^ ( S t + n , A t + n , w t + n − 1 ) , 或
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)
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 ) 注意,对于
k
≥
T
k \geq T
k ≥ T ,
ρ
k
=
1
\rho_{k}=1
ρ k = 1 ,且对于
t
+
n
≥
T
t+n \geq T
t + n ≥ T ,
G
t
:
n
=
G
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}
w t + n G t : 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 ) ≐ q ^ ( S t , A t , w t + n − 1 ) + k = t ∑ t + n − 1 δ k i = t + 1 ∏ k γ π ( A i ∣ S i ) 其中,
δ
t
\delta_t
δ t 采用半梯度Expected Sarsa的形式。注意式子中蓝色的部分原文应该是写错了,原文此处为
w
t
−
1
\mathbf{w}_{t-1}
w t − 1 。这个式子很容易和第七章中n-step tree-backup的迭代公式对应,实际上两个式子是一样的,就是换了个写法。
当然,之前介绍的n-step
Q
(
σ
)
Q(\sigma)
Q ( σ ) 也是可以改造的。
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
x ( s 1 ) = 1 , x ( s 2 ) = 2 ;线性拟合器我们因而也只取一个参数
w
w
w 。在
s
1
s_1
s 1 下,我们只有一个动作可选,且确定性地导向状态
s
2
s_2
s 2 ,因而有:
s
1
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}
δ 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 根据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}
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 如果
(
1
+
α
(
2
γ
−
1
)
)
>
1.0
(1+\alpha(2 \gamma-1))>1.0
( 1 + α ( 2 γ − 1 ) ) > 1 . 0 ,那么一直更新下去就会发散掉。因此,必须
γ
>
0.5
\gamma>0.5
γ > 0 . 5 。 你可能注意到了,我们不断只利用
s
1
→
s
2
s_1\rightarrow{s_2}
s 1 → s 2 这个转移更新,在on-policy时这是不可能的,因为我们按照trajectory更新的话,更新完
s
1
→
s
2
s_1\rightarrow{s_2}
s 1 → s 2 这个转移后,一定会更新
s
2
→
∗
s_2\rightarrow{*}
s 2 → ∗ 这个转移,如果
∗
*
∗ 是终止状态,那么
s
2
s_2
s 2 会以常数
R
3
R_3
R 3 作为目标,因此如果
R
3
R_3
R 3 比
s
2
s_2
s 2 当前的值大,会导致
s
2
s_2
s 2 值的提高,然而无论如何,一旦
s
2
s_2
s 2 的值增长到高于
R
3
R_3
R 3 后,那么后面的更新就会下降了,从而减小
w
t
w_t
w t 的值,最终达到一个平衡,而不会发散;但是对于off-policy情形,可能由于target策略中使转移
s
2
→
∗
s_2\rightarrow{*}
s 2 → ∗ 出现的动作的概率为0,导致重要性采样比率
ρ
=
0
\rho=0
ρ = 0 ,因而实际上只会不断依据转移
s
1
→
s
2
s_1\rightarrow{s_2}
s 1 → s 2 更新,导致上述情况。
Baird问题 共有七个状态,两种动作(虚线、实线),虚线导致平均地 转移到上排六个状态之一。behavior策略按概率
6
7
\frac{6}{7}
7 6 选择虚线,
1
7
\frac{1}{7}
7 1 选择实线,因此无论处于哪个状态,转移到任何后续状态的概率都是
1
7
\frac{1}{7}
7 1 ;target策略只选择实线。所有的转移的回报都是0,折扣因子
γ
=
0.99
\gamma=0.99
γ = 0 . 9 9 ,由值函数的定义式,显然对所有状态
v
π
(
s
)
=
0
v_{\pi}(s)=0
v π ( 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)
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)
x = ( 2 , 0 , 0 , 0 , 0 , 0 , 0 , 1 ) 。因为每个状态的值函数都是0,那么
w
=
0
\textbf{w}=0
w = 0 是唯一正确的解。但是结合线性拟合器半梯度地求解时,由于参数的数量是8个,而只有7个状态,因此可知有无穷多组解;且集合
{
x
(
s
)
:
s
∈
S
}
\{\mathbf{x}(s) : s \in \mathcal{S}\}
{ x ( s ) : s ∈ 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)
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 ) 结合behavior/target policy的特点,我们可以很容易地分析出off-policy/DP会发散的结论,你可以仔细想一想(提示,考虑
w
8
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}\}
{ x ( s ) : s ∈ S } 构成线性独立集合时(上例),则每次迭代我们都能得到精确的 估计,则能收敛,变得类似于标准的表格化DP了。但是实际当中,精确的 估计是难以得到的,而此时即使采用最小方差更新也会发散。所谓精确的 ,我认为等价于
{
x
(
s
)
:
s
∈
S
}
\{\mathbf{x}(s) : s \in \mathcal{S}\}
{ x ( s ) : s ∈ S } 构成线性独立集。下面举例说明
example 11.1 Tsitsiklis and Van Roy’s Counterexample 这个例子说明,DP和拟合器的结合,有时即使每个时间步都能找到最小方差解,也可能不收敛。我们扩展下本节最初的例子: 所有的转移的回报都是0,所以每个状态的值理论上是0。采用DP方法,每轮我们同时计算出所有的误差,构成
V
E
‾
\overline{\mathrm{VE}}
V E ,然后对
w
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}
w k + 1 = w ∈ R a r g m i n s ∈ S ∑ ( v ^ ( s , w ) − E π [ R t + 1 + γ v ^ ( S t + 1 , w k ) ∣ S t = s ] ) 2 = w ∈ R a r g m i n ( w − γ 2 w k ) 2 + ( 2 w − ( 1 − ε ) γ 2 w k ) 2 = 5 6 − 4 ε γ w k 因此当
γ
>
5
6
−
4
ε
\gamma>\frac{5}{6-4 \varepsilon}
γ > 6 − 4 ε 5 且
w
0
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
S ,值函数的本质是状态到一个实数的映射:
v
:
S
→
R
v : \mathcal{S} \rightarrow \mathbb{R}
v : S → R ,所有的值函数都是这个映射空间中的一个点。例如对于状态空间
S
=
{
s
1
,
s
2
,
…
,
s
∣
S
∣
}
\mathcal{S}=\left\{s_{1}, s_{2}, \ldots, s_{|S|}\right\}
S = { s 1 , s 2 , … , s ∣ S ∣ } ,我们可以把其值函数看成一个向量:
[
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}
[ v ( s 1 ) , v ( s 2 ) , … , v ( s ∣ S ∣ ) ] ⊤ 。而拟合器的参数数量一般是低于状态数量的。
特别地,考虑状态空间
S
=
{
s
1
,
s
2
,
s
3
}
\mathcal{S}=\left\{s_{1}, s_{2}, s_{3}\right\}
S = { s 1 , s 2 , s 3 } ,线性拟合器
w
=
(
w
1
,
w
2
)
⊤
\mathbf{w}=\left(w_{1}, w_{2}\right)^{\top}
w = ( w 1 , w 2 ) ⊤ ,那么所有的值函数是三维空间中的一个点,而拟合器则提供了另一个坐标系统,每个参数向量都是这个子空间中的一个点,它也能表示一个完整的值函数
v
w
v_{\mathbf{w}}
v w 。拟合器实际上是值函数空间中的一个平面,其形状由值函数的形式、特征形式决定。当值函数是线性的时候,它就是三维值函数空间的一个平面,形式比较简单,如下图所示:
对于固定的策略
π
\pi
π ,我们假设其真实的值函数为
v
π
v_{\pi}
v π 很复杂,无法用线性函数精确拟合,因此
v
π
v_{\pi}
v π 不在拟合器的平面上。图中,值函数位于拟合器平面的上方。
如果
v
π
v_{\pi}
v π 无法被精确拟合,那最好的拟合是什么样的呢?首先定义两个值函数之间的距离:给定两个值函数
v
1
v_1
v 1 和
v
2
v_2
v 2 ,那么它们之间的差向量为:
v
=
v
1
−
v
2
v=v_{1}-v_{2}
v = v 1 − v 2 。类似
VE
‾
\overline{\text{VE}}
VE ,我们考虑对不同状态的重视程度,定义值函数之间的距离:
∥
v
∥
μ
2
≐
∑
s
∈
S
μ
(
s
)
v
(
s
)
2
\|v\|_{\mu}^{2} \doteq \sum_{s \in \mathcal{S}} \mu(s) v(s)^{2}
∥ v ∥ μ 2 ≐ ∑ s ∈ S μ ( s ) v ( s ) 2
VE
‾
\overline{\text{VE}}
VE 也可以简写为:
V
E
‾
(
w
)
=
∥
v
w
−
v
π
∥
μ
2
\overline{\mathrm{VE}}(\mathbf{w})=\left\|v_{\mathbf{w}}-v_{\pi}\right\|_{\mu}^{2}
V E ( w ) = ∥ v w − v π ∥ μ 2 对于任何值函数
v
v
v ,找到它的最近拟合器实际上是个投影问题,我们把
v
v
v 投影到拟合器平面上。定义投影算子
∏
\prod
∏ :
Π
v
≐
v
w
\Pi v \doteq v_{\mathbf{w}}
Π v ≐ v 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}
w = w ∈ R d a r g m i n ∥ v − v w ∥ μ 2 因此,对于值函数
v
π
v_{\pi}
v π ,我们能找到其最近的拟合器:
Π
v
π
\Pi v_{\pi}
Π v π ,这可以由MC方法渐进地找到。下表给出了更详细的解释:
The projection matrix 对于线性拟合器而言,投影也是线性的,因此可以用一个
∣
S
∣
×
∣
S
∣
|\mathcal{S}| \times|\mathcal{S}|
∣ S ∣ × ∣ 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}
Π ≐ X ( X ⊤ D X ) − 1 X ⊤ D 其中,
D
\textbf{D}
D 是以
μ
(
s
)
\mu(s)
μ ( s ) 为对角元素的
∣
S
∣
×
∣
S
∣
|\mathcal{S}| \times|\mathcal{S}|
∣ S ∣ × ∣ S ∣ 的对角阵;
X
\textbf{X}
X 是每行为特征向量
x
(
s
)
⊤
\mathbf{x}(s)^{\top}
x ( s ) ⊤ 的
∣
S
∣
×
d
|\mathcal{S}| \times d
∣ S ∣ × d 的矩阵;如果不可逆,那么求伪逆拟合(加号逆)。 值函数之间的距离可以写成:
∥
v
∥
μ
2
=
v
⊤
D
v
\|v\|_{\mu}^{2}=v^{\top} \mathbf{D} v
∥ v ∥ μ 2 = v ⊤ D v 。 线性拟合器则为:
v
w
=
X
w
v_{\mathbf{w}}=\mathbf{X} \mathbf{w}
v w = X 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
v π ( s ) = ∑ a π ( a ∣ s ) ∑ s ′ , r p ( s ′ , r ∣ s , a ) [ r + γ v π ( s ′ ) ] , for all
s
∈
S
s \in \mathcal{S}
s ∈ S
只有真实的值函数
v
π
v_{\pi}
v π 才能让Bellman方程满足,如果用
v
w
v_{\mathbf{w}}
v 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}
δ 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 ∼ π ]
把所有状态的Bellman误差综合,可以得到Bellman误差向量:
δ
‾
w
∈
R
∣
S
∣
\overline{\delta}_{\mathbf{w}} \in \mathbb{R}^{|S|}
δ w ∈ R ∣ S ∣ ,其范数为衡量值函数误差的指标,叫做均方Bellman误差:
B
E
‾
(
w
)
=
∥
δ
‾
w
∥
μ
2
\overline{\mathrm{BE}}(\mathbf{w})=\left\|\overline{\delta}_{\mathbf{w}}\right\|_{\mu}^{2}
B E ( w ) = ∥ ∥ δ w ∥ ∥ μ 2 。将
B
E
‾
(
w
)
\overline{\mathrm{BE}}(\mathbf{w})
B E ( w ) 降低到0是不可能的,最小化
B
E
‾
(
w
)
\overline{\mathrm{BE}}(\mathbf{w})
B E ( w ) 得到的点与最小化
VE
‾
\overline{\text{VE}}
VE 得到的点是不同的,如何最小化
B
E
‾
(
w
)
\overline{\mathrm{BE}}(\mathbf{w})
B E ( w ) 我们在后面两个小节讨论。
定义Bellman算子:
B
π
:
R
∣
S
∣
→
R
∣
S
∣
B_{\pi} : \mathbb{R}^{|S|} \rightarrow \mathbb{R}^{|S|}
B π : R ∣ S ∣ → 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]
( B π v ) ( s ) ≐ ∑ a π ( a ∣ s ) ∑ s ′ , r p ( s ′ , r ∣ s , a ) [ r + γ v ( s ′ ) ] 因此Bellman误差向量可以改写为:
δ
‾
w
=
B
π
v
w
−
v
w
\overline{\delta}_{\mathbf{w}}=B_{\pi} v_{\mathbf{w}}-v_{\mathbf{w}}
δ w = B π v w − v w 。
将Bellman算子应用到拟合器子空间中的值函数,将产生一个新的值函数,直到收敛(在平面上迭代)。对于表格型的DP算法,则Bellman算子迭代地应用到拟合器平面外的点上(在空间中),然后逐渐收敛,直到:
v
π
=
B
π
v
π
v_{\pi}=B_{\pi} v_{\pi}
v π = B π v π ,也就是达到Bellman不动点。
将Bellman误差向量映射到平面上,操作为:
Π
δ
‾
v
w
\Pi \overline{\delta}_{v_{\mathbf{w}}}
Π δ v 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 ( w ) = ∥ ∥ Π δ w ∥ ∥ μ 2 。在拟合器平面上,可以逐渐迭代到
P
B
E
‾
=
0
\overline{\mathrm{PBE}}=0
P B E = 0 的点,也就是TD不动点,这个点与
VE
‾
\overline\text{VE}
VE ,
BE
‾
\overline\text{BE}
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)
δ t = R t + 1 + γ v ^ ( S t + 1 , w t ) − v ^ ( S t , w t ) 之前我们介绍了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}
T D E ( 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 分布 ) 这给了我们一种可采样的期望的目标形式,因此,可以得到拟合器参数更新公式:
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}
w t + 1 = w t − 2 1 α ∇ ( ρ t δ t 2 ) = w t − α ρ t δ t ∇ δ t = w t + α ρ t δ t ( ∇ v ^ ( S t , w t ) − γ ∇ v ^ ( S t + 1 , w t ) ) 和半梯度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
ρ t = 0 ),表格地训练。 简单分析可知,ABC三个状态的真实值分别是
1
2
,
1
,
0
\frac{1}{2},1,0
2 1 , 1 , 0 。但是naive residual-gradient 算法所计算的BC的值都是不对的,B是
3
4
\frac{3}{4}
4 3 ,C是
1
4
\frac{1}{4}
4 1 ,A是正确的,而这三个值确实最小化了
TDE
‾
\overline{\text{TDE}}
TDE 。我们可以计算一下真实值与naive residual-gradient 算法的
TDE
‾
\overline{\text{TDE}}
TDE ,这个很容易,分别得到
1
8
\frac{1}{8}
8 1 和
1
16
\frac{1}{16}
1 6 1 。可见
TDE
‾
\overline{\text{TDE}}
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}
w t + 1 = w t − 2 1 α ∇ ( E π [ δ t ] 2 ) = w t − 2 1 α ∇ ( 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 ) ] ]
这也可以通过采样的方式实现。如果在两个期望中都简单地用期望代替,那么这个式子与naive residual-gradient 算法收敛的结果是一样的,这是因为式子中两个期望中都涉及下个状态
S
t
+
1
S_{t+1}
S t + 1 ,而且两个期望的值是相乘的,如果我们希望结果无偏,那么必须用两次不同的采样代替两个期望。这种residual-gradient算法中的问题的有两种解决方式,第一种是针对确定性环境的,由于转移到哪个状态是确定地,因此用一个采样也没问题;另一种方式是采样两次
S
t
+
1
S_{t+1}
S t + 1 ,这在与仿真环境交互的时候容易实现。上述两种方式可以保证算法收敛到最小
B
E
‾
\overline{\mathrm{BE}}
B E ,对于SGD方法,这种收敛性是能得到保证的(线性、非线性拟合器都成)。
但是residual-gradient 算法有三个重大缺陷:1. 经验表明,比半梯度方法收敛速度慢很多很多,可以首先用半梯度方法初始化,再用这种方法优化;2. 表格时能收敛到正确的值,但是一旦涉及拟合器,就无法保证,实际上是此时
B
E
‾
\overline{\mathrm{BE}}
B E 指导的目标是不正确的,参考下面的A-presplilt例子;3. 有些时候
B
E
‾
\overline{\mathrm{BE}}
B E 的收敛性也无法得到保证,这在下一节说明。
example 11.3 A-presplit example, a counterexample for the
B
E
‾
\overline{\mathrm{BE}}
B E 考虑如下的MRP,episode等概率从A1和A2开始,而且令A1和A2的特征相同,因此就如单个状态A一样;函数拟合器有三个参数,一个给B赋值,一个给C赋值,一个给A赋值。回报值标记在线上。 对于算法而言,这个问题与A-split是一样的,因为两个起始状态在算法看来是一个。共享值A,B,C的真实值分别为
1
2
,
1
,
0
\frac{1}{2},1,0
2 1 , 1 , 0 。由于后面的状态转移是确定的,因此residual-gradient与之前的naive residual-gradient算法收敛到同样的结果,这也是最小
B
E
‾
\overline{\mathrm{BE}}
B E 得到的结果,实际上只要是确定性问题,
B
E
‾
\overline{\mathrm{BE}}
B E 和
T
D
E
‾
\overline{\mathrm{TDE}}
T D E 是等价的。
7.Bellman误差是不能学习的
在机器学习中,可学习的含义是能通过多项式数量的样本训练出模型。这一节我们放宽可学习的要求:如果模型是良好定义的,且能在已知环境结构的前提下计算出来,但是不能通过特征向量、动作、回报序列计算出来(即不能通过有限的样本学习出模型),该模型就是不可学习的。
B
E
‾
\overline{\mathrm{BE}}
B E 就是不可学习的,因而去最小化
B
E
‾
\overline{\mathrm{BE}}
B E 并不是好的方法,下面举例说明其不可学习性。
考虑以下两种MRPs: 模型中,涉及多种转移时,我们设置其等概率。上述三个状态的特征向量我们认为是一样的(
x
=
1
x=1
x = 1 ),因此其拟合器只需一个参数,我们用
w
w
w 表征其值。很容易分析,这两个MRPs的回报序列都是由随机的
0
,
2
0,2
0 , 2 组成的。因此,即使用无限的数据,我们也没法知道数据来源于哪个模型,因此这是不可学习的。
这个例子也能说明,
V
E
‾
\overline{\mathrm{VE}}
V E 也是不可学习的。如果
γ
=
0
\gamma=0
γ = 0 ,那么左侧模型的值是1,右侧则是0和2。如果
w
=
1
w=1
w = 1 ,那么左侧模型
V
E
‾
=
0
\overline{\mathrm{VE}}=0
V E = 0 ,右侧模型
V
E
‾
=
1
\overline{\mathrm{VE}}=1
V E = 1 ,这说明了其不可学习性。但是,无论模型结构是哪种,我们发现最小化其
V
E
‾
\overline{\mathrm{VE}}
V E 的参数都是
w
=
1
w=1
w = 1 ,因此虽然
V
E
‾
\overline{\mathrm{VE}}
V E 是不可学习的,我们仍然可以用它来优化参数。下面论证不同模型的最优参数是一致的:
我们先看一个简单的例子,我们设计一个新的目标函数:均方return误差(
R
E
‾
\overline{\mathrm{RE}}
R E ),这个误差是可学习的。on-policy时,
R
E
‾
\overline{\mathrm{RE}}
R E 可以写为:
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 ( w ) = E [ ( G t − v ^ ( S t , w ) ) 2 ] = V E ( w ) + E [ ( G t − v π ( S t ) ) 2 ] 附加项与参数无关,因此
R
E
‾
\overline{\mathrm{RE}}
R E 和
V
E
‾
\overline{\mathrm{VE}}
V E 的最优参数是一致的。
然后我们来考虑
B
E
‾
\overline{\mathrm{BE}}
B E ,它与
V
E
‾
\overline{\mathrm{VE}}
V E 类似,可以从MDP中计算,但是都不可从数据中学习;不过,
V
E
‾
\overline{\mathrm{VE}}
V E 的最优参数是可学习的,而
B
E
‾
\overline{\mathrm{BE}}
B E 的最优参数不可学习。如下例所示:
example 11.4 Counterexample to the learnability of the Bellman error 考虑如下两个MRPs: 同样,多个转移时,认为其都是等概率的,回报标在线上。其中A表示一个特征,B/B’表示另外一个特征,分别用两个参数表示这两种特征的值。对于右侧的MRP,可以看出三个状态的on-policy分布是等概率的,
μ
=
1
3
\mu=\frac{1}{3}
μ = 3 1 。因此,两个MRP观测到的序列也是一样的,特别地,连续出现k个B的概率都是
2
−
k
2^{-k}
2 − k 。 假设
w
=
0
\mathbf{w}=\mathbf{0}
w = 0 ,第一个MRP的
B
E
‾
=
0
\overline{\mathrm{BE}}=0
B E = 0 ,第二个MRP的
B
E
‾
=
2
3
\overline{\mathrm{BE}}=\frac{2}{3}
B E = 3 2 。因此
B
E
‾
\overline{\mathrm{BE}}
B E 是不可学习的。 针对两个MRPs最小化参数
w
\mathbf{w}
w ,对于第一个MRP,其为:
w
=
0
\mathbf{w}=\mathbf{0}
w = 0 (无论
γ
\gamma
γ 是多少);对于第二个MRP则与
γ
\gamma
γ 有关,特别地,当
γ
→
1
\gamma \rightarrow 1
γ → 1 时,其为
(
−
1
2
,
0
)
⊤
\left(-\frac{1}{2}, 0\right)^{\top}
( − 2 1 , 0 ) ⊤ 。因此最优参数不可学习的。因此,原则上用
B
E
‾
\overline{\mathrm{BE}}
B E 作为目标函数是不合适的。 对于第二个MRP,最小化后,B的值是0,A连到B的回报也是0,那么为什么A的值是
−
1
2
-\frac{1}{2}
− 2 1 呢?这个很容易分析,你可以思考下。
而其它的bootstrapping方法,如
P
B
E
‾
\overline{\mathrm{PBE}}
P B E 和
T
D
E
‾
\overline{\mathrm{TDE}}
T D E ,是可学习的,其最优参数却互不相同,与
B
E
‾
\overline{\mathrm{BE}}
B E 的最优参数也不同。
B
E
‾
\overline{\mathrm{BE}}
B E 不可学习性及其最小化参数不可学习性,限制了其应用。这就是
B
E
‾
\overline{\mathrm{BE}}
B E 在收敛性上的问题。因此residual-gradient算法也是比较局限的。因此我们转而考虑
P
B
E
‾
\overline{\mathrm{PBE}}
P B E 。
8.梯度TD方法
这一节讨论如何用SGD方法最小化
P
B
E
‾
\overline{\mathrm{PBE}}
P B E ,而
P
B
E
‾
\overline{\mathrm{PBE}}
P B E 的SGD是真正的SGD方法,具有很好的鲁棒性(即使在off-policy、非线性拟合器情形下)。在线性拟合器时,能得到精确的解,即TD不动点,此时
P
B
E
‾
=
0
\overline{\mathrm{PBE}}=0
P B E = 0 ,这个解可以通过LSTD算法得到,但是复杂度是
O
(
d
2
)
O\left(d^{2}\right)
O ( d 2 ) 的。这里我们用SGD方法—梯度TD方法,把复杂度降到
O
(
d
)
O\left(d\right)
O ( d ) ,并保证收敛的鲁棒性。梯度TD方法比普通TD方法计算量大两倍。
首先把
P
B
E
‾
\overline{\mathrm{PBE}}
P B E 写成矩阵形式(用到了前面的投影矩阵):
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 ) = ∥ ∥ Π δ 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 )
因此梯度为:
∇
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)
∇ P B E ( w ) = 2 ∇ [ X ⊤ D δ w ] ⊤ ( X ⊤ D X ) − 1 ( X ⊤ D δ w )
我们需要把它改成采样(期望)的形式,这样才能用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]
X ⊤ D δ w = ∑ s μ ( s ) x ( s ) δ w ( s ) = E [ ρ t δ t x t ]
回顾下半梯度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)
w t + 1 ≐ w t + α ρ t δ t ∇ v ^ ( S t , w t ) ,如果拟合器是线性的,其中梯度就是
x
t
\mathbf{x}_t
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}
∇ 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 ⊤ ]
第二项 为:
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]
X ⊤ D X = ∑ s μ ( s ) x s x s ⊤ = E [ x t x t ⊤ ]
因此,我们得到了
P
B
E
‾
\overline{\mathrm{PBE}}
P B E 的期望形式:
∇
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]
∇ 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 ]
其中,第一项和第三项是相关的,都依赖
x
t
+
1
\mathbf{x}_{t+1}
x t + 1 向量,因此不能直接采样,否则会有偏。一个可行的办法是,独立的估计这三个部分的期望,然后再结合起来,但是这需要很大的计算量,尤其是还涉及求逆的过程;可以弱化这个过程:利用增量方法估计其中两个项,然后采样第三个项,这样复杂度会大大下降,但是仍然有
O
(
d
2
)
O\left(d^{2}\right)
O ( d 2 ) 。
梯度-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]
v ≈ E [ x t x t ⊤ ] − 1 E [ ρ t δ t x t ] 这个式子与线性最小二乘问题的解法是很相似的,其中
ρ
t
δ
t
\rho_{t} \delta_{t}
ρ t δ t 是希望预测的值,最小二乘解的一般形式为:
x
^
=
(
H
T
H
)
−
1
H
T
y
\hat{x}=(H^TH)^{-1}H^Ty
x ^ = ( H T H ) − 1 H T y ,因此我们可以用SGD方法来最小化期望平方误差:
(
v
⊤
x
t
−
ρ
t
δ
t
)
2
\left(\mathbf{v}^{\top} \mathbf{x}_{t}-\rho_{t} \delta_{t}\right)^{2}
( v ⊤ x t − ρ t δ t ) 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}
v t + 1 ≐ v t + β ( ρ t δ t − v t ⊤ x t ) x t 蓝色的部分原文应该是写错了。
其中
β
\beta
β 是步长因子,且加入了重要性采样。这是
O
(
d
)
O(d)
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}
w t + 1 = w t − 2 1 α ∇ P B E ( w t ) = w t − 2 1 α 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 这个算法叫做GTD2,我们可以先计算
x
t
⊤
v
t
\mathbf{x}_t^{\top}\mathbf{v}_t
x t ⊤ v t ,这样就是
O
(
d
)
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}
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 )
这叫梯度矫正的TD(0),简称TDC,或者叫做GTD(0)。同样地,如果先计算
(
x
t
⊤
v
t
)
\left(\mathbf{x}_{t}^{\top} \mathbf{v}_{t}\right)
( x t ⊤ v t ) ,那么也是
O
(
d
)
O(d)
O ( d ) 的。下图展示了TDC算法sample或者exptected形式在Baird问题中的效果,可以看到
P
B
E
‾
\overline{\mathrm{PBE}}
P B E 收敛到了0,但是仍然不是最好的策略,因为此时所有的状态值都是0,1000轮迭代后,
VE
‾
\overline\text{VE}
VE 收敛到2,但是仍然与最好的策略相差很远。算法虽然能收敛到最优,但是速度非常慢,因为
P
B
E
‾
\overline{\mathrm{PBE}}
P B E 太接近0了。
GTD2和TDC都包含两个学习过程,即
w
、
v
\mathbf{w}、\mathbf{v}
w 、 v 的学习。且前者依赖后者。我们把这种非对称的依赖关系叫做串联(cascade),在串联中,前者往往比后者的学习快很多。这类算法收敛性的证明都假设前者依赖后者,且后者能比前者快得多地渐进收敛,这叫做双时间尺度证明,第二个过程是快速的时间尺度,前面的过程是慢的时间尺度。我们用
α
\alpha
α 表示第一个学习过程的步长,
β
\beta
β 表示第二个学习过程的步长,那么可以证明,只要满足
β
→
0
\beta \rightarrow 0
β → 0 ,且
α
β
→
0
\frac{\alpha}{\beta} \rightarrow 0
β α → 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 . 0 的话,我们认为每个状态以
1
−
γ
1-\gamma
1 − γ 的概率终止,并立刻从该状态的下个状态重启下个episode。这个思想在第五章Discounting-aware重要性采样一节也提到了。这种伪终止的处理方式,不会影响状态转移产生的序列,但是会影响学习过程。这种伪终止的方法在off-policy中很重要,因此如果到目前基于behavior的序列和target给出的一致,就正常处理,否则就伪终止,从下个状态重启。
上述思路可以通过一定的设计实现。one-step Emphatic-TD算法学习episodic状态值的公式如下(
M
t
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)
δ t = R t + 1 + γ v ^ ( S t + 1 , w t ) − v ^ ( S t , w t )
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)
w t + 1 = w t + α M t ρ t δ t ∇ v ^ ( S t , w t )
M
t
=
γ
ρ
t
−
1
M
t
−
1
+
I
t
M_{t}=\gamma \rho_{t-1} M_{t-1}+I_{t}
M t = γ ρ t − 1 M t − 1 + I t
其中,
I
t
I_t
I t 根据需要设置,
M
t
−
1
M_{t-1}
M t − 1 设置为0。对于Baird问题,设置
I
t
=
1
I_t=1
I t = 1 ,则得到如下结果:
最后
V
E
‾
\overline{VE}
V E 收敛到了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书。