跳转至

概率统计基础:从高斯到卡尔曼

一篇会成长的笔记。卡尔曼滤波的全部假设可以压缩成一句话:状态和噪声都是高斯随机向量,且系统(近似)线性——于是"预测 + 观测"就是"两个高斯相乘",结果仍是高斯。这一篇把这句话拆开:定义 → 推导 → 几何/直觉 → 课程里用在哪 → 常见坑,最后落到卡尔曼五方程。每节末尾附外链 Wiki 补课。

核心要点

  • 卡尔曼滤波的全部假设可以浓缩成一句:状态和噪声都是高斯随机向量
  • 高斯的两大法宝:① 线性变换后仍然是高斯;② 边缘分布、条件分布仍然是高斯——条件高斯公式就是卡尔曼更新的数学内核。
  • 贝叶斯视角:后验 ∝ 先验 × 似然;两个高斯相乘仍是高斯,精度(\(\sigma^{-2}\))相加。
  • 协方差传播 \(P^- = F P F^T + Q\):把"已知的不确定性"沿 \(F\) 推一步、再加模型噪声。
  • 不相关 ≠ 独立,只有高斯情形二者等价
  • 卡方分布:NEES / NIS 一致性检验(滤波器"体检")的工具。

一、随机变量与概率分布(定义)

1.1 随机变量

随机变量 \(X\) 是从样本空间 \(\Omega\) 到实数轴的映射:

\[X:\ \Omega\to\mathbb R\]
  • 离散型用概率质量函数 \(p(x)=P(X=x)\)
  • 连续型用概率密度函数 \(f(x)\),满足
\[f(x)\ge 0,\qquad \int_{-\infty}^{+\infty}f(x)\,dx=1\]

1.2 期望

期望就是"按概率加权平均":

\[\mathbb E[X]=\int_{-\infty}^{+\infty}x\,f(x)\,dx\quad(\text{连续}),\qquad \mathbb E[X]=\sum_i x_i\,p_i\quad(\text{离散})\]

期望是线性算子(且这一点不需要独立,很关键):

\[\mathbb E[aX+bY+c]=a\,\mathbb E[X]+b\,\mathbb E[Y]+c\]

直觉:加法平移直接穿过平均符号。因为不需要独立,后面"协方差传播"一类的推导才站得住。

1.3 方差与协方差

方差:偏离均值的平方平均("散"的程度):

\[\mathrm{Var}(X)=\mathbb E\big[(X-\mathbb E X)^2\big]=\mathbb E[X^2]-(\mathbb E X)^2\]

协方差:两个变量"一起动"的程度:

\[\mathrm{Cov}(X,Y)=\mathbb E\big[(X-\mathbb E X)(Y-\mathbb E Y)\big]\]

常用性质(背下来,后面处处用):

性质 公式
自协方差 \(\mathrm{Cov}(X,X)=\mathrm{Var}(X)\)
线性变换 \(\mathrm{Cov}(aX+b,\ cY+d)=ac\,\mathrm{Cov}(X,Y)\)
和的方差 \(\mathrm{Var}(X+Y)=\mathrm{Var}(X)+\mathrm{Var}(Y)+2\mathrm{Cov}(X,Y)\)
独立 ⟹ 协方差为 0 \(X\perp Y\ \Rightarrow\ \mathrm{Cov}(X,Y)=0\)

不相关 ≠ 独立(常见误区)

方向只有一条:独立 ⟹ 不相关\(\mathrm{Cov}=0\))。 反过来不成立:\(\mathrm{Cov}(X,Y)=0\) 只说明"没有线性关系",非线性关系仍可能存在(例:\(X\sim N(0,1)\)\(Y=X^2\),则 \(\mathrm{Cov}(X,Y)=\mathbb E[X^3]=0\),但 \(Y\) 显然由 \(X\) 决定)。 唯一例外:联合高斯情形下,不相关 ⟺ 独立——这是高斯分布的特权,也是卡尔曼敢于用"协方差矩阵"完整描述不确定性的原因。


二、随机向量与协方差矩阵

2.1 随机向量

把一堆相关的随机变量装进一个向量:

\[x=\begin{bmatrix}x_1\\ x_2\\ \vdots\\ x_n\end{bmatrix}\in\mathbb R^n\]

