fix some typos
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
|
||||

|
||||
|
||||
这节课我会给大家介绍马尔可夫决策过程。
|
||||
本节给大家介绍马尔可夫决策过程。
|
||||
|
||||
* 在介绍马尔可夫决策过程之前,先介绍它的简化版本:马尔可夫链以及马尔可夫奖励过程,通过跟这两种过程的比较,我们可以更生动地理解马尔可夫决策过程。
|
||||
* 第二部分会介绍马尔可夫决策过程中的 `policy evaluation`,就是当给定一个决策过后,怎么去计算它的价值函数。
|
||||
@@ -10,7 +10,9 @@
|
||||
|
||||

|
||||
|
||||
上图介绍了在强化学习里面 agent 跟 environment 之间的交互,agent 在得到环境的状态过后,它会采取行为,它会把这个采取的行为返还给环境。环境在得到 agent 的行为过后,它会进入下一个状态,把下一个状态传回 agent。在强化学习中,agent 跟环境就是这样进行交互的,这个交互过程是可以通过马尔可夫决策过程来表示的,所以马尔可夫决策过程是强化学习里面的一个基本框架。在马尔可夫决策过程中,它的环境是 `fully observable` ,就是全部可以观测的。但是很多时候环境里面有些量是不可观测的,但是这个部分观测的问题也可以转换成一个 MDP 的问题。
|
||||
上图介绍了在强化学习里面 agent 跟 environment 之间的交互,agent 在得到环境的状态过后,它会采取行为,它会把这个采取的行为返还给环境。环境在得到 agent 的行为过后,它会进入下一个状态,把下一个状态传回 agent。
|
||||
|
||||
在强化学习中,agent 跟环境就是这样进行交互的,这个交互过程是可以通过马尔可夫决策过程来表示的,所以马尔可夫决策过程是强化学习里面的一个基本框架。在马尔可夫决策过程中,它的环境是 `fully observable` ,就是全部可以观测的。但是很多时候环境里面有些量是不可观测的,但是这个部分观测的问题也可以转换成一个 MDP 的问题。
|
||||
|
||||

