3. 概率论与线性代数基础

概率论与线性代数基础 学习卡片

卡尔曼滤波并不是一组“凭经验调出来的公式”,它本质上是高斯分布假设下的贝叶斯递推,而递推的每一步都靠线性代数完成。理解这一章,你才能明白为什么卡尔曼增益长成那个样子、为什么协方差矩阵必须正定、为什么数值上会出现“滤波发散”。本章把后续建模所需的数学工具一次性讲透,并始终围绕“动态配对关系建模”这一目标。

一、核心原理:高斯分布是卡尔曼滤波的“语言”

一维高斯分布由均值 μ 和方差 σ² 完全确定,记作 x ~ N(μ, σ²)。多维情况下,均值变成向量 x,方差变成协方差矩阵 P,即 x ~ N(μ, P)。协方差矩阵的对角线是各维方差,非对角线是两维之间的协方差,它刻画了变量之间的线性相关方向与强度。

高斯分布有三个对滤波极其友好的性质:第一,线性变换后仍是高斯分布;第二,两个高斯分布的乘积仍是高斯分布(只差归一化常数);第三,边缘分布与条件分布都仍是高斯分布。正因为这三条,卡尔曼滤波的“预测—更新”才能始终用均值和协方差两个量闭合地描述,而不需要维护完整的概率密度函数。

卡尔曼滤波的核心假设:过程噪声与观测噪声均为高斯白噪声,且初始状态服从高斯分布。只要这个假设成立,后验分布永远是高斯分布,滤波只需递推均值和协方差。

二、条件概率与贝叶斯公式:滤波的推理骨架

条件概率 P(A|B) 表示在 B 发生的前提下 A 发生的概率。贝叶斯公式把它反过来用:

P(A|B) = P(B|A) * P(A) / P(B)

在滤波语境下,A 是“状态”,B 是“观测”。P(A) 是先验(预测),P(B|A) 是似然(观测模型),P(A|B) 是后验(更新后的状态估计)。卡尔曼滤波的更新步,本质上就是用观测似然去修正先验,而由于高斯假设,这个修正可以写成闭式的矩阵运算。

把高斯形式代入贝叶斯公式,可以得到一个非常重要的直觉:后验均值是先验均值与观测值的加权平均,权重由各自的协方差决定。谁的方差小(更确定),谁的权重就大。卡尔曼增益 K 正是这个权重的多维推广。

三、矩阵运算与协方差矩阵正定性

卡尔曼滤波的每一步都是矩阵运算:矩阵乘法用于状态预测与观测映射,矩阵转置用于协方差传播,矩阵求逆用于计算增益。下面列出最常用的几个操作及其在滤波中的角色。

运算数学形式在卡尔曼滤波中的作用
矩阵乘法AB状态转移、观测映射、协方差传播
转置AT协方差对称化、投影到观测空间
求逆A-1计算卡尔曼增益中的新息协方差逆
行列式det(A)判断矩阵是否可逆、协方差是否退化
特征值λi判断正定性、分析数值稳定性

协方差矩阵 P 必须是对称正定的。正定意味着对任意非零向量 v,都有 vTPv > 0,即方差永远为正。如果 P 失去正定性,滤波可能产生负方差、增益异常甚至发散。工程上常用“对称化 + 特征值截断”来修复:

P = (P + P.T) / 2          # 强制对称
eigvals, eigvecs = np.linalg.eigh(P)
eigvals = np.clip(eigvals, 1e-9, None)   # 截断非正特征值
P = eigvecs @ np.diag(eigvals) @ eigvecs.T
常见误区:认为协方差矩阵只要“看起来对称”就没问题。实际上浮点误差、模型线性化误差、错误的噪声设置都会让 P 出现极小负特征值,长期迭代后可能放大为数值崩溃。建议在每次更新后做一次对称化与正定检查。

四、案例场景:动态配对关系中的高斯建模

假设我们在做目标与观测的动态配对:状态是目标位置与速度,观测是传感器返回的候选点。配对关系可以建模为一个隐变量,而每个候选点的“可信度”用高斯似然衡量。具体流程如下:

  1. 用先验状态 xk|k-1 和协方差 Pk|k-1 描述目标预测分布。
  2. 对每个候选观测 zi,计算新息 yi = zi − Hxk|k-1 及其协方差 S = HPHT + R。
  3. 用高斯似然 N(yi; 0, S) 计算该候选点的匹配概率,概率越高越可能是正确配对。
  4. 按概率加权或选择最大似然候选,执行卡尔曼更新,得到后验 xk|k 与 Pk|k。

这个过程中,条件概率负责“在预测位置附近观测到该点的可能性”,贝叶斯公式负责“把先验配对信念与观测似然融合”,协方差矩阵则决定了融合时谁的话语权更大。三者缺一不可。

五、误区复盘与工程建议

  • 把高斯假设当摆设:如果实际噪声重尾或存在多峰,标准卡尔曼滤波会失效,需要考虑粒子滤波或高斯混合。
  • 忽略协方差正定性:长期运行必须做对称化与特征值截断,否则数值误差会累积。
  • 混淆条件概率方向:P(观测|状态) 是似然,P(状态|观测) 是后验,写反会导致更新方向错误。
  • 矩阵求逆硬算:实际工程中优先用 Cholesky 分解或求解线性方程组,避免显式求逆带来的数值不稳定。
  • 噪声矩阵随意设:Q 和 R 的比值直接决定滤波器的“信任倾向”,应结合传感器精度与运动模型不确定性来标定。
学习建议:把本章的贝叶斯更新与一维高斯融合手推一遍,再对照卡尔曼增益公式,你会发现 K 就是“先验方差 / (先验方差 + 观测方差)”的矩阵版本。理解这一点,后续调参和排错都会轻松很多。

掌握高斯分布、条件概率、贝叶斯公式、矩阵运算与协方差正定性之后,你就具备了读懂卡尔曼滤波全部公式的数学基础。下一阶段我们将把这些工具组装成完整的预测与更新递推,并进入动态配对关系建模的实战环节。