文章目录
前言
2017年的实证研究表明,在大多数场景下,PPO-Clip相较于TRPO和A2C等经典强化学习算法表现更优
强化学习主要分为基于值函数和基于策略的方法,其中,基于策略的强化学习指的是智能体直接学习一个策略,以观察信息为输入,输出相应的动作,并结合多种优化技术,以最大化累计奖励为目标。相比于基于值函数的方法,基于策略的方法在高维、连续动作空间中表现更优,且能够实现更稳定的策略更新。带有裁剪机制的近端策略优化(PPO-Clip)是一种典型的基于策略的强化学习算法,它通过重要性采样降低交互成本,并引入裁剪技术限制策略更新幅度,从而稳定训练过程,使其成为高效且稳健的强化学习方法之一。
上图内容在看懂整篇文章后会自动解锁
一、基于策略的深度强化学习算法基础
基于策略的强化学习算法在强化学习算法入门——目标函数、策略梯度原理与优势函数中进行了详细描述。以下第1节对基础知识进行了总结和概括,而第2节则引入了神经网络,并概述了基于策略的深度强化学习算法的基本流程。
1.策略梯度原理
基于策略的强化学习算法的主要内容是学习一个有效策略,策略的目标是最大化期望累计奖励
R
‾
(
θ
t
)
\overline R(\theta_t)
R(θt),并且
R
‾
(
θ
t
)
\overline R(\theta_t)
R(θt)是带有折扣的:
R
‾
(
θ
t
)
=
E
τ
∼
p
θ
t
(
τ
)
[
R
(
τ
)
]
\overline R(\theta_t)=\mathbb{E}_{\tau\sim p_{\theta_t}(\tau)}[R(\tau)]
R(θt)=Eτ∼pθt(τ)[R(τ)]其中,
E
τ
∼
p
θ
t
(
τ
)
[
⋅
]
\mathbb{E}_{\tau\sim p_{\theta_t}(\tau)}[·]
Eτ∼pθt(τ)[⋅]是指用智能体
θ
t
\theta_t
θt收集轨迹
τ
\tau
τ后,获得·的期望值。
R
(
τ
)
R(\tau)
R(τ)是轨迹
τ
\tau
τ的总累计奖励:
R
(
τ
)
=
∑
t
=
0
T
γ
t
r
t
R(\tau)=\sum_{t=0}^{T}\gamma^tr_{t}
R(τ)=t=0∑Tγtrt其中,
r
t
r_{t}
rt是在时间步
t
{t}
t获得的即时奖励,
γ
∈
[
0
,
1
]
\gamma \in[0,1]
γ∈[0,1]是折扣因子。
为了使策略能够达到这一目标,采用梯度上升的方法来更新智能体
θ
t
\theta_t
θt的内部参数:
θ
t
+
1
=
θ
t
+
α
▽
R
‾
(
θ
t
)
\theta_{t+1}=\theta_t+\alpha\triangledown \overline R(\theta_t)
θt+1=θt+α▽R(θt)其中,
α
\alpha
α为学习率,
▽
R
‾
(
θ
t
)
\triangledown \overline R(\theta_t)
▽R(θt)是指对累计奖励
R
‾
(
θ
t
)
\overline R(\theta_t)
R(θt)求参数
θ
t
\theta_t
θt的导数,
θ
t
+
1
\theta_{t+1}
θt+1是更新后的智能体参数。
在计算
▽
R
‾
(
θ
)
\triangledown\overline R(\theta)
▽R(θ)(这里
θ
t
\theta_t
θt简化为
θ
\theta
θ)时,涉及大量的理论原理和数学公式(详细内容看强化学习算法入门——目标函数、策略梯度原理与优势函数)。最终,得到的策略梯度公式
▽
R
‾
θ
\triangledown\overline{R}_θ
▽Rθ如下:
▽
R
‾
θ
≈
1
N
∑
n
=
1
N
∑
t
=
1
T
n
A
θ
(
s
t
,
a
t
)
▽
l
o
g
p
θ
(
a
t
n
∣
s
t
n
)
\triangledown\overline{R}_θ ≈\frac{1}{N}\sum\limits_{n=1}^N\sum\limits_{t=1}^{T_n}A^\theta(s_t,a_t)\triangledown{log}p_\theta(a_t^n|s_t^n)
▽Rθ≈N1n=1∑Nt=1∑TnAθ(st,at)▽logpθ(atn∣stn)其中,
▽
l
o
g
p
θ
(
a
t
n
∣
s
t
n
)
\triangledown{log}p_\theta(a_t^n|s_t^n)
▽logpθ(atn∣stn)表示对智能体
θ
\theta
θ在状态
s
t
n
s_t^n
stn时做出动作
a
t
n
a_t^n
atn的概率
p
p
p依次求对数和梯度。优势函数
A
θ
(
s
t
,
a
t
)
A^\theta(s_t,a_t)
Aθ(st,at)公式如下:
A
θ
(
s
t
,
a
t
)
=
∑
t
′
=
t
T
n
γ
t
′
=
t
r
t
′
n
−
b
A^\theta(s_t,a_t)=\sum\limits_{t'=t}^{T_n}\gamma^{t'=t}r_{t'}^n-b
Aθ(st,at)=t′=t∑Tnγt′=trt′n−b
其中,基线
b
b
b作为对未来累计奖励的一种修正,旨在保持奖励的正负均衡,避免因采样偏差导致的概率计算失衡。基线通常取未来累计奖励的均值,并可借助神经网络进行估计。
2.基于策略的深度强化学习算法流程
在实际应用策略梯度算法时,与环境交互的智能体(Agent)通常由两部分组成,即Actor和Critic。
Actor是策略的核心执行者,通常采用深度神经网络实现。它以观察信息作为输入,输出相应的动作,并基于策略梯度算法更新自身参数。
Critic负责计算基线
b
b
b的数值,基线
b
b
b代表未来累计奖励的均值,本质上也是对当前状态的价值估计。Critic 通常也由深度神经网络实现。
agent与环境的交互过程如下:
1、智能体
θ
\theta
θ与环境互动,收集大量数据;
2、根据数据和相关公式计算优势函数
A
θ
(
s
,
a
)
A^\theta(s,a)
Aθ(s,a);
3、计算策略梯度值
▽
R
‾
θ
\triangledown\overline{R}_θ
▽Rθ;
4、通过梯度上升更新参数,得到新的策略参数
θ
′
\theta'
θ′;
5、重复执行步骤 1-4,不断优化策略。
二、重要性采样
在基于策略的强化学习算法流程中,智能体需要不断与环境交互和学习,通过积累经验来更新自身的策略参数,使其逐步优化。然而,在计算策略梯度的过程中,每次更新都需要计算基于总奖励的期望值,这对数据需求极为庞大。此外,每次更新策略参数后,先前使用参数 θ \theta θ采样得到的数据(如 p θ ( a t n ∣ s t n ) p_\theta(a_t^n|s_t^n) pθ(atn∣stn))便不再适用,需要重新采样新的数据集。这种方法不仅大幅增加了计算和存储开销,还导致训练过程耗时冗长,降低了算法的效率。
1.重要性采样的原理
为了减少交互时间和存储开销,可以引入重要性采样(Importance Sampling)原理,对原始更新公式进行优化,使智能体能够利用历史交互数据来更新当前的策略参数。这样不仅避免了每次策略更新后都必须重新采样,还能显著提高训练效率。
重要性采样的原理如下:
假设有一个函数
f
(
x
)
f(x)
f(x),从概率分布为
p
p
p的分布中采样出x,并计算得出的
f
(
x
)
f(x)
f(x)。用采样求均值的方法对
f
(
x
)
f(x)
f(x)求期望:
E x ∼ p [ f ( x ) ] ≈ 1 N ∑ i = 1 N f ( x i ) \mathbb{E}_{x\sim p}[f(x)]\approx \frac{1}{N}\sum\limits_{i=1}^Nf(x_i) Ex∼p[f(x)]≈N1i=1∑Nf(xi)同样,期望值还可以用积分来表示:
E x ∼ p [ f ( x ) ] = ∫ f ( x ) p ( x ) d x \mathbb{E}_{x\sim p}[f(x)]=\int_{}^{}f(x)p(x)dx Ex∼p[f(x)]=∫f(x)p(x)dx
上式可做如下变换:
∫ f ( x ) p ( x ) d x = ∫ f ( x ) p ( x ) q ( x ) q ( x ) d x \int_{}^{}f(x)p(x)dx=\int_{}^{}f(x)\frac{p(x)}{q(x)}q(x)dx ∫f(x)p(x)dx=∫f(x)q(x)p(x)q(x)dx
其中, p p p和 q q q都一种概率分布。
那么,上述公式也可以写成:
∫ f ( x ) p ( x ) q ( x ) q ( x ) d x = E x ∼ q [ f ( x ) p ( x ) q ( x ) ] \int_{}^{}f(x)\frac{p(x)}{q(x)}q(x)dx=\mathbb{E}_{x\sim q}[f(x)\frac{p(x)}{q(x)}] ∫f(x)q(x)p(x)q(x)dx=Ex∼q[f(x)q(x)p(x)]
也就是说:
E x ∼ p [ f ( x ) ] = E x ∼ q [ f ( x ) p ( x ) q ( x ) ] \mathbb{E}_{x\sim p}[f(x)]=\mathbb{E}_{x\sim q}[f(x)\frac{p(x)}{q(x)}] Ex∼p[f(x)]=Ex∼q[f(x)q(x)p(x)]
上面公式的含义就是:从概率为 p p p的分布中取出 x x x,对 f ( x ) f(x) f(x)求期望值,就等于从概率为 q q q的分布中取出 x x x,对 f ( x ) p ( x ) q ( x ) f(x)\frac{p(x)}{q(x)} f(x)q(x)p(x)求期望值。我们发现,即使不从概率 p p p中采样,只需要知道 x x x分别在 p p p和 q q q中的概率值,就可以以加权的方式求得 f ( x ) f(x) f(x)在概率 p p p中的期望值。
我们将 p ( x ) q ( x ) \frac{p(x)}{q(x)} q(x)p(x)称之为重要性权重,用来修正这两个分布之间的差异。
所以,当用 θ ′ \theta' θ′参数的智能体与环境进行交互时,获取的交互数据用来更新 θ \theta θ,就变得现实起来了。计算策略梯度的转换公式为:
▽
R
‾
(
θ
)
=
E
τ
∼
p
θ
(
τ
)
[
R
(
τ
)
▽
l
o
g
p
θ
(
τ
)
]
=
E
τ
∼
p
θ
′
(
τ
)
[
p
θ
(
τ
)
p
θ
′
(
τ
)
R
(
τ
)
▽
l
o
g
p
θ
(
τ
)
]
\triangledown\overline{R}(θ)=\mathbb{E}_{\tau\sim p_\theta(\tau)}[R(\tau)\triangledown log p_{\theta}(\tau)]=\mathbb{E}_{\tau\sim p_\theta'(\tau)}[\frac{p_\theta(\tau)}{p_\theta'(\tau)}R(\tau)\triangledown log p_{\theta}(\tau)]
▽R(θ)=Eτ∼pθ(τ)[R(τ)▽logpθ(τ)]=Eτ∼pθ′(τ)[pθ′(τ)pθ(τ)R(τ)▽logpθ(τ)]
根据该公式,可以分布两个智能体:一个负责与环境交互并生成数据,另一个基于收集的数据和公式更新策略参数。在实际应用中,通常仅使用一个智能体,该智能体在更新时会存储并利用旧策略交互的数据进行优化。本质上,这两种方式遵循相同的原理。
2.重要性采样的约束
利用重要性权重,可以确保两个不同概率分布之间的期望值相等,但它们的方差未必一致。
下面分别求一下
f
(
x
)
f(x)
f(x)和
f
(
x
)
p
(
x
)
q
(
x
)
f(x)\frac{p(x)}{q(x)}
f(x)q(x)p(x)的方差,按照方差公式
V
a
r
[
x
]
=
E
[
x
2
]
−
(
E
[
x
]
)
2
Var[x]=E[x^2]-(E[x])^2
Var[x]=E[x2]−(E[x])2:
V x ∼ p [ f ( x ) ] = E x ∼ p [ f ( x ) 2 ] − ( E x ∼ p [ f ( x ) ] ) 2 \mathbb{V}_{x\sim p}[f(x)]= \mathbb{E}_{x\sim p}[f(x)^2]-(\mathbb{E}_{x\sim p}[f(x)])^2 Vx∼p[f(x)]=Ex∼p[f(x)2]−(Ex∼p[f(x)])2 V x ∼ q [ f ( x ) p ( x ) q ( x ) ] = E x ∼ q [ ( f ( x ) p ( x ) q ( x ) ) 2 ] − ( E x ∼ p [ f ( x ) p ( x ) q ( x ) ] ) 2 = E x ∼ p [ ( f ( x ) ) 2 p ( x ) q ( x ) ] − ( E x ∼ p [ f ( x ) ] ) 2 \mathbb{V}_{x\sim q}[f(x)\frac{p(x)}{q(x)}]= \mathbb{E}_{x\sim q}[(f(x)\frac{p(x)}{q(x)})^2]-(\mathbb{E}_{x\sim p}[f(x)\frac{p(x)}{q(x)}])^2\\=\mathbb{E}_{x\sim p}[(f(x))^2\frac{p(x)}{q(x)}]-(\mathbb{E}_{x\sim p}[f(x)])^2 Vx∼q[f(x)q(x)p(x)]=Ex∼q[(f(x)q(x)p(x))2]−(Ex∼p[f(x)q(x)p(x)])2=Ex∼p[(f(x))2q(x)p(x)]−(Ex∼p[f(x)])2
可知,两者方差的差异在于,概率分布 q q q方差的第一项额外乘了一个权重因子 p ( x ) / q ( x ) p(x)/q(x) p(x)/q(x)。
两者方差不一样会导致的后果如下:
由于期望的计算公式是通过对 N N N 个采样数据取平均值来估计的,当采样数量足够多(即 N N N足够大)时,方差的不同理论上不会对最终的期望估计产生显著影响。然而,在实际应用中,无法确保采样的数据量始终足够大。因此,当两个分布的方差相差过大时,基于采样均值的方法可能难以使得两者的期望值逼近相等。
所以,我们需要尽可能地保证 p ( x ) / q ( x ) p(x)/q(x) p(x)/q(x)差距不会太大,上面的理论实现起来才更准确。
三、近端策略优化
PPO-clip由于其稳定性好与复杂度低等优势,比PPO-penalty更被广泛应用
1.PPO
如果需要更新的智能体参数为 θ \theta θ,实际与环境交互的智能体参数为 θ ′ \theta' θ′。将重要性采样和策略梯度公式结合后,更新 θ \theta θ参数的梯度公式为:
▽ R ‾ θ ≈ 1 N ∑ n = 1 N ∑ t = 1 T n p θ ( s t , a t ) p θ ′ ( s t , a t ) A θ ( s t , a t ) ▽ l o g p θ ( a t n ∣ s t n ) \triangledown\overline{R}_θ ≈\frac{1}{N}\sum\limits_{n=1}^N\sum\limits_{t=1}^{T_n}\frac{p_\theta(s_t,a_t)}{p_{\theta'}(s_t,a_t) }A^\theta(s_t,a_t)\triangledown{log}p_\theta(a_t^n|s_t^n) ▽Rθ≈N1n=1∑Nt=1∑Tnpθ′(st,at)pθ(st,at)Aθ(st,at)▽logpθ(atn∣stn)
其中, N N N和 T n T_n Tn分别是智能体 θ ′ \theta' θ′与环境交互采样出来的轨迹数量和某个轨迹下的交互次数。写成期望的形式更容易理解:
E ( s t , a t ) ∼ π θ ′ [ p θ ( s t , a t ) p θ ′ ( s t , a t ) A θ ( s t , a t ) ▽ l o g p θ ( a t n ∣ s t n ) ] \mathbb{E}_{(s_t,a_t)\sim\pi_{\theta'}}[\frac{p_\theta(s_t,a_t)}{p_{\theta'}(s_t,a_t) }A^\theta(s_t,a_t)\triangledown{log}p_\theta(a_t^n|s_t^n)] E(st,at)∼πθ′[pθ′(st,at)pθ(st,at)Aθ(st,at)▽logpθ(atn∣stn)]
值得注意的是,优势函数 A θ ( s t , a t ) A^\theta(s_t,a_t) Aθ(st,at)的数值是用智能体 θ \theta θ与环境交互求出来的奖励值加权总和,理论上用智能体 θ ′ \theta' θ′与环境交互时只能得到 A θ ′ ( s t , a t ) A^{\theta'}(s_t,a_t) Aθ′(st,at),所以通常用 A θ ′ ( s t , a t ) A^{\theta'}(s_t,a_t) Aθ′(st,at)来替代 A θ ( s t , a t ) A^\theta(s_t,a_t) Aθ(st,at),也就是假设两个智能体与环境交互后得到的优势函数是差不多的。
接下来,简化上面的梯度公式,我们运用联合概率公式 p θ ( s t , a t ) = p θ ( a t ∣ s t ) p θ ( s t ) p_{\theta}(s_t,a_t)=p_{\theta}(a_t|s_t)p_{\theta}(s_t) pθ(st,at)=pθ(at∣st)pθ(st):
E ( s t , a t ) ∼ π θ ′ [ p θ ( a t ∣ s t ) p θ ( s t ) p θ ′ ( a t ∣ s t ) p θ ′ ( s t ) A θ ′ ( s t , a t ) ▽ l o g p θ ( a t n ∣ s t n ) ] \mathbb{E}_{(s_t,a_t)\sim\pi_{\theta'}}[\frac{p_\theta(a_t|s_t)p_{\theta}(s_t)}{p_{\theta'}(a_t|s_t)p_{\theta'}(s_t) }A^{\theta'}(s_t,a_t)\triangledown{log}p_\theta(a_t^n|s_t^n)] E(st,at)∼πθ′[pθ′(at∣st)pθ′(st)pθ(at∣st)pθ(st)Aθ′(st,at)▽logpθ(atn∣stn)]
这里需要知道,无论采用何种参数的智能体,环境出现 s t s_t st的概率是一样的,即 p θ ( s t ) = p θ ′ ( s t ) p_{\theta}(s_t)=p_{\theta'}(s_t) pθ(st)=pθ′(st),所以上式进一步优化为:
E ( s t , a t ) ∼ π θ ′ [ p θ ( a t ∣ s t ) p θ ′ ( a t ∣ s t ) A θ ′ ( s t , a t ) ▽ l o g p θ ( a t n ∣ s t n ) ] \mathbb{E}_{(s_t,a_t)\sim\pi_{\theta'}}[\frac{p_\theta(a_t|s_t)}{p_{\theta'}(a_t|s_t) }A^{\theta'}(s_t,a_t)\triangledown{log}p_\theta(a_t^n|s_t^n)] E(st,at)∼πθ′[pθ′(at∣st)pθ(at∣st)Aθ′(st,at)▽logpθ(atn∣stn)]
上述方程即为采用重要性采样对目标函数进行求导后的策略梯度计算方程。
通常不会直接使用该方程进行梯度计算,而是采用其积分函数(即目标函数)进行优化,并在此基础上进行改进。这些改进方法能够有效缓解两个智能体参数相差过大等问题,提高训练的稳定性和收敛效率。
可以直接利用
▽
f
(
x
)
=
f
(
x
)
▽
l
o
g
f
(
x
)
\triangledown f(x)=f(x)\triangledown log f(x)
▽f(x)=f(x)▽logf(x)对上面策略梯度方程求积分,计算一下它的目标函数:
J
θ
′
(
θ
)
=
E
(
s
t
,
a
t
)
∼
π
θ
′
[
p
θ
(
a
t
∣
s
t
)
p
θ
′
(
a
t
∣
s
t
)
A
θ
′
(
s
t
,
a
t
)
]
J^{\theta'}(\theta)=\mathbb{E}_{(s_t,a_t)\sim\pi_{\theta'}}[\frac{p_\theta(a_t|s_t)}{p_{\theta'}(a_t|s_t) }A^{\theta'}(s_t,a_t)]
Jθ′(θ)=E(st,at)∼πθ′[pθ′(at∣st)pθ(at∣st)Aθ′(st,at)]这里需要利用
▽
J
(
x
)
=
J
(
x
)
▽
l
o
g
J
(
x
)
\triangledown J(x)=J(x)\triangledown log J(x)
▽J(x)=J(x)▽logJ(x),注意
p
θ
′
(
a
t
∣
s
t
)
p_{\theta'}(a_t|s_t)
pθ′(at∣st)和
A
θ
′
(
s
t
,
a
t
)
A^{\theta'}(s_t,a_t)
Aθ′(st,at)在对
θ
\theta
θ求导时为常数。
为了解决上面提到的两个智能体参数相差太大导致重要性采样公式不可用的问题,PPO考虑给两个智能体参数
θ
\theta
θ和
θ
′
\theta'
θ′之间加一个约束:
J
P
P
O
θ
′
(
θ
)
=
J
θ
′
(
θ
)
−
β
K
L
(
θ
,
θ
′
)
J_{PPO}^{\theta'}(\theta)=J^{\theta'}(\theta)-\beta KL(\theta, \theta')
JPPOθ′(θ)=Jθ′(θ)−βKL(θ,θ′)
其中,
K
L
(
θ
,
θ
′
)
KL(\theta, \theta')
KL(θ,θ′)是指
θ
\theta
θ和
θ
′
\theta'
θ′输出动作的KL散度,用以描述两个智能体行为之间的距离,
β
\beta
β是一个动态值。由于计算KL散度的过程有些复杂,另一种解决参数相差太大的方法是PPO-Clip算法,该方法具有更小的复杂度,是一种常用的方案。
2. PPO-clip
PPO-clip对上面的目标函数 J θ ′ ( θ ) J^{\theta'}(\theta) Jθ′(θ)进行了修改:
J P P O − c l i p θ ′ ( θ ) ≈ ∑ ( s t , a t ) m i n ( p θ ( a t ∣ s t ) p θ ′ ( a t ∣ s t ) A θ ′ ( s t , a t ) , c l i p ( p θ ( a t ∣ s t ) p θ ′ ( a t ∣ s t ) , 1 − ϵ , 1 + ϵ ) A θ ′ ( s t , a t ) ) J^{\theta'}_{PPO-clip}(\theta)\approx\sum\limits_{(s_t,a_t)}min(\frac{p_{\theta}(a_t|s_t)}{p_{\theta'}(a_t|s_t)}A^{\theta'}(s_t,a_t),clip(\frac{p_{\theta}(a_t|s_t)}{p_{\theta'}(a_t|s_t)},1-\epsilon,1+\epsilon)A^{\theta'}(s_t,a_t)) JPPO−clipθ′(θ)≈(st,at)∑min(pθ′(at∣st)pθ(at∣st)Aθ′(st,at),clip(pθ′(at∣st)pθ(at∣st),1−ϵ,1+ϵ)Aθ′(st,at))
下面我们来逐步解读一下该目标函数 J P P O − c l i p θ ′ ( θ ) J^{\theta'}_{PPO-clip}(\theta) JPPO−clipθ′(θ)的含义:
1、将
p
θ
(
a
t
∣
s
t
)
p
θ
′
(
a
t
∣
s
t
)
\frac{p_{\theta}(a_t|s_t)}{p_{\theta'}(a_t|s_t)}
pθ′(at∣st)pθ(at∣st)约束于
[
1
−
ϵ
,
1
+
ϵ
]
[1-\epsilon,1+\epsilon]
[1−ϵ,1+ϵ]之间:
∑
(
s
t
,
a
t
)
c
l
i
p
(
p
θ
(
a
t
∣
s
t
)
p
θ
′
(
a
t
∣
s
t
)
,
1
−
ϵ
,
1
+
ϵ
)
A
θ
′
(
s
t
,
a
t
)
\sum\limits_{(s_t,a_t)}clip(\frac{p_{\theta}(a_t|s_t)}{p_{\theta'}(a_t|s_t)},1-\epsilon,1+\epsilon)A^{\theta'}(s_t,a_t)
(st,at)∑clip(pθ′(at∣st)pθ(at∣st),1−ϵ,1+ϵ)Aθ′(st,at)该公式里的
c
l
i
p
(
)
clip()
clip()函数表示为:如果第一项小于第二项,则输出第二项,如果第一项大于第三项,则输出第三项,否则输出第一项。
c l i p ( ) clip() clip()函数正好限制了 p θ ( a t ∣ s t ) p θ ′ ( a t ∣ s t ) \frac{p_{\theta}(a_t|s_t)}{p_{\theta'}(a_t|s_t)} pθ′(at∣st)pθ(at∣st)的界限,即 p θ ( a t ∣ s t ) p θ ′ ( a t ∣ s t ) \frac{p_{\theta}(a_t|s_t)}{p_{\theta'}(a_t|s_t)} pθ′(at∣st)pθ(at∣st)不能够超出 [ 1 − ϵ , 1 + ϵ ] [1-\epsilon,1+\epsilon] [1−ϵ,1+ϵ]这个范围。
2、对整个目标函数进行约束:
2.1 假设: A θ ′ ( s t , a t ) > 0 A^{\theta'}(s_t,a_t)>0 Aθ′(st,at)>0
c l i p ( ) clip() clip()公式内的取值范围为: [ ( 1 − ϵ ) A θ ′ ( s t , a t ) , ( 1 + ϵ ) A θ ′ ( s t , a t ) ] [(1-\epsilon)A^{\theta'}(s_t,a_t),(1+\epsilon)A^{\theta'}(s_t,a_t)] [(1−ϵ)Aθ′(st,at),(1+ϵ)Aθ′(st,at)]
整个目标函数的取值范围为:
[
p
θ
(
a
t
∣
s
t
)
p
θ
′
(
a
t
∣
s
t
)
A
θ
′
(
s
t
,
a
t
)
,
(
1
+
ϵ
)
A
θ
′
(
s
t
,
a
t
)
]
[\frac{p_{\theta}(a_t|s_t)}{p_{\theta'}(a_t|s_t)}A^{\theta'}(s_t,a_t),(1+\epsilon)A^{\theta'}(s_t,a_t)]
[pθ′(at∣st)pθ(at∣st)Aθ′(st,at),(1+ϵ)Aθ′(st,at)]
当优势函数为正,即这个状态-动作是好的。更新过程中,目标函数会让 p θ ( a t ∣ s t ) p_{\theta}(a_t|s_t) pθ(at∣st)更大(即在状态 s t s_t st下更大概率选择 a t a_t at),这样会导致误差越来越大。但由于 c l i p ( ) clip() clip()函数的限制, p θ ( a t ∣ s t ) p θ ′ ( a t ∣ s t ) \frac{p_{\theta}(a_t|s_t)}{p_{\theta'}(a_t|s_t)} pθ′(at∣st)pθ(at∣st)不能超过 ( 1 + ϵ ) (1+\epsilon) (1+ϵ)。这个改进就是在告诉目标函数,可以让 p θ ( a t ∣ s t ) p_{\theta}(a_t|s_t) pθ(at∣st)更大,但是超过一定界限后,就没有奖励了。
2.2 假设: A θ ′ ( s t , a t ) < 0 A^{\theta'}(s_t,a_t)<0 Aθ′(st,at)<0
c l i p ( ) clip() clip()公式内的取值范围为: [ ( 1 + ϵ ) A θ ′ ( s t , a t ) , ( 1 − ϵ ) A θ ′ ( s t , a t ) ] [(1+\epsilon)A^{\theta'}(s_t,a_t),(1-\epsilon)A^{\theta'}(s_t,a_t)] [(1+ϵ)Aθ′(st,at),(1−ϵ)Aθ′(st,at)]
整个目标函数的取值范围为:
[
p
θ
(
a
t
∣
s
t
)
p
θ
′
(
a
t
∣
s
t
)
A
θ
′
(
s
t
,
a
t
)
,
(
1
−
ϵ
)
A
θ
′
(
s
t
,
a
t
)
]
[\frac{p_{\theta}(a_t|s_t)}{p_{\theta'}(a_t|s_t)}A^{\theta'}(s_t,a_t),(1-\epsilon)A^{\theta'}(s_t,a_t)]
[pθ′(at∣st)pθ(at∣st)Aθ′(st,at),(1−ϵ)Aθ′(st,at)]
当优势函数为负,即这个状态-动作是坏的。更新过程中,目标函数会让 p θ ( a t ∣ s t ) p_{\theta}(a_t|s_t) pθ(at∣st)更小(即在状态 s t s_t st下更小概率选择 a t a_t at),这样也会导致两个智能体越来越大的偏差。但由于 c l i p ( ) clip() clip()函数的限制, p θ ( a t ∣ s t ) p θ ′ ( a t ∣ s t ) \frac{p_{\theta}(a_t|s_t)}{p_{\theta'}(a_t|s_t)} pθ′(at∣st)pθ(at∣st)不会比 ( 1 − ϵ ) (1-\epsilon) (1−ϵ)更小。这个改进就是在告诉目标函数,可以让 p θ ( a t ∣ s t ) p_{\theta}(a_t|s_t) pθ(at∣st)更小,但是超过一定界限后,就没有奖励了。
总之,PPO -clip通过裁剪机制限制策略更新幅度,防止了策略在训练过程中发生剧烈变化,能够确保学习过程更加稳健。
总结
本文重点介绍了当前较为流行的深度强化学习算法 PPO-Clip,并回顾了基于策略的强化学习算法的基础知识。文章重点解析了 PPO-Clip 的两大核心技术:重要性采样和裁剪函数,并对其原理进行了深入剖析。内容详尽透彻,适合具备强化学习基础的初学者入门学习PPO算法。