From 03d969d1f0468ba31f14642869258367ca8c650c Mon Sep 17 00:00:00 2001 From: David Young <46375780+yyysjz1997@users.noreply.github.com> Date: Wed, 2 Sep 2020 23:37:21 +0800 Subject: [PATCH] chapter5_questions&keywords --- docs/chapter5/chapter5_questions&keywords.md | 31 ++++++++++++++++++++ 1 file changed, 31 insertions(+) create mode 100644 docs/chapter5/chapter5_questions&keywords.md diff --git a/docs/chapter5/chapter5_questions&keywords.md b/docs/chapter5/chapter5_questions&keywords.md new file mode 100644 index 0000000..f7db287 --- /dev/null +++ b/docs/chapter5/chapter5_questions&keywords.md @@ -0,0 +1,31 @@ +## Chapter5 Proximal Policy Optimization(PPO) + +#### 1 关键词 + +- **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 思考题 + +- 基于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]$ 当我们对于两者的采样次数都比较多时,最终的结果时一样的,没有影响的。但是通常我们不会取理想的数量的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。 +