fix ch3 typos

This commit is contained in:
qiwang067
2021-02-09 20:44:37 +08:00
parent f05055b573
commit a0900f1ead

View File

@@ -228,25 +228,42 @@ MC 是通过 empirical mean return (实际得到的收益)来更新它,对
![](img/3.13.png ':size=500') ![](img/3.13.png ':size=500')
* 我们先初始化一下,然后开始时序差分的更新过程。 * 我们先初始化一下,然后开始时序差分的更新过程。
* 在训练的过程中,你会看到这个小黄球在不断地试错,在探索当中会先迅速地发现有 reward 的地方。最开始的时候,只是这些有 reward 的格子才有价值。当不断地重复走这些路线的时候,这些有价值的格子可以去慢慢地影响它附近的格子的价值。 * 在训练的过程中,你会看到这个小黄球在不断地试错,在探索当中会先迅速地发现有奖励的地方。最开始的时候,只是这些有奖励的格子才有价值。当不断地重复走这些路线的时候,这些有价值的格子可以去慢慢地影响它附近的格子的价值。
* 反复训练之后,这些有 reward 的格子周围的格子的状态就会慢慢地被强化。强化就是当它收敛到最后一个最优的状态了,这些价值最终收敛到一个最优的情况之后,那个小黄球就会自动地知道,就是我一直往价值高的地方走,就能够走到能够拿到 reward 的地方。 * 反复训练之后,这些有奖励的格子周围的格子的状态就会慢慢地被强化。强化就是当它收敛到最后一个最优的状态了,这些价值最终收敛到一个最优的情况之后,那个小黄球就会自动地知道,就是我一直往价值高的地方走,就能够走到能够拿到奖励的地方。
![](img/TD_1.png) **下面开始正式介绍 TD 方法。**
* TD 是介于 MC 和 DP 之间的方法。 * TD 是介于 MC 和 DP 之间的方法。
* TD 是 model-free 的,不需要 MDP 的转移矩阵和奖励函数。 * TD 是 model-free 的,不需要 MDP 的转移矩阵和奖励函数。
* TD 可以从不完整的 episode 中学习,结合了 bootstrapping 的思想。 * TD 可以从**不完整的** episode 中学习,结合了 bootstrapping 的思想。
![](img/TD_2.png) ![](img/TD_2.png)
* 上图是 TD 算法的框架。 * 上图是 TD 算法的框架。
* 目的:对于某个给定的策略,在线(online)地算出它的价值函数,即一步一步地(step-by-step)算。 * 目的:对于某个给定的策略,在线(online)地算出它的价值函数,即一步一步地(step-by-step)算。
* 最简单的算法是 `TD(0)`,每往前走一步,就做一步 bootstrapping用得到的 estimated return 来更新上一时刻的值
* Estimated return $R_{t+1}+\gamma v(S_{t+1})$ 被称为 `TD target`TD target 是带衰减的未来收益的总和。TD target 由两部分组成: * 最简单的算法是 `TD(0)`,每往前走一步,就做一步 bootstrapping用得到的估计回报(estimated return)来更新上一时刻的值。
* 估计回报 $R_{t+1}+\gamma v(S_{t+1})$ 被称为 `TD target`TD target 是带衰减的未来收益的总和。TD target 由两部分组成:
* 走了某一步后得到的实际奖励:$R_{t+1}$ * 走了某一步后得到的实际奖励:$R_{t+1}$
* 我们利用了 bootstrapping 的方法,通过之前的估计来估计 $v(S_{t+1})$ ,然后加了一个折扣系数,即 $\gamma v(S_{t+1})$ * 我们利用了 bootstrapping 的方法,通过之前的估计来估计 $v(S_{t+1})$ ,然后加了一个折扣系数,即 $\gamma v(S_{t+1})$,具体过程如下式所示:
$$
\begin{aligned}
v(s)&=\mathbb{E}\left[G_{t} \mid s_{t}=s\right] \\
&=\mathbb{E}\left[R_{t+1}+\gamma R_{t+2}+\gamma^{2} R_{t+3}+\ldots \mid s_{t}=s\right] \\
&=\mathbb{E}\left[R_{t+1}|s_t=s\right] +\gamma \mathbb{E}\left[R_{t+2}+\gamma R_{t+3}+\gamma^{2} R_{t+4}+\ldots \mid s_{t}=s\right]\\
&=R(s)+\gamma \mathbb{E}[G_{t+1}|s_t=s] \\
&=R(s)+\gamma \mathbb{E}[v(s_{t+1})|s_t=s]\\
\end{aligned}
$$
* TD目标是估计有两个原因它在6.4中对期望值进行采样并且使用当前估计V 而不是真实 $v_{\pi}$。
* `TD error` $\delta=R_{t+1}+\gamma v(S_{t+1})-v(S_t)$。 * `TD error` $\delta=R_{t+1}+\gamma v(S_{t+1})-v(S_t)$。
* 可以类比于 Incremental Monte-Carlo 的方法,写出如下的更新方法: * 可以类比于 Incremental Monte-Carlo 的方法,写出如下的更新方法:
$$ $$
@@ -262,30 +279,21 @@ $$
![](img/TD_3.png) ![](img/TD_3.png)
* TD 只执行了一步,状态的值就更新。 * TD 只执行了一步,状态的值就更新。
* MC 全部走完了之后,到了终止状态之后,再更新它的值。 * MC 全部走完了之后,到了终止状态之后,再更新它的值。
![](img/TD_4.png) 接下来,进一步比较下 TD 和 MC。
* TD 可以在线学习(online learning),每走一步就可以更新,效率高。 * TD 可以在线学习(online learning),每走一步就可以更新,效率高。
* MC 必须等游戏结束才可以学习。 * MC 必须等游戏结束才可以学习。
* TD 可以从不完整序列上进行学习。 * TD 可以从不完整序列上进行学习。
* MC 只能从完整的序列上进行学习。 * MC 只能从完整的序列上进行学习。
* TD 可以在连续的环境下(没有终止)进行学习。 * TD 可以在连续的环境下(没有终止)进行学习。
* MC 只能在有终止的情况下学习。 * MC 只能在有终止的情况下学习。
* TD 利用了马尔可夫性质,在马尔可夫环境下有更高的学习效率。 * TD 利用了马尔可夫性质,在马尔可夫环境下有更高的学习效率。
* MC 没有假设环境具有马尔可夫性质,利用采样的价值来估计某一个状态的价值,在不是马尔可夫的环境下更加有效 * MC 没有假设环境具有马尔可夫性质,利用采样的价值来估计某一个状态的价值,在不是马尔可夫的环境下更加有效
**举个例子来解释 TD 和 MC 的区别,** **举个例子来解释 TD 和 MC 的区别,**
@@ -324,8 +332,6 @@ $$
### Bootstrapping and Sampling for DP,MC and TD ### Bootstrapping and Sampling for DP,MC and TD
![](img/comparison_1.png)
* Bootstrapping更新时使用了估计 * Bootstrapping更新时使用了估计
* MC 没用 bootstrapping因为它是根据实际的 return 来更新。 * MC 没用 bootstrapping因为它是根据实际的 return 来更新。
* DP 用了 bootstrapping。 * DP 用了 bootstrapping。