- 深度强化学习核心算法与应用
- 陈世勇 苏博览 杨敬文编著
- 1081字
- 2021-10-15 18:59:48
2.3 值函数估计和策略搜索
在前面所述的蒙特卡罗方法和时间差分方法中,乃至动态规划方法中,我们都默认值函数是一个索引表。我们可以用s状态去获取对应的Q值。但是如果状态空间的维数很大,乃至状态空间为连续空间,那么值函数无法用列表法的方式来表示。这时,需要使用一些值函数估计的方法。
2.3.1 值函数估计
值函数估计通常是指用一个函数来估计值函数,这个函数的输入就是状态s,输出就是状态s对应的值。通常这个函数可以使用线性组合,神经网络以及其他方法。有了值函数,不仅可以解决列表法的问题,还同时可以估计出未知状态对应的V值。那么估计这个值函数也就是要找到该函数的一组参数θ,使得
![](https://epubservercos.yuewen.com/C90FAD/21190709108534506/epubprivate/OEBPS/Images/txt003_35.jpg?sign=1739629169-QizNe5mD8UIi28cghYVpuWf7zrSDTeH0-0-9ee13e720988237941f76e6ef319a0b4)
同样,对于Q值也有
![](https://epubservercos.yuewen.com/C90FAD/21190709108534506/epubprivate/OEBPS/Images/txt003_36.jpg?sign=1739629169-6Qa6XM5yJbLnv8mtc4F475mWJplMwVpD-0-2b05587d027790ebb01812b660e7479e)
我们可以把s,a都看成一个向量,然后把基于蒙特卡罗方法或者时间差分方法估计出来的Q值和V值作为真实的值,从而得到有标记的学习样本(s,a,v),就可以基于监督学习的方法来学习值函数fθ了。通常可以使用梯度下降(Gradient Descent)的方法来训练得到θ。具体的梯度下降方法不在这里赘述,后面讲述深度Q学习算法(DQN)的时候会更详细地说明。
2.3.2 策略搜索
基于价值函数的方法是先估计得到价值函数,然后直接依赖价值函数找到对应的最优策略。但是当实际的问题动作空间很大或者是连续的动作空间时,就很难根据价值函数得到下一步要做的动作。甚至更进一步,如果目标策略是一个随机策略,我们更加无法根据值函数来选取最优的动作。例如在石头剪刀布的例子中,最优策略应该是随机出任意一个动作,如果使用基于值函数的方法,可能就没办法收敛。因此,通常会使用基于策略的方法,直接搜索最优的策略。
策略搜索通常是用一个参数化的函数来表示策略π(s,a|θ),然后寻找一个最优的参数θ,使基于该策略的累计回报的期望最大。通常我们会使用策略梯度类方法(policy gradient method)求解这个最优的参数。首先,优化目标是最大化累计回报:
![](https://epubservercos.yuewen.com/C90FAD/21190709108534506/epubprivate/OEBPS/Images/txt003_37.jpg?sign=1739629169-5VhqytTmkJyie6GLZDb99TrsNlnGj4sk-0-ef50873af8607de9cafa95bd5217d609)
其中ρπ(s)是策略π的状态密度函数,表示在策略π下出现状态s的期望。当我们使用策略梯度的方法来求解式(2.22)的时候,需要对J(θ)进行求导:
![](https://epubservercos.yuewen.com/C90FAD/21190709108534506/epubprivate/OEBPS/Images/txt003_38.jpg?sign=1739629169-BABtiwBe6dOqmhgiJ8KkvdU2xdDPLJPt-0-f190c31a8640f6b9e33140b739b9c5cb)
可以看到,J(θ)的梯度是和ρπ(s)无关的,具体的推导过程不再赘述。这时候利用公式,可以将式(2.23)写成以下的形式:
![](https://epubservercos.yuewen.com/C90FAD/21190709108534506/epubprivate/OEBPS/Images/txt003_40.jpg?sign=1739629169-MO8zkPAKvJFjB7evEbo1EDGUdhLqqpHq-0-725a31a109cdb86b251494bd6606c6a7)
这里还需要估计Qπ(s,a),可以用前述的蒙特卡罗或者时间差分的方法进行估计,然后便可以更新θ值:
![](https://epubservercos.yuewen.com/C90FAD/21190709108534506/epubprivate/OEBPS/Images/txt003_41.jpg?sign=1739629169-llNL0U8laT9eSCGVAQitgMH88MLBo9mT-0-b76b4fd78d57d37b26977e2f0a48a070)
可以看到,策略梯度的方法仍然涉及价值函数的估计。而基于策略的和基于值函数的方法最大的区别其实在于:最后的策略是基于参数的,还是直接从值函数中得到的。如果用时间差分的方法来估计价值函数,就可以得到一类应用得很广泛的强化学习算法:演员和批评家算法(Actor-Critic)。在本书后面的章节中会详细讲述该类算法。