Processing math: 100%

[RL Notes] 线性方法

1. 线性方法

  我们可以在强化学习中使用任意类型的函数进行函数逼近,使用线性函数是最重要的特殊情况之一。线性函数易于理解,便于记性数学计算,而且通过结合领域知识构造合适的特征,可以快速地学习并达到较高的准确度。

  这里的“线性”指的是近似函数 ˆv(,w) 是权重向量 w 的线性函数,对于每一个状态 s,存在一个和 w 同维度的实向量 x(x1(s),x2(s),,xd(s))T,线性近似的状态价值函数为 wx(s) 的内积

ˆv(s,w)wTx(s)di=1wixi(s)

此时称近似价值函数是依据权重线性的,或者简称为线性的。

  由式 (1) 可得近似价值函数关于 w 的梯度为

ˆv(s,w)=x(s)

回顾通用 SGD 更新公式

wt+1wt+α[Utˆv(St,wt)]ˆv(St,wt)

将式 (2) 代入式 (3),可以得到一个非常简单的线性函数的更新公式

wt+1wt+α[Utˆv(St,wt)]x(St)

2. 线性 TD

  对于单步 TD 的方法,其目标定义为

UtRt+1+γˆv(St+1,wt)

此时的更新为

wt+1wt+α[Rt+1+γˆv(St+1,wt)ˆv(St,wt)]x(St)

  类似于线性价值函数逼近是表格型价值函数的泛化,线性 TD 也是表格型 TD 的泛化,只需构造特征 x(si) 为状态 si 的指示函数

x(si)=[00100]T

x(si) 中只有第 i 个元素为 1,其余元素为 0,此时有 ˆv(Si,w)=wi

3. TD 的目标

  回到式 (6),将 x(St) 简写为 xt,并将式 (1) 代入式 (6),得到

wt+1wt+α[Rt+1+γˆv(St+1,wt)ˆv(St,wt)]xt=wt+α[Rt+1+γwTtxt+1wTtxt]xt=wt+α[Rt+1xtxt(xtγxt+1)Twt]

将式 (7) 中等号两边同减去 wt,可得更新的期望为

E[Δwt]=αE[Rt+1xtxt(xtγxt+1)Twt]=α(bAwt)

其中

bE[Rt+1xt]AE[xt(xtγxt+1)T]

  当式 (8) 为零时权重收敛,称令式 (8) 为零的 wt 为 TD 的不动点(fixed point),记为 wTD,有

E[ΔwTD]=α(bAwTD)=0

可以解得

wTD=A1b

  可以证明,线性 TD 会收敛到不动点 wTDwTD 最小化了 (bAw)T(bAw),称为映射贝尔曼误差(projected Bellman error)。在 TD 不动点处,¯VE 在可能的最小误差的一个扩展边界内

¯VE(wTD)11γminw¯VE(w)

上式说明 TD 法的渐进误差不超过蒙特卡洛法最小误差的 11γ 倍,γ 越小则误差越小。如果我们能完美地逼近真实的价值函数,则无论 γ 如何取值,式 (11) 的等号成立,因为此时左右两边表示的误差都为 0。由于 TD 使用函数逼近进行自举,如果它对下一个状态的预测一直不准,则会导致 TD 一直向着错误的目标更新;反之,如果函数逼近很准确,则对下一个状态的预测也很准确,此时 TD 的误差也会接近最小价值误差。

  实际中的 γ 往往接近 1,导致式 (11) 不等号右边的扩展因子会相当大。虽然 TD 方法在渐进性能上有很大损失,但其方差比蒙特卡洛方法小得多,因此收敛得更快。具体哪种方法最好取决于近似的问题和性质,以及学习的时间。