From 8674a51faf83e40262ffd63c1c46ad53cf81ff7c Mon Sep 17 00:00:00 2001 From: qiwang067 Date: Wed, 28 Oct 2020 14:56:09 +0800 Subject: [PATCH] fix ch2 typos --- docs/chapter2/chapter2.md | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/docs/chapter2/chapter2.md b/docs/chapter2/chapter2.md index e51489c..f4f2c53 100644 --- a/docs/chapter2/chapter2.md +++ b/docs/chapter2/chapter2.md @@ -483,15 +483,22 @@ MDP 的 `prediction` 和 `control` 是 MDP 里面的核心问题。 **举一个例子来说明 prediction 与 control 的区别。** -首先是**预测问题**:在上图的方格中,我们规定从 A $\to$ A' 可以得到 +10 的奖励,从 B $\to$ B' 可以得到 +5 的奖励,其它步骤的奖励为 -1。现在,我们给定一个 policy:在任何状态中,它的行为模式都是随机的,也就是上下左右的概率各 25%。那么,预测问题要做的就是,在这种决策模式下,我们的 value function 是什么,也就是如上图 b 所示。 +首先是**预测问题**: + +* 在上图的方格中,我们规定从 A $\to$ A' 可以得到 +10 的奖励,从 B $\to$ B' 可以得到 +5 的奖励,其它步骤的奖励为 -1。 +* 现在,我们给定一个 policy:在任何状态中,它的行为模式都是随机的,也就是上下左右的概率各 25%。 +* 预测问题要做的就是,在这种决策模式下,我们的 value function 是什么。上图 b 是对应的 value function。 ![](img/control_example.png) -接着是**控制问题**:在控制问题中,问题背景与预测问题相同,唯一的区别就是:不再限制 policy。也就是说行为模式是未知的,我们要自己确定。所以我们通过解决控制问题,求得每一个状态的最优的 value function(如上图 b 所示),也得到了最优的 policy(如上图 c 所示)。 +接着是**控制问题**: -简单总结下,控制问题要做的就是,给定同样的条件,在所有可能的策略下最优的价值函数是什么?最优策略是什么? +* 在控制问题中,问题背景与预测问题相同,唯一的区别就是:不再限制 policy。也就是说行为模式是未知的,我们要自己确定。 +* 所以我们通过解决控制问题,求得每一个状态的最优的 value function(如上图 b 所示),也得到了最优的 policy(如上图 c 所示)。 + +* 控制问题要做的就是,给定同样的条件,在所有可能的策略下最优的价值函数是什么?最优策略是什么? ### Dynamic Programming @@ -515,11 +522,14 @@ MDP 是满足动态规划的要求的, **Policy evaluation 就是给定一个 MDP 和一个 policy,我们可以获得多少的价值。**就对于当前这个策略,我们可以得到多大的这个 value function。 -这里有一个方法是说,我们直接把这个 Bellman Expectation Backup,这个等式拿出来,变成一个迭代的过程,这样反复迭代直到收敛。这个迭代过程可以看作是 `synchronous backup` 的一个过程。 +这里有一个方法是说,我们直接把这个 Bellman Expectation Backup,这个等式拿出来,变成一个迭代的过程,这样反复迭代直到收敛。这个迭代过程可以看作是 `synchronous backup` 的过程。 $$ v_{t+1}(s)=\sum_{a \in \mathcal{A}} \pi(a \mid s)\left(R(s, a)+\gamma \sum_{s^{\prime} \in \mathcal{S}} P\left(s^{\prime} \mid s, a\right) v_{t}\left(s^{\prime}\right)\right) \tag{14} $$ -等式 (14) 说的就是这个 Bellman Expectation Backup,我们把这个转换成一个动态规划的迭代。当我们得到上一时刻的 $v_t$ 的时候,下一时刻就可以通过这个递推的关系来推出下一时刻的值。反复去迭代它,最后它的值就是从 $v_1,v_2$ 到最后收敛过后的这个值。这个值就是当前给定的 policy 对应的价值函数。 +* 等式 (14) 说的就是说我们可以把 Bellman Expectation Backup 转换成一个动态规划的迭代。 +* 当我们得到上一时刻的 $v_t$ 的时候,就可以通过这个递推的关系来推出下一时刻的值。 + +* 反复去迭代它,最后它的值就是从 $v_1,v_2$ 到最后收敛过后的这个值。这个值就是当前给定的 policy 对应的价值函数。 ![](img/2.34.png) @@ -766,7 +776,7 @@ $$ 我们可以简单来看,比如说现在我们在右上角 0.38 的这个位置,然后它说现在应该往下走,我们往下走一步。它又说往下走,然后再往下走。现在我们有两个选择:往左走和往下走。我们现在往下走,随着这个箭头的指示,我们就会到达中间 1.20 的一个状态。如果能达到这个状态的话,我们会得到很多 reward 。 -这个 Demo 说明了 policy iteration 可以把 gridworld 解决掉。解决掉的意思是说,不管在哪个状态,都可以顺着它这个状态对应的最佳的这个策略来到达可以获得最多奖励的一个状态。 +这个 Demo 说明了 policy iteration 可以把 gridworld 解决掉。解决掉的意思是说,不管在哪个状态,都可以顺着状态对应的最佳的策略来到达可以获得最多奖励的一个状态。 ![](img/2.62.png)