過程雜訊與測量雜訊
當機器人試圖追蹤一個它無法直接看到的東西——它真實的位置、它真實的速度——它會依靠兩幅關於世界的圖景,而每一幅都自帶某種模糊。一幅圖景是預測:「根據我之前的運動方式,我現在大致應該在這裡。」另一幅是觀測:「我的感測器剛剛告訴我,我在那邊。」兩者都不完美,而這兩種不完美各有其名。過程雜訊是預測裡的那份偏差——真實世界拒絕乖乖遵循機器人所用的那條整潔規則的種種小方式。測量雜訊則是觀測裡的那份偏差——感測器誤報自己所見的種種小方式。
過程雜訊來自這樣一個事實:預測步驟依賴於一個把運動方式簡化了的模型,而現實總會在這個模型之外游走一點:車輪打滑、一陣風推了無人機一把、馬達比指令多使了那麼一絲勁。它是運動本身的不確定性——「我假定我會怎麼動」與「我實際怎麼動了」之間的落差。相比之下,測量雜訊是「看」這件事裡的不確定性:GPS 抖動了幾米、攝影機糊了、溫度計在真實溫度附近晃來晃去。機器人的實際狀態也許穩穩當當,可感測器每次去查,遞回來的數字仍會略有不同。
把這兩者區分開來,正是卡爾曼濾波器這類濾波器運作的核心所在,因為濾波器必須裁定:自己的預測,相對於一次新鮮的感測器讀數,該信幾分。如果它認為運動模型可靠、而感測器跳來跳去,它就倚重預測,對那條帶雜訊的讀數一笑置之;如果感測器清晰、而運動難以預料,它就轉而倚重測量。把這兩種雜訊的平衡拿捏對了,估計就能保持平滑又準確;拿捏錯了,機器人要麼追著感測器的每一次抽動跑,要麼固執地無視真實世界。
一台掃地機器人根據馬達指令預測自己向前移動了 30 公分,但它蹭到了一塊地毯、打了個滑——這道落差就是過程雜訊。它的碰撞感測器隨後報告說牆比實際近了 5 公分——這個抖動就是測量雜訊。濾波器把兩者糅合起來,定下它對自己所在位置的最佳猜測。
過程雜訊攪渾了預測;測量雜訊攪渾了感測器讀數。濾波器必須把兩者一起權衡。
一個好記的口訣:過程雜訊是「動」裡的不確定性(運動模型),測量雜訊是「看」裡的不確定性(感測器)。濾波器需要對兩者都有誠實的估計——把其中之一誇大了,機器人就會去信錯誤的那一方。