PPO.2017
Tittle
标签
- Model-free
- Policy-based
- On-policy
- Continuous State Space
- Continuous Action Space
- Support High-dim Input
总结
针对的问题
TRPO算法虽然取得较好成果,但是相对复杂,不兼容一些包含噪声或者参数共享的架构。
其实和TRPO解决的问题一样,是PG过程中步长的问题,是在TRPO的基础上做了些修改。
解决思路
文章提出了两种方法:
- 方法1 对于Loss函数,如果新旧策略相差很大,采取截断的方法。防止过分大的更新。
- 方法2 动态修改KL乘法系数。效果不如方法1
优点
保留了TRPO的一些优点同时,更加简单、通用并且有更好的采样复杂性
原理和idea
一般来说,PG算法的损失函数
L
P
G
(
θ
)
=
E
t
^
[
log
π
θ
(
a
t
∣
s
t
)
A
^
t
]
L^{PG}(\theta) = \hat{\Bbb{E}_t}[\log \pi_\theta(a_t|s_t)\hat A_t]
LPG(θ)=Et^[logπθ(at∣st)A^t]
A 为Advantage function
在TROP算法中,优化目标是在给定限制下最大化目标函数
max
θ
E
t
^
[
π
θ
(
a
t
∣
s
t
)
π
θ
o
l
d
(
a
t
∣
s
t
)
A
^
t
]
s
t
.
E
t
^
[
K
L
[
π
θ
o
l
d
(
⋅
∣
s
t
)
,
π
θ
(
⋅
∣
s
t
)
]
]
≤
δ
\max _\theta \hat{\Bbb{E}_t}[\frac{\pi_\theta(a_t|s_t)}{\pi_{\theta_{old}}(a_t|s_t)}\hat A_t] \\ st. \hat{\Bbb{E}_t}[KL[\pi_{\theta_{old}}(\cdot|s_t), \pi_\theta(\cdot|s_t)]] \leq \delta
θmaxEt^[πθold(at∣st)πθ(at∣st)A^t]st.Et^[KL[πθold(⋅∣st),πθ(⋅∣st)]]≤δ
TROP 实际上是把限制项放在原始作为批判项
max
θ
E
t
^
[
π
θ
(
a
t
∣
s
t
)
π
θ
o
l
d
(
a
t
∣
s
t
)
A
^
t
]
+
β
(
K
L
[
π
θ
o
l
d
(
⋅
∣
s
t
)
,
π
θ
(
⋅
∣
s
t
)
]
)
\max _\theta \hat{\Bbb{E}_t}[\frac{\pi_\theta(a_t|s_t)}{\pi_{\theta_{old}}(a_t|s_t)}\hat A_t] + \beta ( KL[\pi_{\theta_{old}}(\cdot|s_t), \pi_\theta(\cdot|s_t)] )
θmaxEt^[πθold(at∣st)πθ(at∣st)A^t]+β(KL[πθold(⋅∣st),πθ(⋅∣st)])
由于
β
\beta
β很难选择,所以就使用了限制项。
令 r t ( θ ) = π θ ( a t ∣ s t ) π θ o l d ( a t ∣ s t ) r_t(\theta) = \frac{\pi_\theta(a_t|s_t)}{\pi_{\theta_{old}}(a_t|s_t)} rt(θ)=πθold(at∣st)πθ(at∣st)
借助TROP的思想, 那么
L
C
P
I
(
θ
)
=
E
t
^
[
π
θ
(
a
t
∣
s
t
)
π
θ
o
l
d
(
a
t
∣
s
t
)
A
^
t
]
=
E
t
^
[
r
t
(
θ
)
A
^
t
]
L^{CPI}(\theta) = \hat{\Bbb{E}_t}[\frac{\pi_\theta(a_t|s_t)}{\pi_{\theta_{old}}(a_t|s_t)}\hat A_t] = \hat{\Bbb{E}_t}[r_t(\theta) \hat A_t]
LCPI(θ)=Et^[πθold(at∣st)πθ(at∣st)A^t]=Et^[rt(θ)A^t]
CPI : conservative policy iteration
如果没有TROP里的限制,最大化
L
C
P
I
L^{CPI}
LCPI会导致策略更新过大,PPO的主要解决办法是直接clip,截断处,理
L
C
L
I
P
(
θ
)
=
E
t
^
[
min
(
r
t
(
θ
)
A
^
t
,
c
l
i
p
(
r
t
(
θ
)
,
1
−
ϵ
,
1
+
ϵ
)
A
^
t
)
]
L^{CLIP} (\theta) = \hat{\Bbb{E}_t}[\min (r_t(\theta) \hat A_t, \rm{clip}(r_t(\theta),1-\epsilon, 1+ \epsilon)\hat A_t )]
LCLIP(θ)=Et^[min(rt(θ)A^t,clip(rt(θ),1−ϵ,1+ϵ)A^t)]
这个的意思就是
- A ^ t > 0 \hat A_t > 0 A^t>0 : 整体为正,最大不能超过 ( 1 + ϵ ) A ^ t (1+\epsilon) \hat A_t (1+ϵ)A^t,最小值取决于 r t ( θ ) A ^ t r_t(\theta)\hat A_t rt(θ)A^t
- A ^ t < 0 \hat A_t < 0 A^t<0 :整体为负,最大不能超过 ( 1 + ϵ ) A ^ t (1+\epsilon) \hat A_t (1+ϵ)A^t,最小值取决于 r t ( θ ) A ^ t r_t(\theta)\hat A_t rt(θ)A^t
这篇论文还提出使用
β
\beta
β批判项,但是实验效果差于使用clip