时序差分(TD)是强化学习的核心,其是蒙特卡罗(MC)和动态规划(DP)的结合。
1、TD 预测
TD 和 MC 都是利用经验来解决预测问题。一种非平稳环境的一般访问蒙特卡罗方法是
V
(
S
t
)
←
V
(
S
t
)
+
α
[
G
t
−
V
(
S
t
)
]
V(S_t)\leftarrow V(S_t)+\alpha\left[G_t-V(S_t)\right]
V(St)←V(St)+α[Gt−V(St)]
MC 方法必须等到事件结束才能确定
V
(
S
t
)
V(S_t)
V(St) 的增量(因为结束
G
t
G_t
Gt 才是已知的),而 TD 方法只需要等到下一个时间步长。在时间
t
+
1
t+1
t+1 时,立即生成一个目标,并使用观察到的奖励
R
t
+
1
R_{t+1}
Rt+1 和估计值
V
(
S
t
+
1
)
V(S_{t+1})
V(St+1) 进行有用的更新,最简单的 TD 方法更新方式如下:
V
(
S
t
)
←
V
(
S
t
)
+
α
[
R
t
+
1
+
γ
V
(
S
t
+
1
)
−
V
(
S
t
)
]
V(S_t)\leftarrow V(S_t)+\alpha\left[R_{t+1}+\gamma V(S_{t+1})-V(S_t)\right]
V(St)←V(St)+α[Rt+1+γV(St+1)−V(St)]
MC 方法更新的目标是
G
t
G_t
Gt,而 TD 方法的目标是
R
t
+
1
+
γ
V
(
S
t
+
1
)
R_{t+1}+\gamma V(S_{t+1})
Rt+1+γV(St+1)。这种 TD 方法称为
T
D
(
0
)
\mathrm{TD}(0)
TD(0)。
v
π
(
s
)
≐
E
π
[
G
t
∣
S
t
=
s
]
=
E
π
[
R
t
+
1
+
γ
G
t
+
1
∣
S
t
=
s
]
=
E
π
[
R
t
+
1
+
γ
v
π
(
S
t
+
1
)
]
\begin{aligned} v_\pi(s)&\doteq\Bbb{E}_\pi\left[G_t|S_t=s\right]\\[1ex] &=\Bbb{E}_\pi\left[R_{t+1}+\gamma G_{t+1}|S_t=s\right]\\[1ex] &=\Bbb{E}_\pi\left[R_{t+1}+\gamma v_\pi(S_{t+1})\right] \end{aligned}
vπ(s)≐Eπ[Gt∣St=s]=Eπ[Rt+1+γGt+1∣St=s]=Eπ[Rt+1+γvπ(St+1)]
由上式,MC 方法使用第二行的估计值作为目标,而 DP 方法使用第三行的估计值作为目标。MC 目标是一个估计值,因为期望值是未知的,我们是用平均样本收益代替实际的期望收益;DP 目标也是一个估计值,虽然环境模型完全已知,但是 v π ( S t + 1 ) v_\pi(S_{t+1}) vπ(St+1) 是未知的,使用的当前的估计值;TD 目标也是一个估计值,因为它对第三行中的期望值进行采样,且使用的当前的估计值而不是真实的 v π v_\pi vπ。因此,TD 方法结合了 MC 的采样和 DP 的自举。
另外,
T
D
(
0
)
\mathrm{TD}(0)
TD(0) 算法中括号内是一种误差,即状态
S
t
S_t
St 的当前估计值与更好的估计值
R
t
+
1
+
γ
V
(
S
t
+
1
)
R_{t+1}+\gamma V(S_{t+1})
Rt+1+γV(St+1) 的差异,这个量称为
T
D
\mathrm{TD}
TD 误差(
T
D
e
r
r
o
r
TD\ error
TD error),在强化学习中以各种形式出现:
δ
t
≐
R
t
+
1
+
γ
V
(
S
t
+
1
)
−
V
(
S
t
)
\delta_t\doteq R_{t+1}+\gamma V(S_{t+1})-V(S_t)
δt≐Rt+1+γV(St+1)−V(St)
2、TD 预测的优点
显然,TD 方法比 DP 方法有一个优势,因为它无需环境模型已知。TD 方法比 MC 方法的一个明显的优势是,它以在线、完全增量的方式实现;另外 MC 方法需要等到一个回合结束,而 TD 方法只需要等待一个时间步,这很关键,某些特殊情形可能回合结束时间太长,甚至回合不会结束。
3、TD(0) 的最优性
假设只有有限的经验,例如 10 个回合或 100 个时间步长,在这种情况下,增量学习方法的常见手段是反复呈现经验,直到收敛到一个值。给定一个近似价值函数 V V V,MC 增量和 TD 增量
4、Sarsa:同策略 TD 控制
现在我们使用 TD 预测方法来解决控制问题,与之前一样,我们遵循广义策略迭代(GPI)的模式,与 MC 方法一样,我们面临着进行探索的需要,同样,方法分为两大类:同策略和异策略。本节提出一种同策略上的 TD 控制方法。
第一步是学习动作价值函数而不是状态价值函数,对于同策略方法,我们必须估计
q
π
(
s
,
a
)
,
∀
s
∈
S
,
∀
a
∈
A
q_\pi(s,a),\forall s\in\cal S,\forall a\in\cal A
qπ(s,a),∀s∈S,∀a∈A,一个回合由状态和状态-动作对的交替序列组成:
在前一章中,我们考虑从状态到状态的转换,并学习了状态的价值。现在我们考虑从状态-动作对到状态-动作对的转换,并学习状态-动作对的价值。形式上,这两种情况是一样的:它们都是带有奖励过程的马尔可夫链,保证
T
D
(
0
)
\mathrm{TD}(0)
TD(0) 下状态价值收敛的定理也适用于动作价值的相应算法:
Q
(
S
t
,
A
t
)
←
Q
(
S
t
,
A
t
)
+
α
[
R
t
+
1
+
γ
Q
(
S
t
+
1
,
A
t
+
1
)
−
Q
(
S
t
,
A
t
)
]
Q(S_t,A_t)\leftarrow Q(S_t,A_t)+\alpha\left[R_{t+1}+\gamma Q(S_{t+1},A_{t+1})-Q(S_t,A_t)\right]
Q(St,At)←Q(St,At)+α[Rt+1+γQ(St+1,At+1)−Q(St,At)]
5、Q-learning:异策略 TD 控制
强化学习的早期突破之一就是开发了一种被称为 Q-learning 的异策略 TD 控制算法,定义如下
Q
(
S
t
,
A
t
)
←
Q
(
S
t
,
A
t
)
+
α
[
R
t
+
1
+
γ
max
a
Q
(
S
t
+
1
,
a
)
−
Q
(
S
t
,
A
t
)
]
Q(S_t,A_t)\leftarrow Q(S_t,A_t)+\alpha\left[R_{t+1}+\gamma\max_a Q(S_{t+1},a)-Q(S_t,A_t)\right]
Q(St,At)←Q(St,At)+α[Rt+1+γamaxQ(St+1,a)−Q(St,At)]