盘点前八章,你的手机手里攥着一把各有各毛病的答案:GPS 室外准但会跳变、进楼就哑;Wi-Fi 室内灵光但依赖一张可能过期的地图;惯性传感器随叫随到但误差滚雪球;基站永远在线但粗到只能分清城区。它们没有一个值得全信。可那颗蓝点偏偏又稳又顺滑,从不抽搐,从不消失。
这背后有一位看不见的「总编辑」,它每秒做十几次决断:这么多彼此矛盾的说法,我该信谁、信多少?这位总编辑是个算法,叫卡尔曼滤波——1960 年为阿波罗登月飞船的导航而发明的数学方法,如今运行在你口袋里。
它的核心思想朴素得不像数学
卡尔曼滤波的全部智慧可以压缩成一句话:永远同时维护两样东西——我现在最相信的答案,以及我对这个答案有多没把握。然后每来一条新线索,就做一次「心理斗争」:
- 先预测:根据上一刻的位置和运动状态,猜这一刻应该在哪。比如惯性传感器说「刚才这秒你向北挪了 1.2 米」,那预测位置就向北挪 1.2 米——但记住第八章:惯导会漂,所以这次预测的不确定度要变大一点。
- 再修正:这时 GPS 送来一个新读数。总编辑看一眼双方的「心虚程度」:我的预测心虚多少?GPS 这条消息心虚多少(GPS 自己会附带误差估计)?谁更不虚,就多信谁。最后取一个加权折中——折中之后的不确定度,比两个来源各自都小。
就这两步,预测、修正、预测、修正,每秒循环十几次。蓝点的每一次移动,都是一次这样的心理斗争的结果。
大白话:你估摸着一锅汤还要炖十分钟(预测,但没把握),这时你掀开盖子尝了一口(新线索)。你不会把之前的估计全扔了,也不会无视舌头——你按「我之前的估算有多靠谱」和「我尝这一口有多准」来折中。卡尔曼滤波就是把「折中」算到极致:它给每个来源的不确定度都记了账,权重按账本精确分配,多一分不信,少一分不亏。
它解释了蓝点的所有「性格」
回头看,你日常观察到的蓝点行为,几乎都是这位总编辑的决策外显:
- 蓝点为什么平滑?因为预测那一步假设你运动是连续的。GPS 原始读数其实在几米范围里抖动,但总编辑知道「人不可能瞬移」,所以只让位置平滑地跟着读数走。你看到的不是 GPS,是 GPS 被「常识」驯化后的样子。
- 进隧道为什么不慌?GPS 一断,总编辑切到纯预测模式:靠惯性往前走,同时诚实地把不确定度越放越大——隧道里那圈蓝晕确实会悄悄变大。出隧道 GPS 回来,一次修正,蓝晕唰地缩回去。
- 为什么 GPS 乱跳时蓝点不跟?第八章说的「辨真伪」在这里落地:一个突然偏移一百米的读数,和预测差得太离谱,总编辑判定「这条消息不可信」,几乎不给它权重。等车开出楼群、读数恢复正常,信任度才慢慢加回来。
- 那圈蓝晕到底是什么?现在可以说穿了:它就是卡尔曼滤波内部那个「不确定度」的直接可视化。第一章说它是「诚实的免责声明」——这个算法从设计第一天起,就是把「我有多不确定」当作一等公民来计算的。
一个更普适的教训
卡尔曼滤波值得单独立传,不只因为它管着你的蓝点。它示范了一种深刻的工程哲学:不要幻想造一个完美的传感器,而要诚实地给每个不完美的信息源的「不完美程度」记账,让账本决定信谁。阿波罗飞船用它,潜艇用它,无人机用它,交易算法估计市场状态也用它。任何「多个 noisy 信源合成一个最佳状态估计」的问题,答案的骨架都是它。
至此,那颗小蓝点的技术故事讲完了:从信号塔的粗圈,到光速换算,到原子钟和相对论,到 Wi-Fi 灯塔和惯性胶水,最后由卡尔曼滤波把它们揉成你每天看到的那颗稳定的蓝点。下次打开地图,你看到的不只是一个点,而是一整套人类攒了半个世纪的技术栈在一秒钟里十几次投票的结果。
还剩最后一个问题,一个不是技术的问题:这颗蓝点,除了你,还有谁能看到?最后一章,聊聊这颗点值多少钱,以及它替你说了多少你没打算说的话。