用状态空间法(卡尔曼滤波)解决深度高斯过程问题
?作者 |?丹師
單位 |?伯明翰大學
研究方向 |?機器學習
本文來自于一篇博士論文,上周查閱 Cross Validated 時候發現的。這篇論文讓我眼前一亮是使用 Kalman filter(卡爾曼濾波)去解決機器學習(Deep Gaussian Process, DGP)的問題。而且論文的外審專家和答辯評委(pre-examiner, opponent)是 David Duvenaud 和 Manfred Opper,兩人都是機器學習 GP 和 SDE 的大牛,論文的質量應該是有保證的。論文比較長而且其第 2,3 章的內容不是我的專業而且和 GP 沒多大關系,因此只討論第四章。第四章的內容貌似大部分來源于這個論文。
論文標題:
State-space deep?Gaussian processes with applications
關鍵詞:
高斯過程,狀態空間,卡爾曼濾波
論文鏈接:
https://github.com/zgbkdlm/dissertation/blob/main/dissertation.pdf
https://link.springer.com/article/10.1007/s11222-021-10050-6
https://aaltodoc.aalto.fi/handle/123456789/111268
代碼鏈接:
https://github.com/zgbkdlm/dissertation
這也是筆者第一次寫學習筆記,花了好長時間閱讀,如有錯誤請大佬評論區指出勿噴。
背景介紹
高斯過程(Gaussian process),以下簡稱 GP [1],是一種廣泛應用于機器學習中的概率模型。如果一個過程 是 GP 的話,我們一般我們用以下公式來表示:
上述公式中,C 是核函數(kernel function),也叫協方差函數(covariance function),另外 C 有兩個超參數 需要人工設定或者從數據集中學習、估計。e 代表觀測的高斯噪聲。以下我們假設 f 的均值函數(mean function)是 0。
GP 的優勢主要是因為他是 Infinite-dimensional 模型。怎么理解呢?設想神經網絡,其網絡權值需要從數據中學習,而且學到的值是 deterministic 固定的。而 GP 是 non-parametric,從數據中學到是一個分布,是一個關于函數的后驗分布,因此包含無限種取值可能性。但相應的,這犧牲了 GP 的計算復雜度。
GP 主要有兩個問題:
1. 計算復雜度高;
2. 對非穩態(non-stationary)的數據表現不好。
這也是這篇論文所關注的問題。我們先看一下這兩個問題怎么回事:
假設我們有一個數據集 ,那么后驗分布也是個高斯過程,而且后驗分布的均值和方差為 [1]:
▲ GP posterior, 圖片來源于[1].
可以看到,上公式有個矩陣求逆,而且這個矩陣的大小是和數據的數量 N 有關的,因此 GP 回歸問題的計算復雜度為 。如果 N 特別大的話 GP 會很耗時。解決這個問題的典型方法有比如 sparse GP 等模型。
那么另外一個 non-stationary 的問題是什么意思的?我們平常最常用的 kernel,比如 squared exponential, Matern 等都是構建 stationary GP。這個? stationary 意思是 ,也就是說 GP 的概率分布是平移不變的(translation invariant)。通俗點說,stationary 假設 GP 的“特征(比如平滑性、頻率等)”隨時間是不會變化的。
這個假設對很多應用不切合實際。比如說,方波在跳變處會有特征的變化,圖像在物體邊緣處也會有明顯的特征變化。解決這個 stationary 的問題那就是使用 non-stationary GP,主要思路就是使超參數 是隨時間變化的。目前有 GP experts [2] 及其他方法 [3][4][5]。當然,還有一種方法那就是用深度高斯過程(Deep Gaussian Process,以下簡稱 DGP)[6]。
我們下面介紹這篇論文是怎么解決這兩個問題的。
主要做了什么
如前所述,這篇論文主要是為了解決 GP 計算復雜度和引入 non-stationarity 的問題。根據我的理解,論文作者的思路是用隨機微分方程(stochastic differential equations,以下簡稱 SDE)來構建 GP。
如果要構建 non-statioanry GP,那就使用多層級聯 SDE 來構建一個系統,在這系統中,GP 的參數(及其參數的參數, 如此類推)也由 SDE 構建。這就是論文作者所稱的 state-space deep Gaussian process(以下簡稱 SS-DGP)。
如果 GP 或者 SS-DGP 是用 SDE 來表達的,那么他們就是馬爾科夫過程(Markov process),因此可以使用(non-linear)卡爾曼濾波(Kalman filter)去解決他們的回歸 regression 問題。卡爾曼濾波的計算是非常快的,計算復雜度是線性只有 ,因此也就解決了計算復雜度的問題。
正文
我們先從如何構建 DGP 來引入 non-stationary 的問題。假設 是一個 GP,用前面的公式表示也就是:
這里有兩個參數 。那么為了引入 non-stationarity,我們可以讓參數也隨時間變化,比如:
那么以此類推是不是也可以讓 也隨時間變化?我們因此可以構建一個深層結構:
這就是所謂的一種深度高斯過程(Deep Gaussian Process, DGP)。這里需要注意三點:
1. 這種 DGP 和 Damianou 等人在 2013 提出的 DGP [6] 有些許區別。此處的 DGP 是基于 parameterization,而 Damianou 等人的 DGP 是基于 composition 的。詳情見 [7] 或者論文的 Introduction 有介紹。
2.?kernel 的選擇很局限。普通的 kernel 比如,squared exponential 和 matern 等其實并不允許其參數 隨時間變化,否則的話 covariance 不能保證正定。而能讓參數變化的 kernel 目前并不多 [4]。這也是后面要講的 SS-DGP 的優點之一,因為并不受限于選擇合適的 kernel 函數。
3.?求后驗分布 很耗時也很復雜。可以使用 variational inference 估計,也可以用 MCMC 采樣。
然后論文作者稍微泛化了一下這種 DGP:
▲ 原文公式4.17
▲?原文公式4.17
然后定義 為 DGP。上式中帶上下標的 代表每層的 GP,而 代表每層 GP 的參數 GP(應該是這樣,說實話我沒怎么看懂這部分的 notation 和那些上下標)。
然后重點來了,用隨機微分方程(SDE)怎么表示這種 DGP 呢?
▲ 原文公式4.20
上式 SDE 系統中的每一個子 SDE 都是 conditionally 線性 SDE,也就是對應每個 GP。這就是 SS-DGP。對比普通的 DGP,SS-DGP 有什么優勢呢?
1. SS-DGP 是 Markov process,也就是說后驗分布可以通過非線性卡爾曼濾波解決,當然需要對 SDE 離散化以得到離散的狀態空間如 這種。
2. 不需要指定 kernel ,只需要指定 SDE 的函數如上式的 ,... 等,因此不用擔心 covariance 的正定問題。論文還探討了這種 SS-DGP 構建的解的存在和唯一性(solution existence and uniqueness),由于不是筆者的專業,因此不作評。
論文有一個特殊例子可以更方便理解,可以看到, 被兩個下層 GP 和 來表示它的 。
Example 4.16 所示的 SS-DGP 的樣本如下所示:
▲?可以看到 ???????????????有???????????????很明顯的 non-stationarity,其特征隨時間隨機變化。比如黑線在0~2s左右很平穩,但7~10s時震蕩的很厲害。藍線在2~4s和5~6s很震蕩,但其他時間很平穩。這些特性在 stationary GP 中是幾乎不會出現的。
濾波方面不是筆者的強項,總之公式 4.38 也就是 SS-DGP 可以用非線性卡爾曼濾波求后驗分布(第二章應該有介紹怎么對這種系統濾波的)。
最后放一下論文中 SS-DGP 的一些 regression 實驗:
▲ 可以看到 SS-DGP 對信號跳變的處理很好。右圖:粒子濾波和平滑的估計
▲ 可以看到 SS-DGP 對信號頻率的變化也處理的很好。圖中 EKFS 是擴展卡爾曼濾波
我能理解的大概也就這么多吧。最后做個總結和評價。
▲ 筆者認為的各種 GP, DGP 模型的關系。因為并不是所有的 GP 都能用狀態空間 SDE 表達,因此 SS-DGP 要比 DGP“小”一些。
個人評價
正面:用狀態空間法(如 non-linear kalman filters 等)去解決 DGP 的問題這個思路很新穎,可以看做是經典控制論和機器學習的相結合。解決 DGP 目前流行的方法多為 varitional inference 和 MCMC, 但這些方法大多計算耗時復雜,此文的方法確實提供了一個嶄新的思路,而且計算非常快( 復雜度)。我認為這個計算優勢特別重要,因為傳統的 DGP 模型的復雜度會隨著深度的增加而大幅增加,但是 SSDGP 的復雜度仍然還是 ,增加的只是狀態空間的維度。
負面/疑問:
1. 我很想看到和其它 DGP 解決方法的比較比如 [6][8],尤其是計算時間的比較,我覺得這很重要但作者的論文并沒有給出;
2. 其次我認為所謂的 DGP 模型可能有些 overkill:真的有必要去用多層?什么應用情況下我們用多層?增加層數出會怎樣影響復雜度?關于這一點論文作者并沒有給出充足的實驗或者經驗性/定性的討論;
3. 當前的 SS-DGP 模型只適用于一維輸入的數據,也既是時序列 time series。GP 中的 x 維度為一。如何推廣到多維 ?或者 spatio-temporal ?論文最后好像對此有討論,但說實話,沒看懂。
聲明:
此文中的圖片、援引公式均為原論文作者所有。此文不違反原作者聲明的 license。
參考文獻
[1] abCarl Edward Rasmussen and Christopher K. I. Williams. Gaussian Processes for Machine Learning?http://www.gaussianprocess.org/gpml/
[2] Carl Edward Rasmussen and Zoubin Ghahramani. Infinite Mixtures of Gaussian Process Experts?https://proceedings.neurips.cc/paper/2001/file/9afefc52942cb83c7c1f14b2139b09ba-Paper.pdf
[3] Markus et al. Non-Stationary Gaussian Process Regression with Hamiltonian Monte Carlo?http://proceedings.mlr.press/v51/heinonen16.pdf
[4] abPaciorek. NONSTATIONARY GAUSSIAN PROCESSES FOR REGRESSION AND SPATIAL MODELLING?https://www.stat.berkeley.edu/~paciorek/diss/paciorek-thesis.pdf
[5] Christian Plagemann et al. Nonstationary Gaussian Process Regression using Point Estimates of Local Smoothness?http://ais.informatik.uni-freiburg.de/publications/papers/plagemann08ecml.pdf
[6] abcAndreas C. Damianou Neil D. Lawrence. Deep Gaussian Processes?http://proceedings.mlr.press/v31/damianou13a.pdf
[7] Dunlop et al., How Deep Are Deep Gaussian Processes??https://arxiv.org/abs/1711.11280
[8] Hugh Salimbeni, Marc Deisenroth. Doubly Stochastic Variational Inference for Deep Gaussian Processes?https://arxiv.org/abs/1705.08933
特別鳴謝
感謝 TCCI 天橋腦科學研究院對于 PaperWeekly 的支持。TCCI 關注大腦探知、大腦功能和大腦健康。
更多閱讀
#投 稿?通 道#
?讓你的文字被更多人看到?
如何才能讓更多的優質內容以更短路徑到達讀者群體,縮短讀者尋找優質內容的成本呢?答案就是:你不認識的人。
總有一些你不認識的人,知道你想知道的東西。PaperWeekly 或許可以成為一座橋梁,促使不同背景、不同方向的學者和學術靈感相互碰撞,迸發出更多的可能性。?
PaperWeekly 鼓勵高校實驗室或個人,在我們的平臺上分享各類優質內容,可以是最新論文解讀,也可以是學術熱點剖析、科研心得或競賽經驗講解等。我們的目的只有一個,讓知識真正流動起來。
📝?稿件基本要求:
? 文章確系個人原創作品,未曾在公開渠道發表,如為其他平臺已發表或待發表的文章,請明確標注?
? 稿件建議以?markdown?格式撰寫,文中配圖以附件形式發送,要求圖片清晰,無版權問題
? PaperWeekly 尊重原作者署名權,并將為每篇被采納的原創首發稿件,提供業內具有競爭力稿酬,具體依據文章閱讀量和文章質量階梯制結算
📬?投稿通道:
? 投稿郵箱:hr@paperweekly.site?
? 來稿請備注即時聯系方式(微信),以便我們在稿件選用的第一時間聯系作者
? 您也可以直接添加小編微信(pwbot02)快速投稿,備注:姓名-投稿
△長按添加PaperWeekly小編
🔍
現在,在「知乎」也能找到我們了
進入知乎首頁搜索「PaperWeekly」
點擊「關注」訂閱我們的專欄吧
·
總結
以上是生活随笔為你收集整理的用状态空间法(卡尔曼滤波)解决深度高斯过程问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: bios还原出厂设置会怎么样 BIOS恢
- 下一篇: 深圳内推 | 腾讯AI Lab自然语言处