目录
传统方法中存在以下这些问题:
(1)状态/动作空间是海量甚至是无限的,无法也没必要精确计算和存储所有状态/动作估值。
(2)无法对未访问过的状态进行估值。
(3)海量状态无法用有限的表格来存储,需要重新设计新的价值函数。 v ^ ( s , w ) \hat{v}(s,w) v^(s,w)
对于(1),可以对状态/动作空间进行 离散化。该方法在状态空间有限可控时使用。对于(2),可以构建参数化的函数估计。若新状态与曾经访问过的状态类似,则使用该状态进行归纳,即泛化(approximation)。对于(3),找到一个通用的方法,表示为
v ^ ( s , w ) ≈ v π ( s ) where w is a weight vector, w = ( w 1 , w 2 , . . . , w n ) T \hat{v}(s,w)\approx v_\pi(s)\text{ where }w\text{ is a weight vector},w=(w_1,w_2,...,w_n)^T v^(s,w)≈vπ(s) where w is a weight vector,w=(w1,w2,...,wn)T
Value - function逼近
已知 MC,TD,DP都是基于一个个回溯值进行价值函数的更新的。我们可以像机器学习学习一样,将每一次这样的更新,作为 i n p u t − o u t p u t input-output input−output样本进行训练,表示为 S → u S\rightarrow u S→u,那么以上算法的更新基于这种思想可以分别表示为:
Monte Carlo : S t → G t S_t\rightarrow G_t St→Gt。
TD Learning : S t → R t + 1 + γ v ^ ( S t + 1 , w t ) S_t\rightarrow R_{t+1}+\gamma \hat{v}(S_{t+1},w_t) St→Rt+1+γv^(St+1,wt)
DP : s → E π [ R t + 1 + γ v ^ ( S t + 1 , w t ) ∣ S t = s ] s\rightarrow \mathbb{E}_\pi[R_{t+1}+\gamma\hat{v}(S_{t+1},w_t)|S_t=s] s→Eπ[Rt+1+γv^(St+1,wt)∣St=s]
这种方法类似于有监督学习(神经网络、决策树、多元回归)的静态训练操作,但是这要求Label需要提前知道,但在强化学习的场景中,许多训练数据是通过与环境交互动态获取的,此时就需要选择合适的有监督学习方法。
预测目标 ( V E ‾ ) (\overline{VE}) (VE)
V E ‾ \overline{VE} VE可以理解为机器学习领域的损失函数(Loss function)。为了保证目标函数在理论上无偏,可以使用期望的形式得到如下预测函数(Mean Squared Value Error, MSVE)
V E ‾ = ∑ s ∈ S μ ( s ) [ v π ( s ) − v ^ ( s , w ) ] 2 \overline{VE}=\displaystyle \sum_{s\in S}\mu(s)[v_\pi(s)-\hat{v}(s,w)]^2 VE=s∈S∑μ(s)[vπ(s)−v^(s,w)]2
其中 μ ( s ) ≥ 0 , ∑ s μ ( s ) = 1 \mu(s)\geq0,\sum_s\mu(s)=1 μ(s)≥0,∑sμ(s)=1, μ ( s ) \mu(s) μ(s)是状态分布,可以理解为该状态能被采样到的概率。在on-policy训练中称它为on-policy分布。
对于 V E ‾ \overline{VE} VE,最理想的目标是对于所有可能的 w w w找到一个全局最优的权值向量 w ∗ w^* w∗,满足 V E ‾ ( w ∗ ) ≤ V E ‾ ( w ) \overline{VE}(w^*)\leq\overline{VE}(w) VE(w∗)≤VE(w)。
SGD和semi-SGD
随机梯度下降(stochastic gradient-descent,SGD)的方法就是对于每一个样本,将权值向量朝着能够减少Loss的方向移动。
w t + 1 = w t − 1 2 α ∇ [ v π ( S t ) − v ^ ( S t , w t ) ] 2 = w t + α [ v π ( S t ) − v ^ ( S t , w t ) ] ∇ v ^ ( S t , w t ) \begin{aligned} w_{t+1}&=w_t-\frac{1}{2}\alpha\nabla[v_\pi(S_t)-\hat{v}(S_t,w_t)]^2\\ &=w_t+\alpha[v_\pi(S_t)-\hat{v}(S_t,w_t)]\nabla\hat{v}(S_t,w_t) \end{aligned} wt+1=wt−21α∇[vπ(St)−v^(St,wt)]2=wt+α[vπ(St)−v^(St,wt)]∇v^(St,wt)
w t w_t wt定义为每个时刻的权重向量, t t t为一系列离散时刻。 α \alpha α是一个正的步长参数。对于任何一个关于向量 w w w的标量函数 f ( w ) f(w) f(w), ∇ f ( w ) \nabla f(w) ∇f(w)表示一个列向量,其每一个分量是该函数对输入向量对应分量的偏导数。
∇ f ( w ) = ( d f ( w ) d w 1 , d f ( w ) d w 2 , . . . , d f ( w ) d w d ) T \nabla f(w)=(\frac{df(w)}{dw_1},\frac{df(w)}{dw_2},...,\frac{df(w)}{dw_d})^T ∇f(w)=(dw1df(w)

本文详细介绍了在强化学习中,如何通过Value-function逼近预测目标VE,探讨了SGD和semi-SGD在优化中的应用,特别是线性方法的特征构造,包括多项式基和傅里叶基,以及瓦片编码和径向基函数的使用。讨论了如何处理大规模状态空间和状态/动作估值的问题,以及基于记忆的函数逼近和on-policy学习中的'兴趣'与'强调'概念。
最低0.47元/天 解锁文章
1730

被折叠的 条评论
为什么被折叠?