均值向量(逐分量取期望):

\[\mu=\mathbb E[x]=\begin{bmatrix}\mathbb E[x_1]\\ \mathbb E[x_2]\\ \vdots\\ \mathbb E[x_n]\end{bmatrix}\]

协方差矩阵(把"散"和"联动"统一装起来):

\[\Sigma=\mathrm{Cov}(x)=\mathbb E\big[(x-\mu)(x-\mu)^T\big]\]

展开:

\[\Sigma=\begin{bmatrix} \mathrm{Var}(x_1) & \mathrm{Cov}(x_1,x_2) & \cdots & \mathrm{Cov}(x_1,x_n)\\ \mathrm{Cov}(x_2,x_1) & \mathrm{Var}(x_2) & \cdots & \mathrm{Cov}(x_2,x_n)\\ \vdots & \vdots & \ddots & \vdots\\ \mathrm{Cov}(x_n,x_1) & \mathrm{Cov}(x_n,x_2) & \cdots & \mathrm{Var}(x_n) \end{bmatrix}\]

2.2 协方差矩阵的性质

  1. 对称\(\Sigma=\Sigma^T\)(因为 \(\mathrm{Cov}(x_i,x_j)=\mathrm{Cov}(x_j,x_i)\));
  2. 半正定:对任意 \(a\in\mathbb R^n\)\(a^T\Sigma a=\mathrm{Var}(a^Tx)\ge 0\)
  3. 各分量线性无关 ⟹ 正定\(\Sigma\succ 0\),可逆——卡尔曼里 \(P,R\) 都要求可逆;
  4. 对角元是方差、非对角元是协方差(相关性)。

2.3 线性变换的均值与协方差(推导:\(A\Sigma A^T\) 从哪来)

\(y=Ax+b\)\(A\in\mathbb R^{m\times n}\)\(b\in\mathbb R^m\),则

\[\mathbb E[y]=A\,\mu+b\]

协方差(\(A\Sigma A^T\) 的唯一来源,必须会推):

\[y-\mathbb E[y]=A(x-\mu)\]

所以

\[\mathrm{Cov}(y)=\mathbb E\big[(y-\mathbb Ey)(y-\mathbb Ey)^T\big] =\mathbb E\big[A(x-\mu)(x-\mu)^T A^T\big] =A\,\underbrace{\mathbb E\big[(x-\mu)(x-\mu)^T\big]}_{\Sigma}\,A^T\]

\[\boxed{\ \mathrm{Cov}(y)=A\Sigma A^T\ }\]

这就是卡尔曼预测步 \(P^-=FPF^T+Q\) 的出处

状态方程 \(x_k=F x_{k-1}+w_{k-1}\)\(w\) 协方差 \(Q\)),把 \(F\)\(A\)、把 \(Q\) 当"额外加的噪声协方差",线性变换公式逐字给: \(P_k^-=\mathrm{Cov}(x_k^-)=F P_{k-1}^+ F^T+Q_{k-1}\)。卡尔曼你自己推导时背上这一句,五方程就只剩\(Q\)的"加法"要解释了。


三、多维高斯分布(定义 → 几何)

3.1 定义

\(x\in\mathbb R^n\) 的概率密度为

\[p(x)=\frac{1}{(2\pi)^{n/2}|\Sigma|^{1/2}}\exp\left(-\frac12(x-\mu)^T\Sigma^{-1}(x-\mu)\right)\]

则称 \(x\) 服从 \(n\) 维高斯分布,记

\[x\sim\mathcal N(\mu,\Sigma)\]

其中:

  • \(\mu\):均值向量(椭球中心);
  • \(\Sigma\):协方差矩阵(椭球形状);
  • \(|\Sigma|\):行列式(归一化常数的一部分);
  • 指数里的二次型 \((x-\mu)^T\Sigma^{-1}(x-\mu)\)马氏距离平方

3.2 几何意义:误差椭球

  • \(\Sigma\)特征向量给出高斯"椭球"的主轴方向;
  • 对应特征值给出各主轴方向的方差(轴长 ∝ 特征值平方根);
  • 等概率面是椭球面:
