用状态空间法(卡尔曼滤波)解决深度高斯过程问题
?作者 |?丹師
單位 |?伯明翰大學(xué)
研究方向 |?機(jī)器學(xué)習(xí)
本文來自于一篇博士論文,上周查閱 Cross Validated 時(shí)候發(fā)現(xiàn)的。這篇論文讓我眼前一亮是使用 Kalman filter(卡爾曼濾波)去解決機(jī)器學(xué)習(xí)(Deep Gaussian Process, DGP)的問題。而且論文的外審專家和答辯評(píng)委(pre-examiner, opponent)是 David Duvenaud 和 Manfred Opper,兩人都是機(jī)器學(xué)習(xí) GP 和 SDE 的大牛,論文的質(zhì)量應(yīng)該是有保證的。論文比較長(zhǎng)而且其第 2,3 章的內(nèi)容不是我的專業(yè)而且和 GP 沒多大關(guān)系,因此只討論第四章。第四章的內(nèi)容貌似大部分來源于這個(gè)論文。
論文標(biāo)題:
State-space deep?Gaussian processes with applications
關(guān)鍵詞:
高斯過程,狀態(tài)空間,卡爾曼濾波
論文鏈接:
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
這也是筆者第一次寫學(xué)習(xí)筆記,花了好長(zhǎng)時(shí)間閱讀,如有錯(cuò)誤請(qǐng)大佬評(píng)論區(qū)指出勿噴。
背景介紹
高斯過程(Gaussian process),以下簡(jiǎn)稱 GP [1],是一種廣泛應(yīng)用于機(jī)器學(xué)習(xí)中的概率模型。如果一個(gè)過程 是 GP 的話,我們一般我們用以下公式來表示:
上述公式中,C 是核函數(shù)(kernel function),也叫協(xié)方差函數(shù)(covariance function),另外 C 有兩個(gè)超參數(shù) 需要人工設(shè)定或者從數(shù)據(jù)集中學(xué)習(xí)、估計(jì)。e 代表觀測(cè)的高斯噪聲。以下我們假設(shè) f 的均值函數(shù)(mean function)是 0。
GP 的優(yōu)勢(shì)主要是因?yàn)樗?Infinite-dimensional 模型。怎么理解呢?設(shè)想神經(jīng)網(wǎng)絡(luò),其網(wǎng)絡(luò)權(quán)值需要從數(shù)據(jù)中學(xué)習(xí),而且學(xué)到的值是 deterministic 固定的。而 GP 是 non-parametric,從數(shù)據(jù)中學(xué)到是一個(gè)分布,是一個(gè)關(guān)于函數(shù)的后驗(yàn)分布,因此包含無限種取值可能性。但相應(yīng)的,這犧牲了 GP 的計(jì)算復(fù)雜度。
GP 主要有兩個(gè)問題:
1. 計(jì)算復(fù)雜度高;
2. 對(duì)非穩(wěn)態(tài)(non-stationary)的數(shù)據(jù)表現(xiàn)不好。
這也是這篇論文所關(guān)注的問題。我們先看一下這兩個(gè)問題怎么回事:
假設(shè)我們有一個(gè)數(shù)據(jù)集 ,那么后驗(yàn)分布也是個(gè)高斯過程,而且后驗(yàn)分布的均值和方差為 [1]:
▲ GP posterior, 圖片來源于[1].
可以看到,上公式有個(gè)矩陣求逆,而且這個(gè)矩陣的大小是和數(shù)據(jù)的數(shù)量 N 有關(guān)的,因此 GP 回歸問題的計(jì)算復(fù)雜度為 。如果 N 特別大的話 GP 會(huì)很耗時(shí)。解決這個(gè)問題的典型方法有比如 sparse GP 等模型。
那么另外一個(gè) non-stationary 的問題是什么意思的?我們平常最常用的 kernel,比如 squared exponential, Matern 等都是構(gòu)建 stationary GP。這個(gè)? stationary 意思是 ,也就是說 GP 的概率分布是平移不變的(translation invariant)。通俗點(diǎn)說,stationary 假設(shè) GP 的“特征(比如平滑性、頻率等)”隨時(shí)間是不會(huì)變化的。
這個(gè)假設(shè)對(duì)很多應(yīng)用不切合實(shí)際。比如說,方波在跳變處會(huì)有特征的變化,圖像在物體邊緣處也會(huì)有明顯的特征變化。解決這個(gè) stationary 的問題那就是使用 non-stationary GP,主要思路就是使超參數(shù) 是隨時(shí)間變化的。目前有 GP experts [2] 及其他方法 [3][4][5]。當(dāng)然,還有一種方法那就是用深度高斯過程(Deep Gaussian Process,以下簡(jiǎn)稱 DGP)[6]。
我們下面介紹這篇論文是怎么解決這兩個(gè)問題的。
主要做了什么
如前所述,這篇論文主要是為了解決 GP 計(jì)算復(fù)雜度和引入 non-stationarity 的問題。根據(jù)我的理解,論文作者的思路是用隨機(jī)微分方程(stochastic differential equations,以下簡(jiǎn)稱 SDE)來構(gòu)建 GP。
如果要構(gòu)建 non-statioanry GP,那就使用多層級(jí)聯(lián) SDE 來構(gòu)建一個(gè)系統(tǒng),在這系統(tǒng)中,GP 的參數(shù)(及其參數(shù)的參數(shù), 如此類推)也由 SDE 構(gòu)建。這就是論文作者所稱的 state-space deep Gaussian process(以下簡(jiǎn)稱 SS-DGP)。
如果 GP 或者 SS-DGP 是用 SDE 來表達(dá)的,那么他們就是馬爾科夫過程(Markov process),因此可以使用(non-linear)卡爾曼濾波(Kalman filter)去解決他們的回歸 regression 問題。卡爾曼濾波的計(jì)算是非常快的,計(jì)算復(fù)雜度是線性只有 ,因此也就解決了計(jì)算復(fù)雜度的問題。
正文
我們先從如何構(gòu)建 DGP 來引入 non-stationary 的問題。假設(shè) 是一個(gè) GP,用前面的公式表示也就是:
這里有兩個(gè)參數(shù) 。那么為了引入 non-stationarity,我們可以讓參數(shù)也隨時(shí)間變化,比如:
那么以此類推是不是也可以讓 也隨時(shí)間變化?我們因此可以構(gòu)建一個(gè)深層結(jié)構(gòu):
這就是所謂的一種深度高斯過程(Deep Gaussian Process, DGP)。這里需要注意三點(diǎn):
1. 這種 DGP 和 Damianou 等人在 2013 提出的 DGP [6] 有些許區(qū)別。此處的 DGP 是基于 parameterization,而 Damianou 等人的 DGP 是基于 composition 的。詳情見 [7] 或者論文的 Introduction 有介紹。
2.?kernel 的選擇很局限。普通的 kernel 比如,squared exponential 和 matern 等其實(shí)并不允許其參數(shù) 隨時(shí)間變化,否則的話 covariance 不能保證正定。而能讓參數(shù)變化的 kernel 目前并不多 [4]。這也是后面要講的 SS-DGP 的優(yōu)點(diǎn)之一,因?yàn)椴⒉皇芟抻谶x擇合適的 kernel 函數(shù)。
3.?求后驗(yàn)分布 很耗時(shí)也很復(fù)雜。可以使用 variational inference 估計(jì),也可以用 MCMC 采樣。
然后論文作者稍微泛化了一下這種 DGP:
▲ 原文公式4.17
▲?原文公式4.17
然后定義 為 DGP。上式中帶上下標(biāo)的 代表每層的 GP,而 代表每層 GP 的參數(shù) GP(應(yīng)該是這樣,說實(shí)話我沒怎么看懂這部分的 notation 和那些上下標(biāo))。
然后重點(diǎn)來了,用隨機(jī)微分方程(SDE)怎么表示這種 DGP 呢?
▲ 原文公式4.20
上式 SDE 系統(tǒng)中的每一個(gè)子 SDE 都是 conditionally 線性 SDE,也就是對(duì)應(yīng)每個(gè) GP。這就是 SS-DGP。對(duì)比普通的 DGP,SS-DGP 有什么優(yōu)勢(shì)呢?
1. SS-DGP 是 Markov process,也就是說后驗(yàn)分布可以通過非線性卡爾曼濾波解決,當(dāng)然需要對(duì) SDE 離散化以得到離散的狀態(tài)空間如 這種。
2. 不需要指定 kernel ,只需要指定 SDE 的函數(shù)如上式的 ,... 等,因此不用擔(dān)心 covariance 的正定問題。論文還探討了這種 SS-DGP 構(gòu)建的解的存在和唯一性(solution existence and uniqueness),由于不是筆者的專業(yè),因此不作評(píng)。
論文有一個(gè)特殊例子可以更方便理解,可以看到, 被兩個(gè)下層 GP 和 來表示它的 。
Example 4.16 所示的 SS-DGP 的樣本如下所示:
▲?可以看到 ???????????????有???????????????很明顯的 non-stationarity,其特征隨時(shí)間隨機(jī)變化。比如黑線在0~2s左右很平穩(wěn),但7~10s時(shí)震蕩的很厲害。藍(lán)線在2~4s和5~6s很震蕩,但其他時(shí)間很平穩(wěn)。這些特性在 stationary GP 中是幾乎不會(huì)出現(xiàn)的。
濾波方面不是筆者的強(qiáng)項(xiàng),總之公式 4.38 也就是 SS-DGP 可以用非線性卡爾曼濾波求后驗(yàn)分布(第二章應(yīng)該有介紹怎么對(duì)這種系統(tǒng)濾波的)。
最后放一下論文中 SS-DGP 的一些 regression 實(shí)驗(yàn):
▲ 可以看到 SS-DGP 對(duì)信號(hào)跳變的處理很好。右圖:粒子濾波和平滑的估計(jì)
▲ 可以看到 SS-DGP 對(duì)信號(hào)頻率的變化也處理的很好。圖中 EKFS 是擴(kuò)展卡爾曼濾波
我能理解的大概也就這么多吧。最后做個(gè)總結(jié)和評(píng)價(jià)。
▲ 筆者認(rèn)為的各種 GP, DGP 模型的關(guān)系。因?yàn)椴⒉皇撬械?GP 都能用狀態(tài)空間 SDE 表達(dá),因此 SS-DGP 要比 DGP“小”一些。
個(gè)人評(píng)價(jià)
正面:用狀態(tài)空間法(如 non-linear kalman filters 等)去解決 DGP 的問題這個(gè)思路很新穎,可以看做是經(jīng)典控制論和機(jī)器學(xué)習(xí)的相結(jié)合。解決 DGP 目前流行的方法多為 varitional inference 和 MCMC, 但這些方法大多計(jì)算耗時(shí)復(fù)雜,此文的方法確實(shí)提供了一個(gè)嶄新的思路,而且計(jì)算非常快( 復(fù)雜度)。我認(rèn)為這個(gè)計(jì)算優(yōu)勢(shì)特別重要,因?yàn)閭鹘y(tǒng)的 DGP 模型的復(fù)雜度會(huì)隨著深度的增加而大幅增加,但是 SSDGP 的復(fù)雜度仍然還是 ,增加的只是狀態(tài)空間的維度。
負(fù)面/疑問:
1. 我很想看到和其它 DGP 解決方法的比較比如 [6][8],尤其是計(jì)算時(shí)間的比較,我覺得這很重要但作者的論文并沒有給出;
2. 其次我認(rèn)為所謂的 DGP 模型可能有些 overkill:真的有必要去用多層?什么應(yīng)用情況下我們用多層?增加層數(shù)出會(huì)怎樣影響復(fù)雜度?關(guān)于這一點(diǎn)論文作者并沒有給出充足的實(shí)驗(yàn)或者經(jīng)驗(yàn)性/定性的討論;
3. 當(dāng)前的 SS-DGP 模型只適用于一維輸入的數(shù)據(jù),也既是時(shí)序列 time series。GP 中的 x 維度為一。如何推廣到多維 ?或者 spatio-temporal ?論文最后好像對(duì)此有討論,但說實(shí)話,沒看懂。
聲明:
此文中的圖片、援引公式均為原論文作者所有。此文不違反原作者聲明的 license。
參考文獻(xiàn)
[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 天橋腦科學(xué)研究院對(duì)于 PaperWeekly 的支持。TCCI 關(guān)注大腦探知、大腦功能和大腦健康。
更多閱讀
#投 稿?通 道#
?讓你的文字被更多人看到?
如何才能讓更多的優(yōu)質(zhì)內(nèi)容以更短路徑到達(dá)讀者群體,縮短讀者尋找優(yōu)質(zhì)內(nèi)容的成本呢?答案就是:你不認(rèn)識(shí)的人。
總有一些你不認(rèn)識(shí)的人,知道你想知道的東西。PaperWeekly 或許可以成為一座橋梁,促使不同背景、不同方向的學(xué)者和學(xué)術(shù)靈感相互碰撞,迸發(fā)出更多的可能性。?
PaperWeekly 鼓勵(lì)高校實(shí)驗(yàn)室或個(gè)人,在我們的平臺(tái)上分享各類優(yōu)質(zhì)內(nèi)容,可以是最新論文解讀,也可以是學(xué)術(shù)熱點(diǎn)剖析、科研心得或競(jìng)賽經(jīng)驗(yàn)講解等。我們的目的只有一個(gè),讓知識(shí)真正流動(dòng)起來。
📝?稿件基本要求:
? 文章確系個(gè)人原創(chuàng)作品,未曾在公開渠道發(fā)表,如為其他平臺(tái)已發(fā)表或待發(fā)表的文章,請(qǐng)明確標(biāo)注?
? 稿件建議以?markdown?格式撰寫,文中配圖以附件形式發(fā)送,要求圖片清晰,無版權(quán)問題
? PaperWeekly 尊重原作者署名權(quán),并將為每篇被采納的原創(chuàng)首發(fā)稿件,提供業(yè)內(nèi)具有競(jìng)爭(zhēng)力稿酬,具體依據(jù)文章閱讀量和文章質(zhì)量階梯制結(jié)算
📬?投稿通道:
? 投稿郵箱:hr@paperweekly.site?
? 來稿請(qǐng)備注即時(shí)聯(lián)系方式(微信),以便我們?cè)诟寮x用的第一時(shí)間聯(lián)系作者
? 您也可以直接添加小編微信(pwbot02)快速投稿,備注:姓名-投稿
△長(zhǎng)按添加PaperWeekly小編
🔍
現(xiàn)在,在「知乎」也能找到我們了
進(jìn)入知乎首頁(yè)搜索「PaperWeekly」
點(diǎn)擊「關(guān)注」訂閱我們的專欄吧
·
總結(jié)
以上是生活随笔為你收集整理的用状态空间法(卡尔曼滤波)解决深度高斯过程问题的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: bios还原出厂设置会怎么样 BIOS恢
- 下一篇: 深圳内推 | 腾讯AI Lab自然语言处