【强化学习】策略梯度及PPO算法

策略梯度公式如下:

E_{\tau \sim p_{\theta}(\tau )}\left [ R\left ( \tau \right )\nabla \log_{}{p_{\theta}(\tau)}\right ]\approx \frac{1}{N}\sum_{n=1}^{N}R\left ( \tau ^{n} \right )\nabla\log_{}{p_{\theta}(\tau ^{n})}= \frac{1}{N}\sum_{n=1}^{N}\sum_{t=1}^{T_{n}}R\left ( \tau ^{n} \right )\nabla\log_{}{p_{\theta}(a_{t}^{n}\mid s_{t}^{n})}

策略梯度公式的计算过程:

优化目标为最大化 reward 函数,即通过调整 \theta,使得期望回报最大,公式表示如下:

J\left ( \theta \right )= E_{\tau \sim p_{\theta}\left ( \tau \right )}\left [ \sum_{t}^{}r\left ( s_{t}, a_{t} \right ) \right ]

\tau 表示一个 Episode 内由 State 和 Action 组成的完整序列。我们通常采用梯度上升\left ( Gradient\;ascent \right ) 算法来求解最大值问题,即:

\theta ^{*}= \theta +\alpha\nabla J\left ( \theta \right )

计算策略梯度即计算回报函数 J\left ( \theta \right ) 关于\theta的梯度,计算方法如下:

\nabla_{\theta }J\left ( \theta \right )= \int \nabla_{\theta }p_{\theta }\left ( \tau \right )r\left ( \tau \right ){\mathrm{d} \tau }= \int p_{\theta }\nabla_{\theta }\log_{}{p_{\theta }\left ( \tau \right )}r\left ( \tau \right ){\mathrm{d} \tau }=E_{\tau \sim p_{\theta}(\tau )}\left [\nabla_{\theta }\log_{}{p_{\theta }\left ( \tau \right )}r\left ( \tau \right ) \right ]

其中,

p_{\theta}(\tau )=p\left ( s_{1} \right )\prod_{t=1}^{T}\pi _{\theta }\left ( a_{t}\mid s_{t} \right )p\left ( s_{t+1} \mid s_{t}, a_{t} \right )

取对数,

\log_{}{p_{\theta}(\tau )}=\log_{}{p\left ( s_{1} \right )}+\prod_{t=1}^{T}\log_{}{\pi _{\theta }\left ( a_{t}\mid s_{t} \right )p\left ( s_{t+1} \mid s_{t}, a_{t} \right )}

继续求导,

\nabla_{\theta }\log_{}{p_{\theta}(\tau )}=\sum_{t=1}^{T}\nabla_{\theta }\log_{}{\pi _{\theta }\left ( a_{t}\mid s_{t} \right )}

代入可得,

\nabla_{\theta }J\left ( \theta \right )= E_{\tau \sim p_{\theta}(\tau )}\left [\nabla_{\theta }\log_{}{p_{\theta }\left ( \tau \right )}r\left ( \tau \right ) \right ]=\frac{1}{N}\sum_{i=1}^{N}\left [ \left ( \sum_{t=1}^{T}\nabla_{\theta }\log_{}{\pi_{\theta }\left ( a_{i, t} \mid s_{i, t} \right )}\right )\left ( \sum_{t=1}^{T}r\left ( s_{i, t} , a_{i, t} \right ) \right ) \right ]

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值