课程主页: 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)

如果如下两个条件满足:

  1. 价值函数的近似函数满足

  2. 价值函数的参数$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)$