AI学习笔记——强化学习之值函数近似(Value Functio
在前面的文章介绍了什么是MDP,以及如何求解最优MDP解决MDP问题。接着又介绍了用MD和TD的方法在未知环境下预测MDP。在这些方法中的最优策略π就是为了获得最大值函数(V函数)Vπ(s)或者加入了行动a的Q函数Qπ(s,a)。
然而在实际问题中,比如电子游戏,下象棋棋,状态的个数可以是10的几十到几百个次方,数量可能比宇宙中的微粒都多,不要说遍历一下每一个状态,就是记录下每一个状态都是几乎不可能完成的任务。
其实我们不必记住每一个状态,可以抽取出一些特征(feature) s和对应的权重(W),将这些特征和权重代替状态作为V函数或者Q函数的输入,然后过迭代和学习得到近似的最优的V函数和Q函数。
1. 近似函数
如下图,黑盒子就是近似函数,输入可以只是特征s,或者s+行动a,输出可以是V函数,或者是带有a的Q函数,当然也可以是带有w的多个Q函数的向量。
近似函数可以是这些特征的线性回归,神经网络,决策树,等等。我们这篇文章以线性组合为例。
2. 梯度下降(Gradient Descent)
既然是线性组合,或者是神经网络,那很自然的就可以用梯度下降的方法来学习咯。
但是问题来了,在监督学习中,梯度下降中用到的损失函数是输出值与实际值之间的方差,然而强化学习问题中,我们是不知道实际值的。为了更好理解梯度下降的方法就,我们先假设我们预先知道Vπ(s)
Vπ(s)和输出的差值的平方,就是损失函数J(W):
梯度下降中需要修正的权重∆w,就等于梯度的反方向乘以学习速率α(很熟悉的感觉)
如果采用随机梯度下降(Stochastic gradient descent)的方法,∆w则是
3. 线性回归
如果我们将特征s的组合看成,特征向量:
那么我们也可以用线性组合来近似V函数:
此时,
需要修正的权重∆w = 学习速率 * 估计误差 * 特征值
这里要强调的是,“查表”的方法是一个特殊的线性价值函数的近似法:每一个状态就是一个特征,机器人到达这个特征的时候就取1,没有到达就取0,w就是到达这个状态的次数。
4. 预测——递增算法 Incremental Prediction Algorithms
之前的公式我们假设预先知道了Vπ(s),采用了类似于监督学习的方式。实际上强化学习中是不知道Vπ(s)的。
强化学习中,没有监督,只有奖励,我们用目标值来代替。
-
对于MC算法,目标值就是收获,使用线性近似
收敛至局部最优解
-
对于TD(0)算法,目标值就是TD目标,使用线性近似
收敛至全局最优解
-
对于TD(λ)算法,目标值就是λ收获,使用线性近似,有前向认识(Forward View)反向认识(Backward View)
对于一个完整的Episode,TD(λ)的前向认识和反向认识对于w的改变是等效的。收敛至全局最优解。
通过之前的文章,我们已经理解到了V函数只能预测和评估策略,在没有引入行动A的Q函数之前无法解决控制问题,关于控制的问题,将会在下一篇文章中进行探讨。
同样的本文主要的参考资料来自于David Silver 教授(DeepMind 的创始人)在UCL的课程以及Richard S. Sutton and Andrew G. Barto的经典书籍:Reinforcement Learning: An Introduction
文章首发steemit.com 为了方便墙内阅读,搬运至此,欢迎留言或者访问我的Steemit主页