探索更深的卡爾曼濾波:從「神經卡爾曼濾波」到「預測編碼網路」

在之前的文章中,我們探討了 Millidge 等人在 2021 年提出的神經卡爾曼濾波(Neural Kalman Filtering, NKF),其核心是將卡爾曼濾波的梯度下降解法映射到神經動態系統中,從而模擬卡爾曼濾波的效果。今天,我們將深入討論這一研究的繼任者——牛津大學於今年發表的研究(Millidge et al. 2024)。這篇研究進一步展示了如何用「預測編碼網路」的框架處理動態時間序列問題,為我們提供了一種新的方式來理解與模擬卡爾曼濾波。

預測編碼網路的核心機制
預測編碼網路的核心機制圍繞「預測」和「更新」展開。簡單來說,它是一種透過計算預測誤差來調整狀態的框架。該模型的關鍵動態方程為:
$$ \tau\frac{\mathrm{d}\overrightarrow{x} }{\mathrm{d} t}=-\epsilon _{x}+f'(\overrightarrow{x_{k}})\bigodot C^{T}\epsilon _{y}$$
f 是神經元的激勵函數。
其中:
* 狀態預測誤差$ (\epsilon_x):$
$$\epsilon _{x}=\overrightarrow{x_{k}}-A\overrightarrow{x_{k-1}}-B\overrightarrow{u_{k}},$$
這是當前狀態與動態模型預測的偏差。
* 觀測預測誤差$ (\epsilon_y):$
$$\epsilon _{y}=\overrightarrow{y_{k}}-C\overrightarrow{x_{k}},$$
它表示觀測輸入與預測值之間的偏差。

這一機制表明,系統的狀態會同時被動態模型的預測誤差和觀測輸入誤差所調整,類似於卡爾曼濾波中平衡動態預測與測量更新的過程。

如何處理非線性模型?
卡爾曼濾波的限制之一是它假設系統動態和測量模型是線性的。而在實際應用中,許多系統具有非線性特性,因此需要擴展卡爾曼濾波(EKF)來即時線性化模型。
預測編碼網路提供了一種新思路:直接在網路中嵌入非線性模型,而非每一步進行線性化。該研究展示了預測編碼網路如何透過設計權重來隱式學習系統的非線性特性。這使得網路不僅能應對線性系統,還可以處理高度非線性的動態系統。該網路可以通過權重調整來逼近非線性函數f,而無需顯式計算其雅可比矩陣。

多層網路的結構與學習
研究中還探討了多層預測編碼網路的設計,其中每一層網路負責不同層次的資料處理:
* 感官層: 處理觀測數據,例如傳感器輸入。
* 隱藏層: 捕捉狀態動態,執行類似卡爾曼濾波的更新。
* 高層網路: 模擬系統中的更高層次推理。
每層的更新則通過簡單的梯度下降實現,這使得該框架不僅具有良好的可解釋性,還具備較強的數值穩定性。

與卡爾曼濾波的關聯
該研究的一大亮點是,它為卡爾曼濾波提供了一種新的解釋框架。預測編碼網路在狀態更新中不會顯式估計和傳播後驗協方差矩陣,這與卡爾曼濾波不同。此網路假設狀態後驗分布為零方差的 Dirac 分布,從而簡化了更新過程。

未來展望
這一框架對預測和控制領域有著廣泛的啟發意義:
* 簡化卡爾曼濾波的實現: 將其轉化為簡單的神經網路更新規則。
* 處理非線性系統: 直接嵌入非線性模型,提供了另一種實現方式。
* 多層資訊處理: 通過多層網路結構處理更複雜的動態系統。
隨著這些方法的應用,我們可能在機器人控制、導航和感知融合中看到更多的實驗驗證。無論是理論還是實踐,這項研究都為我們提供了一個新的視角來理解動態系統。

聲明:本文使用了 OpenAI ChatGPT 協助撰寫。


撰文:葉宸甫


參考資料:Millidge, Beren, Mufeng Tang, Mahyar Osanlouy, Nicol S. Harper, and Rafal Bogacz. 2024. “Predictive Coding Networks for Temporal Prediction.” PLOS Computational Biology 20 (4): e1011183.

留言