merge gridworld demo

This commit is contained in:
qiwang067
2020-10-06 20:53:34 +08:00
parent ebc898a60a
commit 4b682f3384
2 changed files with 10 additions and 8 deletions

View File

@@ -234,13 +234,13 @@ $$
![](img/2.37.png)
我们再来看一个动态的例子。这里有很多格子,每个格子都代表了一个状态。在每个格子里面有一个初始值零。然后在每一个状态,它还有一些箭头,这个箭头就是说它在当前这个状态应该采取什么样的策略。我们这里采取一个随机的策略,不管它在哪一个状态,它上下左右的概率都是相同的。比如在某个状态,它都有上下左右 0.25 的概率采取某一个行为,所以它是一个完全随机的一个行为
我们再来看一个动态的例子,首先推荐斯坦福大学的一个网站:[Temporal Difference Learning Gridworld Demo](https://cs.stanford.edu/people/karpathy/reinforcejs/gridworld_td.html) ,这个网站模拟了单步更新的过程中,所有格子的一个状态价值的变化过程
![](img/2.38.png)
这里有很多格子,每个格子都代表了一个状态。在每个格子里面有一个初始值零。然后在每一个状态,它还有一些箭头,这个箭头就是说它在当前这个状态应该采取什么样的策略。我们这里采取一个随机的策略,不管它在哪一个状态,它上下左右的概率都是相同的。比如在某个状态,它都有上下左右 0.25 的概率采取某一个行为,所以它是一个完全随机的一个行为。
在这样的环境里面,我们想计算它每一个状态的价值。我们也定义了它的 reward function你可以看到有些状态上面有一个 R 的值。比如我们这边有些值是为负的,然后在这个棋盘的中间这个位置,可以看到有一个 R 的值是 1.0,为正的一个价值函数。 所以每个状态对应了一个值,然后有一些状态没有任何值,就说明它的这个 reward function它的奖励是为零的。
在这样的环境里面,我们想计算它每一个状态的价值。我们也定义了它的 reward function你可以看到有些状态上面有一个 R 的值。比如我们这边有些值是为负的,我们可以看到格子里面有几个 -1 的 reward只有一个 +1 reward 的格子。在这个棋盘的中间这个位置,可以看到有一个 R 的值是 1.0,为正的一个价值函数。 所以每个状态对应了一个值,然后有一些状态没有任何值,就说明它的这个 reward function它的奖励是为零的。
所以,当我们开始做这个 policy evaluationpolicy evaluation是一个不停迭代的过程。当我们初始化的时候所有的 $v(s)$ 都是 0。我们现在迭代一次迭代一次过后你发现有些状态上面值已经产生了变化。比如说那些有奖励的值比如有些状态的值的 R 为 -1迭代一次过后它就会得到 -1 的这个奖励。对于中间这个绿色的,因为它的奖励为正,所以它是 + 1 的状态。
![](img/2.38.png)我们开始做这个 policy evaluationpolicy evaluation 是一个不停迭代的过程。当我们初始化的时候,所有的 $v(s)$ 都是 0。我们现在迭代一次迭代一次过后你发现有些状态上面值已经产生了变化。比如说那些有奖励的值比如有些状态的值的 R 为 -1迭代一次过后它就会得到 -1 的这个奖励。对于中间这个绿色的,因为它的奖励为正,所以它是 + 1 的状态。
![](img/2.39.png)