This commit is contained in:
qiwang067
2021-02-27 10:59:57 +08:00
parent d8dbc83c18
commit 4d395f1a66

View File

@@ -44,7 +44,7 @@ $$
但是实际上,你不可能把所有的状态通通都扫过。如果你是玩 Atari 游戏的话,状态是图像,你没有办法把所有的状态通通扫过。所以实际上 $V^{\pi}(s)$ 是一个网络。对一个网络来说,就算输入状态是从来都没有看过的,它也可以想办法估测一个值的值。
![](img/6.2.png ':size=450')
![](img/6.2.png ':size=350')
怎么训练这个网络呢?因为如果在状态 $s_a$,接下来的累积奖励就是 $G_a$。也就是说,对这个价值函数来说,如果输入是状态 $s_a$,正确的输出应该是 $G_a$。如果输入状态 $s_b$,正确的输出应该是值 $G_b$。**所以在训练的时候, 它就是一个 `回归问题(regression problem)`。**网络的输出就是一个值,你希望在输入 $s_a$ 的时候,输出的值跟 $G_a$ 越近越好,输入 $s_b$ 的时候,输出的值跟 $G_b$ 越近越好。接下来把网络训练下去,就结束了。这是 MC-based 的方法。
@@ -84,7 +84,7 @@ $$
在这中间会有随机性的是 r。因为计算你在 $s_t$ 采取同一个动作,你得到的奖励也不一定是一样的,所以 r 是一个随机变量。但这个随机变量的方差会比 $G_a$ 还要小,因为 $G_a$ 是很多 r 合起来,这边只是某一个 r 而已。$G_a$ 的方差会比较大r 的方差会比较小。但是这边你会遇到的**一个问题是你这个 V 不一定估得准**。假设你的这个 V 估得是不准的,那你使用这个式子学习出来的结果,其实也会是不准的。所以 MC 跟 TD 各有优劣。**今天其实 TD 的方法是比较常见的MC 的方法其实是比较少用的。**
![](img/6.6.png)
![](img/6.6.png ':size=550')
**上图是讲 TD 跟 MC 的差异。**假设有某一个评论家,它去观察某一个策略 $\pi$ 跟环境互动的 8 个 episode 的结果。有一个演员 $\pi$ 跟环境互动了8 次得到了8 次玩游戏的结果。接下来这个评论家去估测状态的值。
**我们先计算 $s_b$ 的值。**$s_b$ 这个状态 在 8 场游戏里面都有经历过,其中有 6 场得到奖励 1有 2 场得到奖励 0。所以如果你是要算期望值的话就算看到状态 $s_b$ 以后得到的奖励,一直到游戏结束的时候得到的累积奖励期望值是 3/4计算过程如下式所示
@@ -335,7 +335,7 @@ A没关系。这并不是因为过去的 $\pi$ 跟现在的 $\pi$ 很像,
## DQN
![](img/6.19.png)
![](img/6.19.png ':size=550')
上图就是一般的 `Deep Q-network(DQN)` 的算法。