|
| 1 | +## 3.3 贝尔曼最优公式 |
| 2 | + |
| 3 | +!!! note |
| 4 | + 这一节公式非常多,建议读者仔细阅读 |
| 5 | + |
| 6 | +为了分析和求解最优策略,下面将介绍**贝尔曼最优公式** (Bellman optimality equation, BOE)。首先直接给出其表达式,然后详细分析它的性质。 |
| 7 | + |
| 8 | +对于每个$s\in\mathcal{S}$,贝尔曼最优方程的表达式为: |
| 9 | + |
| 10 | +$$\begin{aligned} |
| 11 | + v(s) &= \max_{\pi \in \Pi(\mathcal{S})} \sum_{a \in A} \pi(a|s) \left( \sum_{r \in \mathcal{R}} p(r|s, a) r + \gamma \sum_{s' \in S} p(s'|s, a) v(s') \right) \\ |
| 12 | +&= \max_{\pi \in \Pi(\mathcal{S})} \sum_{a \in A} \pi(a|s) q(s, a), |
| 13 | +\end{aligned}\tag{3.1}$$ |
| 14 | + |
| 15 | +其中, |
| 16 | + |
| 17 | +$$q(s, a) = \sum_{r \in \mathcal{R}} p(r|s, a) r + \gamma \sum_{s' \in \mathcal{S}} p(s'|s, a) v(s').$$ |
| 18 | + |
| 19 | +这里$v(s),v(s^\prime)$是待求解的未知变量,$\pi(s)$表示状态$s$的策略,而$\Pi(s)$是状态$s$所有可能策略的集合。 |
| 20 | + |
| 21 | +贝尔曼最优方程是一个优雅且强大的工具,它能清晰地解释许多基础且重要的问题。然而要理解这个方程可能并非易事。例如,这个方程有两个未知变量:一类是值$v(s)$,另一类是策略$\pi(a|s)$。如何从一个方程中同时求解两类未知量呢?此外,下面这些问题也需要回答: |
| 22 | + |
| 23 | +- 存在性:这个贝尔曼最优方程是否有解? |
| 24 | +- 唯一性:贝尔曼最优方程的解是唯一的吗? |
| 25 | +- 算法:如何求解贝尔曼最优方程? |
| 26 | +- 最优性:贝尔曼最优方程的解与最优策略有什么关系? |
| 27 | + |
| 28 | +此外,贝尔曼最优方程与贝尔曼最优方程是什么关系?为什么说它是一个特殊的贝尔曼方程?这些问题都是很重要的。如果我们能够回答这些问题,我们就能清楚地理解最优状态值和最优策略。 |
| 29 | + |
| 30 | +### 3.3.1 方程右侧的优化问题 |
| 31 | + |
| 32 | +!!! note |
| 33 | + 贝尔曼最优公式的表达式 |
| 34 | + |
| 35 | + $$v(s)=\max_{\pi}\sum_{a}\pi(a|s)\left(\sum_{r}p(r|s,a)r+\gamma\sum_{s^{\prime}}p(s^{\prime}|s,a)v(s^{\prime})\right),\quad\forall s\in\mathcal{S}$$ |
| 36 | + |
| 37 | + 贝尔曼最优公式的矩阵向量形式 |
| 38 | + |
| 39 | + $$v=\max_\pi(r_\pi+\gamma P_\pi v)$$ |
| 40 | + |
| 41 | +贝尔曼最优方程的右侧嵌套了一个优化问题,初学者可能会对此感到迷惑。我们通过以下的例子来解释其求解思路。 |
| 42 | + |
| 43 | +!!! note |
| 44 | + **例子3.1** 考虑两个未知变量$x,y\in\mathbb{R}$,满足 |
| 45 | + |
| 46 | + $$x=\max_{y\in\mathbb{R}}(2x-1-y^{2}).$$ |
| 47 | + |
| 48 | + 这个方程可以通过两步求解。第一步是求解方程右边的优化问题$\max_{y\in\mathbb{R}}(2x-1-y^{2})$。具体来说,不管$x$的值是什么,在$y=0$时$(2x − 1 − y^2)$达到最大值,此时$\max_y(2x-1-y^2)=2x-1$。第二步是求解$x$,当$y = 0$时,此时方程变为$x = 2x − 1$,此时很容易求解出$x = 1$。因此,$y = 0$和$x = 1$是该方程的解。 |
| 49 | + |
| 50 | +明白了上面这个例子,我们再来看贝尔曼最优方程:式$(3.1)$可以简写为: |
| 51 | + |
| 52 | +$$v(s)=\max_{\pi(s)\in\Pi(s)}\sum_{a\in A}\pi(a|s)q(s,a),\quad s\in\mathcal{S}.$$ |
| 53 | + |
| 54 | +受到受例$3.1$的启发,我们可以首先在方程右侧求解最优$\pi$。怎样求解呢?我们再来看一个简单的例子。 |
| 55 | + |
| 56 | +!!! note |
| 57 | + **例子3.2**给定$q_1,q_2,q_3\in\mathbb{R}$,我们希望找到$c_1,c_2,c_3$的最优值,从而求解下面的优化问题: |
| 58 | + |
| 59 | + $$\max_{c_1,c_2,c_3}\sum_{i=1}^3 c_iq_i=\max_{c_1,c_2,c_3}(c_1q_1+c_2q_2+c_3q_3),$$ |
| 60 | + |
| 61 | + 在这里$c_1+c_2+c_3=1$,且$c_1,c_2,c_3\geq0$。 |
| 62 | + |
| 63 | + 求解这个问题的思路如下。首先不失一般性,假设$q3 \geq q1,q2$。那么,最优解是$c_3^*=1$和$c_1^* = c_2^* = 0$。这是因为: |
| 64 | + |
| 65 | + $$q_3=(c_1+c_2+c_3)q_3=c_1q_3+c_2q_3+c_3q_3\geq c_1q_1+c_2q_2+c_3q_3$$, |
| 66 | + |
| 67 | + 对于任意$c_1,c_2,c_3$都成立。 |
| 68 | + |
| 69 | +受上述例子的启发,因为$\sum_a\pi(a|s)=1$,我们有: |
| 70 | + |
| 71 | +$$\begin{aligned}\sum_{a\in\mathcal{A}}\pi(a|s)q(s,a)\leq\sum_{a\in\mathcal{A}}\pi(a|s)\max_{a\in\mathcal{A}}q(s,a)=\max_{a\in\mathcal{A}}q(s,a),\end{aligned}$$ |
| 72 | + |
| 73 | +当等式成立时有: |
| 74 | + |
| 75 | +$$\pi(a|s)=\left\{\begin{array}{ll}1,&a=a^*,\\0,&a\neq a^*.\end{array}\right.$$ |
| 76 | + |
| 77 | +其中$a^*=\text{arg max}_a q(s,a)$。因此最优策略$\pi(s)$应该选择具有最大$q(s,a)$值的行动。在解决了右侧的优化问题之后,式(3.1)就变成了$v(s)=\max_{a\in\mathcal{A}(s)}q(s,a)$。 |
| 78 | + |
| 79 | +### 3.3.2 矩阵-向量形式 |
| 80 | + |
| 81 | +方程$(3.1)$是对任意状态都成立的,将所有这些方程联立起来,就可以得到一个简洁的矩阵-向量形式,该形式在本章中将被广泛的应用,对于分析贝尔曼最优方程将发挥重要作用。 |
| 82 | + |
| 83 | +具体来说,假设有$n$个状态$\{s_1,s_2,\ldots,s_n\}$。类似于第2章推导贝尔曼方程的矩阵-向量形式,我们可以得到贝尔曼最优方程的矩阵-向量形式为: |
| 84 | + |
| 85 | +$$v=\max_{\pi\in\Pi}(r_\pi+\gamma P_\pi v),\tag{3.2}$$ |
| 86 | + |
| 87 | +其中$v\in R^{n}$是待求解的未知量。上式中的$max_\pi$以逐元素的方式执行的。例如,对于一个向量$[*,*]$,其中的元素我们用$"*"$表示,那么$\max_\pi[*,*]=[\max_\pi *,\max_\pi *]$。此外,上式$r_\pi$和$P_\pi$的结构与标准贝尔曼公式的矩阵向量形式相同: |
| 88 | + |
| 89 | +$$[r_\pi]_s=\sum_{a\in\mathcal{A}}\pi(a|s)\sum_{r\in\mathcal{R}}p(r|s,a)r,\quad[P_\pi]_{s,s^{\prime}}=p(s^{\prime}|s)=\sum_{a\in\mathcal{A}}\pi(a|s)p(s^{\prime}|s,a).$$ |
| 90 | + |
| 91 | +由于$\pi$的最佳值由$v$决定,公式$(3.2)$的右边是$v$的函数,表示为 |
| 92 | + |
| 93 | +$$f(v)=max_{\pi\in\Pi}(r_\pi+\gamma P_\pi v).$$ |
| 94 | + |
| 95 | +那么,BOE可以用简洁的形式表示为: |
| 96 | + |
| 97 | +$$v=f(v).\tag{3.3}$$ |
| 98 | + |
| 99 | +在本节的剩余部分,我们将展示如何求解这个非线性方程。 |
| 100 | + |
| 101 | +### 3.3.3 压缩映射定理 |
| 102 | + |
| 103 | +由于BOE可以表示为一个非线性方程$v=f(v)$,我们接下来引入压缩映射定理[6]来分析它,压缩映射定理是分析一般非线性方程的有力工具。它也被称为不动点定理。已经知道这个定理的读者可以跳过这一部分。否则,建议读者熟悉这个定理,因为它是分析BOE的关键。 |
| 104 | + |
| 105 | +考虑一个函数$f(x)$,其中$x\in \mathbb{R}^d$且$f:\mathbb{R}^d \rightarrow \mathbb{R}^d$。一个点$x^*$被称为不动点,如果有 |
| 106 | + |
| 107 | +$$f(x^*)=x^*$$ |
| 108 | + |
| 109 | +对上述方程的解释是,$x$的映射是它本身。这就是为什么$x$被称为“不动”的原因。函数$f$是压缩映射(或压缩函数),如果存在$\gamma \in(0,1)$,使得 |
| 110 | + |
| 111 | +$$\|f(x_1)-f(x_2)\|\leq\gamma\|x_1-x_2\|$$ |
| 112 | + |
| 113 | +对于任意$x_1,x_2\in\mathbb{R}^d$。在这本书中,$\|·\|$表示向量或矩阵范数。 |
| 114 | + |
| 115 | +!!! note |
| 116 | + **例子3.3**. 我们给出了三个例子来证明不动点和压缩映射. |
| 117 | + |
| 118 | + 1. $x=f(x)=0.5x,x\in\mathbb{R}$ |
| 119 | + |
| 120 | + 很容易证明$x = 0$是一个不动点,因为$0 = 0.5 · 0$。此外,$f(x)=x$是一个压缩映射,因为对任何$\gamma\in [0.5,1)$,有$\|0.5x_1-0.5x_2\|=0.5\|x_1-x_2\|\leq\gamma\|x_1-x_2\|$。 |
| 121 | + |
| 122 | + 2. $x = f(x)= Ax$,其中$x \in \mathbb{R}^n,A\in \mathbb{R}^{n\times n}$且$\|A\|\leq\gamma\leq1$. |
| 123 | + |
| 124 | + 很容易证明$x = 0$是一个不动点,因为$0 = A0$。此外,它也是一个压缩映射,有$\|Ax_1-Ax_2\|=\|A(x_1-x_2)\|\leq\|A\|\|x_1-x_2\|\leq\gamma\|x_1-x_2\|.$。因此,$f(x)=Ax$是一个压缩映射。 |
| 125 | + |
| 126 | + 3. $x = f(x) = 0.5 \sin x, \quad x \in \mathbb{R}$. |
| 127 | + |
| 128 | + 很容易证明$x=0$是一个不动点,因为$0=0.5\sin 0$。此外,此外,从中值定理[7,8]可以得出: |
| 129 | + |
| 130 | + |
| 131 | + $$\left| \frac{0.5 \sin x_1 - 0.5 \sin x_2}{x_1 - x_2} \right| = |0.5 \cos x_3| \leq 0.5, \quad x_3 \in [x_1, x_2].$$ |
| 132 | + |
| 133 | + 因此在这里有$|0.5 \sin x_1 - 0.5 \sin x_2| \leq 0.5 |x_1 - x_2|$因此$f(x) = 0.5 \sin x$是一个压缩映射。 |
| 134 | + |
| 135 | +不动点和压缩性质之间的关系由以下定理展示。 |
| 136 | + |
| 137 | +!!! note |
| 138 | + **定理3.1**(压缩映射定理)。对于任何形式为$x = f(x)$的方程,其中$x$和$f(x)$是真实的向量,如果$f$是压缩映射,则以下性质成立。 |
| 139 | + |
| 140 | + - 存在性:存在一个不动点$x^*$满足$f(x^*)= x^*$。 |
| 141 | + |
| 142 | + - 唯一性:不动点$x^*$是唯一的。 |
| 143 | + |
| 144 | + - 算法:考虑迭代过程 |
| 145 | + |
| 146 | + $$x_{k+1}=f(x_k)$$ |
| 147 | + |
| 148 | + 在这里$k=0,1,2,\cdots$,然后,对于任何初始值$x_0$,有$x_k \rightarrow x^*, k \rightarrow \infty$。此外,收敛速度呈指数级速度。 |
| 149 | + |
| 150 | +压缩映射定理不仅可以判断一个非线性方程的解是否存在,而且可以给出一个求解该方程的数值算法。该定理的证明在方框$3.1$中给出。 |
| 151 | + |
| 152 | +下面的例子演示了如何使用压缩映射定理建议的迭代算法计算某些方程的不动点。 |
| 153 | + |
| 154 | +!!! note |
| 155 | + **例子3.4**. 让我们再看看上面的例子:$x = 0.5x,x = Ax,x = 0.5 \sin x$。虽然已经证明了这三个方程的右边都是压缩映射,但从压缩映射定理可以得出,它们每个都有一个唯一的不动点,可以很容易地验证为$x = 0$。此外,三个方程的不动点可以通过以下算法迭代求解: |
| 156 | + |
| 157 | + $$\begin{aligned}&x_{k+1}=0.5x_{k},\\&x_{k+1}=Ax_{k},\\&x_{k+1}=0.5\sin x_{k},\end{aligned}$$ |
| 158 | + |
| 159 | + 给定任何初始猜测值$x_0$。 |
| 160 | + |
| 161 | +### 3.3.4 BOE右侧函数的压缩性质 |
| 162 | + |
| 163 | +接下来我们将证明$(3.3)$中BOE中的$f(v)$是一个压缩映射。因此,可以应用前一小节中介绍的压缩映射定理。 |
| 164 | + |
| 165 | +!!! note |
| 166 | + **定理3.2**. ($f(v)$的压缩性质)。公式$3.3$中BOE右边的函数$f(v)$是一个压缩映射。特别地,对任意的$v_1,v_2\in \mathbb{R}^{|\mathcal{S}|}$,有: |
| 167 | + |
| 168 | + $$\|f(v_1)-f(v_2)\|_\infty\leq\gamma\|v_1-v_2\|_\infty,$$ |
| 169 | + |
| 170 | + 在这里$\gamma\in(0,1)$是折现率,$\|·\|$是最大范数,其是向量的元素的最大绝对值。 |
| 171 | + |
| 172 | + 该定理的证明在方框$3.2$中给出。这个定理很重要,因为我们可以使用压缩映射定理来分析BOE。 |
| 173 | + |
| 174 | +!!! question |
0 commit comments