价值函数逼近

在传统TD算法、Q-leanring中,V价值和Q价值通常是用表格存储,不适用于大规模问题。可以采用近似器来拟合真实的价值函数。
Q(s,a,θ)Qπ(s,a)Q(s,a,\theta) ≈Q_π(s,a)
V(s,θ)Vπ(s)V(s,\theta) ≈V_π(s)
用一个带θ\theta参数的函数近似器,来代替真实的价值函数,通过训练,找到合适的参数θ\theta,使得两者的误差尽可能小。(θ\theta是一系列参数的总称,不是指只有一个参数,θT=[θ1,θ2,...]\theta^T=[\theta_1,\theta_2,...])
常用的近似器有线性模型神经网络、决策树、最近邻法等。
强化学习的样本数据是非静态的,且非独立同分布(后一个状态往往与前一个状态有很强的关联性),因此要求近似器也要适用于非静态、非独立同分布的数据。

价值函数近似求解

找到了合适的价值函数的近似器V(s,θ)V(s,\theta),如何找到合适的θ\theta,使得近似器能够真正代替真实Vπ(s)V_π(s)。建立一个两者的平方误差函数,
J(θ)=E[(Vπ(s)(V(s,θ))2]J(\theta)=E[(V_π(s)-(V(s,\theta))^2]
转化成求函数J(θ)J(\theta)的优化问题,即找到θ\theta使得J(θ)J(\theta)值最小。常用梯度下降法进行求优。(其他优化算法还有,牛顿法,批量梯度下降,动量梯度下降,RMSprop,Nesterov, Adagrad,Adam)

梯度下降

价值函数近似
对目标函数J(θ)=E[(Vπ(s)V(s,θ))2]J(\theta)=E[(V_π(s)-V(s,\theta))^2]
求梯度,θJ(θ)=E[2(Vπ(s)V(s,θ))θV(s,θ)]\nabla_\theta J(\theta) =-E[2(V_π(s)-V(s,\theta))\nabla_\theta V(s,\theta)]
沿着梯度负方向,更新θ\theta
θ=θ12αθJ(s,θ)\theta=\theta-{1\over 2}\alpha \nabla_\theta J(s,\theta)
θ=θ+αE[(Vπ(s)V(s,θ))θV(s,θ)]\theta=\theta+\alpha E[(V_π(s)-V(s,\theta))\nabla_\theta V(s,\theta)]
但是期望EE需要知道状态ss的概率分布才能计算,而在强化学习中,这个分布是不知道呢,只能通过采样数据,进行替代,就变成了随机梯度下降,通过大量的采样进行梯度下降,最终可以收敛到局部最优。因此,实际应用时,是采用随机梯度下降。θ=θ+α(Vπ(s)V(s,θ))θV(s,θ)\theta=\theta+\alpha (V_π(s)-V(s,\theta))\nabla_\theta V(s,\theta)

价值函数近似增量求解算法

采用随机梯度下降,θ=θ+α(Vπ(s)V(s,θ))θV(s,θ)\theta=\theta+\alpha (V_π(s)-V(s,\theta))\nabla_\theta V(s,\theta)
这里,把Vπ(s)V_π(s)当成是已知的,才能用随机梯度下降,进行更新迭代,然而实际真实Vπ(s)V_π(s)是不知道的,只有样本的奖励值是知道,因此采用样本的奖励值代替真实的Vπ(s)V_π(s)
1.MC算法
Vπ(s)V_π(s)GtG_t代替,
θ=θ+α(Gt(s)V(s,θ))θV(s,θ)\theta=\theta+\alpha (G_t(s)-V(s,\theta))\nabla_\theta V(s,\theta)
2.TD(0)
Vπ(st)V_π(s_t)Rt+1+γV(st+1,a,θ)R_{t+1}+\gamma V(s_{t+1},a,\theta)代替,
θ=θ+α(Rt+1+γV(st+1,a,θ)V(s,θ))θV(s,θ)\theta=\theta+\alpha (R_{t+1}+\gamma V(s_{t+1},a,\theta)-V(s,\theta))\nabla_\theta V(s,\theta)
3.TD(λ\lambda)
Vπ(st)V_π(s_t)Gt(λ)G_t^{(\lambda)}代替,
θ=θ+α(Gt(λ)V(s,θ))θV(s,θ)\theta=\theta+\alpha (G_t^{(\lambda)}-V(s,\theta))\nabla_\theta V(s,\theta)

训练求解

通过agent与环境进行交互,采样得到一系列的样本,<s1G1>,<s2G2><s1G2>...<s_1,G_1>,<s_2,G_2><s_1,G_2>...就可以通过监督这个学习方法,继续迭代训练,得到最终要的参数θ\theta
同样对于Q(s,a,θ)Q(s,a,\theta)也是这个套路。

参考

https://zhuanlan.zhihu.com/p/54189036

相关文章: