Files
easy-rl/docs/chapter5/chapter5_questions&keywords.md
2020-10-23 17:24:53 +08:00

32 lines
4.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# Chapter5 Proximal Policy Optimization(PPO)
## 1 Keywords
- **on-policy(同策略)** 要learn的agent和环境互动的agent是同一个时对应的policy。
- **off-policy(异策略)** 要learn的agent和环境互动的agent不是同一个时对应的policy。
- **important sampling重要性采样** 使用另外一种数据分布,来逼近所求分布的一种方法,在强化学习中通常和蒙特卡罗方法结合使用,公式如下:$\int f(x) p(x) d x=\int f(x) \frac{p(x)}{q(x)} q(x) d x=E_{x \sim q}[f(x){\frac{p(x)}{q(x)}}]=E_{x \sim p}[f(x)]$ 我们在已知 $q$ 的分布后,可以使用上述公式计算出从 $p$ 这个distribution sample x 代入 $f$ 以后所算出来的期望值。
- **Proximal Policy Optimization (PPO)** 避免在使用important sampling时由于在 $\theta$ 下的 $p_{\theta}\left(a_{t} | s_{t}\right)$ 跟 在 $\theta '$ 下的 $p_{\theta'}\left(a_{t} | s_{t}\right)$ 差太多导致important sampling结果偏差较大而采取的算法。具体来说就是在training的过程中增加一个constrain这个constrain对应着 $\theta$ 跟 $\theta'$ output 的 action 的 KL divergence来衡量 $\theta$ 与 $\theta'$ 的相似程度。
## 2 Questions
- 基于on-policy的policy gradient有什么可改进之处或者说其效率较低的原因在于
答:
- 经典policy gradient的大部分时间花在sample data处即当我们的agent与环境做了交互后我们就要进行policy model的更新。但是对于一个回合我们仅能更新policy model一次更新完后我们就要花时间去重新collect data然后才能再次进行如上的更新。
- 所以我们的可以自然而然地想到使用off-policy方法使用另一个不同的policy和actor与环境进行互动并用collect data进行原先的policy的更新。这样等价于使用同一组data在同一个回合我们对于整个的policy model更新了多次这样会更加有效率。
- 使用important sampling时需要注意的问题有哪些。
我们可以在important sampling中将 $p$ 替换为任意的 $q$,但是本质上需要要求两者的分布不能差的太多,即使我们补偿了不同数据分布的权重 $\frac{p(x)}{q(x)}$ 。 $E_{x \sim p}[f(x)]=E_{x \sim q}\left[f(x) \frac{p(x)}{q(x)}\right]$ 当我们对于两者的采样次数都比较多时最终的结果时一样的没有影响的。但是通常我们不会取理想的数量的sample data所以如果两者的分布相差较大最后结果的variance差距平方级将会很大。
- 基于off-policy的importance sampling中的 data 是从 $\theta'$ sample 出来的,从 $\theta$ 换成 $\theta'$ 有什么优势?
使用off-policy的importance sampling后我们不用 $\theta$ 去跟环境做互动,假设有另外一个 policy $\theta'$它就是另外一个actor。它的工作是他要去做demonstration$\theta'$ 的工作是要去示范给 $\theta$ 看。它去跟环境做互动,告诉 $\theta$ 说,它跟环境做互动会发生什么事。然后,借此来训练$\theta$。我们要训练的是 $\theta$ $\theta'$ 只是负责做 demo负责跟环境做互动所以 sample 出来的东西跟 $\theta$ 本身是没有关系的。所以你就可以让 $\theta'$ 做互动 sample 一大堆的data$\theta$ 可以update 参数很多次。然后一直到 $\theta$ train 到一定的程度update 很多次以后,$\theta'$ 再重新去做 sample这就是 on-policy 换成 off-policy 的妙用。
- 在本节中PPO中的KL divergence指的是什么
本质来说KL divergence是一个function其度量的是两个action (对应的参数分别为$\theta$ 和 $\theta'$ 间的行为上的差距而不是参数上的差距。这里行为上的差距behavior distance可以理解为在相同的state的情况下输出的action的差距他们的概率分布上的差距这里的概率分布即为KL divergence。