\[(x-\mu)^T\Sigma^{-1}(x-\mu)=c^2\]
  • 特例:若 \(\Sigma=\sigma^2 I\),则各分量独立同分布、等概率面退化为球面——"圆形不确定性"。

直觉:协方差矩阵在这里就是"把笛卡尔球压成斜椭球"的那张矩阵。主轴长、斜不斜,全部由 \(\Sigma\) 的特征结构决定——这也是为什么卡尔曼/组合导航把"误差大小"直接叫"\(P\) 矩阵"。

3.3 高斯的重要性质(卡尔曼的三大发动机)

① 线性变换仍高斯:

\[x\sim\mathcal N(\mu,\Sigma)\ \Rightarrow\ Ax+b\sim\mathcal N(A\mu+b,\ A\Sigma A^T)\]

(几何:椭球被线性映射成新的椭球。)

② 边缘分布仍高斯:

\[\begin{bmatrix}x\\ y\end{bmatrix}\sim\mathcal N\left(\begin{bmatrix}\mu_x\\ \mu_y\end{bmatrix},\ \begin{bmatrix}\Sigma_{xx} & \Sigma_{xy}\\ \Sigma_{yx} & \Sigma_{yy}\end{bmatrix}\right)\]

\[x\sim\mathcal N(\mu_x,\Sigma_{xx}),\qquad y\sim\mathcal N(\mu_y,\Sigma_{yy})\]

(取边缘 = 直接切掉协方差矩阵的对应子块!)

③ 条件分布仍高斯(下一节详细推导——卡尔曼更新的核心)。

④ 不相关 ⟺ 独立: 高斯向量中,若 \(\Sigma_{xy}=0\),则 \(x,y\) 独立(§1.3 警告里说的"特权")。


四、分块高斯与条件分布(卡尔曼更新核心)

4.1 分块高斯

\[\begin{bmatrix}x\\ y\end{bmatrix}\sim\mathcal N\left(\begin{bmatrix}\mu_x\\ \mu_y\end{bmatrix},\ \begin{bmatrix}\Sigma_{xx} & \Sigma_{xy}\\ \Sigma_{yx} & \Sigma_{yy}\end{bmatrix}\right),\qquad \Sigma_{yx}=\Sigma_{xy}^T,\ \Sigma_{yy}\succ 0\]

4.2 条件分布公式

给定 \(y\) 的条件下,\(x\) 的条件分布仍是高斯

\[x\mid y\sim\mathcal N(\mu_{x\vert y},\ \Sigma_{x\vert y})\]

其中

\[\mu_{x\vert y}=\mu_x+\underbrace{\Sigma_{xy}\Sigma_{yy}^{-1}}_{K}(y-\mu_y)\]
\[\Sigma_{x\vert y}=\Sigma_{xx}-\Sigma_{xy}\Sigma_{yy}^{-1}\Sigma_{yx}\]

4.3 推导(正交投影法,把 \(K\) "算"出来)

核心思想:在"用 \(y\) 线性估计 \(x\)"的所有估计器里,最优的那个(线性最小均方误差)是:误差与 \(y\) 正交。

\(\tilde x=x-\mu_x\)\(\tilde y=y-\mu_y\),考虑线性估计

\[\hat x=\mu_x+K\,\tilde y\]

误差 \(e=x-\hat x=\tilde x-K\tilde y\)。要求 \(e\)\(\tilde y\) 正交(不相关):

\[\mathbb E\big[e\,\tilde y^T\big]=0\ \Rightarrow\ \mathbb E\big[(\tilde x-K\tilde y)\tilde y^T\big]=0\]

展开(期望穿过矩阵):

\[\Sigma_{xy}-K\Sigma_{yy}=0\ \Rightarrow\ \boxed{K=\Sigma_{xy}\Sigma_{yy}^{-1}}\]

条件均值:

\[\mu_{x\vert y}=\mathbb E[\hat x\mid y]=\mu_x+\Sigma_{xy}\Sigma_{yy}^{-1}(y-\mu_y)\]

条件协方差(把 \(e=\tilde x-K\tilde y\) 代回去):

\[\mathrm{Cov}(e)=\mathbb E\big[(\tilde x-K\tilde y)(\tilde x-K\tilde y)^T\big]\]
\[=\Sigma_{xx}-K\Sigma_{yx}-\Sigma_{xy}K^T+K\Sigma_{yy}K^T\]

