什么是GPflow
GPflow是一個高斯過程的工具包态罪,接口部分由python實現(xiàn)噩茄,內(nèi)部的部分計算則由TensorFlow實現(xiàn)。
主要特點有二個:一是使用變分推理作為近似方法复颈,二是使用自動微分進行求導绩聘。
安裝
首先到GPflow官方頁面將代碼包下載到本地,然后進入代碼包根目錄耗啦,在終端輸入pip install .
即可安裝凿菩。
GPy 與 GPflow之間的區(qū)別
GPflow很多核心的類和方法都參考了GPy,不過GPflow使用TensorFlow使得代碼及其簡潔帜讲!
- GPflow 利用 TensorFlow 使得計算更快衅谷,適合更復雜的運算。
- GPflow 代碼量比 GPy 少的多似将,因為使用 TensorFlow获黔。
- GPflow 的推理部分實現(xiàn)了變分推理(VI)和MCMC,沒有實現(xiàn)期望傳播(EP)和拉普拉斯近似(Laplace approximation)在验。
- GPflow 沒有支持畫圖模塊玷氏。
GPflow的模塊
GPflow.models
模塊實現(xiàn)了主要的GP模型。
- Regression: GPflow支持高斯回歸译红。對于噪音為高斯過程的情況预茄,即最普通的高斯回歸,在推理階段可以直接通過解析表達式求侦厚,實現(xiàn)見
gpflow.models.GPR
耻陕。GPflow也支持稀疏高斯回歸,實現(xiàn)見gpflow.models.SGPR
刨沦。- Variational inference: 通過變分推理方法诗宣,我們可以用高斯分布來估計隱函數(shù)的后驗分布,實現(xiàn)見 [2]
gpflow.models.VGP
想诅,[3]gpflow.models.SVGP
召庞。- MCMC: 通過MCMC,我們可以對采樣来破,然后求平均得到最終預測值篮灼。實現(xiàn)見
gpflow.models.GPMC
和gpflow.models.SGPMC
。
GPflow.params
模塊是GPflow的基石之一徘禁。
Parameter
用來存儲GP模型的各種參數(shù)诅诱,如協(xié)方差函數(shù)的length-scale參數(shù)。Parameterized
中存儲了各種Parameter
送朱,也定義了在這些Parameter
節(jié)點上的一系列運算娘荡。各種先驗分布干旁,協(xié)方差函數(shù),GP模型都繼承 了Parameterized
類炮沐。
GPflow.core
模塊是關于tensorflow争群、自動求導等內(nèi)容的。
最后大年,Matthews的博士論文[8]系統(tǒng)闡述了以上內(nèi)容换薄,可以作為更詳細的參考。
參考文獻
[1] MCMC for Variationally Sparse Gaussian Processes J Hensman, A G de G Matthews, M Filippone, Z Ghahramani Advances in Neural Information Processing Systems, 1639-1647, 2015.
[2] The variational Gaussian approximation revisited M Opper, C Archambeau Neural computation 21 (3), 786-792, 2009.
[3] Scalable Variational Gaussian Process Classification J Hensman, A G de G Matthews, Z Ghahramani Proceedings of AISTATS 18, 2015.
[4] Variational Learning of Inducing Variables in Sparse Gaussian Processes. M Titsias Proceedings of AISTATS 12, 2009.
[5] On Sparse variational methods and the Kullback-Leibler divergence between stochastic processes A G de G Matthews, J Hensman, R E Turner, Z Ghahramani Proceedings of AISTATS 19, 2016.
[6] Gaussian process latent variable models for visualisation of high dimensional data. Lawrence, Neil D. Advances in Neural Information Processing Systems, 329-336, 2004.
[7] Bayesian Gaussian Process Latent Variable Model. Titsias, Michalis K., and Neil D. Lawrence. Proceedings of AISTATS, 2010.
[8] Scalable Gaussian process inference using variational methods. Alexander G. de G. Matthews. PhD Thesis. University of Cambridge, 2016.