狀態估計與濾波

可觀測性(估計意義)

可觀測性問的是一個看似簡單的問題:僅憑我實際能取得的量測,我最終能不能把機器人那些隱藏狀態裡、我想知道的一切都推算出來?所謂狀態,就是描述機器人處境的那一整套數字——它的位置、它的朝向,也許還有速度,也許還有某個感測器緩慢的漂移。這些數字裡有許多從來不被直接量測,機器人只能從感測器實際報出的東西裡去推斷。如果盯著感測器看得夠久之後,恰好只有唯一一種可能的狀態能產生所看到的一切,那麼這個狀態就是可觀測的。可如果兩種確實不同的狀態會永遠產生一模一樣的感測器讀數,機器人就永遠無從分辨,那個隱藏的量便是不可觀測的——再巧妙的數學也救不回來,因為那份資訊壓根就從未被捕捉到。

一個樸素的畫面有助於理解。想像你蒙著眼站在一間空蕩蕩的純白房間裡,手裡只有一個指南針。你總能說出自己正朝著哪個方向,所以你的朝向是可觀測的。但指南針對你究竟靠著北牆還是南牆隻字不提,所以你的位置是不可觀測的——對你這唯一的感測器來說,房間裡每一處看起來都一模一樣。現在給自己一把量到最近那面牆的捲尺,然後開始走:隨著讀數因你的移動而變化,那個曾經隱藏的位置就變得可以還原了。這正是可觀測性在估計裡那個深刻的轉折:它常常取決於運動。一個量在機器人靜止時不可見,一旦它以恰當的方式動起來,就可能變得可見,因為運動會讓感測器講出一個更豐富、不斷變化的故事。

為什麼要在意這個?因為只要狀態裡有一部分是不可觀測的,任何濾波器——卡爾曼濾波器不行,粒子濾波器不行,誰都不行——都無法把它釘死;它們能做的最好程度,不過是在那一塊周圍保留一團誠實而不斷膨脹的不確定性。因此工程師在信任一個估計器之前,會先檢查可觀測性,並且常常專門設計機器人的感測器佈局或它的運動方式,好讓他們在意的那些東西變成可觀測的。這正是一個資料真能回答的問題,與一個無論演算法多好、機器人都注定只能瞎猜的問題之間的分野。

一個只靠對著一面牆的單個距離感測器來追蹤位置的機器人,分不清自己沿那面牆是偏左還是偏右——那些位置是不可觀測的,它在那個方向上的不確定性會無界地增長。再加一個成直角的第二個測牆感測器,或者乾脆讓機器人轉個彎、開一段,兩個讀數合起來就能把位置釘死:狀態於是變得可觀測了。

單個測牆感測器會讓「沿牆方向的位置」不可觀測;第二個感測器——或運動——能讓完整位置重新可還原。

可觀測性關心的是資訊究竟存不存在於量測之中——這與你的濾波器夠不夠好、能不能把它提取出來是兩碼事。一個完全可觀測的系統,仍可能被糟糕的演算法估計得一塌糊塗;但一個不可觀測的量,無論演算法多麼完美,任何演算法都估計不出來。

又稱
state observabilityestimability可观性可估计性