Update chapter4_questions&keywords.md

This commit is contained in:
David Young
2021-02-05 23:44:11 +08:00
committed by GitHub
parent 804cdba17b
commit 0d43b83ab6

View File

@@ -104,4 +104,13 @@
\nabla_{\theta}J(\theta) =E_{\tau \sim p_{\theta}(\tau)}[{\nabla}_{\theta}logp_{\theta}(\tau)r(\tau)] = E_{\tau \sim p_{\theta}}[(\nabla_{\theta}log\pi_{\theta}(a_t|s_t))(\sum_{t=1}^Tr(s_t,a_t))] = \frac{1}{N}\sum_{i=1}^N[(\sum_{t=1}^T\nabla_{\theta}log \pi_{\theta}(a_{i,t}|s_{i,t}))(\sum_{t=1}^Nr(s_{i,t},a_{i,t}))]
$$
- 高冷的面试官:可以说一下你了解到的基于梯度策略的优化时的小技巧吗?
答:
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 有多大。