fix ch2 typos

This commit is contained in:
qiwang067
2020-09-05 17:27:34 +08:00
parent c84e309eb1
commit 7491db9b30

View File

@@ -126,19 +126,21 @@ Policy 定义了在某一个状态应该采取什么样的行为,当我们知
这里我们看一看MDP 里面的状态转移跟 MRP 以及 MP 的一个差异。
* 对于之前的马尔可夫链的过程,它的转移是直接就决定,就你当前是 s那么就直接通过这个转移概率就直接决定了下一个状态是什么。
* 但是对于 MDP它的中间多了一层这个行为 a 就是说在你当前这个状态的时候你首先要决定的是采取某一种行为。那么你会到了某一个黑色的这个节点。到了这个黑色的节点因为你有一定的不确定性当你当前状态决定过后以及你当前采取的行为过后你到未来的状态其实也是一个概率分布。所以你采取行为以及你决定然后你可能有有多大的概率到达某一个未来状态以及另外有多大概率到达另外一个状态。所以在这个当前状态跟未来状态转移过程中这里多了一层决策性这是MDP跟之前的马尔可夫过程很不同的一个地方。在马尔科夫决策过程中行为是由 agent 决定,所以多了一个 componentagent 会采取行为来决定未来的状态转移。
* 马尔可夫过程的转移是直接就决定,就你当前是 s那么就直接通过这个转移概率决定了下一个状态是什么。
* 但对于 MDP它的中间多了一层这个行为 a ,就是说在你当前这个状态的时候,首先要决定的是采取某一种行为。那么你会到了某一个黑色的节点。到了这个黑色的节点,因为你有一定的不确定性,当你当前状态决定过后以及你当前采取的行为过后,你到未来的状态其实也是一个概率分布。所以你采取行为后,你可能有多大的概率到达某一个未来状态,以及另外有多大概率到达另外一个状态。**所以在这个当前状态跟未来状态转移过程中这里多了一层决策性,这是 MDP 跟之前的马尔可夫过程很不同的一个地方。**在马尔科夫决策过程中,行为是由 agent 决定,所以多了一个 componentagent 会采取行为来决定未来的状态转移。
![](img/2.22.png)
顺着 MDP 的定义,我们可以把 state-value function就是在 MDP 里面的价值函数也进行一个定义,它的定义是跟 MRP是类似的但是这里 expectation over policy就是这个期望是基于你采取的这个 policy ,就当你的 policy 决定过后,我们通过对这个 policy 进行采样,然后我们可以得到一个期望那么就可以计算出它的这个价值函数。这里我们另外引入了一个 `Q 函数(action-value function)`
* 顺着 MDP 的定义,我们可以把 state-value function就是在 MDP 里面的价值函数也进行一个定义,它的定义是跟 MRP是类似的但是这里 expectation over policy就是这个期望是基于你采取的这个 policy ,就当你的 policy 决定过后,我们通过对这个 policy 进行采样得到一个期望那么就可以计算出它的这个价值函数。
这个 Q 函数定义的是某一个状态某一个行为,然后它有可能得到的这个 return 的一个期望,这里期望其实也是 over policy function。所以你需要对这个 policy function 进行一个加和,然后最后得到它的这个价值。第三步,这里导出了价值函数跟 Q 函数之间的一个关系。价值函数跟 Q 函数的关系,就是直接对价值函数中的行为函数进行加和,就可以得到这个价值。
* 这里我们另外引入了一个 `Q 函数(action-value function)`这个 Q 函数定义的是某一个状态某一个行为,然后它有可能得到的这个 return 的一个期望,这里期望其实也是 over policy function。所以你需要对这个 policy function 进行一个加和,然后最后得到它的这个价值。
* 价值函数跟 Q 函数的关系,就是直接对价值函数中的行为函数进行加和,就可以得到这个价值。
![](img/2.23.png)
我们这里会得到一个 `Bellman Expectation Equation`,通过对它价值函数的定义,我们可以对它进行一个分解,我们就可以直接又得到一个这个类似于我们之前 MRP 的 Bellman Equation这里叫 Bellman Expectation Equation。 因为这里期望是期望于它所有的这个 policy 所有可能的行为都把它 marginalize 掉,然后得到 return。那么对于 Q 函数,我们也可以做类似的分解,那么也可以得到对于 Q 函数的这个 Bellman Expectation Equation。
我们这里会得到一个 `Bellman Expectation Equation`,通过对它价值函数的定义,我们可以对它进行一个分解,我们就可以得到一个类似于之前 MRP 的 Bellman Equation这里叫 Bellman Expectation Equation。 因为这里期望是期望于它所有的这个 policy 所有可能的行为都把它 marginalize 掉,然后得到 return。
对于 Q 函数,我们也可以做类似的分解,也可以得到对于 Q 函数的 Bellman Expectation Equation。
**Bellman Expectation Equation 定义了你当前状态跟未来状态之间的一个关联。**
@@ -192,7 +194,7 @@ $$
![](img/2.33.png)
首先看一下 policy evaluation就是当给定一个 MDP 的时候,我们有一个事先定好的 policy。那么我们可以获得多少的价值。就对于当前这个策略我们可以得到多大的这个 value function。这里一个方法是说我们直接把这个 Bellman Expectation Backup这个等式拿出来变成一个迭代的一个过程,这样反复迭代直到收敛。这样就可以计算它的一个过程。这个迭代过程是可以看作是 `synchronous backup` 的一个过程。等式 14 说的就是这个 Bellman Expectation Backup我们把这个转换成一个动态规划的一个迭代。当我们得到上一时刻的这个 $v_t$ 的时候,那我们下一时刻就通过这个递归的一个关系,我们可以推出下一时刻的这个值,那么反复去迭代它,最后它的值就是从 $v_1,v_2$,到最后收敛过后这个值。这个值就是我们当前给定的 policy 对应的价值函数。
首先看一下 policy evaluation就是当给定一个 MDP 的时候,我们有一个事先定好的 policy。那么我们可以获得多少的价值。就对于当前这个策略我们可以得到多大的这个 value function。这里一个方法是说我们直接把这个 Bellman Expectation Backup这个等式拿出来变成一个迭代的过程这样反复迭代直到收敛。这样就可以计算它的一个过程。这个迭代过程是可以看作是 `synchronous backup` 的一个过程。等式 14 说的就是这个 Bellman Expectation Backup我们把这个转换成一个动态规划的迭代。当我们得到上一时刻的 $v_t$ 的时候,那我们下一时刻就通过这个递归的一个关系,我们可以推出下一时刻的这个值,那么反复去迭代它,最后它的值就是从 $v_1,v_2$,到最后收敛过后这个值。这个值就是我们当前给定的 policy 对应的价值函数。
![](img/2.34.png)
@@ -222,11 +224,11 @@ $$
![](img/2.39.png)
所以当迭代第一次的时候,我们 $v(s)$ 某些状态已经有些值的变化。
所以当迭代第一次的时候,$v(s)$ 某些状态已经有些值的变化。
![](img/2.40.png)
然后我们再迭代一次(one sweep),然后发现它就从周围的状态也开始有值。因为周围状态跟之前有值的状态是临近的,所以它就相当于把旁边这个状态转移过来。所以当我们逐渐迭代的话,你会发现这个值一直在变换。等迭代了很多次过后,然后很远的这些状态的价值函数已经有些值了,而且你可以发现它这里整个过程呈现逐渐扩散开的一个过程,这其实也是 policy evaluation 的一个可视化。当我们每一步在进行迭代的时候,就远的状态就会得到了一些值,就逐渐从一些已经有奖励的这些状态,逐渐扩散,当你 run 很多次过后,然后它就逐渐稳定下来,最后值就会确定不变,这样收敛过后,每个状态上面的值就是它目前得到的这个 value function 的值。
我们再迭代一次(one sweep),然后发现它就从周围的状态也开始有值。因为周围状态跟之前有值的状态是临近的,所以它就相当于把旁边这个状态转移过来。所以当我们逐渐迭代的话,你会发现这个值一直在变换。等迭代了很多次过后,很远的这些状态的价值函数已经有些值了,而且你可以发现它这里整个过程呈现逐渐扩散开的一个过程,这其实也是 policy evaluation 的一个可视化。当我们每一步在进行迭代的时候,就远的状态就会得到了一些值,就逐渐从一些已经有奖励的这些状态,逐渐扩散,当你 run 很多次过后,它就逐渐稳定下来,最后值就会确定不变,这样收敛过后,每个状态上面的值就是它目前得到的这个 value function 的值。
![](img/2.41.png)
@@ -337,7 +339,7 @@ Value iteration 算法的目的是为了得到一个最佳的策略。一个解
![](img/2.64.png)
我们再来对比下 policy iteration 和 value iteration这两个算法都是为了解 MDP 的控制问题。
我们再来对比下 policy iteration 和 value iteration这两个算法都可以解 MDP 的控制问题。
* Policy iteration 由两部分组成policy evaluation 和 policy improvement。它很清楚地把这个过程分成了两步就首先对于当前已经搜索到的策略函数然后对它进行一个估值得到估值过后把 Q 函数算出来,我们进一步进行改进。