9.1 价值函数逼近
目前使用的方法对于状态的更新知识简单地对目标状态进行更新而其他状态度保持不变,而本章会对目标状态的更新进行泛化,使其他状态的估计价值同样发生变化,原则上可以使用所有现存的函数逼近方法来进行价值函数预测,包括神经网络。决策树以及各种多元回归。
应用于强化学习的函数逼近方法需要能够进行在线学习,并且能够处理非平稳目标函数。
9.2 预测目标
在表格型情况中,不需要对连续函数进行衡量,学习到的价值函数可以和真实的价值函数精确相等,并且每个状态下学习的价值函数都是解耦不相关的。
但是在函数逼近中,一个状态的更新会影响到许多其他状态,而且状态的数量远远多于权值的数量情况下,一个状态的估计价值越准确意味着其他状态的估计价值变得不那么准确,所以需要给出哪些状态是我们关心的,也就是指定一个状态分布来表示对于每一个状态的误差的重视程度,可用均方价值误差表示:
μ
(
s
)
\mu(s)
μ(s)可定义为访问该状态上的期望概率,在on-policy训练中成为on-policy分布,在持续性任务中是
π
\pi
π下的平稳分布。
而需要强调的是,强化学习的目标是寻找最优策略,对应的最优价值函数不一定满足最小化均方误差,但是目前还不知道是够存在一个更清晰的目标,所以以关注均方误差为主。
对于均方误差而言,最理想的目标是找到一个全局最优的权值向量,但是对于非线性的复杂模型而言,可以转而求局部最优,而本节主要讨论的是基于梯度的函数逼近方法。
9.3 随机梯度和半梯度方法
在梯度下降方法,权值向量是一个d维列向量写作:
而近似价值函数需要满足对所有状态对于权值向量都是可微的。随机梯度下降(SGD)将权值向量向着能够减少这个样本的误差的方向移动一点,这里的误差用均方误差表示即是:
梯度下降方向的随机性,体现在更新仅仅依赖于一个样本来完成。
学习的目标并不是找到一个对所有状态都具有零误差的价值函数,而是期望找到能够在不同状态中平衡其误差的一个近似价值函数。
在实际应用中,对于每个状态可以用近似值来代替函数的真实价值,如下:
如果
U
t
U_t
Ut是一个无偏估计,那么当学习步长满足式2.7的条件即一定能收敛到局部最优解。
梯度蒙特卡洛算法如下图所示:
如果使用状态价值的自举估计值作为目标,则会有偏,而使得无法获得相同的收敛性保证,例如使用n步回报或者DP目标,由于都要依赖于当前权值向量的值,是有偏的,所以无法实现真正的梯度下降法。
在这一步中,如果使用自举法,则只考虑了改变权值向量对于估计的影响,却忽略了对目标的影响(目标实际上是与权值向量有关的,本来应该考虑在梯度内的),由于只包含了一部分梯度,这种方法称为半梯度方法。
半梯度的收敛性会比梯度方法更弱,但是学习速度通常更快,且支持持续性地和在线地学习,能够应用于持续性问题。
使用TD(0)回报作为目标的半梯度TD(0)的伪代码如下:
9.4 线性方法
函数逼近最重要的特殊情况之一是其近似函数是权值向量w的线性函数,对应于每个状态s。存在一个与w相同维度的实向量,线性近似的状态价值函数可以写作该实向量和w的内积:
这样的近似价值函数是关于权值向量线性的,而向量x(s)表示的是s的特征向量,对应线性方法特征被称作基函数,这是因为它们构成了可能的近似函数集合的线性基,构造d维特征向量来表示一个状态与选择一组d个基函数是相同的。
对于线性函数逼近,使用SGD对应的近似价值函数对于w的梯度是:
线性SGD非常简单,适合用于数学分析,并且线性条件下,函数只存在一个最优值。
对于半梯度TD(0)而言。每个时刻的更新即为:
一旦系统到达一个稳定状态,对于给定的w,下一个更新的权值向量的期望可以写作:
并且,从中可以明显的发现,如果系统收敛,必须收敛到满足下式的TD不动点:
而线性TD(0)的收敛性可以如下证明:
而在TD不动点,已经证明了在持续性人物下,均方误差在最小误差的一个扩展边界内:
也就是,TD法的渐进误差不超过使用MC法能得到的最小可能误差的一个倍数,而折扣因子又常常接近于1,那么这个扩展因子就潜在可能很大,所以TD法在渐进性能上有很大的潜在损失。
而对应n步半梯度TD算法,其更新方程即为:
n步回报可以扩展为:
对应的完整伪代码为: