这一章讨论on-policy下的价值函数近似
均方价值误差
u(s)是状态的分布函数,定义如下
如何使误差变小?梯度下降
如果我们不知道Gt,所以就有Semi-gradient TD(0),可以看出这是个自举的算法
对于线性模型
可以得到 Linear TD(0)的收敛点
同时可以证明在收敛点其误差满足
效果测试
同理可以扩展为n-step
线性模型可以通过多种方法构造复杂特征
第一种是基于多项式
第二种是基于傅里叶变换的,傅里叶变换把函数分解为多个不同频率的sin、cos函数,这里可以把特征向量分解为多个不同频率的cos函数
其中ci向量的含义如下,0表示在该维度特征为常量
同时每个特征x的学习速率计算方法如下
效果测试
第三种方式是稀疏编码,考虑一个连续二维空间、线性函数
d在哪个圈里面代表该圈对应的w为1
圈越大泛化能力越强,同理圈的形状也会影响泛化
Tile Coding 是一种多维度的稀疏编码方式
编码方式如图所示
Tile Coding的测试
因为是二进制编码的,这种方法的计算效率很高
offset的选取方式会对泛化效果产生影响
同时形状也不是确定的,会对泛化能力造成影响
RBF也是一种特征处理方法
用径向基函数映射特征到高维空间
下面讨论非线性的函数近似
人工神经网络
深度卷积神经网络
训练深层神经网络常用的算法是反向传播算法
Least-Squares TD
在线性TD(0)中,收敛点为
我们可以不通过迭代来求出收敛参数,因此不用浪费训练样本
但是计算的复杂度很高,可以通过一些公式来优化
Memory-based Function Approximation
基于记忆的函数近似在内存中保存一部分样本,然后预测的时候直接查找距离最近的样本,类似于KNN
Kernel-based Function Approximation
k(s, s') is the weight given to data about s′ in its influence on answering queries about s.
第一种核回归类似于Memory-based Function Approximation
其中的核函数可以使用RBF
也可以用特征向量的内积
如果考虑对状态的兴趣,可以得到一个n-step的更新方法
网友评论