强化学习|从Policy Gradient到Proximal Policy Optimization

本文详细介绍了从策略梯度方法到PPO算法的发展历程,涵盖了蒙特卡洛策略梯度、带基线的策略梯度、离策略策略梯度及PPO算法的原理与实现细节。

1. 算法的演进(PG to PPO)

在这里插入图片描述

2. PG

不同于参数化动作价值函数,PG选择参数化策略 π ( a ∣ s , θ ) \pi(a|s, \theta) π(as,θ)
在这里插入图片描述

策略参数的学习方法都基于某种性能度量 J ( θ ) J(\theta) J(θ)的梯度,这些梯度是标量 J ( θ ) J(\theta) J(θ)对策略参数的梯度。这些方法的目标是最大化性能指标,所以他们的更新近似于 J J J的梯度上升
θ t + 1 = θ t + ∇ J ( θ ) \theta_{t+1} = \theta_{t} + \nabla J(\boldsymbol{\theta}) θt+1=θt+J(θ)
在分幕式任务中,性能指标 J ( θ ) J(\theta) J(θ)被定义为:在当前参数化策略下初始状态的价值函数;在持续性任务中,性能指标被定义为:平均收益。[我们的性能度量必须要符合这两个定义吗?像PPO的 J ( θ ) J(\theta) J(θ)已经变得面目全非了,那它本质上是不是还归类为上面两类?那在实际问题中的性能指标呢?]

2.1 蒙特卡洛策略梯度

sutton书上的推导比较难懂,但更加严谨,李宏毅公开课上的推导容易理解。

主要思想:
采用蒙特卡洛法进行采样,用样本的均值来近似期望。

推导过程:
∇ J ( θ ) ∝ ∑ s μ ( s ) ∑ a q π ( s , a ) ∇ π ( a ∣ s , θ ) ( 策 略 梯 度 定 理 ) = E π [ ∑ a q π ( S t , a ) ∇ π ( a ∣ S t , θ ) ] 把 对 随 机 变 量 所 有 可 能 的 求 和 运 算 都 化 为 对 π 的 期 望 , 再 对 期 望 采 样 = E π [ ∑ a π ( a ∣ S t , θ ) q π ( S t , a ) ∇ π ( a ∣ S t , θ ) π ( a ∣ S t , θ ) ] = E π [ q π ( S t , A t ) ∇ π ( A t ∣ S t , θ ) π ( A t ∣ S t , θ ) ] ( 用 采 样 A t ∽ π 替 换 a ) = E π [ G t ∇ π ( A t ∣ S t , θ ) π ( A t ∣ S t , θ ) ] ≈ 1 N ∑ n = 1 N ⋅ ∑ t = 1 T n G t n ⋅ ∇ ⋅ log ⁡ π ( A t n ∣ S t n , θ ) ( ? ? ? ) \begin{aligned} \nabla J(\boldsymbol{\theta}) & \propto \sum_{s} \mu(s) \sum_{a} q_{\pi}(s, a) \nabla \pi(a \mid s, \boldsymbol{\theta}) (策略梯度定理)\\ &=\mathbb{E}_{\pi}\left[\sum_{a} q_{\pi}\left(S_{t}, a\right) \nabla \pi\left(a \mid S_{t}, \boldsymbol{\theta}\right)\right] \\ &把对随机变量 所有可能的求和运算都化为对\pi的期望,再对期望采样\\ &=\mathbb{E}_{\pi}\left[\sum_{a} \pi\left(a \mid S_{t}, \boldsymbol{\theta}\right) q_{\pi}\left(S_{t}, a\right) \frac{\nabla \pi\left(a \mid S_{t}, \boldsymbol{\theta}\right)}{\pi\left(a \mid S_{t}, \boldsymbol{\theta}\right)}\right] \\ &=\mathbb{E}_{\pi}\left[q_{\pi}\left(S_{t}, A_{t}\right) \frac{\nabla \pi\left(A_{t} \mid S_{t}, \boldsymbol{\theta}\right)}{\pi\left(A_{t} \mid S_{t}, \boldsymbol{\theta}\right)}\right] (用采样A_t \backsim \pi替换a)\\ &=\mathbb{E}_{\pi}\left[G_{t} \frac{\nabla \pi\left(A_{t} \mid S_{t}, \boldsymbol{\theta}\right)}{\pi\left(A_{t} \mid S_{t}, \boldsymbol{\theta}\right)}\right] \\ &\approx \frac{1}{N} \sum_{n=1}^{N} \cdot \sum_{t=1}^{T_{n}} G_{t}^{n} \cdot \nabla \cdot \log \pi\left(A_{t}^{n} \mid S_{t}^{n}, \boldsymbol{\theta}\right)(??? ) \end{aligned} J(θ)sμ(s)aqπ(s,a)π(as,θ)()=Eπ[aqπ(St,a)π(aSt,θ)]π=Eπ[aπ(aSt,θ)qπ(St,a)π(aSt,θ)π(aSt,θ)]=Eπ[qπ(St,At)π(AtSt,θ)π(AtSt,θ)]Atπa=Eπ[Gtπ(AtSt,θ)π(AtSt,θ)]N1n=1N

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值