Policy Gradient with Baseline

Posted Harris-H

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Policy Gradient with Baseline相关的知识,希望对你有一定的参考价值。

Policy Gradient with Baseline

1.Baseline


Baseline与动作A无关。


因此我们可以把策略梯度改写。


采用Monte Carlo 近似期望。


然后使用随机梯度上升更新 θ \\theta θ


一个好的baseline可以减少方差,加快收敛。


1.1 baseline的选择

b=0时是标准的policy gradient


第二种将b设为 V π ( s t ) V_\\pi(s_t) Vπ(st) ,因为 V π V_\\pi Vπ Q π Q_\\pi Qπ的期望,与 Q π Q_\\pi Qπ接近,且不依赖于 A t A_t At


2.REINFORCE with Baseline

REINFORECE 采用 u t u_t ut作为 Q π Q_\\pi Qπ的Mente Carlo 近似。


同时采用价值网络近似 V π V_\\pi Vπ

2.1 网络结构


2.2 更新网络

记: v ( s t ; w ) − u t = δ t v(s_t;w)-u_t=\\delta_t v(st;w)ut=δt


策略网络采用梯度上升更新参数。


价值网络采用SGD更新参数。


2.3 总结


再完成一句游戏后,观测的轨迹,可以获得多个 u t , δ t u_t,\\delta_t ut,δt ,因此可以进行多次更新。


3. Advantage Actor-Critic (A2C)

与AC不同的是,AC采用 q ( s , t ; w ) q(s,t;w) q(s,t;w)近似 Q π ( s , t ) Q_\\pi(s,t) Qπ(s,t),A2C 是采用 v ( s ; w ) v(s;w) v(s;w)近似 V π ( s ) V_\\pi(s) Vπ(s)


A2C同样基于baseline。


3.1 基本定理

这里证明了几个定理。




同样采用Mente Carlo近似 Q π ( s t , a t ) Q_\\pi(s_t,a_t) Qπ(st,at) V π ( s t ) V_\\pi(s_t) Vπ(st)


3.2 优势函数

我们将这部分称为 优势函数。


使用定理进行等式变形。


我们便可以进行随机梯度上升更新 θ \\theta θ


对于价值网络,我们可以使用TD target更新。



3.3 解释说明



因此当优势函数值为正说明 a t a_t at是好的,否则是坏的。


policy network 通过 s t s_t st 选择 a t a_t at 由环境产生 r t , s t + 1 r_t,s_t+1 rt,st+1,value network 计算 advantage function 用来更新policy network,使用TD算法更新value network。


4.REINFORCE versus A2C

两者网络结构完全相同。




A2C的TD target 可以使用 multi step 更新。


而REINFORECE 使用 u t u_t ut 计算 δ t \\delta_t δt


可以看出,REINFORCE是multi step TD target 的特例。

以上是关于Policy Gradient with Baseline的主要内容,如果未能解决你的问题,请参考以下文章

Phasic Policy Gradient

强化学习--Policy Gradient

pytorch笔记:policy gradient

基于Policy Gradient实现CartPole

强化学习七 - Policy Gradient Methods

Clipped Action Policy Gradient