强化学习系列之 Proximal Policy Optimization(PPO)

本文深入讲解了Proximal Policy Optimization (PPO)算法,一种基于Policy Gradient的改进方法。通过重要性采样和限制策略更新的策略,PPO解决了数据重复使用的问题,提高了学习效率。文章详细介绍了PPO的数学原理,包括公式推导和与TRPO的关系。

1、前言

个人感觉这里讲的非常好:https://spinningup.openai.com/en/latest/algorithms/ppo.html

Proximal Policy Optimization(PPO)是 Policy Gradient 的一种变形,关于 Policy Gradient 有兴趣的同学可以去看我另一篇博:强化学习系列之Policy Gradient

首先我们需要了解两个概率:On-policy 和 Off-policy。我们知道在强化学习里面,我们要学习的就是一个 Agent 。如果我们要学习的 Agent 和与环境互动的 Agent 是同一个的话,那么这样叫做 On-policy,反之就是 Off-policy。更形象地来说,就是要学习的那个 Agent 一边与环境互动一边学习,这样就是 On-policy;如果他在旁边看别人玩,来学习的话,叫做 off-policy。

在 Policy Gradient 中,我们知道,每一次更新,我们都需要 sample 很多 data,更新后,这些 data 就没有用了,Proximal Policy Optimization就是解决的这个问题。

2、重要性采样

重要性采样是一个通用的方法,因为后面需要用到,所以在这写一下,这个我也有单独写一个博客,有兴趣的可以去看一下。

重要性采样是用一个新的采样分布来代替原有的采样分布,使得采样更加容易或高效
E x ∼ p [ f ( x ) ] = ∫ f ( x ) p ( x ) d x = ∫ f ( x ) p ( x ) q ( x ) q ( x ) d x = E x ∼ q [ f ( x ) p ( x ) q ( x ) ] \begin{aligned} E_{x \sim p}[f(x)] &= \int f(x)p(x)dx\\\\ &= \int f(x) \frac{p(x)}{q(x)}q(x)dx \\\\ &= E_{x \sim q}[f(x) \frac{p(x)}{q(x)}] \end{aligned} Exp[f(x)]=f(x)p(x)dx=f(x)q(x)p(x)q(x)dx=Exq[f(x)q(x)p(x)]
从式子中我们可以看出,我们不直接从 p ( x ) p(x) p(x) 里面采样,而是从 q ( x ) q(x) q(x) 里面采样,但是由于两个分布之间有差异,所以我们乘以一个 p ( x ) q ( x ) \frac{p(x)}{q(x)} q(x)p(x) 以消除这两个分布间的差异。

3、公式推导

在 Policy Gradient 中,我们对 Reward 的期望求梯度:
∇ R θ ‾ = E τ ∼ p θ ( τ ) [ R ( τ ) ∇ log ⁡ p θ ( τ ) ] \begin{aligned} \nabla \overline{R_\theta} &= E_{ {\tau} \sim {p_{\theta}(\tau)}} [R(\tau) \nabla \log p_\theta (\tau)] \\\\ \end{aligned} Rθ=Eτpθ(τ)[R(τ)logpθ(τ)]
根据重要性采样变换后:
∇ R θ ‾ = E τ ∼ p θ ′ ( τ ) [ p θ ( τ ) p θ ′ ( τ ) R ( τ ) ∇ log ⁡ p θ ( τ ) ] \begin{aligned} \nabla \overline{R_\theta} &= E_{ {\tau} \sim {p_{ {\theta}'}(\tau)}} [\frac{p_{\theta}(\tau)}{p_{ {\theta}'}(\tau)} R(\tau) \nabla \log p_\theta (\tau)] \\\\ \end{aligned} Rθ=Eτpθ(τ)[

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值