Update chapter4_questions&keywords.md

This commit is contained in:
David Young
2020-10-23 17:18:35 +08:00
committed by GitHub
parent ef9c34a978
commit 2df0886a22

View File

@@ -19,7 +19,7 @@
答:
1. 一部分是 **environment 的行为** environment 的 function 它内部的参数或内部的规则长什么样子。 $p(s_{t+1}|s_t,a_t)$这一项代表的是 environment environment 这一项通常你是无法控制它的,因为那个是人家写好的,你不能控制它
1. 一部分是 **environment 的行为** environment 的 function 它内部的参数或内部的规则长什么样子。 $p(s_{t+1}|s_t,a_t)$这一项代表的是 environment environment 这一项通常你是无法控制它的,因为那个是人家写好的,或者已经客观存在的
2. 另一部分是 **agent 的行为**,你能控制的是 $p_\theta(a_t|s_t)$。给定一个 $s_t$ actor 要采取什么样的 $a_t$ 会取决于你 actor 的参数 $\theta$ 所以这部分是 actor 可以自己控制的。随着 actor 的行为不同,每个同样的 trajectory 它就会有不同的出现的概率。
@@ -37,11 +37,11 @@
\end{aligned}
$$
$p_{\theta}(\tau)$ 里面有两项,$p(s_{t+1}|s_t,a_t)$ 来自于 environment$p_\theta(a_t|s_t)$ 是来自于 agent。 $p(s_{t+1}|s_t,a_t)$ 由环境决定从而与 $\theta$ 无关,因此 $\nabla \log p(s_{t+1}|s_t,a_t) =0 $。因此 $\nabla p_{\theta}(\tau)=
\nabla \log p_{\theta}\left(a_{t}^{n} | s_{t}^{n}\right)$。
\nabla \log p_{\theta}\left(a_{t}^{n} | s_{t}^{n}\right)$。 公式的具体推导可见我们的教程。
具体来说:
* 假设你在 $s_t$ 执行 $a_t$,最后发现 $\tau$ 的 reward 是正的, 那你就要增加这一项的概率,你就要增加在 $s_t$ 执行 $a_t$ 的概率。
* 假设你在 $s_t$ 执行 $a_t$,最后发现 $\tau$ 的 reward 是正的, 那你就要增加这一项的概率,增加在 $s_t$ 执行 $a_t$ 的概率。
* 反之,在 $s_t$ 执行 $a_t$ 会导致$\tau$ 的 reward 变成负的, 你就要减少这一项的概率。
- 我们可以使用哪些方法来进行gradient ascent的计算
@@ -52,7 +52,7 @@
答:
1. **Add a baseline**为了防止所有的reward都大于0从而导致每一个stage和action的变换会使得每一项的概率都会上升。所以通常为了解决这个问题我们把reward 减掉一项叫做 b这项 b 叫做 baseline。你减掉这项 b 以后,就可以让 $R(\tau^n)-b$ 这一项, 有正有负。 所以如果得到的 total reward $R(\tau^n)$ 大于 b 的话,就让它的概率上升。如果这个 total reward 小于 b就算它是正的正的很小也是不好的你就要让这一项的概率下降。 如果$R(\tau^n)<b$ 你就要让这个 state 采取这个 action 的分数下降 。这样也符合常理。
1. **Add a baseline**为了防止所有的reward都大于0从而导致每一个stage和action的变换会使得每一项的概率都会上升。所以通常为了解决这个问题我们把reward 减掉一项叫做 b这项 b 叫做 baseline。你减掉这项 b 以后,就可以让 $R(\tau^n)-b$ 这一项, 有正有负。 所以如果得到的 total reward $R(\tau^n)$ 大于 b 的话,就让它的概率上升。如果这个 total reward 小于 b就算它是正的正的很小也是不好的你就要让这一项的概率下降。 如果$R(\tau^n)<b$ 你就要让这个 state 采取这个 action 的分数下降 。这样也符合常理。但是使用baseline会让本来reward很大的“行为”的reward变小降低更新速率。
2. **Assign suitable credit** 首先第一层,本来的 weight 是整场游戏的 reward 的总和。那现在改成从某个时间 $t$ 开始,假设这个 action 是在 t 这个时间点所执行的,从 $t$ 这个时间点,一直到游戏结束所有 reward 的总和,才真的代表这个 action 是好的还是不好的接下来我们再进一步我们把未来的reward做一个discount这里我们称由此得到的reward的和为**Discounted Return(折扣回报)** 。
3. 综合以上两种tip我们将其统称为**Advantage function**`A` 来代表 advantage function。Advantage function 是 dependent on s and a我们就是要计算的是在某一个 state s 采取某一个 action a 的时候advantage function 有多大。
4. Advantage function 的意义就是,假设我们在某一个 state $s_t$ 执行某一个 action $a_t$,相较于其他可能的 action它有多好。它在意的不是一个绝对的好而是相对的好即相对优势(relative advantage)。因为会减掉一个 b减掉一个 baseline 所以这个东西是相对的好,不是绝对的好。 $A^{\theta}\left(s_{t}, a_{t}\right)$ 通常可以是由一个 network estimate 出来的,这个 network 叫做 critic。
@@ -61,7 +61,7 @@
答:
1. **两者的更新频率不同**,蒙特卡洛强化学习方法是**每一个episode更新一次**,即需要经历完整的状态序列后再更新,而对于时序差分强化学习方法是**每一个step就更新一次**。相对来说,时序差分强化学习方法比蒙特卡洛强化学习方法更新的频率更快。
1. **两者的更新频率不同**,蒙特卡洛强化学习方法是**每一个episode更新一次**,即需要经历完整的状态序列后再更新(比如我们的贪吃蛇游戏,贪吃蛇“死了”游戏结束后再更新),而对于时序差分强化学习方法是**每一个step就更新一次** ,(比如我们的贪吃蛇游戏,贪吃蛇每移动一次(或几次)就进行更新)。相对来说,时序差分强化学习方法比蒙特卡洛强化学习方法更新的频率更快。
2. 时序差分强化学习能够在知道一个小step后就进行学习相比于蒙特卡洛强化学习其更加**快速、灵活**。
3. 具体举例来说假如我们要优化开车去公司的通勤时间。对于此问题每一次通勤我们将会到达不同的路口。对于时序差分TD强化学习其会对于每一个经过的路口都会计算时间例如在路口 A 就开始更新预计到达路口 B、路口 C $\cdots \cdots$, 以及到达公司的时间而对于蒙特卡洛MC强化学习其不会每经过一个路口就更新时间而是到达最终的目的地后再修改每一个路口和公司对应的时间。