代入 \(K=\Sigma_{xy}\Sigma_{yy}^{-1}\)

\[=\Sigma_{xx}-\Sigma_{xy}\Sigma_{yy}^{-1}\Sigma_{yx}=\Sigma_{x\vert y}\]

推导完成。你看,条件方差比原 \(\Sigma_{xx}\)——"知道了 \(y\) 就减少了不确定性",这对应卡尔曼量测更新后 \(P^+<P^-\)

4.4 与卡尔曼更新的对应(全表,背下来)

卡尔曼更新本质就是"给定观测 \(z_k\),求状态 \(x_k\) 的条件高斯"。把右列代入左列,直接得到卡尔曼五方程:

条件高斯 卡尔曼
\(x\) 状态 \(x_k\)
\(y\) 观测 \(z_k\)
\(\mu_x\) 预测均值 \(\hat x_k^-\)
\(\Sigma_{xx}\) 预测协方差 \(P_k^-\)
\(\mu_y\) \(H_k\hat x_k^-\)
\(\Sigma_{yy}\) \(S_k=H_kP_k^-H_k^T+R_k\)
\(\Sigma_{xy}\) \(P_k^-H_k^T\)
\(K=\Sigma_{xy}\Sigma_{yy}^{-1}\) 卡尔曼增益 \(K_k=P_k^-H_k^T S_k^{-1}\)
\(\mu_{x\vert y}\) 后验均值 \(\hat x_k^+\)
\(\Sigma_{x\vert y}\) 后验协方差 \(P_k^+\)

记法口诀:卡尔曼就是把"预测高斯"与"观测高斯"用条件公式联姻——\(K\) 是关联度(交叉信息)除以观测不确定度,新息修正量 = 关联度告诉你要信多少。


五、贝叶斯视角:后验 ∝ 先验 × 似然

一句话:滤波 = 把「已有估计(先验)」与「新量测(似然)」两个高斯相乘,得到「后验」。

连续形式:

\[p(x\mid z)=\frac{p(z\mid x)\,p(x)}{p(z)}\ \propto\ \underbrace{p(z\mid x)}_{\text{似然}}\cdot\underbrace{p(x)}_{\text{先验}}\]

一维高斯相乘的精度相加(精度 \(=\sigma^{-2}\),定义方便):

\[\frac{1}{\sigma^2}=\frac{1}{\sigma_p^2}+\frac{1}{\sigma_z^2},\qquad \mu=\sigma^2\left(\frac{\mu_p}{\sigma_p^2}+\frac{\mu_z}{\sigma_z^2}\right)\]

等价于"预测 + 增益 × 新息"的卡尔曼形状

\[\mu=\mu_p+\underbrace{\frac{\sigma_p^2}{\sigma_p^2+\sigma_z^2}}_{K}(\mu_z-\mu_p)\]
  • 观测噪声小(\(\sigma_z\to0\))⟹ \(K\to1\) 信观测;
  • 预测噪声小(\(\sigma_p\to0\))⟹ \(K\to0\) 信预测。

这个一维形式虽简单,却是卡尔曼更新公式 \(x^+=x^-+K(z-Hx^-)\) 的全部灵魂:权重 = 预算的不确定性 / 总不确定性


六、协方差传播(预测步与观测步)

6.1 线性状态传播(推导)

设状态方程 \(x_k=F_{k-1}x_{k-1}+w_{k-1}\)\(w_{k-1}\sim\mathcal N(0,Q_{k-1})\)\(w\)\(x\) 独立。

均值传播:

\[\hat x_k^-=F_{k-1}\hat x_{k-1}^+\]

误差:

\[x_k-\hat x_k^-=F_{k-1}(x_{k-1}-\hat x_{k-1}^+)+w_{k-1}\]

两项独立,协方差相加(§2.3 + §1.3 和的方差):

\[P_k^-=F_{k-1}P_{k-1}^+F_{k-1}^T+Q_{k-1}\quad\checkmark\]

6.2 非线性状态传播(EKF 的预测步)

\(x_k=f(x_{k-1})+w_{k-1}\),在 \(\hat x_{k-1}^+\) 处一阶泰勒(导数与微分基础 §五的雅可比思想):

