使用off policy代替on policy的前提是,pθ和pθ′不能差太多,否则效果不好。
问:如何保证“pθ和pθ′不能差太多”?
答:近端优化策略 PPO/TRPO
1. PPO 正则化
对Jθ′(θ)增加一个正则化项:
JPPOθ′(θ)=Jθ′(θ)−βKL(θ,θ′)
2. TRPO 带限制最优化
JTRPOθ′(θ)=Jθ′(θ)s.t.KL(θ,θ′)<S
3. KL(θ,θ′)KL(\theta, \theta')KL(θ,θ′)
KL(θ,θ′)代表参数θ和θ′的距离。但不是它们的欧式距离或者KL散度。
而是这两个参数对某个state产生的action的分布的KL散度。
4. PPO算法过程
- 初始化θ0
- 使用θk与环境互动,收集{st,at},计算Aθst,at
- 更新θ,优化以下目标,可进行多次迭代:
JPPOθk(θ)=Jθk(θ)−βKL(θ,θk)Jθk(θ)≈st,at∑pθk(at∣st)pθ(at∣st)Aθk(st,at)
- 多次迭代后调整β:
if KL(θ,θk) > threshold_max, then β↑
if KL(θ,θk) < threshold_min, then β↓
5. PPO2算法过程
- 同上
- 同上
- 目标函数替换为:
JPPO2θk(θ)PA===st,at∑min(PA,clip(P,1−ϵ,1+ϵ)A)pθk(at∣st)pθ(at∣st)Aθk(st,at)
P、A是我为了简化表达自己加的变量。这个公式的直观解释如下:
图中绿色虚线代表P,蓝色虚线代表clip(P,1−ϵ,1+ϵ)
结合上后面的A:
当A>0时,实际生效的是P是左图红色部分。当A<0时,实际生效的是右图红色部分。这是min的效果。 假设a="">0,
希望pθ(at∣st)越大越好 ---> 沿红线上移
不希望P太大 ---> 移到1+ϵ就没有benefit了,就不会动了。
A<0情况同理。 0时,实际生效的是右图红色部分。这是min的效果。>