强化学习笔记(6)Policy Gradient 策略梯度下降

时间:2024-03-13 17:14:29

概念

之前都是基于价值函数或者状态行为价值对的。

在大规模问题时由于我们不可能存储每一个状态行为价值,所以我们使用Function来估计该状态的价值。我们通过训练从而精确function里面的参数。

这都是基于状态价值的。

如果对于行为action很多,或者行为是连续的。那么我们能否确定一个函数P\mathbb P,我们把状态s等参数输入进去,就能等得到一个行为a
πθ(s,a)=P[as,θ] \pi_{\theta}(s,a) = \mathbb P[a | s,\theta]

Value-Based and Policy-Based RL

Value-Based

  • 学习的是Value Function.
  • 使用很简单策略,比如对于基于Value的ϵgreedy\epsilon -greedy

Policy -Based

  • 不需要Value Function
  • 我们要学习一个Policy函数,能够产生行为

Actor-Critic

两个都学

  • 学习Value Function
  • 学习Policy

强化学习笔记(6)Policy Gradient 策略梯度下降

优点:PG

  • 更好的收敛性

  • 高维度、连续动作空间更有效

  • 能够学习==随机策略==

    随机策略例子: 石头剪刀布的游戏。在随机生成动作的时候,你就可以更加了解对手的习惯。就是在选择动作的时候使用随机的,不是贪婪策略

缺点:

  • 纯的策略学习,可能收敛到局部最优,不是全局最优
  • 策略评估时通常不够高效,或者有高方差。

目标函数的确定

PG的目标: 给出一个policy πθ(s,a)\pi_\theta(s,a),所含参数为θ\theta,找到一个最优的θ\theta

问题: 如何衡量策略πθ\pi_\theta的好与坏?

  • start value:从s1开始,所能够得到的价值的数学期望。
  • average value: 使用在连续环境。
  • average reward per time-step
    强化学习笔记(6)Policy Gradient 策略梯度下降

现在的问题就变成了寻找θ\theta,最大化J(θ)J(\theta)

一些方法:

强化学习笔记(6)Policy Gradient 策略梯度下降

梯度下降解决问题

强化学习笔记(6)Policy Gradient 策略梯度下降

Likelihood ratios 自然对数

这是一个定理:

假设 策略πθ\pi_\theta 是可微的, 那么他的梯度为 θπθ(s,a)\nabla _\theta \pi_\theta(s,a)
θπθ(s,a)=πθ(s,a)θπθ(s,a)πθ(s,a)=πθ(s,a)θlogπθ(s,a) \nabla _\theta \pi_\theta(s,a) = \pi_\theta(s,a) \frac{\nabla _\theta\pi_\theta(s,a)}{\pi_\theta(s,a)} \\ = \pi_\theta(s,a) \nabla _\theta \log \pi_\theta(s,a)

log是以e为底的,也就是ln

反过来就是一个复合求导

θlogπθ(s,a)\nabla _\theta \log \pi_\theta(s,a)score function,他们告诉我们从哪个特殊的方向进行调整来获得较好的结果。

Softmax Policy

解决离散问题,,确定动作a

强化学习笔记(6)Policy Gradient 策略梯度下降

Gaussian Policy 连续动作空间

强化学习笔记(6)Policy Gradient 策略梯度下降

一步MDP过程为例:利用score function推导梯度。

One-Step 是指做出一个动作,就到了终止状态。所以没有序列。
强化学习笔记(6)Policy Gradient 策略梯度下降

One Step MDPs的推广:策略梯度下降理论(Policy Gradient Theorem):

  • 使用likelihood ratio方法到多步的MDPs,就是策略梯度下降。

  • 使用长期价值函数Qπ(s,a)Q^\pi (s,a)来代替立得得奖励r

  • 策略梯度下降理论可以应用在上述三个Objective function(J)
    强化学习笔记(6)Policy Gradient 策略梯度下降

一些算法实现

上述提出了梯度下降理论,这个理论的一些实现方式:

MCPG

这里面的vtv_t就是之前用的GtG_t,代表return。带衰减的奖励和。
强化学习笔记(6)Policy Gradient 策略梯度下降

Actor-Critic

  • MCPG方法存在着高方差的问题。(不稳定,由于随机因素存在,模型表现时好时坏), A-C就是解决这个问题的。

放弃MCPG算法中使用return来评估策略好坏,而是指用一个critic函数来评价(比如critic可以是一个网络)

Actor和Critic同时提升更新参数。

强化学习笔记(6)Policy Gradient 策略梯度下降

Critic用来策略评估,就是上一篇所说的Policy Evaluation问题。

  • Monte-Carlo policy evaluation
  • Temporal-Difference learning
  • TD(λ\lambda)

例子:Actor-Critic based on Action-Value critic

例子:

强化学习笔记(6)Policy Gradient 策略梯度下降

Actor-Critic 算法的偏差

近似的策略梯度引入了偏差。

一个由偏差的policy gradient有可能找不到正确的解。幸运的是如果我们谨慎的选择价值估计函数(value function approximation),我们就能够避免偏差。

那么如何找这个value function approximation?

Compatible function approximation Theorem.

强化学习笔记(6)Policy Gradient 策略梯度下降

证明过程

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-befZoUdN-1586684077045)(6_policy_gradient.assets/image-20200403162701988.png)]

使用Baseline 来减少A-C算法的波动(方差问题)

我们从策略梯度中减去一个baseline函数B(s), 这样做能够在不改变数学期望的情况下,减小方差。

一个号的baseline函数就是价值函数B(s)=vπθ(s)B(s) = v^{\pi_\theta}(s)

之前的Q用A来代替:(Advantage function)

强化学习笔记(6)Policy Gradient 策略梯度下降

其中,对于B(s)那一项,也就是上式中vπθ(s)v^{\pi_\theta}(s).

强化学习笔记(6)Policy Gradient 策略梯度下降

不改变期望的证明:

强化学习笔记(6)Policy Gradient 策略梯度下降

估计Advantage function

方法一

  • Advantange function 能够显著降低PG的方差(增强稳定性)
  • 如果使用advantange function,critic就应该同时估计Vπθ(s)V^{\pi_\theta}(s)Qπθ(s,a)Q^{\pi_\theta}(s,a), 才能够产生A(s,a) = V(s)- Q(s,a)
  • 更新的时候要同时更新V的参数和Q的参数。例如使用TD 算法。

强化学习笔记(6)Policy Gradient 策略梯度下降
方法二:

使用TD error。 TD error 是Advantage function的无偏差估计。计算出来的梯度方向应该是相同的。
强化学习笔记(6)Policy Gradient 策略梯度下降

Critics的参数更新

强化学习笔记(6)Policy Gradient 策略梯度下降

Actor的参数更新

强化学习笔记(6)Policy Gradient 策略梯度下降

MC中的vtv_t是return。

上面两个例子都是使用减去baseline的。

使用TD(λ\lambda )和效用迹理论更新

强化学习笔记(6)Policy Gradient 策略梯度下降

Natural Policy Gradient (新的策略方法。不是上面所说的加入高斯噪音)

强化学习笔记(6)Policy Gradient 策略梯度下降

Natural Actor-Critic

一种新的方法。

强化学习笔记(6)Policy Gradient 策略梯度下降