3. 数学基础回顾(二):概率论与数理统计——贝叶斯定理、高斯分布、最大似然估计,用于行为预测建模

好,咱们接着聊。上一章我们把线性代数过了一遍,这一章轮到概率论了。说实话,在我刚开始做行人姿态估计那会儿,总觉得概率论是纯数学,跟工程离得远。后来真上手做行为预测,才发现——嗯,没有概率论,你连个靠谱的预测都写不出来。

为什么?因为行人下一秒往哪走,本身就是个随机事件。你没法说“他100%会左转”,只能说“他有80%的概率左转”。这就是概率思维。说白了,我们做行为预测,就是在跟不确定性打交道。

3.1 贝叶斯定理:用观测更新信念

贝叶斯定理,我个人认为是整个行为预测里最核心的数学工具之一。它的形式很简单:

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

但它的思想很深刻——先验 + 似然 = 后验

举个例子。你在做行人轨迹预测。一开始,你没有任何观测信息,只能根据历史统计说“这个人有60%的概率直走,40%的概率左转”。这就是先验概率 P(A)。

然后,你看到这个人身体微微向左倾斜了。这个观测信息 B 来了。你根据经验知道:如果一个人要左转,他身体左倾的概率是90%;如果直走,左倾的概率只有10%。这就是似然 P(B|A)。

好,现在用贝叶斯公式算一下后验:

P(左转|左倾) = P(左倾|左转) * P(左转) / P(左倾)
= 0.9 * 0.4 / (0.9*0.4 + 0.1*0.6)
= 0.36 / 0.42
≈ 0.857

看到了吗?仅仅一个身体倾斜的观测,就把左转概率从40%提升到了85.7%。这就是贝叶斯定理的力量——用新证据不断修正你的判断

我的经验: 我在做多目标跟踪时,经常用贝叶斯滤波(卡尔曼滤波就是它的一个特例)。每次新一帧检测结果来了,我就用贝叶斯更新一下每个目标的置信度。效果比单纯用阈值硬切好得多。

3.2 高斯分布:自然界最爱的分布

高斯分布,也叫正态分布。你想想看,人的身高、考试成绩、测量误差……几乎到处都有它的影子。在行为预测里,高斯分布更是无处不在。

它的概率密度函数长这样:

f(x) = (1 / (σ * sqrt(2π))) * exp(-(x - μ)² / (2σ²))

其中 μ 是均值,σ 是标准差。μ 决定了分布的中心位置,σ 决定了分布的“胖瘦”。

为什么高斯分布这么重要?两个原因:

  • 中心极限定理: 大量独立随机变量的和,趋近于高斯分布。这意味着很多自然现象都可以用高斯近似。
  • 数学性质好: 高斯分布的线性组合还是高斯分布,条件分布也是高斯分布。这给计算带来了极大便利。

在行为预测中,我们经常假设行人位置的预测误差服从高斯分布。比如,我预测你下一秒在 (x, y) 位置,但实际位置可能落在以 (x, y) 为中心的一个椭圆区域内。这个椭圆,就是高斯分布的等概率线。

避坑指南: 我曾经犯过一个错误——在所有场景下都假设误差是高斯分布。后来发现,在行人突然急转弯或者被遮挡时,误差分布其实是多峰的(比如可能向左也可能向右)。这时候用单高斯建模就会出问题。后来我改用了高斯混合模型(GMM),效果好了很多。

3.3 最大似然估计:从数据中“猜”参数

好,现在问题来了:我们知道了模型形式(比如高斯分布),但不知道参数(μ 和 σ)。怎么从数据中估计出这些参数?

最大似然估计(MLE)就是干这个的。它的思想很直观:找到一组参数,使得当前观测数据出现的概率最大

假设我们有 N 个观测数据 x₁, x₂, ..., xₙ,它们独立同分布,服从某个分布 f(x|θ)。那么似然函数就是:

L(θ) = ∏ f(xᵢ|θ)   (i从1到N)

我们想找到 θ 使得 L(θ) 最大。因为连乘容易数值溢出,通常取对数:

log L(θ) = ∑ log f(xᵢ|θ)

然后对 θ 求导,令导数为0,解方程即可。

举个具体的例子。假设我们假设行人速度服从高斯分布,观测到一组速度数据:

v = [1.2, 1.5, 1.1, 1.3, 1.4]  (单位: m/s)

用最大似然估计,高斯分布的 μ 和 σ² 的估计值就是:

μ̂ = (1/N) * ∑ vᵢ = 1.3
σ̂² = (1/N) * ∑ (vᵢ - μ̂)² = 0.02

你看,其实就是样本均值和样本方差。但注意,这里的 σ̂² 是除以 N 而不是 N-1,这是 MLE 的一个小特点——它是有偏的,但在大样本下偏差可以忽略。

注意: 最大似然估计在小样本下可能过拟合。比如你只观测到3个数据点,估计出的方差可能偏小。我建议在数据量少于30个时,考虑用贝叶斯估计或者加正则化项。

3.4 三者如何用于行为预测?

好,理论讲完了,咱们串一下。在行为预测建模中,这三者是怎么配合的?

我画个流程图给你看:

  1. 先验知识: 基于历史数据,用最大似然估计得到行人运动模式的先验分布(比如高斯分布参数)。
  2. 在线观测: 每一帧检测到行人的新位置、姿态等信息。
  3. 贝叶斯更新: 用贝叶斯定理,将先验分布和当前观测的似然结合起来,得到后验分布。
  4. 预测输出: 后验分布的均值作为预测值,方差作为置信度。

举个例子。你有一个行人轨迹预测模型,假设位置误差服从高斯分布。一开始,你用大量训练数据通过最大似然估计得到了误差的方差 σ²=0.5。这就是先验。

然后,在线上运行时,你观测到当前帧的检测位置和预测位置有偏差 e=0.3。你用贝叶斯公式更新后验方差:

σ²_post = 1 / (1/σ²_prior + 1/σ²_obs)

如果观测噪声 σ²_obs 很小(检测很准),后验方差就会变小,说明你更确信自己的预测。反之,如果观测噪声很大,后验方差变化不大,你仍然保持谨慎。

我的习惯: 在实际项目中,我不会只用单一高斯。我通常用高斯混合模型(GMM)来表示多模态的预测结果。比如,在十字路口,行人可能左转、直走或右转,每个模式对应一个高斯分量。然后用贝叶斯方法在线更新每个分量的权重。这样预测的鲁棒性会好很多。

3.5 小结

这一章我们聊了三个核心概念:

  • 贝叶斯定理: 用观测数据更新先验信念,得到后验分布。这是在线推理的基石。
  • 高斯分布: 最常用的概率分布,数学性质好,适合建模预测误差。
  • 最大似然估计: 从数据中估计模型参数,简单直观,但要注意小样本下的偏差。

这三者结合起来,就构成了行为预测建模的概率框架。下一章,我们会把这些数学工具真正用到代码里,实现一个简单的行人轨迹预测器。到时候你会发现——嗯,数学这东西,用起来才真正理解它。