zoukankan      html  css  js  c++  java
  • 增强学习笔记 第九章 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 (略)

  • 相关阅读:
    Net基础篇_学习笔记_第十一天_面向对象(静态与非静态 static)
    Net基础篇_学习笔记_第十一天_面向对象(类)
    Net基础篇_学习笔记_第十一天_面向对象(面向过程与面向对象的区别/类的概念)
    学习笔记_第十天_方法_方法的综合练习---ref练习
    学习笔记_第十天_方法_方法的重载与递归
    学习笔记_第十天_方法_方法的三个高级参数
    学习笔记_第十天_方法_方法的三个高级参数
    MySQL 添加用户、删除用户与授权
    linux composer 安装与应用
    Note1
  • 原文地址:https://www.cnblogs.com/milaohu/p/7630143.html
Copyright © 2011-2022 走看看