强化学习笔记7:策略梯度 Policy Gradient


之前的策略优化,用的基本都是$\epsilon$-greedy的policy improve方法,这里介绍policy gradient法,不基于v、q函数

1. introduction

策略梯度是以$P(a|s)$入手,概率$\pi(s,a)$的形式,同样是model free的

调整策略的概率分布,寻找最优策略$\pi_*$

-w497

特点

  • 优点:
    • 更好收敛性
    • 高维、连续动作空间高效
    • 从随机策略中学习
  • 缺点:
    • 会限于局部最优,而不是全局最优
    • 评价策略的过程:低效、高方差
  • 随机策略有时是最优策略,基于价值函数的策略有时会限于局部最优

Policy Objective function 策略目标函数

对于不同的任务,需要建立针对性的3种目标函数

  • 1.Start Value:任务有始有终
  • 2.Average Value:连续任务,不停止。对所有状态求平均,d是状态s在策略$\pi\theta$下的分布函数。根据V值求P
  • 3.Average reward per time-step:连续任务,不停止。d是状态s在策略$\pi\theta$下的分布函数。根据R值求P

  • Objective:优化目标函数
    find $\theta$ 最大化 $J(\theta)$

2. Finite Difference PG 有限差分策略梯度

对每个维度的权重,分别进行查分求梯度,然后迭代权重,至最优
-w449

特点:

  • n次运算,求得n维的梯度
  • 简单、噪声、偶尔高效
  • 通用性好,任意策略可用,即使策略目标函数不可微

3. MC PG 蒙特卡洛策略梯度

要求:策略目标函数可微分,梯度可计算
引入了似然比概念

Likelihood ratios

Score function(not value function)

  • Trick here: 用似然比 Likelihood ratios
    将$\pi$梯度,变为$\pi$ 乘以 log 的梯度
    函数在某个变量θ处的梯度等于该处函数值与该函数的对数函数在此处梯度的乘积 $d log(y) = dy/y$,默认底数为$e$

  • Score function: $\nabla{\theta} \log \pi{\theta}(s, a)$

Softmax policy:策略概率按照指数分配

线性组合 -> softmax = $\pi$ 是状态s下,采取每个a的概率
-w451

通过取对数,拆分为加法,进而表示为

Gaussian polisy:策略概率按照距离分配

  • In continuous action spaces, a Gaussian policy is natural
  • Mean is a linear combination of state features $μ(s) = φ(s)^{T}θ$
  • Variance may be fixed σ , or can also parametrised Policy is Gaussian, a ∼ N (μ(s), σ2)
  • The score function is

在实际应用中,要注意梯度消失现象,可以利用代数方法求解

Policy Gradient theorem 策略梯度定理

One-step MDPs

没有序列,整个任务过程只有一步

  • 状态s~d(s)
  • r = R_{s,a}

用似然比,计算策略梯度:
先给出奖励函数,三种形式一样如下:

相应梯度表示为:

对于多步的标准MDPs

用Q函数,替代R函数,即可表征序列到End的奖励
对于下列都适用:

  • 初始价值函数:$J = J_1$
  • 平均奖励函数: $J_{avR}$
  • 平均价值函数: $\frac{1}{1-\gamma}J_{avV}$

对任意可微策略,梯度都为

MCPG 蒙特卡洛策略梯度法

  • 采样 替代 期望
    上节式子表示为Score function 和 Q 值在策略$\pi$下的期望
    在MC中,在每个episode在$\pi$下,产生的序列就满足分布,整个过程都迭代完后的值,自然就是期望,因此梯度前没有概率分布函数,用常值替代。

-w433

  • 特点:
    • 动作平滑
    • 收敛性好,但是慢
    • 方差大

4. Actor-Critic PG AC策略梯度

ACPG提出,解决PG方差大的问题
为了加快更新速度,我们希望把回合更新变为,每步更新,需要Q的估计值(指导策略更新),引入函数逼近器,取代PG中的Q采样

AC算法的主要部分

  • Critic:用来估计价值函数,(更新q(s,a,w)的参数w)
  • Actor:生成动作,(在critic的指引下,更新$\pi_\theta$的参数$\theta$)

AC算法遵循, 近似策略梯度法

例子:简单线性价值函数的AC算法

  • Critic 线性组合,TD(0)
  • Actor PG更新
  • 逐步更新,在线实时
    -w377

  • AC算法中的偏差

    • 对PG的估计引入了偏差
    • 正确选择价值函数,有利于减小、消灭偏差,but how???

Compatible function approximation 兼容函数估计

上节线性近似的价值函数引入了偏差,小心设计的Q函数满足:

1.近似价值函数的梯度完全等同于策略函数对数的梯度,即不存在重名情况:

2.价值函数参数w使得均方差最小:

此时策略梯度是准确的,满足

  • 证明过程,(参数梯度 = 0)
    -w483

Tricks——Advantage function critic

核心思想:减去一个baseline,将MSE的减数和被减数都 往 0 方向拉,减小偏差
Advantage function = PG减去B(s),好的B(s)是状态价值函数,V(s)是和策略无关的值,所以不改变梯度的期望的值
-w465

实现方法

  • 通过两个估计函数 和 两套参数,分别估计V、Q,进而估计A
    -w476

  • 直接用v值运算
    但是并不需要用2个估计函数,因为TD误差是Q-V的无偏估计

-w457

不同时间尺度下——Eligibility Traces

几种时间尺度下的更新算法

  • 针对Critic过程使用TD(λ)
    -w469

  • 针对Actor过程使用TD(λ)
    -w512

-w473

将TD(λ)的后向视角算法应用于实际问题时,可以在线实时更新,而且不需要完整的Episode。

PG是理论上是基于真实价值函数V(s)的
但是critic给PG提供了V的估计值,进而PG用估计的梯度去更新参数θ
结论是梯度也能使Actor更新到最优策略$\pi$

Natural policy gradient

高斯策略:按照期望和概率执行动作
缺点:对梯度估计不利,收敛性不好

Solution:Natural PG

  • 参数化独立
  • 估计值与真值近似

  • 对目标函数改写(噪声为0下)

  • Fisher information matrix 费雪信息矩阵
    G反应了对估计值的准确程度,值越大,梯度更新越小,抑制噪声

  • Compatible function approximation

  • 简化为

  • 用Critic参数,更新Actor参数

AC算法的进行actor梯度更新的可选形式

只用值函数估计解决优势函数估计

总结PG

-w519


文章作者: Tolshao
版权声明: 本博客所有文章除特別声明外,均采用 CC BY 4.0 许可协议。转载请注明来源 Tolshao !
评论
  目录