|
||||
|
||||
@@ -18,7 +20,22 @@
|
||||
|
||||
## Markov Process(MP)
|
||||
|
||||
如果一个状态转移是符合马尔可夫的,那就是说一个状态的下一个状态只取决于它当前状态,而跟它当前状态之前的状态都没有关系。比如说我们这里有一个 $h_t$,它包含了之前的所有状态。但是这里的转移从当前 $s_t$ 转到 $s_{t+1}$ 这个状态,它是直接就等于它之前所有的状态。如果某一个过程满足`马尔可夫性质(Markov Property)`,就是说未来的转移跟过去是独立的,它只取决于现在。**马尔可夫性质是所有马尔可夫过程的基础。**
|
||||
### Markov Property
|
||||
|
||||
如果一个状态转移是符合马尔可夫的,那就是说一个状态的下一个状态只取决于它当前状态,而跟它当前状态之前的状态都没有关系。
|
||||
|
||||
我们设状态的历史为 $(h_{t}=\left\{s_{1}, s_{2}, s_{3}, \ldots, s_{t}\right\}$($h_t$ 包含了之前的所有状态),如果一个状态转移是符合马尔可夫的,也就是满足如下条件:
|
||||
$$
|
||||
p\left(s_{t+1} \mid s_{t}\right) =p\left(s_{t+1} \mid h_{t}\right) \tag{1}
|
||||
$$
|
||||
|
||||
$$
|
||||
p\left(s_{t+1} \mid s_{t}, a_{t}\right) =p\left(s_{t+1} \mid h_{t}, a_{t}\right) \tag{2}
|
||||
$$
|
||||
|
||||
从当前 $s_t$ 转移到 $s_{t+1}$ 这个状态,它是直接就等于它之前所有的状态转移到 $s_{t+1}$。如果某一个过程满足`马尔可夫性质(Markov Property)`,就是说未来的转移跟过去是独立的,它只取决于现在。**马尔可夫性质是所有马尔可夫过程的基础。**
|
||||
|
||||
### Markov Process
|
||||
|
||||

|
||||
|
||||
@@ -36,6 +53,8 @@
|
||||
|
||||
我们可以用`状态转移矩阵(State Transition Matrix)`来描述这样的状态转移。状态转移矩阵类似于一个 conditional probability,当我们知道当前我们在 $s_t$ 这个状态过后,到达下面所有状态的一个概念。所以它每一行其实描述了是从一个节点到达所有其它节点的概率。
|
||||
|
||||
### Example of MP
|
||||
|
||||

|
||||
|
||||
上图是一个马尔可夫链的例子,我们这里有七个状态。比如说从 $s_1$ 开始到 $s_2$ ,它有 0.4 的概率,然后它有 0.6 的概率继续存活在它当前的状态。 $s_2$ 有 0.4 的概率到左边,有 0.4 的概率到 $s_3$ ,另外有 0.2 的概率存活在现在的状态,所以给定了这个状态转移的马尔可夫链后,我们可以对这个链进行采样,这样就会得到一串的轨迹。
|
||||
@@ -52,21 +71,43 @@
|
||||
|
||||
**`马尔可夫奖励过程(Markov Reward Process, MRP)` 是马尔可夫链再加上了一个奖励函数。**在 MRP 中,转移矩阵跟它的这个状态都是跟马尔可夫链一样的,多了一个`奖励函数(reward function)`。**奖励函数是一个期望**,就是说当你到达某一个状态的时候,可以获得多大的奖励,然后这里另外定义了一个 discount factor $\gamma$ 。
|
||||
|
||||
### Example of MRP
|
||||
|
||||

|
||||
|
||||
这里是我们刚才看的马尔可夫链,如果把奖励也放上去的话,就是说到达每一个状态,我们都会获得一个奖励。这里我们可以设置对应的奖励,比如说到达 $s_1$ 状态的时候,可以获得 5 的奖励,到达 $s_7$ 的时候,有 10 的奖励,其它状态没有任何奖励。因为这里状态是有限的,所以我们可以用一个向量来表示这个奖励函数,这个向量表示了每个点的奖励的大小。
|
||||
|
||||
我们可以通过一个形象的例子来理解 MRP,你可以把它看成一个纸船。我们把一个纸船放到河流之中,那么它就会随着这个河流而流动,它自身是没有动力的,所以你可以把 MRP 看成是一个随波逐流的例子,当我们从某一个点开始的时候,这个纸船就会随着事先定义好的状态转移进行流动,它到达每个状态过后,我们就有可能获得一些奖励。
|
||||
|
||||
### Return and Value function
|
||||
|
||||

|
||||
|
||||
这里我们进一步定义一些概念。
|
||||
|
||||
* 第一个是 `horizon` ,它说明了同一个 episode 或者是整个一个轨迹的长度,它是由有限个步数决定的。
|
||||
* 这里我们再定义一个 `return`。Return 说的是我们把奖励进行折扣,然后获得的这个收益。Return 可以定义为奖励的逐步叠加,然后这里有一个叠加系数,就是越往后得到的奖励,折扣得越多。这说明我们其实更希望得到现有的奖励,未来的奖励就要把它打折扣。
|
||||
* 当我们有了这个 return 过后,就可以正式定义一个状态的价值了,就是 `state value function`。然后对于这个MRP,它里面定义成是关于这个 return 的期望, $G_t$ 是我们之前定义的 `discounted return`。然后我们这里取了一个期望,期望就是说从这个状态开始,你有可能获得多大的价值。所以这个期望也可以看成是一个对未来可能获得奖励的它的当前价值的一个表现。就是当你进入某一个状态过后,你现在就有多大的价值。
|
||||
* `Horizon` 说明了同一个 episode 或者是整个一个轨迹的长度,它是由有限个步数决定的。
|
||||
|
||||
**这里我们解释一下为什么需要 discount factor。**
|
||||
* `Return` 说的是我们把奖励进行折扣,然后获得的这个收益。Return 可以定义为奖励的逐步叠加,如下式所示:
|
||||
|
||||
$$
|
||||
G_{t}=R_{t+1}+\gamma R_{t+2}+\gamma^{2} R_{t+3}+\gamma^{3} R_{t+4}+\ldots+\gamma^{T-t-1} R_{T}
|
||||
$$
|
||||
|
||||
这里有一个叠加系数,越往后得到的奖励,折扣得越多。这说明我们其实更希望得到现有的奖励,未来的奖励就要把它打折扣。
|
||||
|
||||
* 当我们有了这个 return 过后,就可以正式定义一个状态的价值了,就是 `state value function`。然后对于这个 MRP,它里面定义成是关于这个 return 的期望,如下式所示:
|
||||
$$
|
||||
\begin{aligned}
|
||||
V_{t}(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+\gamma^{T-t-1} R_{T} \mid s_{t}=s\right]
|
||||
\end{aligned}
|
||||
$$
|
||||
|
||||
$G_t$ 是我们之前定义的 `discounted return`,我们这里取了一个期望,期望就是说从这个状态开始,你有可能获得多大的价值。所以这个期望也可以看成是一个对未来可能获得奖励的它的当前价值的一个表现。就是当你进入某一个状态过后,你现在就有多大的价值。
|
||||
|
||||
### Why Discount Factor
|
||||
|
||||
**这里解释一下为什么需要 discount factor。**
|
||||
|
||||
* 有些马尔可夫过程是带环的,它并没有终结,我们想避免这个无穷的奖励。
|
||||
* 我们并没有建立一个完美的模拟环境的模型,也就是说,我们对未来的评估不一定是准确的,我们不一定完全信任我们的模型,因为这种不确定性,所以我们对未来的预估增加一个折扣。我们想把这个不确定性表示出来,希望尽可能快地得到奖励,而不是在未来某一个点得到奖励。
|
||||
@@ -74,7 +115,7 @@
|
||||
* 在人的行为里面来说的话,大家也是想得到即时奖励。
|
||||
* 有些时候可以把这个系数设为 0,设为 0 过后,我们就只关注了它当前的奖励。我们也可以把它设为 1,设为 1 的话就是对未来并没有折扣,未来获得的奖励跟当前获得的奖励是一样的。
|
||||
|
||||
这个系数其实可以作为强化学习 agent 的一个 hyperparameter 来进行调整,然后就会得到不同行为的 agent。
|
||||
这个系数可以作为强化学习 agent 的一个 hyperparameter 来进行调整,然后就会得到不同行为的 agent。
|
||||
|
||||

|
||||
|
||||
@@ -92,10 +133,14 @@
|
||||
|
||||
这里就引出了一个问题,当我们有了一些轨迹的实际 return,怎么计算它的价值函数。比如说我们想知道 $s_4$ 状态的价值,就是当你进入 $s_4$ 后,它的价值到底如何。一个可行的做法就是说我们可以产生很多轨迹,然后把这里的轨迹都叠加起来。比如我们可以从 $s_4$ 开始,采样生成很多轨迹,都把它的 return 计算出来,然后可以直接把它取一个平均作为你进入 $s_4$ 它的价值。这其实是一种计算价值函数的办法,通过这个蒙特卡罗采样的办法计算 $s_4$ 的状态。接下来会进一步介绍蒙特卡罗算法。
|
||||
|
||||
### Bellman Equation
|
||||
|
||||

|
||||
|
||||
但是这里我们采取了另外一种计算方法,我们通过一定的推导就可以从这个价值函数里面推导出 `Bellman Equation(贝尔曼等式)`。**Bellman Equation 定义了当前状态跟未来状态之间的这个关系**。
|
||||
|
||||
但是这里我们采取了另外一种计算方法,我们通过一定的推导就可以从这个价值函数里面推导出 `Bellman Equation(贝尔曼等式)`,如下式所示:
|
||||
$$
|
||||
V(s)=\underbrace{R(s)}_{\text {Immediate reward }}+\underbrace{\gamma \sum_{s^{\prime} \in S} P\left(s^{\prime} \mid s\right) V\left(s^{\prime}\right)}_{\text {Discounted sum of future reward }}
|
||||
$$
|
||||
其中:
|
||||
|
||||
* $s'$ 可以看成未来的所有状态。
|
||||
@@ -103,6 +148,8 @@
|
||||
* 第二部分可以看成是一个 Discounted sum of future reward。
|
||||
* $V(s')$ 代表的是未来某一个状态的价值。我们从当前这个位置开始,有一定的概率去到未来的所有状态,所以我们要把这个概率也写上去,这个转移矩阵也写上去,然后我们就得到了未来状态,然后再乘以一个 $\gamma$,这样就可以把未来的奖励打折扣。
|
||||
|
||||
**Bellman Equation 定义了当前状态跟未来状态之间的这个关系。**
|
||||
|
||||
未来打了折扣的奖励加上当前立刻可以得到的奖励,就组成了这个 Bellman Equation。Bellman Equation 的推导过程如下:
|
||||
$$
|
||||
\begin{aligned}
|
||||
@@ -134,7 +181,9 @@ $$
|
||||
$$
|
||||
V=(I-\gamma P)^{-1} R
|
||||
$$
|
||||
我们可以通过矩阵求逆的过程把这个 V 的这个价值直接求出来。但是一个问题是这个矩阵求逆的过程的复杂度是 $O(N^3)$。所以当状态非常多的时候,比如说从十个状态到一千个状态,到一百万个状态。那么当我们有一百万个状态的时候,这个转移矩阵就会是个一百万乘以一百万的矩阵,这样一个大矩阵的话求逆是非常困难的,所以这种通过解析解去解,只能对于很小量的 MRP。
|
||||
我们可以通过矩阵求逆把这个 V 的这个价值直接求出来。但是一个问题是这个矩阵求逆的过程的复杂度是 $O(N^3)$。所以当状态非常多的时候,比如说从十个状态到一千个状态,到一百万个状态。那么当我们有一百万个状态的时候,这个转移矩阵就会是个一百万乘以一百万的矩阵,这样一个大矩阵的话求逆是非常困难的,所以这种通过解析解去求解的方法只适用于很小量的 MRP。
|
||||
|
||||
### Iterative Algorithm for Computing Value of a MRP
|
||||
|
||||

|
||||
|
||||
@@ -148,7 +197,7 @@ $$
|
||||
|
||||

|
||||
|
||||
**首先我们用蒙特卡罗的办法来计算它的价值函数。**蒙特卡罗就跟我们之前采用的这个方法很类似,就说我们当得到一个 MRP 过后,我们可以从某一个状态开始,把这个小船放进去,让它随波逐流,这样就会产生一个轨迹。产生了一个轨迹过后,就会得到一个奖励,那么就直接把它的 discounted 的奖励 $g$ 算出来。算出来过后就可以把它积累起来,得到 return $G_t$。 当积累到一定的轨迹数量过后,直接用 $G_t$ 除以轨迹数量,就会得到它的价值。
|
||||
**首先我们用蒙特卡罗(Monte Carlo)的办法来计算它的价值函数。**蒙特卡罗就跟我们之前采用的这个方法很类似,就说我们当得到一个 MRP 过后,我们可以从某一个状态开始,把这个小船放进去,让它随波逐流,这样就会产生一个轨迹。产生了一个轨迹过后,就会得到一个奖励,那么就直接把它的 discounted 的奖励 $g$ 算出来。算出来过后就可以把它积累起来,得到 return $G_t$。 当积累到一定的轨迹数量过后,直接用 $G_t$ 除以轨迹数量,就会得到它的价值。
|
||||
|
||||
比如说我们要算 $s_4$ 状态的一个价值。我们就可以从 $s_4$ 状态开始,随机产生很多轨迹,就产生很多小船,然后扔到这个转移矩阵里面去,然后它就会随波逐流,产生轨迹。每个轨迹,我们可以算到它的这个 return。每个轨迹都会得到一个 return,让我们得到大量的 return 。比如说一百个、一千个的 return ,然后直接取一个平均,那么就可以等价于现在 $s_4$ 这个价值,因为 $s_4$ 的价值 $V(s_4)$ 定义了你未来可能得到多少的奖励。这就是蒙特卡罗采样的方法。
|
||||
|
||||
@@ -158,18 +207,32 @@ $$
|
||||
|
||||
## Markov Decision Process(MDP)
|
||||
|
||||
### MDP
|
||||
|
||||

|
||||
|
||||
**相对于 MRP,`马尔可夫决策过程(Markov Decision Process)`多了一个 `decision`,其它的定义跟 MRP 都是类似的。**这里我们多了一个决策,多了一个 action ,那么这个状态转移也多了一个 condition,就是你采取某一种行为,然后你未来的状态会不同。它不仅是依赖于你当前的状态,也依赖于在当前状态你这个 agent 它采取的这个行为会决定它未来的这个状态走向。对于这个价值函数,它也是多了一个条件,多了一个你当前的这个行为,就是说你当前的状态以及你采取的行为会决定你在当前可能得到的奖励多少。
|
||||
**相对于 MRP,`马尔可夫决策过程(Markov Decision Process)`多了一个 `decision`,其它的定义跟 MRP 都是类似的**:
|
||||
|
||||
* 这里多了一个决策,多了一个 action。
|
||||
* 状态转移也多了一个条件,变成了 $P\left(s_{t+1}=s^{\prime} \mid s_{t}=s, a_{t}=a\right)$。你采取某一种行为,然后你未来的状态会不同。未来的状态不仅是依赖于你当前的状态,也依赖于在当前状态 agent 采取的这个行为。
|
||||
* 对于这个价值函数,它也是多了一个条件,多了一个你当前的这个行为,变成了 $R\left(s_{t}=s, a_{t}=a\right)=\mathbb{E}\left[r_{t} \mid s_{t}=s, a_{t}=a\right]$。你当前的状态以及你采取的行为会决定你在当前可能得到的奖励多少。
|
||||
|
||||
### Policy in MDP
|
||||
|
||||

|
||||
|
||||
**Policy 定义了在某一个状态应该采取什么样的行为。**当我们知道当前状态过后,可以带入这个 policy function,那我们会得到一个概率,概率就代表了在所有可能的行为里面怎样去采取行动。就可能有 0.7 的概率往左走,有 0.3 的概率往右走,这样是一个概率的表示。另外这个策略也可能是确定的,它有可能是直接输出一个值,或者就直接告诉你当前应该采取什么样的行为,而不是一个行为的概率。然后这里我们有一个假设,就是这个概率函数应该是静态的(stationary),不同时间点,你采取的行为其实都是对这个 policy function 进行采样。
|
||||
* Policy 定义了在某一个状态应该采取什么样的行为。
|
||||
|
||||
* 知道当前状态过后,我们可以把当前状态带入 policy function,那我们会得到一个概率。概率就代表了在所有可能的行为里面怎样去采取行动。就可能有 0.7 的概率往左走,有 0.3 的概率往右走,这样是一个概率的表示。
|
||||
* 另外这个策略也可能是确定的,它有可能是直接输出一个值,或者就直接告诉你当前应该采取什么样的行为,而不是一个行为的概率。
|
||||
* 我们假设这个概率函数应该是静态的(stationary),不同时间点,你采取的行为其实都是对这个 policy function 进行采样。
|
||||
|
||||

|
||||
|
||||
**这里说明了 MDP 跟 MRP 的之间的一个转换。**已知一个 MDP 和一个 policy $\pi$ 的时候,我们可以把 MDP 转换成 MRP。在 MDP 里面,转移函数 $P(s'|s,a)$ 是基于它当前状态以及它当前的 action。因为我们现在已知它 policy function,就是说在每一个状态,我们知道它可能采取的行为的概率,那么就可以直接把这个 action 进行加和,直接把这个 a 去掉,那我们就可以得到对于 MRP 的一个转移,这里就没有 action。对于这个奖励函数,我们也可以把 action 拿掉,这样就会得到一个类似于 MRP 的奖励函数。
|
||||
|
||||
### Comparison of MP/MRP and MDP
|
||||
|
||||

|
||||
|
||||
|
||||
@@ -179,34 +242,95 @@ $$
|
||||
* 马尔可夫过程的转移是直接就决定。比如当前状态是 s,那么就直接通过这个转移概率决定了下一个状态是什么。
|
||||
* 但对于 MDP,它的中间多了一层这个行为 a ,就是说在你当前这个状态的时候,首先要决定的是采取某一种行为,那么你会到了某一个黑色的节点。到了这个黑色的节点,因为你有一定的不确定性,当你当前状态决定过后以及你当前采取的行为过后,你到未来的状态其实也是一个概率分布。**所以在这个当前状态跟未来状态转移过程中这里多了一层决策性,这是 MDP 跟之前的马尔可夫过程很不同的一个地方。**在马尔可夫决策过程中,行为是由 agent 决定,所以多了一个 component,agent 会采取行为来决定未来的状态转移。
|
||||
|
||||
### Value function for MDP
|
||||
|
||||

|
||||
|
||||
* 顺着 MDP 的定义,我们可以把 `state-value function`,就是在 MDP 里面的价值函数也进行一个定义,它的定义是跟 MRP 是类似的,但是这里 expectation over policy,就是这个期望是基于你采取的这个 policy ,就当你的 policy 决定过后,**我们通过对这个 policy 进行采样来得到一个期望,那么就可以计算出它的这个价值函数。**
|
||||
顺着 MDP 的定义,我们可以把 `状态-价值函数(state-value function)`,就是在 MDP 里面的价值函数也进行一个定义,它的定义是跟 MRP 是类似的,如式 (3) 所示:
|
||||
$$
|
||||
v^{\pi}(s)=\mathbb{E}_{\pi}\left[G_{t} \mid s_{t}=s\right] \tag{3}
|
||||
$$
|
||||
但是这里 expectation over policy,就是这个期望是基于你采取的这个 policy ,就当你的 policy 决定过后,**我们通过对这个 policy 进行采样来得到一个期望,那么就可以计算出它的这个价值函数。**
|
||||
|
||||
* 这里我们另外引入了一个 `Q 函数(action-value function)`。**这个 Q 函数定义的是在某一个状态采取某一个行为,然后它有可能得到的这个 return 的一个期望**。这里期望其实也是 over policy function。所以你需要对这个 policy function 进行一个加和,然后最后得到它的这个价值。
|
||||
* 对 Q 函数中的行为函数进行加和,就可以得到价值函数。
|
||||
这里我们另外引入了一个 `Q 函数(action-value function)`。**Q 函数定义的是在某一个状态采取某一个行为,它有可能得到的这个 return 的一个期望**,如式 (4) 所示:
|
||||
$$
|
||||
q^{\pi}(s, a)=\mathbb{E}_{\pi}\left[G_{t} \mid s_{t}=s, A_{t}=a\right] \tag{4}
|
||||
$$
|
||||
这里期望其实也是 over policy function。所以你需要对这个 policy function 进行一个加和,然后得到它的这个价值。
|
||||
|
||||
**对 Q 函数中的行为函数进行加和,就可以得到价值函数**,如式 (5) 所示:
|
||||
$$
|
||||
v^{\pi}(s)=\sum_{a \in A} \pi(a \mid s) q^{\pi}(s, a) \tag{5}
|
||||
$$
|
||||
|
||||
### Bellman Expectation Equation
|
||||
|
||||

|
||||
|
||||
通过对状态-价值函数进行一个分解,我们就可以得到一个类似于之前 MRP 的 Bellman Equation,这里叫 `Bellman Expectation Equation`。
|
||||
|
||||
对于 Q 函数,我们也可以做类似的分解,也可以得到对于 Q 函数的 Bellman Expectation Equation。
|
||||
|
||||
通过对状态-价值函数进行一个分解,我们就可以得到一个类似于之前 MRP 的 Bellman Equation,这里叫 `Bellman Expectation Equation`,如式 (6) 所示:
|
||||
$$
|
||||
v^{\pi}(s)=E_{\pi}\left[R_{t+1}+\gamma v^{\pi}\left(s_{t+1}\right) \mid s_{t}=s\right] \tag{6}
|
||||
$$
|
||||
对于 Q 函数,我们也可以做类似的分解,也可以得到对于 Q 函数的 Bellman Expectation Equation,如式 (7) 所示:
|
||||
$$
|
||||
q^{\pi}(s, a)=E_{\pi}\left[R_{t+1}+\gamma q^{\pi}\left(s_{t+1}, A_{t+1}\right) \mid s_{t}=s, A_{t}=a\right] \tag{7}
|
||||
$$
|
||||
**Bellman Expectation Equation 定义了你当前状态跟未来状态之间的一个关联。**
|
||||
|
||||

|
||||
|
||||
那我们进一步进行一个简单的分解。等式 8 和等式 9 代表了价值函数跟 Q 函数之间的一个关联。我们把等式 8 插入到等式 9,就可以得到等式 11,它象征了你当前时刻的 Q 函数跟未来时刻的 Q 函数之间的一个关联。也可以把等式 9 插入等式 8 中,得到等式 10。等式 10 代表了当前状态的价值跟未来状态价值之间的一个关联。
|
||||
那我们进一步进行一个简单的分解。我们先给出等式 (8):
|
||||
$$
|
||||
v^{\pi}(s)=\sum_{a \in A} \pi(a \mid s) q^{\pi}(s, a) \tag{8}
|
||||
$$
|
||||
再给出等式 (9):
|
||||
$$
|
||||
q^{\pi}(s, a)=R_{s}^{a}+\gamma \sum_{s^{\prime} \in S} P\left(s^{\prime} \mid s, a\right) v^{\pi}\left(s^{\prime}\right) \tag{9}
|
||||
$$
|
||||
等式 (8) 和等式 (9) 代表了价值函数跟 Q 函数之间的一个关联。
|
||||
|
||||
我们把等式 (8) 插入到等式 (9),就可以得到等式 (11):
|
||||
$$
|
||||
q^{\pi}(s, a)=R(s, a)+\gamma \sum_{s^{\prime} \in S} P\left(s^{\prime} \mid s, a\right) \sum_{a^{\prime} \in A} \pi\left(a^{\prime} \mid s^{\prime}\right) q^{\pi}\left(s^{\prime}, a^{\prime}\right) \tag{11}
|
||||
$$
|
||||
**它象征了你当前时刻的 Q 函数跟未来时刻的 Q 函数之间的一个关联。**
|
||||
|
||||
也可以把等式 (9) 插入等式 (8) 中,得到等式 (10):
|
||||
$$
|
||||
v^{\pi}(s)=\sum_{a \in A} \pi(a \mid s)\left(R(s, a)+\gamma \sum_{s^{\prime} \in S} P\left(s^{\prime} \mid s, a\right) v^{\pi}\left(s^{\prime}\right)\right) \tag{10}
|
||||
$$
|
||||
**等式 (10) 代表了当前状态的价值跟未来状态价值之间的一个关联。**
|
||||
|
||||
### Backup Diagram
|
||||
|
||||

|
||||
|
||||
这里有一个概念叫 `Backup`。Backup 类似于 bootstrapping 之间这个迭代关系,就对于某一个状态,它的当前这个价值是跟它未来价值线性相关的。你可以看到我们这里有两层加和。第一层加和就是这个叶子节点,然后往上走一层的话,我们就可以把未来的这个价值 $s'$ backup 到黑色的节点。然后再有一层加和,第二层加和,这个加和是把 action 进行加和。得到黑色节点的价值过后,再往上 backup 一层,然后就会推到根节点的价值,根节点就是我们当前状态。所以 `Backup Diagram` **定义了你未来下一时刻的状态跟你上一时刻的状态之间的一个关联。**
|
||||
这里有一个概念叫 `Backup`。Backup 类似于 bootstrapping 之间这个迭代关系,就对于某一个状态,它的当前这个价值是跟它未来价值线性相关的。
|
||||
$$
|
||||
v^{\pi}(s)=\sum_{a \in A} \pi(a \mid s)\left(R(s, a)+\gamma \sum_{s^{\prime} \in S} P\left(s^{\prime} \mid s, a\right) v^{\pi}\left(s^{\prime}\right)\right) \tag{12}
|
||||
$$
|
||||
如式 (12) 所示,你可以看到我们这里有两层加和:
|
||||
|
||||
* 第一层加和就是这个叶子节点,然后往上走一层的话,我们就可以把未来的这个价值 $s'$ backup 到黑色的节点。
|
||||
|
||||
* 第二层加和是把 action 进行加和。
|
||||
|
||||
得到黑色节点的价值过后,再往上 backup 一层,然后就会推到根节点的价值,根节点就是我们当前状态。**所以 `Backup Diagram` 定义了你未来下一时刻的状态跟你上一时刻的状态之间的一个关联。**
|
||||
|
||||

|
||||
|
||||
同样对于 Q 函数,我们也可以进行这样的一个推导,就现在的根节点是这个 Q 函数的一个节点。这个 Q 函数是对于黑色的这个节点。我们下一时刻的这个 Q 函数是叶子节点,有四个黑色结点。那么我们这里也有两个加和。
|
||||
$$
|
||||
q^{\pi}(s, a)=R(s, a)+\gamma \sum_{s^{\prime} \in S} P\left(s^{\prime} \mid s, a\right) \sum_{a^{\prime} \in A} \pi\left(a^{\prime} \mid s^{\prime}\right) q^{\pi}\left(s^{\prime}, a^{\prime}\right) \tag{13}
|
||||
$$
|
||||
如式 (13) 所示,
|
||||
|
||||
第一层加和是先把这个叶子节点从黑节点推到这个白色的这个节点,进了它的这个状态,就当我们到达某一个状态过后,这个白色极点,然后再进行一个加和,这样就把它重新推回到当前节点的一个 Q 函数,所以这个等式就决定了未来 Q 函数跟当前 Q 函数之间的这个关联。
|
||||
* 第一层加和是先把这个叶子节点从黑节点推到这个白色的这个节点,进了它的这个状态。
|
||||
* 当我们到达某一个状态过后,这个白色极点,然后再进行一个加和,这样就把它重新推回到当前节点的一个 Q 函数。
|
||||
|
||||
**所以这个等式就决定了未来 Q 函数跟当前 Q 函数之间的这个关联。**
|
||||
|
||||
### Policy Evaluation
|
||||
|
||||

|
||||
|
||||
@@ -235,6 +359,8 @@ $$
|
||||
|
||||
另外一个练习的例子,就是说我们现在采取的 policy 在每个状态,我们有 0.5 的概率往左走,有 0.5 的概率往右走,那么放到这个状态里面去如何计算。其实也是把这个 Bellman Expectation Equation 拿出来,然后进行迭代就可以算出来了,就当我们开始的时候,我们可以初始化。初始化这个不同的 $v(s')$ 都会有一个值,那么放到这个里面去迭代,最后它的 $v$ ,然后就会算出来。
|
||||
|
||||
### Prediction and Control
|
||||
|
||||

|
||||
|
||||
MDP 的 `prediction` 和 `control` 是 MDP 里面的核心问题。
|
||||
@@ -265,11 +391,15 @@ MDP 的 `prediction` 和 `control` 是 MDP 里面的核心问题。
|
||||
|
||||

|
||||
|
||||
首先我们来看一下`动态规划`。动态规划是说我们把可以把一个问题分解成一个最佳子结构,当我们可以把一些子结构都可以解决的话,那么它就可以组成一个最优的解。MDP是满足动态规划的要求的,就是在 Bellman Equation 里面,我们可以把它分解成一个递归的一个结构。当我们把它分解成一个递归的结构的时候,如果我们的子问题子状态能得到一个值,那么它的未来状态因为跟子状态是直接相连的,那我们也可以继续推算出来,所以这个价值函数就可以储存它以及重用它的最佳的解。**所以动态规划是解 MDP prediction 和 control 一个非常有效的方式。**
|
||||
首先我们来看一下`动态规划`。动态规划是说我们把可以把一个问题分解成一个最佳子结构,当我们可以把一些子结构都可以解决的话,那么它就可以组成一个最优的解。
|
||||
|
||||
MDP是满足动态规划的要求的,就是在 Bellman Equation 里面,我们可以把它分解成一个递归的一个结构。当我们把它分解成一个递归的结构的时候,如果我们的子问题子状态能得到一个值,那么它的未来状态因为跟子状态是直接相连的,那我们也可以继续推算出来,所以这个价值函数就可以储存它以及重用它的最佳的解。**所以动态规划是解 MDP prediction 和 control 一个非常有效的方式。**
|
||||
|
||||
### Policy evaluation on MDP
|
||||
|
||||

|
||||
|
||||
**首先看一下 policy evaluation。Policy evaluation 就是当给定一个 MDP 的时候,我们有一个事先定好的 policy。那么我们可以获得多少的价值。**就对于当前这个策略,我们可以得到多大的这个 value function。这里一个方法是说,我们直接把这个 Bellman Expectation Backup,这个等式拿出来,变成一个迭代的过程,这样反复迭代直到收敛。这样就可以计算它的一个过程。这个迭代过程是可以看作是 `synchronous backup` 的一个过程。等式 14 说的就是这个 Bellman Expectation Backup,我们把这个转换成一个动态规划的迭代。当我们得到上一时刻的 $v_t$ 的时候,那我们下一时刻就通过这个递归的一个关系,我们可以推出下一时刻的这个值,那么反复去迭代它,最后它的值就是从 $v_1,v_2$ 到最后收敛过后这个值。这个值就是我们当前给定的 policy 对应的价值函数。
|
||||
**首先看一下 policy evaluation。Policy evaluation 就是当给定一个 MDP 的时候,我们有一个事先定好的 policy。那么我们可以获得多少的价值。**就对于当前这个策略,我们可以得到多大的这个 value function。这里一个方法是说,我们直接把这个 Bellman Expectation Backup,这个等式拿出来,变成一个迭代的过程,这样反复迭代直到收敛。这样就可以计算它的一个过程。这个迭代过程是可以看作是 `synchronous backup` 的一个过程。等式 (14) 说的就是这个 Bellman Expectation Backup,我们把这个转换成一个动态规划的迭代。当我们得到上一时刻的 $v_t$ 的时候,那我们下一时刻就通过这个递归的一个关系,我们可以推出下一时刻的这个值,那么反复去迭代它,最后它的值就是从 $v_1,v_2$ 到最后收敛过后这个值。这个值就是我们当前给定的 policy 对应的价值函数。
|
||||
|
||||

|
||||
|
||||
@@ -313,7 +443,19 @@ $$
|
||||
|
||||

|
||||
|
||||
**Policy evaluation 是说给定一个 MDP 和一个 policy,我们可以估算出它的价值函数。**这个问题的另外一方面是说如果我们只有一个 MDP,如何去寻找一个最佳的策略,然后可以得到一个`最佳价值函数(Optimal Value Function)`。Optimal Value Function 的定义是说,我们去搜索一种 policy $\pi$ ,然后我们会得到每个状态它的状态值最大的一个情况,$v^*$ 就是到达每一个状态,它的值的极大化情况。在这种极大化情况上面,我们得到的策略就可以说它是最佳策略(optimal policy)。Optimal policy 使得每个状态,它的状态函数都取得最大值。所以当我们说某一个 MDP 的环境被解了过后,就是说我们可以得到一个 optimal value function,然后我们就说它被解了。在这种情况下面,然后我们它的最佳的价值函数是一致的,就它达到了这个 upper bound,它的值是一致的,但是这里可能有多个最佳的 policy,多个 policy 可以取得相同的最佳价值。
|
||||
**Policy evaluation 是说给定一个 MDP 和一个 policy,我们可以估算出它的价值函数。**这个问题的另外一方面是说如果我们只有一个 MDP,如何去寻找一个最佳的策略,然后可以得到一个`最佳价值函数(Optimal Value Function)`。Optimal Value Function 的定义如下式所示:
|
||||
$$
|
||||
v^{*}(s)=\max _{\pi} v^{\pi}(s)
|
||||
$$
|
||||
Optimal Value Function 是说,我们去搜索一种 policy $\pi$ ,然后我们会得到每个状态它的状态值最大的一个情况,$v^*$ 就是到达每一个状态,它的值的极大化情况。
|
||||
|
||||
在这种极大化情况上面,我们得到的策略就可以说它是最佳策略(optimal policy),如下式所示:
|
||||
$$
|
||||
\pi^{*}(s)=\underset{\pi}{\arg \max } v^{\pi}(s)
|
||||
$$
|
||||
Optimal policy 使得每个状态,它的状态函数都取得最大值。所以当我们说某一个 MDP 的环境被解了过后,就是说我们可以得到一个 optimal value function,然后我们就说它被解了。在这种情况下面,然后我们它的最佳的价值函数是一致的,就它达到了这个 upper bound,它的值是一致的,但是这里可能有多个最佳的 policy,多个 policy 可以取得相同的最佳价值。
|
||||
|
||||
### Finding Optimal Policy
|
||||
|
||||

|
||||
|
||||
@@ -321,25 +463,39 @@ $$
|
||||
|
||||

|
||||
|
||||
这里一种策略搜索办法是我们可以去穷举。假设我们有有限多个状态、有限多个行为可能性,那么每个状态我们可以采取这个 A 种行为的策略,那么总共就是 $|A|^{|S|}$ 个可能的 policy。那么有一种方法是直接可以把这个把穷举一遍,然后算出每种策略的 value function,然后对比一下可以得到最佳策略。但是一个问题是这样的穷举非常没有效率,所以我们要采取另外的一些办法,所以在解这个搜索最佳策略的方法有两种比较常用的方法:一种是叫 `policy iteration`,另外一种是叫 `value iteration` 的一个方法。
|
||||
最简单的策略搜索办法就是`穷举`。假设我们有有限多个状态、有限多个行为可能性,那么每个状态我们可以采取这个 A 种行为的策略,那么总共就是 $|A|^{|S|}$ 个可能的 policy。那我们可以把策略都穷举一遍,然后算出每种策略的 value function,对比一下就可以得到最佳策略。
|
||||
|
||||
但是这样的穷举非常没有效率,所以我们要采取其他方法。**搜索最佳策略有两种比较常用的方法:`policy iteration` 和 `value iteration` **。
|
||||
|
||||

|
||||
|
||||
所以我们在寻找这个最佳策略的过程就是 MDP 的控制过程,MDP Control 说的就是怎么去寻找一个最佳的策略,然后我们可以得到一个最大的价值函数。对于一个事先定好的 MDP 过程,当这个 agent 去采取策略的时候,我们可以说它这个最佳策略一般都是确定的。而且它是 stationary,它不会随着时间的变化。但是不一定是 unique,多种行为然后都会取得相同的这个这个价值。
|
||||
**寻找这个最佳策略的过程就是 MDP 的控制过程**。MDP Control 说的就是怎么去寻找一个最佳的策略,然后我们可以得到一个最大的价值函数,如下式所示:
|
||||
$$
|
||||
\pi^{*}(s)=\underset{\pi}{\arg \max } v^{\pi}(s)
|
||||
$$
|
||||
对于一个事先定好的 MDP 过程,当这个 agent 去采取最佳策略的时候,
|
||||
|
||||
* 我们可以说最佳策略一般都是确定的。
|
||||
* 而且是 stationary,它不会随着时间的变化。
|
||||
* 但是不一定是 unique,多种行为可能会取得相同的这个价值。
|
||||
|
||||
### Policy Iteration
|
||||
|
||||

|
||||
|
||||
首先我们来看一下 policy iteration。policy iteration 也是一个迭代算法。它主要由两个步骤组成,
|
||||
**Policy iteration 是一个迭代算法,它主要由两个步骤组成:policy evaluation 和 policy improvement。**
|
||||
|
||||
* **第一个步骤是 policy evaluation**,就跟我们之前说的这个评价一个已有的这个价值函数的价值是一致的,就是我们当前我们在优化这个 policy $\pi$ ,所以在优化过程中得到一个最新的这个 policy 。让我们先保证这个 policy 不变,那么去估计它出来的这个价值。给定当前的policy function,去估计这个 v 函数。
|
||||
* 取得 v 函数过后,我们可以进一步推算出它的 Q 函数。得到 Q 函数过后,那我们就直接去取它的极大化。在 Q 函数上面取极大化,**这样我们就有了第二步骤:改进它的策略。**通过在这个 Q 函数上面做一个贪心的搜索,这样就会进一步改进它的策略。
|
||||
* 这两个步骤就一直是在迭代进行,所以在这个 policy iteration 里面,在初始化的时候,我们有一个初始化的 $V$ 和 $\pi$ 。然后就是在这两个过程之间迭代,左边这幅图上面这根曲线就是我们当前这个 v 的值,下面是 policy 的值。就跟踢皮球一样,我们先给定当前已有的这个 policy function,然后去算它的这个 v。算出 v 过后,我们会得到一个 Q 函数,Q 函数我们采取 greedy 的策略,这样我们有踢皮球,踢回这个 policy 。然后就会进一步改进那个 policy ,得到一个改进的 policy 过后,它还不是最佳的,我们再进行 policy evaluation,然后又会得到一个新的 value function。基于这个新的 value function 再进行 Q 函数的极大化 ,这样就逐渐迭代,然后就会得到收敛。
|
||||
* **第一个步骤是 policy evaluation**,当前我们在优化这个 policy $\pi$ ,所以在优化过程中得到一个最新的 policy。我们先保证这个 policy 不变,然后去估计它出来的这个价值。给定当前的 policy function 来估计这个 v 函数。
|
||||
* 得到 v 函数过后,我们可以进一步推算出它的 Q 函数。得到 Q 函数过后,我们直接在 Q 函数上面取极大化,**这样我们就有了第二步骤:policy improvement。**通过在这个 Q 函数上面做一个贪心的搜索来进一步改进它的策略。
|
||||
* 这两个步骤就一直是在迭代进行,所以在 policy iteration 里面,在初始化的时候,我们有一个初始化的 $V$ 和 $\pi$ ,然后就是在这两个过程之间迭代。左边这幅图上面这根曲线就是我们当前这个 v 的值,下面是 policy 的值。就跟踢皮球一样,我们先给定当前已有的这个 policy function,然后去算它的 v。算出 v 过后,我们会得到一个 Q 函数。Q 函数我们采取 greedy 的策略,这样我们有踢皮球,踢回这个 policy 。然后就会进一步改进那个 policy ,得到一个改进的 policy 过后,它还不是最佳的,我们再进行 policy evaluation,然后又会得到一个新的 value function。基于这个新的 value function 再进行 Q 函数的极大化,这样就逐渐迭代,然后就会得到收敛。
|
||||
|
||||

|
||||
|
||||
这里再来看一下第二个步骤 `policy improvement`,我们是如何改进它的这个策略。当我们得到这个 v 值过后,我们就可以通过这个 reward function 以及状态转移把它的这个 Q-function 算出来。对于每一个状态,第二个步骤会得到它的一个新一轮的这个 policy ,就在每一个状态,我们去取使它得到最大值的 action。你可以把这个 Q 函数看成一个 Q-table。横轴是它的所有状态,纵轴是它的可能的 action。Q 函数得到过后,`Q-table` 就得到了。
|
||||
|
||||
那么对于某一个状态,每一列里面我们会取最大的那个值,最大值对应的那个 action 就是它现在应该采取了更佳的action。所以你看这里下面这个 arg max 操作就说在每个状态里面,我们去采取一个 action,这个 action 就是能使这一列的 Q 最大化的那个动作。
|
||||
那么对于某一个状态,每一列里面我们会取最大的那个值,最大值对应的那个 action 就是它现在应该采取了更佳的 action。所以你看这里下面这个 arg max 操作就说在每个状态里面,我们去采取一个 action,这个 action 就是能使这一列的 Q 最大化的那个动作。
|
||||
|
||||
### Bellman Optimality Equation
|
||||
|
||||

|
||||
|
||||
@@ -355,7 +511,7 @@ $$
|
||||
$$
|
||||
v^{\pi}(s)=\max _{a \in \mathcal{A}} q^{\pi}(s, a)
|
||||
$$
|
||||
上式被称为 `Bellman Optimality Equation`。**这个 Bellman Optimality Equation 满足的时候,是说整个 MDP 已经到达最佳的状态。**它到达最佳状态过后,对于我们这个 Q 函,取它最大的 action 时候的那个值,就是直接等于它的最佳的这个 value function。只有当整个状态已经收敛过后,得到一个最佳的 policy 的时候,这个条件才是满足的。
|
||||
上式被称为 `Bellman Optimality Equation`。**这个 Bellman Optimality Equation 满足的时候,是说整个 MDP 已经到达最佳的状态。**它到达最佳状态过后,对于这个 Q 函数,取它最大的 action 时候的那个值,就是直接等于它的最佳的这个 value function。只有当整个状态已经收敛过后,得到一个最佳的 policy 的时候,这个条件才是满足的。
|
||||
|
||||

|
||||
|
||||
@@ -368,23 +524,30 @@ $$
|
||||
q^{*}(s, a)=R(s, a)+\gamma \sum_{s^{\prime} \in S} P\left(s^{\prime} \mid s, a\right) \max _{a^{\prime}} q^{*}\left(s^{\prime}, a^{\prime}\right)
|
||||
$$
|
||||
|
||||
### Value Iteration
|
||||
|
||||

|
||||
|
||||
**Value iteration 说的是我们把 Bellman Optimality Equation 当成一个 update rule 来进行。**之前我们是说上面这个等式只有当整个状态已经到达最佳状态的时候,然后才满足。但这里可以把它转换成一个 backup 的等式。 Backup 就是说一个迭代的等式,我们不停地去迭代 Bellman Optimality Equation,到了最后,它能逐渐趋向于最佳的策略,所以这也是 value iteration 算法的精髓,就是我们去为了得到最佳的 $v^*$ ,对于每个状态它的 $v^*$ 这个值,我们直接把这个 Bellman Optimality Equation 进行迭代,迭代了很多次之后它就会收敛。
|
||||
**Value iteration 就是把 Bellman Optimality Equation 当成一个 update rule 来进行,**如下式所示:
|
||||
$$
|
||||
v(s) \leftarrow \max _{a \in \mathcal{A}}\left(R(s, a)+\gamma \sum_{s^{\prime} \in \mathcal{S}} P\left(s^{\prime} \mid s, a\right) v\left(s^{\prime}\right)\right)
|
||||
$$
|
||||
之前我们是说上面这个等式只有当整个状态已经到达最佳状态的时候,然后才满足。但这里可以把它转换成一个 backup 的等式。 Backup 就是说一个迭代的等式,我们不停地去迭代 Bellman Optimality Equation,到了最后,它能逐渐趋向于最佳的策略,这是 value iteration 算法的精髓。我们去为了得到最佳的 $v^*$ ,对于每个状态的 $v^*$ 这个值,我们直接把这个 Bellman Optimality Equation 进行迭代,迭代了很多次之后,它就会收敛。
|
||||
|
||||

|
||||
|
||||
* Value iteration 算法的目的是为了得到一个最佳的策略。
|
||||
* 我们使用 value iteration 算法是为了得到一个最佳的策略。
|
||||
|
||||
* 一个解法是直接把这个 `Bellman Optimality backup`,把它这个等式拿进来进行迭代,迭代很多次,收敛过后得到的那个值就是它的最佳的那个值。
|
||||
* 所以这个算法开始的时候,它是先把所有值初始化,通过每一个状态,然后它会进行这个迭代。把等式 22 插到等式 23 里面,就是 Bellman Optimallity backup 的那个等式。有了这个等式过后,然后进行不停地迭代,迭代过后,然后收敛。然后就会得到这个 $v^*$ 。当我们有这个 $v^*$ 过后,一个问题是如何进一步推算出它的最佳策略。
|
||||
* 所以这个算法开始的时候,它是先把所有值初始化,通过每一个状态,然后它会进行这个迭代。把等式 (22) 插到等式 (23) 里面,就是 Bellman Optimallity backup 的那个等式。有了这个等式过后,然后进行不停地迭代,迭代过后,然后收敛。然后就会得到这个 $v^*$ 。当我们有这个 $v^*$ 过后,一个问题是如何进一步推算出它的最佳策略。
|
||||
* 最佳策略的话,我们可以直接用 arg max,就先把它的 Q 函数重构出来,重构出来过后,每一个列对应的最大的那个 action 就是它现在的最佳策略。这样就可以把最佳策略从最佳价值函数里面推导出来。
|
||||
|
||||

|
||||
|
||||
上图是一个可视化的过程。在一个 grid world 中,不管你在哪一个位置开始,我们都希望能够到 goal 的这个点,左上角的那个点。因为它是一个迭代过程,然后这里可视化了从 $v_1$ 到 $v_7$ 每一个状态的值的变化,它的这个值逐渐在变化。而且因为它每走一步,就会得到一个负的值,所以它需要尽快地到达左上角,可以发现离它越远的那个值就越大。$v_7$ 收敛过后,右下角那个值是 -6,也就相当于它要走六步,才能到达最上面那个值。而且离这个目的地越近,它的价值越大。
|
||||
|
||||
### Difference between Policy Iteration and Value Iteration
|
||||
|
||||

|
||||
|
||||

|
||||
@@ -432,9 +595,10 @@ $$
|
||||
|
||||
我们再来对比下 policy iteration 和 value iteration,这两个算法都可以解 MDP 的控制问题。
|
||||
|
||||
* Policy iteration 由两部分组成:policy evaluation 和 policy improvement。它很清楚地把这个过程分成了两步,就首先对于当前已经搜索到的策略函数,然后对它进行一个估值,得到估值过后,把 Q 函数算出来,我们进一步进行改进。
|
||||
* Policy iteration 由两部分组成:policy evaluation 和 policy improvement。Policy Iteration 分两步,首先对当前已经搜索到的策略函进行一个估值。得到估值过后,把 Q 函数算出来,我们进一步进行改进。
|
||||
* Value iteration 直接把 Bellman Optimality Equation 拿进来,然后直接去寻找最佳的 value function,没有 policy function 在这里面,当算出 optimal value function 过后,我们可以在最后再执行一步这个提取过程,最佳策略提取过程。这样就可以把它的最佳策略抽取过来。
|
||||
|
||||
* 但对于 value iteration 的话,它是直接把 Bellman Optimality Equation 拿进来,然后直接去寻找最佳的 value function,没有 policy function 在这里面,当我们把这个 optimal value function 算出来过后,那我们可以在最后再执行一步这个提取过程,最佳策略提取过程。这样就可以把它的最佳策略抽取过来。
|
||||
### Summary for Prediction and Contro in MDP
|
||||
|
||||

|
||||
|
||||
|
||||
Reference in New Issue
Block a user