提升領域特定語言:節省混合粒子濾波時間
在機器人領域,有一組常見的機率推論演演算法,採用了循序蒙特卡羅方法,也就是所謂的「粒子濾波」,它透過重複隨機抽樣來進行近似估算。(在這裡,「粒子」指的是單個樣本。)傳統的粒子濾波在處理複雜分佈時,難以提供精準的結果,於是催生了像混合粒子濾波這樣的先進演演算法。
混合粒子濾波演演算法在運算過程中會運用啟發式方法,但這往往會導致運算效率低下,結果也不夠精準。然而,麻省理工學院電腦科學與人工智慧實驗室(CSAIL)的團隊最近在arXiv預印本伺服器上發表了一篇論文,提出了他們稱之為「推論計劃」的程式設計介面,讓開發人員能夠細緻地增強這些演演算法的啟發式方法,從而控制其速度和精準度。
一個關鍵的考量是,開發人員控制演演算法的所有選擇並非都可行。因此,CSAIL的這個計劃還推出了SIREN,這是一種全新的機率程式設計語言(PPL)原型,它允許程式開發人員使用註釋來指定想要實施的計劃,然後該程式設計語言會自動判斷這些計劃是否真的可行。
CSAIL的博士生Ellie Cheng是這篇新論文的主要作者,她與麻省理工學院教授Michael Carbin的團隊成員共同完成了這項研究。她表示:「很多人會撰寫自定義程式碼,以一種特殊的方式使用混合粒子濾波進行推論,從而提升效能。我們的工作重點是改進為使用混合粒子濾波的人設計的領域特定語言,讓他們能夠避免額外的工作。」
SIREN提供了一種靈活的語法來定義機率模型,包括隨機變數宣告、條件陳述,以及指定推論策略(符號式或抽樣式)等功能。
該團隊在實驗測試中發現,與預設啟發式方法實施的推論計劃相比,「推論計劃」所提供的控制能夠使速度提升約1.8倍;結果還顯示,與預設的推論計劃相比,「推論計劃」平均能將精準度提高1.83倍,在執行時間相同或更短的情況下,最高可提高595倍。
Cheng說:「發現推論計劃確實能產生差異,這很有趣。而且我很驚訝地看到,它不僅可以應用於一種演演算法,還能應用於不同的混合粒子濾波演演算法。」
作為開發人員如何使用推論計劃提升推論效能的一個例子,研究人員舉了雷達追蹤器的例子,它透過隨時間估算飛機的位置x和高度alt來追蹤飛機的移動。在將雷達追蹤器表示為機率模型時,可以同時考慮飛機的移動雜訊q和雷達的測量雜訊。
未來,該團隊希望他們的系統能夠告知使用者可行推論計劃的排名,而不只是簡單地判斷某個計劃是否可行。Cheng表示:「這是一種很有前景的方法,可用於提升機率模型的推論效率,並有可能將機率程式設計的應用範圍擴充套件到複雜的現實世界建模任務中。」