[RL Notes] 时序差分的目标
Contents [show]
1. 半梯度下降
wt+1≐wt+α[Ut–ˆv(s,wt)2]∇ˆv(s,wt)
如果 Ut 是一个无偏估计,即满足对于任意的 t,有 E[Ut|St=s]=vπ(St),那么 w 会收敛到局部最优。
如果使用将式 (1) 中的 Ut 替换为自举的目标,例如单步时序差分的目标,即
Ut≐Rt+1+γˆv(St+1,w)
此时的目标会依赖于当前的价值估计 ˆv(St+1,w),当前的价值估计很可能不等于真实的价值,这就导致 Ut 是有偏的,不能保证 w 收敛到价值误差的局部最优。计算式 (2) 对 w 的梯度,可得
∇12[Ut–ˆv(St,w)]2=(Ut–ˆv(St,w))(∇Ut–∇ˆv(St,w))
注意由式 (2) 可知 Ut 依赖于 w,有
∇Ut=∇(Rt+1+γˆv(St+1,w))=γ∇ˆv(St+1,w)
如果使用式 (3) 进行“梯度下降”,则在对权重的优化过程中,只考虑了改变权重对估计的影响,而忽略了对目标的影响。由于只包含一部分梯度,这种方法称为半梯度(semi-gradient)方法。
虽然半梯度方法不能像梯度方法那样稳健地收敛,但它在多数情况下仍能可靠地收敛,而且由于时序差分目标相比收益的采样通常具有较小的方差,这使得它能更快收敛。
2. 半梯度 TD 算法
使用半梯度的 TD(0) 算法如下所示。
半梯度 TD(0),用于估计 ˆv≈vπ
输入:待评估的策略 π
输入:一个可微的函数 ˆv:S+×Rd→R,满足 ˆv(终止状态,⋅)=0
算法参数:步长 α>0
对价值函数的权值 w∈Rd 进行任意的初始化(例如 w=0)
对每一幕循环:
初始化 S
对该幕的每一步循环:
选取 A∼π(⋅|S)
采取动作 A,观察 R,S′
w←w+α[R+γˆv(S′,w)–ˆv(S,w)]∇ˆv(S,w)
S←S′
直到 S′ 为终止状态