
8 天前
1969年阿波罗11号登月时,导航计算机的算力还不如今天的智能手表,却能在没有GPS的深空里,把指令舱精准送回地球轨道。秘密藏在一个叫卡尔曼滤波器(Kalman Filter)的算法里——它能在满是噪声和干扰的混乱数据中,算出系统最可能的真实状态。50多年后,这个算法成了自动驾驶的核心:当毫米波雷达被雨雾干扰、摄像头被强光晃瞎,它依然能让汽车看清周围的行人和车辆。你每天刷的股票K线、手机里的导航定位,背后都有它在帮你过滤不确定性。
你可以把卡尔曼滤波器想象成一个经验丰富的老交警:他既要盯着测速仪的读数(传感器测量),又要根据车辆的行驶轨迹预判它的下一步动作(系统模型)。如果测速仪突然跳了个离谱的数字,他不会立刻相信,而是结合之前的判断调整结论——这就是卡尔曼滤波器的核心:预测-更新的智慧循环。
在雷达追踪飞机的场景里,飞机的位置和速度组成了「状态向量」,就像交警记在小本子上的车辆信息。而「协方差矩阵」则是他对自己判断的信心:如果飞机一直匀速直线飞,他对速度的判断就更有把握;如果飞机突然转弯,信心就会下降。
预测阶段,算法根据上一次的状态和物理模型,算出飞机下一秒应该在的位置,同时把不确定性也一起「推」到未来——就像交警根据车辆当前速度,预判它10秒后会到路口,但也知道可能有误差。更新阶段,新的雷达数据来了,算法会计算一个「卡尔曼增益」:如果雷达信号清晰(测量噪声小),就多信一点雷达;如果飞机的运动完全符合预判(模型可靠),就多信一点自己的预测。

很多人被卡尔曼滤波器的数学公式吓退,但其实协方差矩阵没那么复杂——它就是一张「不确定性地图」。矩阵的对角线是每个状态变量的方差:比如位置的方差是10米,说明我们对位置的估计误差大概在10米左右;速度的方差是2米/秒,说明速度的估计误差在2米/秒上下。

非对角线的元素则是变量间的相关性:如果位置和速度的协方差是正的,说明位置越远,速度越快的可能性越大——就像飞机离雷达越远,可能正在加速逃离。这种相关性让算法能从一个变量的变化,推断另一个变量的趋势。
在预测步骤中,协方差矩阵会通过状态转移矩阵「膨胀」:随着时间推移,不确定性会越来越大,就像交警的预判过了10分钟,误差会变得更大。而在更新步骤中,新的测量数据会让协方差矩阵「收缩」——新信息的加入,让我们的判断更准确了。这种动态的膨胀和收缩,正是卡尔曼滤波器能在不确定环境下保持精准的关键。

标准的卡尔曼滤波器只适用于线性系统——就像飞机匀速直线飞的情况。但现实世界里,汽车会转弯、股票会暴跌、天气会突变,这些都是非线性的。于是工程师们开发出了扩展卡尔曼滤波器(EKF):把非线性的系统模型在当前估计点附近「掰直」,用线性模型近似,再用卡尔曼滤波的方法处理。
但EKF的线性化误差有时候会让算法「跑偏」,于是无迹卡尔曼滤波器(UKF)出现了:它通过选取一组「西格玛点」,模拟非线性变换后的概率分布,避免了线性化的误差。而当系统变得极度复杂,比如自动驾驶要融合激光雷达、摄像头、毫米波雷达的多源数据,甚至还要应对突发的传感器故障,单纯的卡尔曼滤波器就不够用了。
现在的研究方向,是把卡尔曼滤波器和机器学习结合:用GAN(生成对抗网络)动态调整噪声参数,用LSTM(长短期记忆网络)预测系统的非线性变化,让算法能像人类一样「从经验中学习」,应对更复杂的不确定性。
从阿波罗登月的深空导航,到自动驾驶的城市穿梭,卡尔曼滤波器的本质一直没变:在不确定的世界里,用数学的方法量化信心,用动态的平衡融合信息。它不是一个完美的算法,但它教会我们一个道理:真正的精准,不是消除不确定性,而是学会和它共处。
未来,当我们面对更复杂的系统——比如全球气候模拟、量子计算机的状态控制,甚至是人类大脑的神经活动,卡尔曼滤波器的思想依然会发光。毕竟,这个世界的本质就是不确定的,而我们对精准的追求,永远不会停止。
点击充电,成为大圆镜下一个视频选题!