[RL Notes] 线性方法
Contents [show]
1. 线性方法
我们可以在强化学习中使用任意类型的函数进行函数逼近,使用线性函数是最重要的特殊情况之一。线性函数易于理解,便于记性数学计算,而且通过结合领域知识构造合适的特征,可以快速地学习并达到较高的准确度。
这里的“线性”指的是近似函数 ˆv(⋅,w) 是权重向量 w 的线性函数,对于每一个状态 s,存在一个和 w 同维度的实向量 x≐(x1(s),x2(s),⋯,xd(s))T,线性近似的状态价值函数为 w 和 x(s) 的内积
ˆv(s,w)≐wTx(s)≐d∑i=1wixi(s)
此时称近似价值函数是依据权重线性的,或者简称为线性的。
由式 (1) 可得近似价值函数关于 w 的梯度为
∇ˆv(s,w)=x(s)
回顾通用 SGD 更新公式为
wt+1≐wt+α[Ut–ˆv(St,wt)]∇ˆv(St,wt)
将式 (2) 代入式 (3),可以得到一个非常简单的线性函数的更新公式
wt+1≐wt+α[Ut–ˆv(St,wt)]x(St)
2. 线性 TD
对于单步 TD 的方法,其目标定义为
Ut≐Rt+1+γˆv(St+1,wt)
此时的更新为
wt+1≐wt+α[Rt+1+γˆv(St+1,wt)–ˆv(St,wt)]x(St)
类似于线性价值函数逼近是表格型价值函数的泛化,线性 TD 也是表格型 TD 的泛化,只需构造特征 x(si) 为状态 si 的指示函数
x(si)=[00⋯10⋯0]T
x(si) 中只有第 i 个元素为 1,其余元素为 0,此时有 ˆv(Si,w)=wi。
3. TD 的目标
回到式 (6),将 x(St) 简写为 xt,并将式 (1) 代入式 (6),得到
wt+1≐wt+α[Rt+1+γˆv(St+1,wt)–ˆv(St,wt)]xt=wt+α[Rt+1+γwTtxt+1–wTtxt]xt=wt+α[Rt+1xt–xt(xt–γxt+1)Twt]
将式 (7) 中等号两边同减去 wt,可得更新的期望为
E[Δwt]=αE[Rt+1xt–xt(xt–γxt+1)Twt]=α(b–Awt)
其中
b≐E[Rt+1xt]A≐E[xt(xt–γxt+1)T]
当式 (8) 为零时权重收敛,称令式 (8) 为零的 wt 为 TD 的不动点(fixed point),记为 wTD,有
E[ΔwTD]=α(b–AwTD)=0
可以解得
wTD=A−1b
可以证明,线性 TD 会收敛到不动点 wTD,wTD 最小化了 (b–Aw)T(b–Aw),称为映射贝尔曼误差(projected Bellman error)。在 TD 不动点处,¯VE 在可能的最小误差的一个扩展边界内
¯VE(wTD)≤11–γminw¯VE(w)
上式说明 TD 法的渐进误差不超过蒙特卡洛法最小误差的 11–γ 倍,γ 越小则误差越小。如果我们能完美地逼近真实的价值函数,则无论 γ 如何取值,式 (11) 的等号成立,因为此时左右两边表示的误差都为 0。由于 TD 使用函数逼近进行自举,如果它对下一个状态的预测一直不准,则会导致 TD 一直向着错误的目标更新;反之,如果函数逼近很准确,则对下一个状态的预测也很准确,此时 TD 的误差也会接近最小价值误差。
实际中的 γ 往往接近 1,导致式 (11) 不等号右边的扩展因子会相当大。虽然 TD 方法在渐进性能上有很大损失,但其方差比蒙特卡洛方法小得多,因此收敛得更快。具体哪种方法最好取决于近似的问题和性质,以及学习的时间。