研讨会系列 · KF L13

递归估计与新息过程

Kalman Filter 为什么能递归计算?—— 新息把"所有历史测量"压缩成"旧估计 + 当前新息"

📅 2026-05-03 🔄 递归估计 💡 新息过程

🎯 学完本节,你应能

理解递归估计的思想,掌握新息过程的核心概念

📖 前置知识

建议先完成前面的课程,或具备线性代数与概率论基础。

🎯 本讲目标

理解为什么直接使用所有历史测量会越来越贵、新息(innovation)是什么、Gram-Schmidt 如何把测量变成正交新息、以及为什么递归更新形式自然出现。

🔑 核心思想

新估计 = 旧估计 + 新息修正。Kalman Filter 的"妙"不在于发明了估计,而在于把"越来越复杂的多次估计"改写成了"每次只处理新增信息"的递归估计。

📖 目录

1. 直接 LMMSE 的计算问题

假设用 $y_{1},\ldots,y_{t}$ 估计 $X$。堆叠测量:

$$ Y_{t} = \begin{bmatrix} y_{1} \\ y_{2} \\ \vdots \\ y_{t} \end{bmatrix} $$

LMMSE:

$$ \hat X_{t} = K_{t} Y_{t},\quad K_{t} = R_{XY_t}R_{Y_t}^{-1} $$

⚠️ 计算瓶颈

$t$ 越大,$R_{Y_t}$ 越大,求逆越来越贵,计算复杂度大约 $O(t^3)$。这就是为什么不能简单堆叠所有历史测量。

2. 如果测量互相独立

如果 $y_{1},\ldots,y_{t}$ 彼此不相关,$R_{Y_t}$ 是块对角矩阵:

$$ R_{Y_t} = \begin{bmatrix} R_{Y_{t-1}} & 0 \\ 0 & R_{t} \end{bmatrix} $$

求逆很简单:

$$ R_{Y_t}^{-1} = \begin{bmatrix} R_{Y_{t-1}}^{-1} & 0 \\ 0 & R_{t}^{-1} \end{bmatrix} $$

但现实中测量往往相关,所以需要新技巧将相关测量转化为独立形式。

3. 新息(Innovation)的想法

如果新测量 $y_{k+1}$ 中有一部分已经能由旧测量解释,那么这部分不是真正的新信息。

💡 定义

新息 = 新测量中,旧信息解释不了的部分。

公式:

$$ e_{k+1} = y_{k+1} - \operatorname{Proj}_{L_k}(y_{k+1}) $$

其中 $L_{k} = \operatorname{span}\{e_{1},\ldots,e_{k}\}$。

4. Gram-Schmidt 生成新息

假设已有正交新息 $e_{1},\ldots,e_{k}$,则:

$$ e_{k+1} = y_{k+1} - \sum_{j=1}^k \langle y_{k+1}, e_{j} \rangle \|e_{j}\|^{-2} e_{j} $$

这样得到的 $e_{k+1}$ 与所有旧 $e_{j}$ 正交。

📖 理解

这本质上就是 Gram-Schmidt 过程在随机变量空间中的应用。每一步都从新测量中减去它在旧信息空间上的投影。

5. 为什么不丢信息

Gram-Schmidt 只是换基,不改变张成空间:

$$ \operatorname{span}\{y_{1},\ldots,y_{t}\} = \operatorname{span}\{e_{1},\ldots,e_{t}\} $$

✅ 关键

新息形式没有丢掉测量信息,只是把相关的测量变成更容易处理的正交信息。投影到新息空间和投影到原始测量空间得到的估计完全一样。

6. 递归估计自然出现

投影到新息空间:

$$ \hat X_{k+1} = \sum_{j=1}^{k+1} \langle X, e_{j} \rangle \|e_{j}\|^{-2} e_{j} $$

拆开最后一项:

$$ \hat X_{k+1} = \sum_{j=1}^{k} \langle X, e_{j} \rangle \|e_{j}\|^{-2} e_{j} + \langle X, e_{k+1} \rangle \|e_{k+1}\|^{-2} e_{k+1} $$

前半部分就是旧估计 $\hat X_{k}$,所以:

$$ \hat X_{k+1} = \hat X_{k} + \langle X, e_{k+1} \rangle \|e_{k+1}\|^{-2} e_{k+1} $$

🔄 递归形式

新估计 = 旧估计 + 新息修正。这是 Kalman Filter 能递归运行的根本原因。

7. 【补充例题】预测值和实际值

假设你预测今天温度是 25°C,传感器测到 27°C。

$$ e = 27 - 25 = 2 $$

🌡️ 直觉

如果传感器很准,就大幅修正估计(大增益);如果传感器很差,就小幅修正(小增益)。Kalman Filter 做的就是把"修正多少"数学化。

8. 随机变量空间为什么会增长

不要把 $y_{k}$ 的取值维度和随机变量空间维度混淆。即使每个 $y_{k}$ 是标量,它们也是不同时间的随机变量:

$$ y_{1}, y_{2}, \ldots $$

💡 通俗解释

今天的温度读数和明天的温度读数都是一个数字,但它们携带的是不同时间的信息。每增加一个时间点,信息空间就增大一维。

9. 新息和 Kalman Filter

Kalman Filter 中的新息写作:

$$ e_{k} = y_{k} - C\hat x_{k|k-1} $$

其中:

更新形式:

$$ \hat x_{k|k} = \hat x_{k|k-1} + K_{k} e_{k} $$

这正是"旧估计 + 新息修正"在 Kalman Filter 中的具体体现。

📝 自测题

问题 1

为什么直接堆叠所有历史测量会越来越慢?

点击查看答案

因为每次需要计算 $R_{Y_t}^{-1}$,矩阵大小随测量数量增长,求逆复杂度为 $O(t^3)$。递归方法只需常数计算量,与历史长度无关。

问题 2

新息为什么与旧新息正交?

点击查看答案

因为新息定义为从新测量中减去它在旧信息空间上的投影。这个投影包含了所有与旧新息线性相关的部分,剩余部分自然与旧信息空间正交。

问题 3

新息为 0 时,说明什么?

施老师大课堂 · 研讨会系列 KF L13 · 递归估计与新息过程