往期博客:
基于值函数逼近的强化学习方法
Policy gradient 算法思想
基于策略:
Policy gradient 是 RL 中另外一个大家族, 他不像 Value-based 方法 (Q learning, Sarsa), 但他也要接受环境信息 (observation), 不同的是他要输出不是 action 的 value, 而是具体的那一个 action, 这样 policy gradient 就跳过了 value 这个阶段. 而且 Policy gradient 最大的一个优势是: 输出的这个 action 可以是一个连续的值, 之前我们说到的 value-based 方法输出的都是不连续的值, 然后再选择值最大的 action. 而 policy gradient 可以在一个连续分布上选取 action.
基于值与基于策略:
在值函数的方法中,我们迭代计算的是值函数,然后根据值函数对策略进行改进;而在策略搜索方法中,我们直接对策略进行迭代计算,也就是迭代更新参数值,直到累积回报的期望最大,此时的参数所对应的策略为最优策略。
比较一下值函数方法和直接策略搜索方法的优缺点:
- 直接策略搜索方法是对策略进行参数化表示,与值函数方中对值函数进行参数化表示相比,策略参数化更简单,有更好的收敛性。
- 利用值函数方法求解最优策略时,策略改进需要求解。
a r g arg arg max a Q θ ( s , a ) \max _{a} Q_{\theta}(s, a) maxaQθ(s,a),当要解决的问题动作空间很大或者动作为连续集时,该式无法有效求解。 - 直接策略搜索方法经常采用的随机策略,能够学习随机策略。可以将探索直接集成到策略之中。
与值函数方法相比,策略搜索方法也普遍存在缺点,比如:
- 策略搜索的方法容易收敛到局部最小值。
- 评估单个策略时并不充分,方差较大。
推导策略梯度:
用 τ \tau τ来表示一组状态-行为序列, s 0 , u 0 , ⋯ , s H , u H i s_{0}, u_{0}, \cdots, s_{H}, u_{H_{i}} s0,u0,⋯,sH,uHi, R ( τ ) = ∑ t = 0 H R ( s t , u t ) \mathcal{R}(\tau)=\sum_{t=0}^{H} R\left(s_{t}, u_{t}\right) R(τ)=∑t=0HR