-
高斯過程迴歸
鎖定
高斯過程迴歸(Gaussian Process Regression, GPR)是使用高斯過程(Gaussian Process, GP)先驗對數據進行迴歸分析的非參數模型(non-parameteric model)
[1]
。
- 中文名
- 高斯過程迴歸
- 外文名
- Gaussian Process Regression, GPR
- 類 型
- 機器學習算法,非參數算法
高斯過程迴歸歷史
與GPR有關的早期研究大致可分為3部分,在時間序列分析中,安德雷·柯爾莫哥洛夫(Андрей Николаевич Колмогоров)
[5]
和羅伯特·維納(Robert Wiener)
[6]
在二十世紀40年代提出了估計0均值平穩高斯過程信號的濾波技術
[7]
。隨後出現的卡爾曼濾波(Kalman filter)提供了估計高斯隱變量(latent variable)的有效方法。在地統計學領域,1963年提出的克里金法(Kriging)首次實現了平穩隨機場的非參數迴歸,其後在二十世紀90年代出現的貝葉斯克裏金提供了與GPR接近或等價的高斯隨機場估計
[8]
。在機器學習方面,包含無限節點的貝葉斯神經網絡(Bayesian neural network)
[9]
和各類核學習(kernel learning)方法例如核嶺迴歸(kernel ridge regression)為GPR的核函數超參數求解帶來了啓發
[1]
。
GPR作為機器學習一般方法的提出來自劍橋大學(University of Cambridge)學者Carl E. Rasmussen和愛丁堡大學(University of Edinburgh)學者Christopher K. I. Williams,二者在1996年發表的研究按函數空間觀點給出了GPR的求解系統並討論了GPR超參數的極大似然估計和蒙特卡羅方法求解
[4]
。
高斯過程迴歸理論
高斯過程迴歸模型推導
這裏給出GPR在權重空間(weight-space)觀點和函數空間(function-space)觀點下的模型推導,前者由貝葉斯線性迴歸(Bayesian linear regression)出發,通過特徵空間的映射得到GPR的預測形式,後者由高斯過程出發,由正態分佈的邊緣分佈性質得到與前者等價的結果。
權重空間觀點
參見:貝葉斯線性迴歸
函數空間觀點
參見:高斯過程
對迴歸模型
,若函數
的形式不是固定的,則其為潛函數(latent function)。潛函數的每個取值都是函數空間(function-space)的一個測度。GPR取該函數空間的先驗為高斯過程(Gaussian Process, GP),不失一般性,這裏表示為0均值高斯過程:
給定N組學習樣本
,作為對算法的推導,假設迴歸殘差服從iid正態分佈:
,則GPR在高斯過程先驗和正態分佈似然下求解迴歸模型的後驗:
,並對測試樣本的測試結果進行估計(非正態似然的情形參見算法部分)。具體地,由迴歸模型和高斯過程的定義,
和
的概率分佈為:
由上述預測形式的推導可知,GPR在假設0均值高斯過程先驗時,解得的後驗往往不是0均值的,因此0均值先驗具有泛用性。但作為説明,GPR也可使用均值不為0的高斯過程先驗,此時常見的做法是將潛函數表示為一組顯式基函數(explicit basis function):
。在給定基函數的正態分佈先驗
時,
是具有如下形式的高斯過程
[1]
:
高斯過程迴歸核函數
參見:核函數
GPR使用高斯過程作為先驗,即假設了學習樣本是高斯過程的採樣,因此其估計結果與核函數有密切聯繫。GPR中核函數的實際意義為協方差函數(covariance function),描述了學習樣本間的相關性,因此其不是通過核方法簡化計算的手段,而是模型假設的一部分。這裏對GPR常見的核函數進行簡單介紹,並引入核函數計算的加速方法。
核函數的選擇
若GPR的先驗為平移不變(transformation invariant)的平穩高斯過程,可用的核函數包括徑向基函數核(RBF kernel)、馬頓核(Matérn kernel)、指數函數核(exponential kernel)、二次有理函數核(rational quadratic kernel, RQ kernel)等,以RBF核為例,其解析形式如下:
GPR也可使用非平穩高斯過程,此時常見的核函數選擇為週期核(periodic kernel)與多項式函數核(polynominal kernel),二者分別賦予高斯過程週期性和旋轉不變性(rotation invariant)。
核矩陣求逆的計算簡化
由模型推導部分可知,GPR要求計算核矩陣的逆矩陣:
,若使用Cholesky分解(Cholesky decomposition)求逆,則對N組學習樣本,其計算複雜度為
[2]
。因此隨着學習樣本的增加,GPR的計算開銷呈非線性增長。這裏簡單介紹核矩陣求逆的簡化方法以應對上述問題,一般地,這些方法除GPR外也適用於其它核學習(kernel learning)方法,例如核嶺迴歸、支持向量機(Support Vector Machine, SVM)等。
1. 選取數據子集(subset of datapoints, SD)
由於GPR可以在少量學習樣本的情形下給出迴歸問題的可靠估計,因此從學習樣本中合理選擇一個子集可以降低核矩陣的大小,但不對GPR的表現造成明顯影響。選取SD的常見方法是通過尋找微分熵(differential entropy)最大的學習樣本作為支持向量定義SD,選取過程的計算複雜度為
,在選取較小子集的情形下簡化了計算,使用SD優化的高斯過程建模被稱為稀疏高斯過程(sparse Gaussian process),或信息向量機(Informativevector machine, IVM)
[10]
。
2. 低秩近似(low-rank approximation)
低秩近似將核矩陣近似為一系列低秩矩陣的乘積以簡化求逆計算,具體地,N×N的核矩陣可以近似表示為:
,其中
的大小分別為N×m、m×m、m×N,此時由Sherman-Morrison-Woodbury定理可得:
確定低秩矩陣的常見方法包括Nyström法(Nyström method)、子集迴歸法(subset ofregressors, SR)、映射過程近似(projected process approximation, PP)、BCM(Bayesian committee machine)等
[1]
,這裏對前兩者進行介紹。Nyström法將核矩陣分解為4個分塊矩陣並在構建低秩近似後直接帶入GPR的預測形式:
SR按與Nyström法相同的方式構建分塊矩陣,但其首先將GPR的預測形式改寫為核矩陣子集的迴歸並帶入低秩矩陣,例如對GPR的均值部分有:
。
高斯過程迴歸算法
高斯過程迴歸正態似然
GPR的求解也被稱為超參學習(hyper-parameter learning),是按貝葉斯方法通過學習樣本確定核函數中超參數的過程。由貝葉斯定理(Bayes' theorem)可知,GPR的超參數後驗有如下表示:
極大似然估計(Maximum Likelihood Estimation, MLE)
GPR的對數似然不是凸函數,且其優化複雜度隨學習樣本的增加而增大,在學習樣本較多的情形下,可能會發現多個局部最優,且局部最優解的差異很大的情形,考慮解出的核函數超參數通常表示高斯過程的特徵長度尺度,多個局部最優意味着學習樣本可以按多個尺度進行迴歸,其中小尺度的模型複雜度高但考慮更多局部特徵,即具有高方差(high variance),大尺度的模型反之,具有高偏差(high bias)。
除MLE外,GPR也可通過極大後驗估計(Maximum A Posteriori estimation, MAP)求解。MAP是與MLE相近的估計方法,其優化目標是似然和先驗的乘積。因為MAP與MLE在正態後驗時得到的結果等價,在其他情形下的結果也相近,卻引入了先驗和額外的計算,因此在GPR研究中被較少提及。
極大偽似然估計(maximum pseudo-likelihood estimator, MPLE)
使用MPLE求解GPR的過程也被稱為交叉驗證(cross-validation),相比於MLE,其改變是對學習樣本使用留一法(Leave One Out, LOO)計算其偽似然(pseudo-likelihood)的負自然對數:
編程實現
這裏提供一個在Python 3環境下使用GPy進行GPR建模的例子:
# 導入模塊 import GPy # conda install -c conda-forge GPy import numpy as np # 生成學習樣本 N=100; sigma_n=0.2 X = np.random.uniform(-2*np.pi, 2*np.pi,(N, 1)) y = np.sin(X)+np.random.randn(N, 1)*sigma_n # 初始化RBF核: variance=1, lengthscale=1, variance of noise=0.1 k_RBF = GPy.kern.RBF(1, 1, 0.1) # 建立GPR模型 model = GPy.models.GPRegression(X, y, kernel=k_RBF) model.plot() # 繪製高斯過程先驗 model.optimize(messages=True) # 求解GPR超參數: MLE + 擬牛頓法(BFGS) model.plot(); # 繪製高斯過程後驗 # 單點預測 mean, var = model.predict(np.array([[3*np.pi]])) print('Predicted mean and var at X=3pi: {}, {}'.format(mean, var))
高斯過程迴歸非正態似然
在似然不服從正態分佈,例如處理異方差噪聲數據時,GPR對測試數據的後驗沒有解析形式,此時可以使用的解析近似(analytical approximation)方法,例如拉普拉斯近似(Laplace Approximation, LA)和期望傳播(Expectation Propagation, EP)將非正態後驗近似表示為正態後驗。LA和EP的推導可參見Rasmussen and Williams (2006), pp.41-60
[1]
。
數值方法可用在非正態似然,或核函數超參數過多,不利於MLE問題優化的情形下求解GPR。選擇包括蒙特卡羅方法(Monte Carlo)和變分貝葉斯估計(Variational Bayesian Inference, VBI)。VBI使用Jensen不等式得到GPR對數似然的凸函數下界作為代理損失並使用梯度算法求解,其計算複雜度接近
,在學習樣本較多時節約了計算成本。蒙特卡羅方法被認為是在GPR數值解法中擁有較高的準確度和泛用性的方法,其原理是通過計算開銷迭代生成隨機數逼近GPR後驗
[14]
。Hamiltonian蒙特卡羅(Hamiltonian Monte Carlo, HMC)或混合蒙特卡羅(Hybrid Monte Carlo)是GPR的常見解法,其步驟接近於Metropolis-Hastings算法,但通過“動量”項限制了隨機遊走的取值
[15]
。HMC求解GPR的例子可參見Rasmussen (1996)
[16]
。
高斯過程迴歸擴展算法
這裏給出與高斯過程迴歸有關的擴展算法,但更一般地,這些方法是高斯過程模型的擴展,除迴歸問題外也可被應用於其它機器學習主題。
扭曲高斯過程(Warped Gaussian Process, WGP)
WGP通過對GPR進行非線性變換將其拓展至非高斯過程的情形
[17]
,具體地,WGP首先在特徵空間選擇一個單調扭曲函數(monotonic warping function),將學習樣本變換至封裝函數指定的潛空間後再求解包含封裝函數超參數的極大似然。WGP的中封裝函數的選擇通常為雙曲正切函數(hyperbolic tangent)線性組合,這裏給出WGP對應於GPR的模型和算法
[17]
:
半參數高斯過程(Semi-parametric Gaussian Processes, SGP)
深度高斯過程(deep Gaussian Process, DGP)
由性質可知,高斯過程可以視為一個擁有單隱含層和無限個隱含層節點的多層感知器(Multi-Layer Perceptron, MLP),DGP是MLP由單隱含層推廣至多隱含層時得到的高斯過程,即擁有多個隱含層和無限寬度的MLP。按定義,DGP是一組從高斯過程先驗中選擇的函數的分佈
[3]
:
可加高斯過程(Additive Gaussian Process, AGP)
GPR的常見核函數,例如RBF核、馬頓核等,被認為在高維特徵空間的學習問題中泛化能力較差
[20]
,而AGP即是為解決GPR高維學習問題而提出的擴展方法
[3]
。AGP利用核函數性質,在構建高斯過程先驗時對核函數進行了組合和結構優化。介紹性地,AGP在不同維度將不同結構的核函數相加作為先驗,並通過貝葉斯階層核學習(Bayesian Hierarchical Kernel Learning, HKL)更新超參數以去除對學習樣本解釋不利的結構。以RBF核為例,其1階可加高斯過程先驗可表示為
[3]
:
高斯過程迴歸有關概念
高斯過程分類(Gaussian Process Classification, GPC)
GPC是使用高斯過程作為先驗的分類器,在二元分類中,GPC在對潛函數進行估計後將其作為Sigmoid函數的輸入得到分類概率;在多元分類中,則將Sigmoid函數替換為歸一化指數函數。以二元分類為例,因為標籤數據是
取值的二項分佈隨機變量,所以對應的GPC似然是潛函數對學習樣本的因子乘積:
克里金法(Kriging)
主詞條:克里金法
克里金法是與GPR相近的非參數模型,常見於隨機場的插值問題。若協方差函數的形式等價,簡單克里金(simple Kriging)和普通克里金(ordinary Kriging)的輸出與GPR在正態似然下輸出的數學期望相同,若克里金法使用高斯隨機場假設,則給出的置信區間也與GPR相同。克里金法與GPR的不同點在於,前者假設隨機場為固有平穩過程(intrinsically stationary process)並給出其對測試樣本的最優無偏估計(Best Linear Unbiased Prediction, BLUP);後者假設隨機場為高斯過程並給出其對測試樣本的完整後驗。此外,考慮在地統計學中應用的常見情形,克里金法通常不加入噪聲,其估計結果在學習樣本處與學習目標完全相同。
有一些克里金法的擴展方法與GPR等價,例如Handcock and Stein (1993)
[22]
和Handcock and Wallis (1994)
[23]
提出的包含貝葉斯推斷的克里金法使用了各向同性的馬頓核高斯過程先驗,並在正態似然假設下按MLE求解超參數。
高斯過程迴歸性質
在使用特定核函數時,GPR是一個通用近似(universal approximator),具體地,若實數域內有緊緻空間
和賦範向量空間(normed vector space)
,則可以證明,對任意函數
,等價核(Equivalent Kernel, EK)構成的再生核希爾伯特空間(Reproducing Kernel Hilbert Space, RKHS)內總是存在
能夠按任意精度逼近原函數,即RKHS內總是存在線性組合:
。等價核的例子包括RBF核、二次有理函數核、指數函數核等
[1]
[24]
。
作為非參數高斯過程模型的性質:GPR的複雜程度取決於學習樣本,因此天然避免了過擬合(overfitting)問題。當測試樣本與學習樣本在特徵空間的距離趨於無窮時,GPR的估計結果趨於其高斯過程先驗,例如對0均值的各向同性高斯過程先驗有:
。由於高斯過程可以通過協方差函數模擬隨機變量間的相關性,因此GPR可應用於平移不變、旋轉不變或週期性數據的迴歸問題,但同時,由於核函數/非參數方法的侷限,GPR在高維數據的學習中表現不佳,該現象有時被稱為“維數詛咒(curse of dimensionality)”
[20]
。此外由理論部分可知,GPR的計算複雜度較高。一些研究給出了計算量更低的改進算法並取得了效果
[3]
,但總體而言,GPR是一個為小樣本設計的機器學習算法
[2]
。
作為貝葉斯方法的性質:GPR是一個包含全貝葉斯特性(full Bayesian)的迴歸模型,可以給出測試數據的完整後驗
[3]
。此外,在似然為正態分佈時,GPR給出的後驗是具有閉合形式的聯合正態分佈,即GPR具有可解析性,該性質在非參數模型中並不多見
[3]
。
與核學習方法的比較:GPR與適用於迴歸問題的核學習(kernel learning)方法,例如核嶺迴歸、支持向量迴歸(support vector regression)等都使用了核函數與核方法,且可以通過相同的方式簡化核矩陣求逆計算,但對後者,其核函數是輸入空間向高維特徵空間的映射,而GPR中的核函數是高斯過程協方差函數的模型,表示隨機變量間的相關性。上述不同在求解中的體現是,GPR的“學習”是通過數據確定核函數超參數的過程,而核方法的“學習”,是在給定核函數超參數後求解模型權重或尋找支持向量的過程
[1]
[25]
。
與人工神經網絡(Artificial Neural Network, ANN)的關係:ANN是參數模型,在理論和結構上與GPR有較大差異,但二者在應用中有重疊,例子包括時間序列分析和計算機視覺問題。若學習樣本充足,ANN由於使用隨機梯度下降方法進行學習,在求解效率上優勢明顯;但在要求給出概率輸出時,GPR是更合適的方法。ANN中的多層感知器(Multi-Layer Perceptron, MLP)與高斯過程存在聯繫,高斯過程可以由擁有單隱含層和無限個隱含層節點的MLP導出。具體地,對如下預測形式的MLP:
若其權重為iid隨機變量且均值為0,方差為有限值,則由中心極限定理(central limit theorem)可推出,當隱含層節點數n趨於無窮時,模型輸出的聯合分佈趨於0均值的聯合正態分佈
[9]
[3]
:
該結論不要求iid權重服從正態分佈,但當權重服從iid正態分佈時,有限個隱含層節點的MLP也可表示為高斯過程
[3]
。另一方面,MLP也可以由高斯過程導出,由Mercer定理可知,核函數可以表示為映射函數的內積:
,因此可視為以
為隱含層特徵(輸出)的MLP
[3]
。
高斯過程迴歸應用
GPR可用於一般意義上的低維迴歸問題,尤其是時間序列數據的預測。例子包括太陽輻射的有關變量
[26-27]
、風速
[28]
、土壤温度
[29]
、冒納羅亞觀測站(Mauna Loa Observatory,MLO)的全球對流層平均二氧化碳濃度
[1]
等。在圖像處理(image processing)方面,GPR被用於圖像去噪
[30]
和生成超分辨率圖像
[31]
。在自動控制方面,GPR被用於機械臂(robotic arm)數據的實時學習
[4]
[32]
,也有研究開發了GPR的機器人學習(robot learning)系統
[33]
。
包含GPR的編程模塊
基於Python開發的機器學習模塊scikit-learn提供封裝的GPR工具GaussianProcessRegressor,其求解方法為BFGS算法(Broyden-Fletcher-Goldfarb-Shanno)的MLE,擁有自定義的求解器函數接口。在核函數方面,scikit-learn包含RBF核、馬頓核、二次有理核、指數-週期核、多項式核以及自定義核函數的API工具
[34]
。
由謝菲爾德機器學習團隊(Sheffield machine learning group)開發的Python高斯過程建模工具GPy提供了GPR的完整求解系統和核函數,包括異方差噪聲GPR、隱變量模型,解析近似、VBI和蒙特卡羅求解、稀疏高斯過程和低秩近似
[35]
。此外有基於GPy的模型超參數優化工具GPyOpt可用
[36]
。
- 參考資料
-
- 1. Rasmussen, C.E. and Williams, C.K.I..Gaussian processes in machine learning:MIT Press,2006:Chapter 2, 4-5, 7-8, pp.7-30, 79-128, 151-185.
- 2. Polykovskiy, D. and Novikov, A., Bayesian Methods for Machine Learning .Coursera and National Research University Higher School of Economics.2017[引用日期2019-01-21]
- 3. Duvenaud, D., 2014. Automatic model construction with Gaussian processes. Doctor of Philosophy Thesis. University of Cambridge.
- 4. Williams, C.K. and Rasmussen, C.E., 1996. Gaussian processes for regression. In Advances in neural information processing systems (pp. 514-520).
- 5. Kolmogorov, A.N., 1941. The interpolation and extrapolation of stationary stochastic sequences. Izv. AN SSSR, Matematika, 5.
- 6. Wiener, N. and Mathématicien, C., 1949. Extrapolation, interpolation, and smoothing of stationary time series: with engineering applications.
- 7. Pollock, D.S.G., Wiener-Kolmogorov filtering, frequency-selective filtering and polynomial regression .Queen Mary, University of London.2006[引用日期2019-01-28]
- 8. Le, N.D. and Zidek, J.V..Statistical analysis of environmental space-time processes:Springer Science & Business Media,2006:101-134
- 9. Neal, R.M., 1996. Bayesian learning for neural networks. Doctor of Philosophy, University of Toronto.
- 10. Herbrich, R., Lawrence, N.D. and Seeger, M., 2003. Fast sparse Gaussian process methods: The informative vector machine. In Advances in neural information processing systems (pp. 625-632).
- 11. Hensman, J., Fusi, N. and Lawrence, N.D., 2013. Gaussian processes for big data. arXiv preprint arXiv:1309.6835.
- 12. Petelin, D. and Kocijan, J., 2011, April. Control system with evolving Gaussian process models. In Evolving and Adaptive Intelligent Systems (EAIS), 2011 IEEE Workshop on (pp. 178-184). IEEE.
- 13. Bachoc, F., 2013. Cross validation and maximum likelihood estimations of hyper-parameters of Gaussian processes with model misspecification. Computational Statistics & Data Analysis, 66, pp.55-69.
- 14. Barber, D., Cemgil, A.T. and Chiappa, S. eds..Bayesian time series models:Cambridge University Press,2011:Chapter 14, pp.295-316
- 15. Neal, R.M., 1997. Monte Carlo implementation of Gaussian process models for Bayesian regression and classification. arXiv preprint physics/9701026.
- 16. Rasmussen, C.E., 1996. A practical Monte Carlo implementation of Bayesian learning. In Advances in Neural Information Processing Systems (pp. 598-604).
- 17. Snelson, E., Ghahramani, Z. and Rasmussen, C.E., 2004. Warped gaussian processes. In Advances in neural information processing systems (pp. 337-344).
- 18. He, H. and Severini, T.A., 2016. A flexible approach to inference in semiparametric regression models with correlated errors using Gaussian processes. Computational Statistics & Data Analysis, 103, pp.316-329.
- 19. Wu, T. and Movellan, J., 2012, October. Semi-parametric Gaussian process for robot system identification. In Intelligent Robots and Systems (IROS), 2012 IEEE/RSJ International Conference on (pp. 725-731). IEEE.
- 20. Bengio, Y., Delalleau, O. and Roux, N.L., 2006. The curse of highly variable functions for local kernel machines. In Advances in neural information processing systems (pp. 107-114).
- 21. Duvenaud, D.K., Nickisch, H. and Rasmussen, C.E., 2011. Additive gaussian processes. In Advances in neural information processing systems (pp. 226-234).
- 22. Handcock, M.S. and Stein, M.L., 1993. A Bayesian analysis of kriging. Technometrics, 35(4), pp.403-410.
- 23. Handcock, M.S. and Wallis, J.R., 1994. An approach to statistical spatial-temporal modeling of meteorological fields. Journal of the American Statistical Association, 89(426), pp.368-378.
- 24. Sollich, P. and Williams, C., 2005. Using the equivalent kernel to understand Gaussian process regression. In Advances in Neural Information Processing Systems (pp. 1313-1320).
- 25. scikit-learn: Gaussian processes .scikit-learn.org.2018[引用日期2019-01-29]
- 26. Rohani, A., Taki, M. and Abdollahpour, M., 2018. A novel soft computing model (Gaussian process regression with K-fold cross validation) for daily and monthly solar radiation forecasting (Part: I). Renewable Energy, 115, pp.411-422.
- 27. Salcedo-Sanz, S., Casanova-Mateo, C., Muñoz-Marí, J. and Camps-Valls, G., 2014. Prediction of daily global solar irradiation using temporal Gaussian processes. IEEE Geoscience and Remote Sensing Letters, 11(11), pp.1936-1940.
- 28. Hu, J. and Wang, J., 2015. Short-term wind speed prediction using empirical wavelet transform and Gaussian process regression. Energy, 93, pp.1456-1466.
- 29. Mihoub, R., Chabour, N. and Guermoui, M., 2016. Modeling soil temperature based on Gaussian process regression in a semi-arid-climate, case study Ghardaia, Algeria. Geomechanics and Geophysics for Geo-Energy and Geo-Resources, 2(4), pp.397-403.
- 30. Liu, P.J., 2007. Using Gaussian process regression to denoise images and remove artefacts from microarray data. Master of Science Thesis. University of Toronto.
- 31. Li, J., Qu, Y., Li, C., Xie, Y., Wu, Y. and Fan, J., 2015. Learning local Gaussian process regression for image super-resolution. Neurocomputing, 154, pp.284-295.
- 32. Local Gaussian Process Regression for Real Time Online Model Learning and Control
- 33. Plagemann, C., 2008. Gaussian processes for flexible robot learning. Doctor of Philosophy Thesis. Albert-Ludwigs-Universität Freiburg.
- 34. scikit-learn: sklearn.gaussian_process.GaussianProcessRegressor .scikit-learn.org.2018[引用日期2019-01-29]
- 35. GPy: a Gaussian processes framework in python .Github Inc..2019[引用日期2019-01-29]
- 36. GPyOpt: Tune your algorithms and your design wetlab experiments .Github Inc..2019[引用日期2019-01-29]
- 37. Neumann, M., Huang, S., Marthaler, D.E. and Kersting, K., 2015. pygps: A python library for gaussian process regression and classification. The Journal of Machine Learning Research, 16(1), pp.2611-2616.
- 收起