David silver 强化学习 Lecture 7
课程主页: https://www.davidsilver.uk/teaching/
这里回顾David silver 强化学习 Lecture 7的课程内容,这一讲简单介绍了策略梯度算法。
上一讲介绍了如何使用参数$\theta$近似价值函数:
然后从价值函数中推导策略。
这一讲将直接近似策略:
这一讲的重点仍然是不基于模型的强化学习。
Policy Objective Functions
我们要找到好的策略$\pi_{\theta}(s, a)$,就需要一个判断好坏的损失函数:
在离散环境,我们可以使用初始价值
在连续环境中,我们可以使用平均价值
或者每个时间戳的平均回报
其中$d^{\pi_{\theta}}(s)$是马尔可夫链关于$\pi_\theta$的平稳分布
后续将损失函数统一记录为$J(\theta)$。
Policy Gradient
利用梯度上升算法可以最大化$J(\theta)$,每一步的变换量为
其中$\nabla_{\theta} J(\theta)$为策略梯度,计算式为
$\alpha$是步长参数。
Score Function
现在解析的计算$\nabla_{\theta} \pi_{\theta}(s, a)$,我们有
我们称$\nabla_{\theta} \log \pi_{\theta}(s, a)$为得分函数。
后续介绍两种常见的策略形式:
Softmax Policy
所以
Gaussian Policy
一个高斯策略为,$a \sim \mathcal{N}\left(\mu(s), \sigma^{2}\right)$,其中$\mu(s)=\phi(s)^{\top} \theta$,$\sigma^2$为常数,那么
Policy Gradient Theorem
对于任意可微的策略$\pi_{\theta}(s, a)$,对于之前介绍的三个策略目标函数$J=J_{1}, J_{a v R}, \frac{1}{1-\gamma} J_{a v} v$,策略梯度为
Monte-Carlo Policy Gradient (REINFORCE)
将上述内容总结即可得到REINFORCE算法:
Reducing Variance Using a Critic
上述算法有很高的方差,我们可以使用critic来估计动作价值函数来减少方差:
Actor-critic算法保留两个集合的参数:
- Critic:更新动作-价值函数的参数$w$
- Actor:根据critic的建议更新策略参数$\theta$
Actor-critic算法使用下式来近似策略梯度:
Action-Value Actor-Critic
我们使用之前介绍的$\text{TD}(0)$算法优化Critic,结合本讲的内容得到QAC算法:
Compatible Function Approximation
定理(Compatible Function Approximation)
如果如下两个条件满足:
价值函数的近似函数满足
价值函数的参数$w$最小化均方误差
那么策略梯度是准确的,
证明:
Reducing Variance Using a Baseline
我们可以通过减去baseline函数$B(s)$来减少方差,并且这样不会改变梯度:
一个好的baseline是
所以我们可以用advantage function $A^{\pi_{\theta}}(s, a)$重写策略梯度
Natural Policy Gradient
Natural Policy Gradient与参数设置无关,当以较小的固定量更改策略时,它会找到最接近原始梯度的上升方向
其中$G_\theta$是Fisher信息矩阵
利用compatible function approximation,我们要选择满足如下条件的$A$
显然这里可以取
所以
即根据critic参数更新actor参数。
Summary of Policy Gradient Algorithms
policy gradient有很多等价形式
Critic使用策略评估(例如MC或者TD)来估计$Q^{\pi}(s, a), A^{\pi}(s, a) \text { or } V^{\pi}(s)$