增强学习笔记 第九章 On-Policy预测的近似

对于状态空间太大的问题,表格类方法无法存储这么大的价值表,也没有办法穷尽这么多的状态。考虑到很多状态是相似的,知道一个状态的价值也就大概知道类似状态的价值,因此可以采用函数近似的方法,函数近似是监督学习的一个应用。

这一章我们主要做价值函数的近似。我们定义一个N维参数$oldsymbol heta$, N比状态数量小很多,$ heta$可以是线性规划的权重,也可以是神经网络的权重,还可以是决策树的分叉点。得到$v_{pi}(s)approx hat v(s,oldsymbol heta)$

9.1 价值函数近似

我们将每一次backup操作当成一个监督学习中的样例。但并不是所有监督学习方法都适用于增强学习,增强学习需要支持在线学习,并且需要支持非平稳的目标函数。

9.2 预测目标

对表格类方法来说,不同状态的价值函数是可以独立学习的,但是对近似方法来说,可能产生连带效应。改善一个状态的价值预测有可能损害其他状态的价值预测。因此需要知道哪个状态我们最重视。定义

其中$d(s)$表示该策略下状态经历的时间比重。定义$h(s)$为$s$作为初状态比例(已知),$eta(s)$为episode中经历的次数(未知)。解下列方程组

可以得出$eta(s)$,从而算出$d(s)$

采用MSVE的理由并不是十分明确,毕竟我们的最终目标是改善policy,而不是最小化平方误差,但是实践中我们没有找到明确更好的指标。

我们的目标是找到一个最优的$ heta^*$使得MSVE最小。

9.3 随机梯度下降和半梯度方法

这个式子并不是严格的梯度下降,如果采用bootstrap的话,$U_t$本身也和$ heta$相关。这时候只能称为半梯度算法,实践中该方法有较好的收敛性,至少在线性方法中,是保证收敛的。

  

9.4 线性方法

取梯度有:

 得出迭代式:

对两边取期望:

其中

当收敛时,有$ heta_{t+1}= heta_t$,可以得出:

9.5 线性方法的特征构造

因为线性方法具有高效、收敛等优良特性,我们需要它设计一系列特征构造方法。

特征的选择需要应用先验知识,保证和任务相关。同时我们也需要组合特征,因为线性方法并不能处理特征之间的组合性。例如在倒立车问题中,杆子很低是很危险的,但是这时候如果有很大的向上的角速度,则我们认为是安全的。

9.5.1 多项式基

对d状态变量来说,每个状态是一个d维实数向量,因此基函数可以表示为:

其中$c_{i,j}$是0到N之间的整数

i为基函数索引,j是状态分量索引。

因此共有$(N+1)^d$个基函数。

9.5.2 傅里叶基

傅里叶基可以以任意精度来逼近任何函数,对[0,T/2]区间的逼近来说,可以只保留cos部分。

我们假定T=2,实现[0,1]区间函数的逼近,N阶基函数为:

$phi_i(s)=cos(ipi s)$

对d维(0,1)立方体来说,状态s表示为$(s_1,s_2,cdots,s_d)^T$,基函数为:

$phi_i(s)=cos(pioldsymbol c^icdot oldsymbol s)$

共有$(N+1)^d$个基函数,其中$c_j_i$表示第i个基函数第j个状态分量的系数

傅里叶基的拟合能力比多项式基通常要好

9.5.3 Coarse Coding

在状态空间中画一系列的圈,如果状态在圈中,则对应的feature为1。这样就构造出了一系列二值feature。

圈圈的大小在初期会影响函数拟合,大圈圈通常会泛化的更宽。

如果圈圈数量足够多,并不会影响拟合的精细度。在后期就可以体现出来。

9.5.4 Tile Coding

对状态空间的网格划分称为tiling,网格中的小正方形称为tile。

对d维状态来说,第一个tiling通常采用(1,3,5,...,2d-1)作为tiling之间的间隔。而tiling的个数则为大于等于4d的2的幂方。

9.5.5 径向基

径向基是对Coarse Coding在连续值上的推广。它的feature值可以是[0,1]上的实数。

 

径向基有平滑性和可导性,但是实际上并没有显示太好的性能,它的计算负担也比tile coding更重。在高维度空间中,tile的边界变得比较重要,而径向基函数的表现不尽如人意。

9.6 神经网络

在RL中,神经网络可以使用TD误差来学习价值函数。通常1-2层的隐藏层具有较好的效果。

9.7 LSTD (略)

原文地址:https://www.cnblogs.com/milaohu/p/7630143.html