期望、方差与协方差
一整个分布太"重"了,机器人通常只想用几个数概括它:均值回答"最好的单点猜测是什么",方差回答"这个猜测有多不稳",协方差回答"两个误差是同涨同落,还是此消彼长"。把协方差排成矩阵,它在平面上就是一个椭圆:椭圆的朝向和长短,就是机器人"对自己位置的不确定性"的形状。
1为什么机器人需要它
机器人的状态估计器每一步吐出的,不是一个位置,而是一个位置加一个"可信度":均值 \(\hat{\mathbf x}\),以及告诉你它大概拿不准多少、往哪个方向拿不准的协方差 \(\Sigma\)。规划器要根据 \(\Sigma\) 判断"这条路离障碍物够不够远";传感器融合要根据 \(\Sigma\) 决定"该信 GPS 还是该信里程计";卡尔曼滤波的整个递推,就是在不断地更新这一对 \((\hat{\mathbf x}, \Sigma)\)。
协方差里最有用、也最容易被忽视的是非对角线元素。位置的 \(x\) 和 \(y\) 误差如果不相关,不确定性是一个"正放"的椭圆;如果相关,椭圆就是斜的:这时知道了 \(x\) 的误差,就能顺便推断出 \(y\) 的误差。4.8 节里"只测位置、速度也变准了"的魔术,全靠这几个非对角元素。
2直觉:均值是平衡点,方差是散开的程度
把分布想成一根杠杆:每根柱子是一个砝码,位置是 \(x\),重量是概率 \(p(x)\)。期望(均值)\(E[X]\) 就是让杠杆保持平衡的支点位置:\(\sum x\,p(x)\)。离支点远的砝码"力矩"更大,所以一个很远但很轻的柱子,也能把均值拉过去不少。
均值不是"最可能的值"(众数),也不是"中间的值"(中位数),三者只在对称单峰分布里重合。拖动下面的柱子,再拖动那个"猜测" \(c\):如果你要最小化平方误差,最优的猜测是均值;如果要最小化绝对误差,最优的猜测是中位数。
- 选"两簇"预设:均值恰好落在一个概率几乎为 0 的位置。这个"期望值"机器人永远不会真的观测到。
- 做出一个右偏分布,使均值比中位数大 1 以上:一个很远的轻柱子拽走了均值,却没怎么动中位数。
- 把猜测 \(c\) 拖到均值上(误差 < 0.1),看平方损失降到最低;再拖到中位数,看绝对损失最低。
均值是平方误差意义下的最佳单点猜测,这正是最小二乘(1.13)和卡尔曼滤波"最小均方误差估计"的根源。而它的代价就是对离群点敏感:一个很远的值,因为"平方"被放大了。方差正是这个最小的平方误差:\(\mathrm{Var}(X) = \min_c E[(X-c)^2]\)。
3动手玩:方差是"平均方块"
方差 \(\mathrm{Var}(X) = E[(X-\mu)^2]\) 有一个很好的几何意义:把每个样本到均值的距离当作正方形的边长,方差就是这些正方形面积的平均值;标准差 \(\sigma\) 则是"平均方块"的边长。距离平方使得远处的点贡献大得多:距离翻倍,面积是四倍。
下面从 \(\mathcal N(0, \sigma^2)\) 里抽样,每个点长出一个方块。注意样本很少时,样本方差抖得厉害,甚至系统性偏小:那是除以 \(N\) 还是 \(N-1\) 的问题,下方的"重复实验"会告诉你答案。
- 把样本数降到 4 以下,多点几次"换一组样本":平均方块的大小跳动多大?
- N = 5 时,把"除以"在 N 和 N−1 之间切换,对照"重复实验"那一行:哪一个平均起来等于真实的 \(\sigma^2\)?
样本方差用的是"到样本均值的距离",而样本均值本身就是这几个点的"重心",天然离它们更近,所以平均方块偏小,除以 \(N\) 会系统性低估。除以 \(N-1\)(贝塞尔修正)刚好补回来,期望正好是 \(\sigma^2\)。当 \(N\) 很大时,两者几乎没差别。
4第二个视角:协方差矩阵就是一个椭圆
两个变量时,方差的"方块"变成"长方形":\(\mathrm{Cov}(X, Y) = E[(X-\mu_x)(Y-\mu_y)]\) 是每个点 \((x, y)\) 与均值之间那个带符号的长方形面积的平均。点落在右上或左下象限,长方形面积为正;落在左上或右下,为负。如果正的更多,\(X\) 和 \(Y\) 就倾向于同涨同落,协方差为正,点云向右上方倾斜。
把 \(\sigma_x^2, \sigma_y^2, \mathrm{Cov}\) 摆成矩阵 \(\Sigma\),点云的形状就由它决定:椭圆的两条主轴是 \(\Sigma\) 的特征向量(1.11 节),半轴长是特征值的平方根。再选一个单位方向 \(\mathbf u\),点云投影到这个方向上的方差是 \(\mathbf u^\top \Sigma\, \mathbf u\)(点积,1.7 节)。拖动椭圆的两个把手改变形状,再拖动那个转盘上的方向把手。
- 做出强负相关:\(\rho \le -0.7\)。点云向哪边倾斜?
- 让 \(x\)、\(y\) 不相关(\(|\rho| < 0.03\)),但方差差别很大(比值 > 2):椭圆摆正,只是被拉扁。
- 把方向 \(\mathbf u\) 转到主轴上:投影方差等于最大特征值 \(\lambda_1\)。转到垂直方向,则等于 \(\lambda_2\)。
协方差矩阵把"在每个方向上有多不确定"装进了一个矩阵:沿方向 \(\mathbf u\) 的方差是 \(\mathbf u^\top\Sigma\mathbf u\)。最不确定的方向是第一特征向量,最确定的是最后一个。只看 \(\sigma_x\)、\(\sigma_y\) 会漏掉倾斜:同样的 \(\sigma_x, \sigma_y\),不同的 \(\rho\),是完全不同的椭圆。
不相关,不等于独立
相关系数 \(\rho\) 只度量线性关系。把 \(y\) 完全由 \(x\) 决定的关系(比如抛物线、圆)放进来,\(\rho\) 可以恰好是 0。用下面这个小实验对比 \(\rho\) 与一个能捕捉任意形状依赖的量:互信息(把平面切成 8×8 的格子,用频数估计;"基线"是把 \(y\) 随机打乱后的值,代表"真正独立"时估计误差带来的那一点点)。
- 找到一种数据:\(|\rho| < 0.1\),可互信息却远高于基线(3 倍以上)。
5再看数学
提示:悬停带底色的符号,FIG 1、FIG 2、FIG 3 中对应的元素会高亮。
期望
第一行前两式分别是离散情形与连续情形(\(f\) 是概率密度)。第二行的线性是概率里最好用的性质:不需要知道 \(X, Y\) 的联合分布,独立与否都成立。机器人里,\(E[A\mathbf x + \mathbf b] = A\,E[\mathbf x] + \mathbf b\),这就是"均值穿过线性映射"(4.5)。
方差与协方差
独立 \(\Rightarrow\) 协方差为 0,反过来不成立(FIG 4)。最后一行说明:两个误差相加时,方差是否相加,取决于它们是否相关。若 \(\rho = -1\),一个变大必伴随另一个变小,它们的和甚至可以完全抵消;这正是两个传感器误差负相关时可以融合得特别好的原因。
协方差矩阵
对随机向量 \(\mathbf x \in \mathbb R^n\),把所有两两协方差排成矩阵:
\(\Sigma\) 对称、半正定(任何方向的方差都不为负)。对称矩阵可以对角化(1.11):\(Q\) 的列是主轴方向,\(\Lambda = \mathrm{diag}(\lambda_1, \lambda_2)\) 是沿主轴的方差。第二行(点积、二次型)说明沿任一方向的方差都夹在两个特征值之间,最大值在主轴上取到。
把 \(N\) 个样本的 \(x\) 减去均值,排成一个 \(N\) 维向量 \(\tilde{\mathbf x}\);\(y\) 同理得 \(\tilde{\mathbf y}\)。则 \(\rho = \tilde{\mathbf x}\cdot\tilde{\mathbf y} / (\|\tilde{\mathbf x}\|\|\tilde{\mathbf y}\|)\),正是 1.7 节的夹角余弦。\(\rho = \pm 1\) 就是两个向量共线,\(\rho = 0\) 就是它们垂直。这也解释了为什么 \(|\rho| \le 1\)(柯西-施瓦茨不等式)。
6机器人中的它:定位误差的"形状"
室内的 UWB 定位、或者靠两个已知的信标做距离测量,是一个非常干净的例子:机器人量到自己到信标 A 和 B 的距离 \(r_1, r_2\),每个距离有高斯噪声 \(\sigma_r\),然后求两个圆的交点作为位置。每次测量得到一个交点,重复很多次,就得到一团点云。它的形状取决于信标的几何:两个信标与机器人夹角接近 90° 时,点云接近圆;两个信标几乎在同一条射线上时,点云在垂直于这条射线的方向上被拉得很长:两个圆在机器人处几乎相切,两次测距都只约束了沿射线的距离,沿切线方向几乎没有约束。这正是 GPS 里的"几何精度因子" (DOP)。
图里同时画出样本协方差(直接从点云算出,黄色)和用雅可比算出的理论预测 \(\sigma_r^2 (J^\top J)^{-1}\)(紫色虚线,下一节 4.5 的内容);噪声不大时它们重合。拖动信标和机器人。
- 把两个信标摆在机器人同一侧、几乎同一方向(夹角 < 15°):椭圆被拉成一条长线。谁的方差大?
- 再把夹角调到接近 90°(85° 到 95°):椭圆接近圆,精度最好。
GPS 接收机会给出 HDOP/VDOP 数字,就是这里"几何放大"的程度:卫星分布得越开,DOP 越小。规划器用估计的 \(\Sigma\) 给轨迹加"安全膨胀"(让机器人在不确定性椭圆大的地方绕远些);SLAM 的"信息矩阵" \(\Sigma^{-1}\) 里,哪个方向的信息量大、哪个方向弱,一目了然。
7常见误区
两簇分布的均值落在两簇之间的空地上,那里的概率几乎为 0(FIG 1)。机器人若在"两种可能"(比如面前是左门还是右门)之间拿不准,把两者平均成"中间"去规划,就会一头撞在墙上。多峰分布不要只用均值和方差概括。
"\(\sigma_x = 0.3\),\(\sigma_y = 0.3\),位置很准。"如果 \(\rho = 0.95\),椭圆沿 45° 方向的半轴长是 \(0.3\sqrt{1.95} \approx 0.42\),垂直方向仅 \(0.3\sqrt{0.05} \approx 0.07\)。实际精度取决于你关心的方向。反过来,丢掉非对角元素(假设各分量独立)会让滤波器对相关的误差过度自信。
不相关只说明没有线性关系(FIG 4)。相关也不说明谁影响谁:机器人估计的 \(x\) 与 \(y\) 误差相关,通常只是因为它们共享同一个航向误差。
用很少的样本估计方差(比如标定传感器噪声只测了 5 次)时,除以 \(N\) 会系统性偏小(FIG 2);还要记得,样本均值和方差本身也有抖动,几个样本给出的 \(\sigma\) 可能偏离真值一大截。
8小练习
9延伸阅读
- S. Thrun, W. Burgard & D. Fox, Probabilistic Robotics, MIT Press, 2005, Sec. 2.2 — 期望、协方差在机器人估计里的写法
- T. D. Barfoot, State Estimation for Robotics, Cambridge University Press, 2017, Ch. 2 — 矩、协方差、相关性的矩阵形式
- C. M. Bishop, Pattern Recognition and Machine Learning, Springer, 2006, Sec. 1.2.2 — 期望与协方差,含向量情形
- J. Blitzstein & J. Hwang, Introduction to Probability, CRC Press — 第 4 章(期望)与第 7 章(联合分布、协方差与相关)
- G. Strang, Introduction to Linear Algebra, Wellesley–Cambridge Press — 特征值与对称矩阵:理解协方差椭圆的线性代数基础