\[f(x_{k-1})\approx f(\hat x_{k-1}^+)+\underbrace{\left.\frac{\partial f}{\partial x}\right|_{\hat x_{k-1}^+}}_{F_{k-1}}(x_{k-1}-\hat x_{k-1}^+)\]

于是同样

\[P_k^-=F_{k-1}P_{k-1}^+F_{k-1}^T+Q_{k-1}\]

这就是 EKF 与 KF 的唯一区别:\(F\) 变成雅可比。

6.3 观测传播:新息与增益

观测方程 \(z_k=H_k x_k+v_k\)\(v_k\sim\mathcal N(0,R_k)\),则(由线性变换性质)

\[z_k\sim\mathcal N(H_k\hat x_k^-,\ H_kP_k^-H_k^T+R_k)\]

新息(量测残差):

\[\tilde z_k=z_k-H_k\hat x_k^-,\qquad S_k=\mathrm{Cov}(\tilde z_k)=H_kP_k^-H_k^T+R_k\]

卡尔曼增益

\[K_k=P_k^-H_k^T S_k^{-1}\]

直觉:\(S_k\) 是"预测观测的拖后腿总和",\(P_k^-H_k^T\) 是"状态误差与观测误差的关联"——增益就是"关联度 ÷ 总不确定度",与 §4.3 的正交投影、§五的一维权重,三层是同一回事。


七、卡方分布:给滤波器做体检

一句话:滤波调没调废,不能只看结果像不像,得用统计检验。NEES / NIS 的检验统计量都服从 \(\chi^2\) 分布。

  • NEES(状态)\(\varepsilon_x=(x-\hat x)^T P^{-1}(x-\hat x)\sim\chi^2_n\)\(n\)=状态维数);
  • NIS(量测)\(\varepsilon_z=\tilde z^T S^{-1}\tilde z\sim\chi^2_m\)\(m\)=量测维数)。

均值就是自由度(\(\mathbb E[\chi^2_n]=n\)\(\mathbb E[\chi^2_m]=m\)),所以多次求平均后:NEES/NIS 显著大于理论均值 ⟹ 欠估计(\(P\) 偏小);显著小于 ⟹ 过估计(\(P\) 偏大)。详见 14 一致性检验 NEES/NIS


八、课程里用在哪

  • ESKF 15 维状态:误差状态 \(\delta x\sim\mathcal N(0,P)\)\(P\)\(15\times15\) 协方差;
  • 预测\(P^-=FPF^T+Q\)(§六);
  • 更新\(K=PH^T(HPH^T+R)^{-1}\)(§四条件高斯);
  • 条件高斯:卡尔曼更新的本质(§四);
  • 协方差传播:IMU 误差、GNSS 噪声如何一步步进入状态方差(§六);
  • 一致性检验:新息应服从 \(\mathcal N(0,S)\),用于判断滤波是否发散(§七)。

九、常见坑

  1. 把"不相关"当"独立":只有高斯情形才等价(§1.3)。状态分量之间可以有非线性关系,别用线性协方差 \(0\) 下结论。
  2. 忘记 \(Q,R\) 要对称正定:否则协方差传播会丢失正定性,滤波器数值崩溃。
  3. 混淆标量方差与向量协方差:标量时是 \(\sigma^2\),向量时是矩阵 \(P\)——写了 \(P\) 就带上 \(15\times15\) 的记账意识。
  4. \(\Sigma_{yy}\) 不可逆:观测冗余或完全相关时会出现,需伪逆或降维/剔除冗余量测。
  5. 长时间直接算 \(P^-=FPF^T+Q\):数值上会谈对称性(浮点误差),工程上用 Joseph 形式或平方根滤波(UD/Cholesky 分解)。
  6. 新息忘记除以 \(S\) 再看大小:NIS 要用 \(\tilde z^T S^{-1}\tilde z\) 归一化,不能直接看 \(\tilde z\) 数值。

十、一句话总结

  • 概率统计:卡尔曼滤波 = "高斯条件期望"的递推。核心是条件高斯公式(给出 \(K\)\(P^+\))和协方差传播(给出 \(P^-\));
  • 所有公式都能从"两个高斯相乘还是高斯 + 线性变换保持高斯"两条性质推出来。

关联

外链 Wiki