Update chapter4_questions&keywords.md
This commit is contained in:
@@ -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 有多大。
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user