价值函数逼近
在传统TD算法、Q-leanring中,V价值和Q价值通常是用表格存储,不适用于大规模问题。可以采用近似器来拟合真实的价值函数。
Q(s,a,θ)≈Qπ(s,a)
V(s,θ)≈Vπ(s)
用一个带θ参数的函数近似器,来代替真实的价值函数,通过训练,找到合适的参数θ,使得两者的误差尽可能小。(θ是一系列参数的总称,不是指只有一个参数,θT=[θ1,θ2,...])
常用的近似器有线性模型、神经网络、决策树、最近邻法等。
强化学习的样本数据是非静态的,且非独立同分布(后一个状态往往与前一个状态有很强的关联性),因此要求近似器也要适用于非静态、非独立同分布的数据。
价值函数近似求解
找到了合适的价值函数的近似器V(s,θ),如何找到合适的θ,使得近似器能够真正代替真实Vπ(s)。建立一个两者的平方误差函数,
J(θ)=E[(Vπ(s)−(V(s,θ))2]
转化成求函数J(θ)的优化问题,即找到θ使得J(θ)值最小。常用梯度下降法进行求优。(其他优化算法还有,牛顿法,批量梯度下降,动量梯度下降,RMSprop,Nesterov, Adagrad,Adam)
梯度下降

对目标函数J(θ)=E[(Vπ(s)−V(s,θ))2]
求梯度,∇θJ(θ)=−E[2(Vπ(s)−V(s,θ))∇θV(s,θ)]
沿着梯度负方向,更新θ
θ=θ−21α∇θJ(s,θ)
θ=θ+αE[(Vπ(s)−V(s,θ))∇θV(s,θ)]
但是期望E需要知道状态s的概率分布才能计算,而在强化学习中,这个分布是不知道呢,只能通过采样数据,进行替代,就变成了随机梯度下降,通过大量的采样进行梯度下降,最终可以收敛到局部最优。因此,实际应用时,是采用随机梯度下降。θ=θ+α(Vπ(s)−V(s,θ))∇θV(s,θ)
价值函数近似增量求解算法
采用随机梯度下降,θ=θ+α(Vπ(s)−V(s,θ))∇θV(s,θ)
这里,把Vπ(s)当成是已知的,才能用随机梯度下降,进行更新迭代,然而实际真实Vπ(s)是不知道的,只有样本的奖励值是知道,因此采用样本的奖励值代替真实的Vπ(s)。
1.MC算法
Vπ(s)用Gt代替,
θ=θ+α(Gt(s)−V(s,θ))∇θV(s,θ)
2.TD(0)
Vπ(st)用Rt+1+γV(st+1,a,θ)代替,
θ=θ+α(Rt+1+γV(st+1,a,θ)−V(s,θ))∇θV(s,θ)
3.TD(λ)
Vπ(st)用Gt(λ)代替,
θ=θ+α(Gt(λ)−V(s,θ))∇θV(s,θ)
训练求解
通过agent与环境进行交互,采样得到一系列的样本,<s1,G1>,<s2,G2><s1,G2>...就可以通过监督这个学习方法,继续迭代训练,得到最终要的参数θ。
同样对于Q(s,a,θ)也是这个套路。
参考
https://zhuanlan.zhihu.com/p/54189036