Skip to content

Commit 52ab6ab

Browse files
committed
第二章润色版本更新
1 parent 642a0fb commit 52ab6ab

167 files changed

Lines changed: 149891 additions & 62828 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/ci.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -26,4 +26,5 @@ jobs:
2626
restore-keys: |
2727
mkdocs-material-
2828
- run: pip install mkdocs-material
29+
- run: pip install fontawesome-markdown
2930
- run: mkdocs gh-deploy --force

.history/docs/Box/Box-2-1_20251020193835.md

Whitespace-only changes.
Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
将误差定义为$\delta_k = v_k - v_\pi$。我们只需证明$\delta_k \rightarrow 0$。$v_{k+1} = \delta_{k+1} + v_\pi$ 和 $v_k = \delta_k + v_\pi$ 代入 $v_{k+1} = r_\pi + \gamma P_\pi v_k$ 可得
2+
3+
$$\delta_{k+1}+v_\pi=r_\pi+\gamma P_\pi(\delta_k+v_\pi),$$
4+
5+
可以被写为
6+
7+
$$\begin{aligned}\delta_{k+1}&=-v_{\pi}+r_{\pi}+\gamma P_{\pi}\delta_{k}+\gamma P_{\pi}v_{\pi},\\&=\gamma P_{\pi}\delta_{k}-v_{\pi}+(r_{\pi}+\gamma P_{\pi}v_{\pi}),\\&=\gamma P_{\pi}\delta_{k}.\end{aligned}$$
8+
9+
因此
10+
11+
$$\delta_{k+1}=\gamma P_{\pi}\delta_{k}=\gamma^{2}P_{\pi}^{2}\delta_{k-1}=\cdots=\gamma^{k+1}P_{\pi}^{k+1}\delta_{0}.$$
12+
13+
由于$P_\pi$的每个元素都是非负且不大于$1$,因此我们可以得出$0\leq P_\pi^k \leq 1$,对于任意$k$。也就是说,$P_\pi^k$的每个元素都不大于$1$,另一方面,由于$\gamma< 1$,我们知道$\gamma^k\rightarrow 0$,因此$\delta_{k+1}=\gamma^{k+1}P_\pi^{k+1}\delta_0\rightarrow 0$当$k\rightarrow\infty$时。
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
本章介绍了强化学习的基本概念。这些概念在本书中被广泛使用。我们首先通过**网格世界**介绍这些概念,然后在**马尔可夫决策过程**的框架下对它们进行更加具体介绍。
2+
3+
![](../img/chapter/chapter-1.png)
4+
> 图$1.1$: 本章在全书中的位置。
Lines changed: 35 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,35 @@
1+
## 2.1 为什么回报很重要?
2+
3+
上一章介绍了回报的概念,它在强化学习中扮演着重要的角色,因为它可以评估一个策略的好坏,我们通过下面的例子来说明这一点。图$2.2$给出了三种策略:这三个策略在状态$s_1$是不同的,在其他状态是相同的。那么这三个策略哪一个最好,哪一个最差呢?
4+
5+
6+
![](../img/02/1.png)
7+
8+
> 图$2.2$: 举例说明回报的重要性。这三个例子对$s_1$采用了不同的政策。
9+
10+
直观上来判断,最左边的策略是最好的,因为智能体从$s_1$出发可以避开禁区。中间的策略最差,因为从$s_1$出发的智能体进入了禁区。最右边的策略介于两种策略之间,因为进入禁区的概率为$0.5$,也有$0.5$的概率避开禁止区域。
11+
12+
上述分析的直观判断能否用数学来描述呢?答案是肯定的,具体来说,假设智能体的初始状态为$s_1$。
13+
14+
15+
1. 按照第一种策略,轨迹为$s_1\rightarrow s_3\rightarrow s_4\rightarrow s_4\cdots$,相应的折扣回报为:
16+
17+
$$\begin{aligned}\mathrm{return}_{1}&=0+\gamma1+\gamma^{2}1+\ldots\\&=\gamma(1+\gamma+\gamma^2+\ldots)\\&=\frac{\gamma}{1-\gamma},\end{aligned}$$
18+
19+
其中$\gamma \in (0,1)$是折扣因子。
20+
21+
2. 按照第二种策略,轨迹为$s_1\rightarrow s_2\rightarrow s_4\rightarrow s_4\cdots$,相应的折扣回报是:
22+
23+
$$\begin{aligned}\mathrm{return}_{2}&=-1+\gamma1+\gamma^{2}1+\ldots\\&=-1+\gamma(1+\gamma+\gamma^2+\ldots)\\&=-1+\frac{\gamma}{1-\gamma}.\end{aligned}$$
24+
25+
3. 按照第三种策略,有两种可能的策略。第一个是$s_1\rightarrow s_3\rightarrow s_4\rightarrow s_4\cdots$,另一个是$s_1\rightarrow s_2\rightarrow s_4\rightarrow s_4\cdots$。这两条轨迹的可能性均为$0.5$。那么平均回报为:
26+
27+
$$\begin{aligned}\mathrm{return}_{3}&=0.5\left(-1+\frac{\gamma}{1-\gamma}\right)+0.5\left(\frac{\gamma}{1-\gamma}\right)\\&=-0.5+\frac{\gamma}{1-\gamma}.\end{aligned}$$
28+
29+
通过上面计算出来的三个策略的回报可以发现:
30+
31+
$$\mathrm{return}_1>\mathrm{return}_3>\mathrm{return}_2,\tag{2.1}$$
32+
33+
不等式$(2.1)$表明:第一个策略是最好的,因为它的回报最大;第二个策略是最差的,因为它的回报是最小的。这一数学结论与上述直觉是一致的:第一种策略是最好的,因为它可以避免进入禁区。而第二种策略是最差的,因为它会导致智能体进入禁区。
34+
35+
上述例子证明了回报可以被用来评估策略的好坏。值得注意的是$\mathrm{return}_3$并不严格遵循回报的定义,回报的定义只是针对于一条轨迹,而$\mathrm{return}_3$是两条轨迹的平均值。稍后我们就会知道$\mathrm{return}_3$实际上是本章要介绍的状态值。
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
## 如何计算回报?
2+
3+
上一节我们已经证明了回报的重要性,那么如何计算回报呢?实际上我们有两种计算回报的方法。
4+
5+
![](../img/02/2.png)
6+
> 图$2.3$: 用于说明如何计算回报的示例。这个例子中没有目标单元格或禁止单元格。
7+
8+
- 第一个计算回报的方法就是根据定义,回报等于沿轨迹收集的所有奖励的折扣总和。请看图$2.3$中的例子。令$v_i$表示从$s_i$($i = 1, 2, 3, 4$)开始获得的回报。那么,从图$2.3$中的四种状态出发所得到的回报为:
9+
10+
$$\begin{gathered}v_{1}=r_1+\gamma r_2+\gamma^2r_3+\ldots,\\v_{2}=r_2+\gamma r_3+\gamma^2r_4+\ldots,\\v_{3}=r_3+\gamma r_4+\gamma^2r_1+\ldots,\\\mathrm{v}_4=r_{4}+\gamma r_{1}+\gamma^{2}r_{2}+\ldots.\end{gathered}\tag{2.2}$$
11+
12+
- 第二种方法是本节重点关注的自举法(bootstrapping)。具体来说,通过观察式$(2.2)$中回报的表达式,可以将其重写为:
13+
14+
$$\begin{gathered}v_{1}=r_1+\gamma(r_2+\gamma r_3+\ldots)=r_1+\gamma v_2,\\v_{2}=r_2+\gamma(r_3+\gamma r_4+\ldots)=r_2+\gamma v_3,\\v_{3}=r_3+\gamma(r_4+\gamma r_1+\ldots)=r_3+\gamma v_4,\\v_{4}=r_4+\gamma(r_1+\gamma r_2+\ldots)=r_4+\gamma v_1.\end{gathered}\tag{2.3}$$
15+
16+
方程$(2.3)$表明了一个有趣的现象,从不同状态出发的回报值是相互依赖。具体来说,$v_1$依赖于$v_2$,$v_2$依赖于$v_3$,$v_3$依赖于$v_4$,$v_4$又依赖于$v_1$。这反映了自举的思想:$v_1,v_2,v_3,v_4$可以从其自身$v_2,v_3,v_4,v_1$得到。
17+
18+
乍一看,自举似乎是一个无解的循环,这是因为一个未知量的计算依赖于另一个未知量。事实上,如果我们从数学的角度来看,自举法更容易理解。具体来说,$(2.3)$的方程可以转换成一个矩阵-向量形式的方程:
19+
20+
$$\underbrace{\begin{bmatrix}v_1\\v_2\\v_3\\v_4\end{bmatrix}}_{v}=\begin{bmatrix}r_1\\r_2\\r_3\\r_4\end{bmatrix}+\begin{bmatrix}\gamma v_2\\\gamma v_3\\\gamma v_4\\\gamma v_1\end{bmatrix}=\underbrace{\begin{bmatrix}r_1\\r_2\\r_3\\r_4\end{bmatrix}}_{r}+\underbrace{\gamma\begin{bmatrix}0&1&0&0\\0&0&1&0\\0&0&0&1\\1&0&0&0\end{bmatrix}}_{P}\underbrace{\begin{bmatrix}v_1\\v_2\\v_3\\v_4\end{bmatrix}}_{v},$$
21+
22+
上式可以更简洁地写为:
23+
24+
$$v=r+\gamma Pv.$$
25+
26+
上面方程的解很容易求解,即$v=(I-\gamma P)^{-1} r$,其中$I\in\mathbb{R}^{4\times 4}$是单位矩阵。有的读者会问$(I - \gamma P)$一定是可逆的吗?答案是肯定的,具体证明可参见$2.7.1$节。
27+
28+
事实上,$(2.3)$就是这个简单例子的贝尔曼方程,而方程$(2.4)$是这个贝尔曼方程的矩阵-向量形式。虽然很简单,但方程$(2.3)$却展示了贝尔曼方程的核心思想:从一个状态出发所获得的回报依赖于从其他状态开始所获得的回报。自举的思想对理解后面介绍的贝尔曼方程至关重要。
Lines changed: 28 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,28 @@
1+
## 2.2 如何计算回报
2+
3+
上一节我们已经证明了回报的重要性,那么如何计算回报呢?实际上我们有两种计算回报的方法。
4+
5+
![](../img/02/2.png)
6+
> 图$2.3$: 用于说明如何计算回报的示例。这个例子中没有目标单元格或禁止单元格。
7+
8+
- 第一个计算回报的方法就是根据定义,回报等于沿轨迹收集的所有奖励的折扣总和。请看图$2.3$中的例子。令$v_i$表示从$s_i$($i = 1, 2, 3, 4$)开始获得的回报。那么,从图$2.3$中的四种状态出发所得到的回报为:
9+
10+
$$\begin{gathered}v_{1}=r_1+\gamma r_2+\gamma^2r_3+\ldots,\\v_{2}=r_2+\gamma r_3+\gamma^2r_4+\ldots,\\v_{3}=r_3+\gamma r_4+\gamma^2r_1+\ldots,\\\mathrm{v}_4=r_{4}+\gamma r_{1}+\gamma^{2}r_{2}+\ldots.\end{gathered}\tag{2.2}$$
11+
12+
- 第二种方法是本节重点关注的自举法(bootstrapping)。具体来说,通过观察式$(2.2)$中回报的表达式,可以将其重写为:
13+
14+
$$\begin{gathered}v_{1}=r_1+\gamma(r_2+\gamma r_3+\ldots)=r_1+\gamma v_2,\\v_{2}=r_2+\gamma(r_3+\gamma r_4+\ldots)=r_2+\gamma v_3,\\v_{3}=r_3+\gamma(r_4+\gamma r_1+\ldots)=r_3+\gamma v_4,\\v_{4}=r_4+\gamma(r_1+\gamma r_2+\ldots)=r_4+\gamma v_1.\end{gathered}\tag{2.3}$$
15+
16+
方程$(2.3)$表明了一个有趣的现象,从不同状态出发的回报值是相互依赖。具体来说,$v_1$依赖于$v_2$,$v_2$依赖于$v_3$,$v_3$依赖于$v_4$,$v_4$又依赖于$v_1$。这反映了自举的思想:$v_1,v_2,v_3,v_4$可以从其自身$v_2,v_3,v_4,v_1$得到。
17+
18+
乍一看,自举似乎是一个无解的循环,这是因为一个未知量的计算依赖于另一个未知量。事实上,如果我们从数学的角度来看,自举法更容易理解。具体来说,$(2.3)$的方程可以转换成一个矩阵-向量形式的方程:
19+
20+
$$\underbrace{\begin{bmatrix}v_1\\v_2\\v_3\\v_4\end{bmatrix}}_{v}=\begin{bmatrix}r_1\\r_2\\r_3\\r_4\end{bmatrix}+\begin{bmatrix}\gamma v_2\\\gamma v_3\\\gamma v_4\\\gamma v_1\end{bmatrix}=\underbrace{\begin{bmatrix}r_1\\r_2\\r_3\\r_4\end{bmatrix}}_{r}+\underbrace{\gamma\begin{bmatrix}0&1&0&0\\0&0&1&0\\0&0&0&1\\1&0&0&0\end{bmatrix}}_{P}\underbrace{\begin{bmatrix}v_1\\v_2\\v_3\\v_4\end{bmatrix}}_{v},$$
21+
22+
上式可以更简洁地写为:
23+
24+
$$v=r+\gamma Pv.$$
25+
26+
上面方程的解很容易求解,即$v=(I-\gamma P)^{-1} r$,其中$I\in\mathbb{R}^{4\times 4}$是单位矩阵。有的读者会问$(I - \gamma P)$一定是可逆的吗?答案是肯定的,具体证明可参见$2.7.1$节。
27+
28+
事实上,$(2.3)$就是这个简单例子的贝尔曼方程,而方程$(2.4)$是这个贝尔曼方程的矩阵-向量形式。虽然很简单,但方程$(2.3)$却展示了贝尔曼方程的核心思想:从一个状态出发所获得的回报依赖于从其他状态开始所获得的回报。自举的思想对理解后面介绍的贝尔曼方程至关重要。
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
## 2.3 状态值
2+
3+
前面提到了回报可以用来评价政策。然而,回报不适用于随机系统,因为从一种状态出发可能会得到不同的轨迹和回报。为此,我们在本节引入了状态值的概念。
4+
5+
首先,我们需要引入一些的符号。在时刻$t = 0, 1, 2,\cdots$,智能体处于状态$S_t$,根据策略$\pi$采取的行动$A_t$。转移到下一个状态是$S_{t+1}$,获得的即时奖励是$R_{t+1}$。这一过程可以简洁地表示为:
6+
7+
$$S_t\xrightarrow{A_t}S_{t+1},R_{t+1}.$$
8+
9+
这里$S_{t},S_{t+1},A_{t},R_{t+1}$都是随机变量。而且$S_t,S_{t+1}\in \mathcal{S},A_t\in \mathcal{A}(S_t),R_{t+1}\in \mathcal{R}(S_t,A_t).$
10+
11+
从时刻$t$开始,我们可以得到一条包含一系列“状态-行动-奖励”的轨迹:
12+
13+
$$S_t\xrightarrow{A_t}S_{t+1},R_{t+1}\xrightarrow{A_{t+1}}S_{t+2},R_{t+2}\xrightarrow{A_{t+2}}S_{t+3},R_{t+3}\ldots.$$
14+
15+
根据定义,沿这个轨迹的折扣回报是:
16+
17+
$$G_t= R_{t+1}+\gamma R_{t+2}+\gamma^2R_{t+3}+\ldots,$$
18+
19+
其中$\gamma \in (0,1)$是折扣因子。因为$R_{t+1},R_{t+2},\cdots$都是随机变量,所以由它们组合得到的$G_t$也是一个随机变量。
20+
21+
由于$G_t$是一个随机变量,我们可以计算出它的期望值:
22+
23+
$$v_\pi(s)=\mathbb{E}[G_t|S_t=s].$$
24+
25+
这里的$v_\pi (s)$被称为**状态值函数** (state-value function),或简称为$s$的**状态值** (state value)。下面是对状态值的一些说明。
26+
27+
- 第一,$v_\pi(s)$依赖于$s$,即不同的状态的状态值一般是不同的。这是因为它在$(2.5)$中的定义是一种条件期望,而其中的条件是$S_t=s$。
28+
29+
- 第二,$v_\pi(s)$依赖于$\pi$,即不同策略的对应的状态值一般是不同的,这是因为轨迹是根据策略$\pi$产生的,不同的策略可能会导致不同的轨迹。
30+
31+
- 第三,$v_\pi(s)$并不依赖于$t$,虽然$v_\pi(s)$的定义涉及时刻$t$,但是不论$t$选取什么值得到的结果都应该是相同的,因此系统是平稳的,不会随着时间而变化。
32+
33+
!!! note
34+
状态值与回报之间的关系进一步明确如下。当策略和系统模型都是**确定性**的时候,从一个状态开始总是会导致相同的轨迹。在这种情况下,从一个状态出发获得的回报等于该状态的值。相反,当策略或系统模型是**随机**的时,从同一状态出发可能会产生不同的轨迹。在这种情况下,不同轨迹的回报是不同的,而状态值就是这些回报的平均值。(回报是固定的,状态值是随机的)
35+
36+
尽管如第$2.1$节所示,回报可以用来评估策略,但使用状态值来评估策略更为合适。因此,状态值是强化学习的一个核心概念。状态值固然重要,但随之而来的问题是如何计算状态值。这个问题将在下一节回答。
Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
## 2.4 贝尔曼方程
2+
3+
本节将来介绍大名鼎鼎的**贝尔曼方程** (Bellman equation)。其是用于分析状态值的核心工具。一句话概述:贝尔曼方程描述了所有状态值之间的关系。
4+
5+
下面我们将要详细推导贝尔曼方程。首先,$G_t$可以重新写成:
6+
7+
$$\begin{aligned}G_{t}&=R_{t+1}+\gamma R_{t+2}+\gamma^{2}R_{t+3}+\ldots\\&=R_{t+1}+\gamma(R_{t+2}+\gamma R_{t+3}+\ldots)\\&=R_{t+1}+\gamma G_{t+1},\end{aligned}$$
8+
9+
其中$G_{t+1}=R_{t+2}+\gamma R_{t+3}+\cdots$。该方程建立了$G_t$和 $G_{t+1}$之间的关系。因此状态值可以写成:
10+
11+
$$\begin{aligned}v_{\pi}(s)&=\mathbb{E}[G_{t}|S_{t}=s]\\&=\mathbb{E}[R_{t+1}+\gamma G_{t+1}|S_{t}=s]\\&=\mathbb{E}[R_{t+1}|S_{t}=s]+\gamma\mathbb{E}[G_{t+1}|S_{t}=s].\end{aligned}.\tag{2.4}$$
12+
13+
下面对$(2.4)$中的两项进行分析。
14+
15+
1. 第一项$\mathbb{E}[R_{t+1}|S_t=s]$是即时奖励的期望值,通过使用附录$A$中的全期望的性质,这一项可以化为:
16+
17+
$$\begin{aligned}\mathbb{E}[R_{t+1}|S_{t}=s]&=\sum_{a\in\mathcal{A}}\pi(a|s)\mathbb{E}[R_{t+1}|S_{t}=s,A_{t}=a]\\&=\sum_{a\in\mathcal{A}}\pi(a|s)\sum_{r\in\mathcal{R}}p(r|s,a)r.\end{aligned}.\tag{2.5}$$
18+
19+
这里,$\mathcal{A}$和$\mathcal{R}$分别是可能的行动和奖励的集合。对于不同的状态,$\mathcal{A}$可能是不同的,此时$\mathcal{A}$可以表示为$\mathcal{A}(s)$。类似地,$\mathcal{R}$也可能依赖于$(s, a)$。
20+
21+
2. 第二项$\mathbb{E}[G_{t+1}|S_t=s]$是未来奖励的期望值,它可以计算为:
22+
23+
$$\begin{aligned}\mathbb{E}[G_{t+1}|S_{t}=s]&=\sum_{s^{\prime}\in\mathcal{S}}\mathbb{E}[G_{t+1}|S_{t}=s,S_{t+1}=s^{\prime}]p(s^{\prime}|s)\\&=\sum_{s^{\prime}\in\mathcal{S}}\mathbb{E}[G_{t+1}|S_{t+1}=s^{\prime}]p(s^{\prime}|s)\quad(\text{due to the Markov property})\\&=\sum_{s^{\prime}\in\mathcal{S}}v_{\pi}(s^{\prime})p(s^{\prime}|s)\\&=\sum_{s^{\prime}\in\mathcal{S}}v_{\pi}(s^{\prime})\sum_{a\in\mathcal{A}}p(s^{\prime}|s,a)\pi(a|s).&(2.6)\end{aligned}$$
24+
25+
!!! note
26+
首先将条件期望分解为$\mathbb{E}[G_{t+1}|S_{t}=s,S_{t+1}=s^{\prime}]p(s^{\prime}|s)$
27+
28+
我们知道,MDP具有马尔可夫性,未来的奖励完全取决于现在的情况,而不是历史的情况。
29+
30+
$\mathbb{E}[G_{t+1}|S_{t}=s,S_{t+1}=s^{\prime}]=\mathbb{E}[G_{t+1}|S_{t+1}=s^{\prime}],$
31+
32+
替换价值函数,$\mathbb{E}[G_{t+1}|S_{t+1}=s^{\prime}]$正是状态$s^\prime$的价值函数$v_\pi(s^\prime)$
33+
34+
状态转移概率$p(s^{\prime}|s)$可进一步分解为:在策略$\pi$下选择行动$a$的概率$\pi(s|a)$,以及执行行动$a$后转移到$s^\prime$的概率$p(s^\prime|s,a)$。
35+
36+
37+
38+
将$(2.5)-(2.6)$代入$(2.4)$可得
39+
40+
$$\begin{aligned}v_{\pi}(s)&=\mathbb{E}[R_{t+1}|S_{t}=s]+\gamma\mathbb{E}[G_{t+1}|S_{t}=s],\\&=\underbrace{\sum_{a\in\mathcal{A}}\pi(a|s)\sum_{r\in\mathcal{R}}p(r|s,a)r}_{\text{mean of immediate rewards}}+\underbrace{\gamma\sum_{a\in\mathcal{A}}\pi(a|s)\sum_{s^{\prime}\in\mathcal{S}}p(s^{\prime}|s,a)v_{\pi}(s^{\prime})}_{\text{mean of future rewards}}\\&=\sum_{a\in\mathcal{A}}\pi(a|s)\left[\sum_{r\in\mathcal{R}}p(r|s,a)r+\gamma\sum_{s^{\prime}\in\mathcal{S}}p(s^{\prime}|s,a)v_{\pi}(s^{\prime})\right],\quad\text{for all }s\in\mathcal{S}.\end{aligned}\tag{2.7}$$
41+
42+
这个方程就是大名鼎鼎的贝尔曼方程,它描述了不同状态值之间的关系。是设计和分析强化学习算法的基本工具。
43+
44+
贝尔曼方程乍看之下似乎很复杂,实际上,它的结构非常清晰。下面是对该方程的解释说明。
45+
46+
- $v_\pi(s)$和$v_\pi(s')$是需要计算的未知状态值。初学者可能难以理解如何求解未知的$v_\pi(s)$,因为从式$(2.7)$来看,状态值存在于等式的两边。必须要注意的是,每一个状态都有这样一个贝尔曼方程,如果我们把这些方程放在一起,如何计算所有状态值就变得很清晰了。详情将在第$2.7$节中介绍。
47+
48+
- $\pi(a|s)$是给定的政策,是已知量。贝尔曼方程一定是对应一个特定的策略。求解贝尔曼方程从而得到状态值是一个**策略评价** (policy evaluation)的过程,这是许多强化学习算法中的核心步骤。
49+
50+
- $p(r|s,a)$和$p(s'|s,a)$代表系统模型。这是已知量还是未知量呢?在$2.7$节中,我们将首先展示如何利用已知模型计算状态值,在后面的章节中,将会慢慢推广到无模型算法(free model),在不使用模型的情况下做到这一点。
51+
52+
除了$(2.7)$中的表达式外,读者还可能在文献中遇到贝尔曼方程的其他表达式。接下来我们介绍三种常见的等价形式。
53+
54+
1. 第一种等价形式是:
55+
$$v_\pi(s)=\sum_{a\in\mathcal{A}}\pi(a|s)\sum_{s^{\prime}\in\mathcal{S}}\sum_{r\in\mathcal{R}}p(s^{\prime},r|s,a)\left[r+\gamma v_\pi(s^{\prime})\right].$$
56+
57+
这是[[3](http://incompleteideas.net/book/the-book-2nd.html)]中使用的表达式。这个式子可以通过下面的全概率公式(详见附录A)代入式$(2.9)$得到,
58+
59+
$$p(s^{\prime}|s,a)=\sum_{r\in\mathcal{R}}p(s^{\prime},r|s,a),\\
60+
p(r|s,a)=\sum_{s^{\prime}\in\mathcal{S}}p(s^{\prime},r|s,a).$$
61+
62+
2. 第二种常见的等价形式是**贝尔曼期望方程** (Bellman expectation equation):
63+
$$v_\pi(s)=\mathbb{E}\left[R_{t+1}+\gamma v_\pi (S_{t+1})\mid S_t=s \right],s\in\mathcal{S}.$$
64+
65+
这是因为$\mathbb{E}\left[G_{t+1}\mid S_t=s=\sum_a \pi(a\mid s) \sum_{a^\prime}p(s^\prime \mid s,a)v_\pi(s^\prime)=\mathbb{v_\pi(S_{t+1})\mid S_t=s}\right]$,将其代入$(2.4)$中即可得到贝尔曼期望方程。
66+
67+
68+
3. 第三种,在某些问题中,奖励$r$可能仅依赖于下一个状态$s'$,即奖励可以写成$r(s^\prime)$。此时我们有$p(r(s')|s, a))=(s'|s, a)$,将其代入$(2.7)$可以得到另外一个表达式:
69+
70+
$$v_{\pi}(s)=\sum_{a\in\mathcal{A}}\pi(a|s)\sum_{s^{\prime}\in\mathcal{S}}p(s^{\prime}|s,a)\left[r(s^{\prime})+\gamma v_{\pi}(s^{\prime})\right].$$

0 commit comments

Comments
 (0)