Skip to content

Commit 95499ef

Browse files
committed
2nd update
1 parent 0cbe81f commit 95499ef

129 files changed

Lines changed: 66315 additions & 262 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.
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
本章介绍了强化学习的基本概念。这些概念非常重要,因为它们将在本书中被广泛使用。我们首先通过实例介绍这些概念,然后在马尔可夫决策过程的框架下对它们进行形式化。
2+
3+
## 1.1 一个网格世界例子
4+
5+
考虑图1.2中的例子,展示了一个机器人在现实网格世界中移动。
6+
7+
8+
![](../img/01/1.jpg)
9+
10+
> 图 1.2: 在全书中使用的现实网格世界例子
Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
## 1.1 一个网格世界例子
2+
3+
考虑图1.2中的例子,展示了一个机器人在现实网格世界中移动。
4+
5+
6+
![](../img/01/1.jpg)
7+
8+
> 图 1.2: 在全书中使用的现实网格世界例子

.history/docs/Chapter-1/intro_20250809183930.md

Whitespace-only changes.
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
本章介绍了强化学习的基本概念。这些概念非常重要,因为它们将在本书中被广泛使用。我们首先通过实例介绍这些概念,然后在马尔可夫决策过程的框架下对它们进行形式化。
Lines changed: 148 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,148 @@
1+
## 策略迭代
2+
3+
本节介绍另一种重要的算法:策略迭代。与值迭代不同,策略迭代并不是直接求解贝尔曼最优公式。然而,它与值迭代有着密切的关系。策略迭代的思想非常重要,其广泛应用于强化学习算法中。
4+
5+
### 4.2.1 算法分析
6+
7+
策略迭代是一种迭代算法。每次迭代包含两个步骤。
8+
9+
- 第一步是策略评估(policy evaluation)步骤。顾名思义,这一步通过计算相应的状态值来评估给定的策略。即求解以下贝尔曼方程:
10+
11+
$$v_{\pi_k}=r_{\pi_k}+\gamma P_{\pi_k}v_{\pi_k},\tag{4.3}$$
12+
13+
其中,$\pi_k$是上一次迭代中得到的策略,$v_{\pi_k}$是待计算的状态值。$r_{\pi_k}$和$P_{\pi_k}$的值可从系统模型中获得。
14+
15+
- 第二个是策略改进(policy improvement)步骤。顾名思义,这一步用于改进策略。具体而言,一旦在第一步中计算出$v_{\pi_k}$,就可以得到一个新的策略$\pi_{k+1}$,如下所示:
16+
17+
$$\pi_{k+1}=\arg\max_\pi(r_\pi+\gamma P_\pi v_{\pi_k}).$$
18+
19+
在上述算法描述之后,自然会引出三个问题。
20+
21+
- 在策略评估步骤中,如何求解状态值 $v_{\pi_k}$?
22+
- 在策略改进步骤中,为什么新策略$π_{k+1}$比$\pi_k$更优?
23+
- 为什么该算法最终能够收敛到最优策略?
24+
25+
接下来,我们将逐一回答这些问题。
26+
27+
#### Q1: 在策略评估步骤中,如何求解状态值 $v_{\pi_k}$?
28+
29+
我们在第$2$章中介绍了两种求解式$(4.3)$中的贝尔曼公式的方法。接下来我们将简要回顾这两种方法。第一种方法是封闭式解:$v_{\pi_k}=(I-\gamma P_{\pi_k})^{-1}r_{\pi_k}$。这种封闭形式的解在理论分析中很有用,但由于计算逆矩阵,因此实现起来效率较低。第二种方法是一种易于实现的迭代算法:
30+
31+
$$v_{\pi_k}^{(j+1)}=r_{\pi_k}+\gamma P_{\pi_k}v_{\pi_k}^{(j)},\quad j=0,1,2,...,\tag{4.4}$$
32+
33+
其中,$v^{(j)}_{π_k}$表示$v_{\pi_k}$的第$j$次估计。从任意初始猜测$v^{(0)}_{\pi_k}$开始,可以保证当$j \rightarrow \infty$时,$v^{(j)}_{\pi_k}\rightarrow v_{\pi_k}$。具体细节请参见第$2.7$节。
34+
35+
有趣的是,策略迭代是一个迭代算法,其中包含了另一个迭代算法$(4.4)$,该算法在策略评估步骤中执行。从理论上讲,这个包含的迭代算法需要无限次的步骤(即 $j \to \infty$)才能收敛到真实的状态值 $v_{\pi_k}$。然而,这是不可能实现的。在实际操作中,迭代过程会在满足某个标准时终止。例如,终止标准可以是 $\| v_{\pi_k}^{(j+1)} - v_{\pi_k}^{(j)}\|$小于预设的阈值,或者$j$超过预设的值。如果我们不进行无限次的迭代,我们只能得到一个不精确的$v_{\pi_k}$值,这个值将在随后的策略改进步骤中使用。这会造成问题吗?答案是否定的。原因将在我们后面介绍的截断策略迭代算法($4.3$节)中变得清晰。
36+
37+
!!! note
38+
注: 这个地方需要重点理解一下这两个迭代之间的区别,避免后面弄混。
39+
40+
#### Q2: 在策略改进步骤中,为什么新策略$π_{k+1}$比$\pi_k$更优?
41+
42+
策略改进步骤可以改进给定的策略,如下所示。
43+
44+
!!! info
45+
**引理4.1**(策略改进). 若 $\pi_{k+1} = \arg\max_\pi(r_\pi + \gamma P_\pi v_\pi^k)$,则$v_{\pi_{k+1}} \geq v_{\pi_k}$。
46+
47+
这里,$v_{\pi_{k+1}}
48+
\geq v_{\pi_k}$表示对于所有状态$s$,有$v_{\pi_{k+1}}(s) ≥ v_{\pi_k}(s)$。该引理的证明见方框 4.1。
49+
50+
#### Q3: 为什么策略迭代算法最终能够找到最优策略?
51+
52+
策略迭代算法生成两个序列。第一个是策略序列:$\{\pi_0,\pi_1,...,\pi_k, ...\}$。第二个是状态值序列:$\{v_{\pi_0}, v_{\pi_1},...,v_{\pi_k},...\}$。假设$v^*$是最佳状态值,则对于所有$k$,有$v_{\pi_k}\leq v^*$。由于根据引理4.1,策略不断改进,因此我们知道
53+
54+
$$v_{\pi_0}\leq v_{\pi_1}\leq v_{\pi_2}\leq\cdots\leq v_{\pi_k}\leq\cdots\leq v^*.$$
55+
56+
由于$v_{\pi_k}$是非递减的,并且始终被$v^∗$上界所限制,因此根据单调收敛定理[12],当$k\rightarrow\infty$ 时,$v_{\pi_k}$收敛到一个常数值,记为 $v_\infty$。以下分析表明$v_\infty=v^*$。
57+
58+
!!! info
59+
**定理4.1**. (策略迭代的收敛性)由策略迭代算法生成的状态值序列$\{v_{\pi_k}\}_{k=0}^{\infty}$收敛到最优状态值$v^∗$。因此,策略序列$\{\pi_k\}^\infty_{k=0}$收敛到一个最优策略。
60+
61+
该定理的证明见方框$4.2$。该证明不仅表明了策略迭代算法的收敛性,还揭示了策略迭代算法与值迭代算法之间的关系。从直观上讲,如果两种算法均从相同的初始猜测开始,由于策略评估步骤中嵌入了额外的迭代,策略迭代的收敛速度将比值迭代更快。当我们将在第$4.3$节中介绍截断策略迭代算法时,这一点将变得更加清晰。
62+
63+
### 4.2.2 逐元素形式与实现
64+
65+
为了实现策略迭代算法,我们需要研究其逐元素形式。
66+
67+
- 首先,**策略评估**步骤通过$(4.4)$中的迭代算法来求解$v_{\pi_k} = r_{\pi_k} + \gamma P_{\pi_k}v_{\pi_k}$中的$v_{\pi_k}$,该算法的逐元素形式为
68+
69+
$$v_{\pi_{k}}^{(j+1)}(s)=\sum_{a}\pi_{k}(a|s)\left(\sum_{r}p(r|s,a)r+\gamma\sum_{s^{\prime}}p(s^{\prime}|s,a)v_{\pi_{k}}^{(j)}(s^{\prime})\right),\quad s\in\mathcal{S},$$
70+
71+
在这里$j=0,1,2,...$
72+
73+
当$j\to\infty$,$j$足够大或$\|v_{\pi_{k}}^{(j+1)}-v_{\pi_{k}}^{(j)}\|$足够小时时停止迭代。
74+
75+
- 其次,**策略改进**步骤求解$\pi_{k+1} = \arg \max_\pi(r_\pi + \gamma P_\pi v_{\pi_k})$。该方程的元素形式为
76+
77+
$$\pi_{k+1}(s)=\arg\max_{\pi}\sum_{a}\pi(a|s)\underbrace{\left(\sum_{r}p(r|s,a)r+\gamma\sum_{s^{\prime}}p(s^{\prime}|s,a)v_{\pi_{k}}(s^{\prime})\right)}_{q_{\pi_{k}}(s,a)},\quad s\in\mathcal{S},$$
78+
79+
其中 $q_{\pi_k}(s,a)$是策略$\pi_k$下的行动值。令$a^*_k(s) =\arg\max_a q_{\pi_k}(s,a)$。那么,Greedy最优策略为
80+
81+
$$\pi_{k+1}(a|s)=\left\{\begin{array}{ll}1,&a=a_k^*(s),\\0,&a\neq a_k^*(s).\end{array}\right.$$
82+
83+
具体实现细节在算法$4.2$中总结。
84+
85+
![](../img/04/12.png)
86+
>算法$4.2$: 策略迭代算法的伪代码
87+
88+
### 4.2.3 示例
89+
90+
#### 一个简单的例子
91+
92+
考虑图$4.3$中所示的一个简单示例。有两个状态,每个状态有三种可能的动作:$\mathcal{A} = \{a_l, a_0, a_r\}$。这三种动作分别表示向左移动、保持不变和向右移动。奖励设置为$r_{boundary} = −1$和$r_{target} = 1$。折现率为$\gamma = 0.9$。
93+
94+
![](../img/04/5.png)
95+
>图4.3: 一个用于说明策略迭代算法实现的示例。
96+
97+
接下来,我们逐步介绍策略迭代算法的实现过程。当$k = 0$时,我们从图$4.3(a)$所示的初始策略开始。该策略并不理想,因为它没有朝着目标区域移动。接下来,我们将展示如何应用策略迭代算法来获得最优策略。
98+
99+
- 首先,在策略评估步骤中,我们需要求解贝尔曼公式:
100+
101+
$$\begin{aligned}v_{\pi_0}(s_1) &= -1 + \gamma v_{\pi_0}(s_1), \\v_{\pi_0}(s_2) &= 0 + \gamma v_{\pi_0}(s_1).\end{aligned}$$
102+
103+
由于该公式很简单,可以手动求解得出:
104+
105+
$$v_{\pi_0}(s_1) = -10, \\v_{\pi_0}(s_2)= -9.$$
106+
107+
在实践中,该方程可以通过$(4.4)$中的迭代算法求解。例如,选择初始状态值为$v_{\pi_0}^{(0)}(s_1) = v_{\pi_0}^{(0)}(s_2) = 0.$。根据(4.4)可知,
108+
109+
$$\begin{cases}v_{\pi_0}^{(1)}(s_1) = -1 + \gamma v_{\pi_0}^{(0)}(s_1) = -1, \\
110+
v_{\pi_0}^{(1)}(s_2) = 0 + \gamma v_{\pi_0}^{(0)}(s_1) = 0, \end{cases}$$
111+
112+
$$\begin{cases}v_{\pi_0}^{(2)}(s_1) = -1 + \gamma v_{\pi_0}^{(1)}(s_1) = -1.9, \\
113+
v_{\pi_0}^{(2)}(s_2) = 0 + \gamma v_{\pi_0}^{(1)}(s_1) = -0.9, \end{cases}$$
114+
115+
$$\begin{cases}v_{\pi_0}^{(3)}(s_1) = -1 + \gamma v_{\pi_0}^{(2)}(s_1) = -2.71, \\
116+
v_{\pi_0}^{(3)}(s_2) = 0 + \gamma v_{\pi_0}^{(2)}(s_1) = -1.71.\end{cases}$$
117+
118+
随着更多次迭代,我们可以看到趋势:随着$j$的增加,有$v_{\pi_{0}}^{(j)}(s_{1})\to v_{\pi_{0}}(s_{1})=-10$,$v_{\pi_{0}}^{(j)}(s_{2})\to v_{\pi_{0}}(s_{2})=-9$
119+
120+
- 其次,在策略改进步骤中,关键是要为每个状态-动作对计算$q_{\pi_0}(s,a)$。以下$q$表可以用来演示这一过程:
121+
122+
![](../img/04/6.png)
123+
> 表$4.4$: 图$4.3$中示例的$q_{\pi_k}(s,a)$的表达式。
124+
125+
将上一步策略评估中得到的$v_{\pi_0}(s_1) = −10$和$v_{\pi_0}(s_2) = −9$ 代入表$4.4$,可得到表$4.5$。
126+
127+
![](../img/04/7.png)
128+
> 表$4.5$: 当$k=0$时,$q_{\pi_k}(s,a)$的值。
129+
130+
通过寻求$q_{\pi_0}$的最大值,可以得到改进后的策略$\pi_1$,如下所示:
131+
132+
$$\pi_1(a_r|s_1)=1,\quad\pi_1(a_0|s_2)=1.$$
133+
134+
上述过程表明,在这个简单示例中,一次迭代就足以找到最优策略。对于更复杂的示例,则需要更多的迭代。
135+
136+
#### 一个复杂的例子
137+
138+
接下来,我们使用图$4.4$所示的一个更复杂的例子来演示策略迭代算法。奖励设置为:$r_{boundary} = −1,r_{forbidden} = −10,r_{target} = 1$。折现率为$\gamma = 0.9$。当从一个随机初始策略(图$4.4(a)$)开始时,策略迭代算法可以收敛到最优策略(图$4.4(h)$)。
139+
140+
![](../img/04/8.png)
141+
> 图$4.4$: 策略迭代算法生成的策略的演化过程。
142+
143+
在迭代过程中观察到两种有趣的现象。
144+
145+
- 首先,如果我们观察政策的演变过程,会发现一个有趣的规律:那些靠近目标区域的状态会比远离目标区域的状态更早找到最优策略。只有当靠近目标区域的状态能够率先找到通往目标的路径时,远离目标区域的状态才能通过经过这些靠近目标的状态来找到通往目标的路径。
146+
147+
- 其次,状态值的空间分布呈现出一种有趣的模式:距离目标越近的状态,其状态值越大。这种模式的原因在于,从较远状态开始的智能体需要经过许多步才能获得正向奖励。而这种奖励会被严重折现,因此相对较小。
148+

.history/docs/Chapter-6/6-1_20250809230558.md

Whitespace-only changes.
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
## 6.1 启发性示例: 期望值估计
2+
3+
接下来,我们通过考察均值估计问题,来演示如何将一个非递增(non-incremental)算法转换为递增(incremental)算法。
4+
5+
考虑一个取值于有限集合$\mathcal{X}$的随机变量$X$。我们的目标是估计$\mathbb{E}[X]$。假设我们有一系列独立同分布的样本${x_i}_{i=1}^n$。$X$的期望值可以通过以下方式近似计算:
6+
7+
$$\mathbb{E}[X]\approx\bar{x}\doteq\frac{1}{n}\sum_{i=1}^nx_i.\tag{6.1}$$
8+
9+
$(6.1)$中的近似是蒙特卡罗估计的基本思想,如第$5$章所介绍。我们知道,根据大数定律,当$n\to\infty$,$\bar{x}\to\mathbb{E}[X]$。
10+
11+
接下来,我们将说明有两种方法可以用来计算$(6.1)$中的$\bar{x}$。第一种非递增法是先收集所有样本,然后计算平均值。这种方法的缺点是,如果样本数量较多,我们可能需要等待很长时间才能收集到所有样本。第二种方法可以避免这一缺点,因为它是以递增的方式计算平均值的。具体来说,假设
12+
13+
$$w_{k+1}=\frac{1}{k}\sum_{i=1}^{k}x_{i},\quad k=1,2,\ldots$$
14+
15+
因此
16+
17+
$$w_k=\frac{1}{k-1}\sum_{i=1}^{k-1}x_i,\quad k=2,3,\ldots$$
18+
19+
那么,$w_{k+1}$可以用$w_k$表示为
20+
21+
$$w_{k+1}=\frac{1}{k}\sum_{i=1}^{k}x_{i}=\frac{1}{k}\left(\sum_{i=1}^{k-1}x_{i}+x_{k}\right)=\frac{1}{k}((k-1)w_{k}+x_{k})=w_{k}-\frac{1}{k}(w_{k}-x_{k}).$$
22+
23+
因此,我们得到了以下增量算法:
24+
25+
$$w_{k+1}=w_{k}-\frac{1}{k}(w_{k}-x_{k}).\tag{6.2}$$
26+
27+
这种算法可用于以递增方式计算平均值 $\bar{x}$。可以验证
28+
29+
$$\begin{aligned}w_1&=x_1,\\w_2&=w_1-\frac{1}{1}(w_1-x_1)=x_1,\\w_3&=w_2-\frac{1}{2}(w_2-x_2)=x_1-\frac{1}{2}(x_1-x_2)=\frac{1}{2}(x_1+x_2),\\w_4&=w_3-\frac{1}{3}(w_3-x_3)=\frac{1}{3}(x_1+x_2+x_3),\\&\vdots\\w_{k+1}&=\frac{1}{k}\sum_{i=1}^kx_i.\end{aligned}\tag{6.3}$$
30+
31+
$(6.2)$的优势在于,每次收到样本时,我们都能立即计算出平均值。这个平均值可以用来近似计算$\bar{x}$,进而近似计算$\mathbb{E}[X]$。值得注意的是,由于样本不足,近似值在开始时可能并不准确。不过,有总比没有好。随着样本数量的增加,估计精度可以根据大数定律逐步提高。此外,还可以定义$w_{k+1}=\frac{1}{1+k} \sum_{i=1}^{k+1} x_i$和$w_k=\frac{1}{k} \sum_{i=1}^k x_i$。这样做不会有任何明显的区别。在这种情况下,相应的迭代算法为$w_{k+1}=w_{k}-\frac{1}{1+k}(w_{k}-x_{k+1}).$。
32+
33+
此外,还可以考虑一种表达式更一般的算法:
34+
35+
$$w_{k+1}=w_k-a_k(w_k-x_k).\tag{6.4}$$
36+
37+
这种算法非常重要,在本章中经常使用。除了系数$1/k$被$a_k>0$取代之外,它与$(6.2)$相同。由于没有给出$a_k$的表达式,我们无法得到如$(6.3)$所示的$w_k$的明确表达式。不过,我们将在下一节证明,如果${a_k}$满足一些温和条件,当$k\to\infty$时,$w_k \rightarrow \mathbb{E}[X]$。在第$7$章中,我们将看到时序差分算法有类似(但更复杂)的表达式。
38+
39+

.history/docs/Chapter-6/6-2_20250809232329.md

Whitespace-only changes.
Lines changed: 26 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,26 @@
1+
## 6.2 罗宾斯-门罗算法
2+
3+
随机逼近是指解决寻根或优化问题的一大类随机迭代算法[24]。与许多其他寻根(root-finding)算法如随机逼近法与梯度逼近法等相比,其强大之处在于无需表达目标函数或其导数。
4+
5+
罗宾斯-门罗(Robbins-Monro,RM)算法是随机逼近领域的一项开创性工作 [24-27]。如第$6.4$节所示,著名的随机梯度下降算法就是RM算法的一种特殊形式。接下来我们将介绍RM算法的细节。
6+
7+
假设我们想找出方程的根
8+
9+
$$g(w)=0,$$
10+
11+
其中$w\in\mathbb{R}$是未知变量,$g:\mathbb{R} \rightarrow \mathbb{R}$是一个函数。许多问题都可以表述为寻根问题。例如,如果$J(w)$是一个需要优化的目标函数,那么这个优化问题可以转换为求解$g(w)=\nabla_wJ(w)=0.$。此外,$g(w) = c$(其中$c$是一个常数)这样的方程也可以通过将$g(w)-c$改写为一个新函数而转换为上述方程。
12+
13+
如果已知$g$的表达式或其导数,就可以使用许多算法。然而,我们面临的问题是函数$g$的表达式是未知的。例如,函数可以用人工神经网络来表示,而人工神经网络的结构和参数都是未知的。此外,我们只能获得$g(w)$的噪声观测值:
14+
15+
$$\tilde{g}(w,\eta)=g(w)+\eta,$$
16+
17+
其中$\eta\in\mathbb{R}$是观测误差,可能是高斯误差,也可能不是。总之,这是一个黑盒系统,只有输入$w$和噪声输出$\tilde{g}(w,\eta)$是已知的(见图$6.2$)。我们的目标是利用$w$和$\tilde{g}$求解$g(w) = 0$。
18+
19+
![](../img/06/1.png)
20+
> 图$6.2$:由$w$和$\tilde{g}$求解 $g(w) = 0$问题的示意图。
21+
22+
能求解$g(w) = 0$的 RM 算法是
23+
24+
$$w_{k+1}=w_k-a_k\tilde{g}(w_k,\eta_k),\quad k=1,2,3,\ldots\tag{6.5}$$
25+
26+
其中,$w_k$是第$k$个根估计值,$\tilde{g}(w_k, \eta_k)$是第$k$个噪声观测值,$a_k$是正系数。可以看出,RM 算法不需要关于函数的任何信息。它只需要输入和输出。
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
## 6.2 罗宾斯-门罗算法
2+
3+
随机逼近是指解决寻根或优化问题的一大类随机迭代算法[24]。与许多其他寻根(root-finding)算法如随机逼近法与梯度逼近法等相比,其强大之处在于无需表达目标函数或其导数。
4+
5+
罗宾斯-门罗(Robbins-Monro,RM)算法是随机逼近领域的一项开创性工作 [24-27]。如第$6.4$节所示,著名的随机梯度下降算法就是RM算法的一种特殊形式。接下来我们将介绍RM算法的细节。
6+
7+
假设我们想找出方程的根
8+
9+
$$g(w)=0,$$
10+
11+
其中$w\in\mathbb{R}$是未知变量,$g:\mathbb{R} \rightarrow \mathbb{R}$是一个函数。许多问题都可以表述为寻根问题。例如,如果$J(w)$是一个需要优化的目标函数,那么这个优化问题可以转换为求解$g(w)=\nabla_wJ(w)=0.$。此外,$g(w) = c$(其中$c$是一个常数)这样的方程也可以通过将$g(w)-c$改写为一个新函数而转换为上述方程。
12+
13+
如果已知$g$的表达式或其导数,就可以使用许多算法。然而,我们面临的问题是函数$g$的表达式是未知的。例如,函数可以用人工神经网络来表示,而人工神经网络的结构和参数都是未知的。此外,我们只能获得$g(w)$的噪声观测值:
14+
15+
$$\tilde{g}(w,\eta)=g(w)+\eta,$$
16+
17+
其中$\eta\in\mathbb{R}$是观测误差,可能是高斯误差,也可能不是。总之,这是一个黑盒系统,只有输入$w$和噪声输出$\tilde{g}(w,\eta)$是已知的(见图$6.2$)。我们的目标是利用$w$和$\tilde{g}$求解$g(w) = 0$。
18+
19+
![](../img/06/1.png)
20+
> 图$6.2$:由$w$和$\tilde{g}$求解 $g(w) = 0$问题的示意图。
21+
22+
能求解$g(w) = 0$的 RM 算法是
23+
24+
$$w_{k+1}=w_k-a_k\tilde{g}(w_k,\eta_k),\quad k=1,2,3,\ldots\tag{6.5}$$
25+
26+
其中,$w_k$是第$k$个根估计值,$\tilde{g}(w_k, \eta_k)$是第$k$个噪声观测值,$a_k$是正系数。可以看出,RM 算法不需要关于函数的任何信息。它只需要输入和输出。
27+
28+
![](../img/06/2.png)
29+
> 图$6.3$:RM 算法示例。
30+
31+
为了说明RM算法,请看一个$g(w) = w^3 - 5$的例子。真根为$5^{1/3} ≈ 1.71$。现在,假设我们只能观察到输入$w$和输出 $\tilde{g}(w) = g(w) + \eta$,其中$\eta$为 i.i.d.,服从均值为$0$,标准差为$1$的标准正态分布,初始猜测为 $w_1 = 0$,系数为$a_k = 1/k$。$w_k$的变化过程如图$6.3$所示。即使观测结果受到噪声$\eta_k$的干扰,估计值$w_k$仍然可以收敛到真正的根值。需要注意的是,必须正确选择初始猜测$w_1$,以确保$g(w) = w^3 - 5$这一特定函数的收敛性。在下面的小节中,我们将介绍 RM 算法收敛于任何初始猜测的条件。

0 commit comments

Comments
 (0)