fix some errors

This commit is contained in:
qiwang067
2020-07-12 18:53:28 +08:00
parent dec7dc8c38
commit 00eeb3b734
15 changed files with 100 additions and 38 deletions

View File

@@ -298,7 +298,7 @@ A没关系。这并不是因为过去的 $\pi$ 跟现在的 $\pi$ 很像,
上图就是一般的 `Deep Q-network(DQN)` 的算法。
这个算法是这样的。开始 initialize 的时候,你 initialize 2 个network一个是 Q一个是 $\hat{Q}$,其实 $\hat{Q}$ 就等于 Q。一开始这个 target Q-network跟你原来的 Q-network 是一样的。在每一个 episode你拿你的 actor 去跟环境做互动,在每一次互动的过程中,你都会得到一个 state $s_t$那你会采取某一个action $a_t$。怎么知道采取哪一个action $a_t$ 呢?你就根据你现在的 Q-function。但是你要有 exploration 的机制。比如说你用 Boltzmann exploration 或是 Epsilon Greedy 的 exploration。那接下来你得到 reward $r_t$,然后跳到 state $s_{t+1}$。所以现在 collect 到一笔 data这笔 data 是 ($s_t$, $a_t$ ,$r_t$, $s_{t+1}$)。这笔 data 就塞到你的 buffer 里面去。如果 buffer 满的话, 你就再把一些旧的资料丢掉。接下来你就从你的buffer 里面去 sample data那你 sample 到的是 $(s_{i}, a_{i}, r_{i}, s_{i+1})$。这笔data 跟你刚放进去的不一定是同一笔,你可能抽到一个旧的。要注意的是,其实你 sample 出来不是一笔 data你 sample 出来的是一个 batch 的 data你 sample 一个batch 出来sample 一把 experiences 出来。接下来就是计算你的 target。假设你 sample 出这么一笔 data。根据这笔 data 去算你的 target。你的 target 是什么呢target 记得要用 target network $\hat{Q}$ 来算。Target 是:
这个算法是这样的。Initialize 的时候,你 initialize 2 个network一个是 Q一个是 $\hat{Q}$,其实 $\hat{Q}$ 就等于 Q。一开始这个 target Q-network跟你原来的 Q-network 是一样的。在每一个 episode你拿你的 actor 去跟环境做互动,在每一次互动的过程中,你都会得到一个 state $s_t$那你会采取某一个action $a_t$。怎么知道采取哪一个action $a_t$ 呢?你就根据你现在的 Q-function。但是你要有 exploration 的机制。比如说你用 Boltzmann exploration 或是 Epsilon Greedy 的 exploration。那接下来你得到 reward $r_t$,然后跳到 state $s_{t+1}$。所以现在 collect 到一笔 data这笔 data 是 ($s_t$, $a_t$ ,$r_t$, $s_{t+1}$)。这笔 data 就塞到你的 buffer 里面去。如果 buffer 满的话, 你就再把一些旧的资料丢掉。接下来你就从你的buffer 里面去 sample data那你 sample 到的是 $(s_{i}, a_{i}, r_{i}, s_{i+1})$。这笔data 跟你刚放进去的不一定是同一笔,你可能抽到一个旧的。要注意的是,其实你 sample 出来不是一笔 data你 sample 出来的是一个 batch 的 data你 sample 一个batch 出来sample 一把 experiences 出来。接下来就是计算你的 target。假设你 sample 出这么一笔 data。根据这笔 data 去算你的 target。你的 target 是什么呢target 记得要用 target network $\hat{Q}$ 来算。Target 是:
$$
y=r_{i}+\max _{a} \hat{Q}\left(s_{i+1}, a\right)