科班出身,貝葉斯護體,正本清源,故拿」九陽神功「自比,而非邪氣十足的」九陰真經「;html
如今看來,此前的八層功力都爲這第九層做基礎;git
本系列第九篇,助/祝你早日hold住神功第九重,加入血統純正的人工智能隊伍。github
小喇叭:本系列文章乃自娛自樂,延緩腦細胞衰老;只「雪中送炭」,不提供」全套服務「。app
九陽神功第九章《Gaussian Processes for ML》機器學習
若是,非統計機器學習是入門,統計機器學習是進階,那麼「高斯過程」就算是機器學習的高級階段,能發paper。ide
國內相關的書,沒發現。(有數學系的同窗給推薦麼?)post
推薦相關的還算易懂的paper一篇: Generic Inference in Latent Gaussian Process Models學習
對高斯過程的瞭解過程當中,讓我深入的明白,要發國際paper的同窗都有着怎樣的學習生涯套路。字體
菜雞們來瞧瞧這位,Stanford cs231n 2016的lecturer,語速感人,成就經典。人工智能
血統純正的學習路線:
2011-2015: Stanford Computer Science Ph.D. student Deep Learning, Computer Vision, Natural Language Processing. Adviser: Fei-Fei Li.
Summer 2011: Google Research Internship Large-Scale Unsupervised Deep Learning for Videos
2009-2011: University of British Columbia: MSc Learning Controllers for Physically-simulated Figures. Adviser: Michiel van de Panne
2005-2009: University of Toronto: BSc Double major in Computer Science and Physics
請注意本科時期的double major,which幫助奠基大牛潛質。
學純數搞人工智能有點紙上談兵;
學計科搞人工智能有點後勁不足;
CS+Physics真乃絕配!
言歸正傳,基本上學習的路線是:GP for Regression, GP for Classification, Latent Gaussian Process Models。
百度到的東西基本都是GP for Regression,可見廣大吃瓜羣衆基本停留在這套路線的初級階段,後二者確實須要功力,即便只知其一;不知其二也不便賣弄風騷。
此處一篇:淺談高斯過程迴歸 應該是根據youtube視頻課程所總結,寫得挺好。在此基礎上我將在此加一點補充,但願有助理解。
原本想把本身懂的這麼一點東西總結於此,但最近release了一門神課,很對味,故正在重點follow中。
這篇淺談高斯過程迴歸已經將(預測)基本計算過程展示了一遍,這裏就再也不贅述。讀完該連接後,拋出一個問題:
藍色字體的協方差值是如何給出的?怎麼定義會更好?
f是高斯,y也是高斯。根據二元高斯的條件分佈計算方法:[Bayes] Why we prefer Gaussian Distribution
直接求得p(f*|y) 【等價 p(f*|X, y, x*)】的預測公式以下:
常見的結論就是:這個預測結果(指望)是個「輸入的線性組合」,同時也是個「kernel的線性組合」。
如下求y的邊緣分佈:【過程略,較複雜】
常見的結論就是:這個能用於hyperparameter learning,也就是θ = {sigma, C}的學習,以下所示。
其實就是相關性的選擇問題,學習這個K內部的東西。爲什麼要計較這三部分?
想必也是個「權衡問題」,以下圖。
From: http://www.gaussianprocess.org/gpml/chapters/RW5.pdf
適當的選擇超參,能得到一個極大的marginal likelood。
這也叫作「model selection」。
參考「迴歸」,學習「分類」。
沒有了噪聲sigma的概念,f(y|f)變爲了sigmoid,故成了non-linear,p(f|X,y)成了惱人的non-gaussian。
那咱們就定一個高斯q(f|X,y)來近似p(f|X,y);天然而然引出Laplace Approximation【暫略】。
一個思考的技巧:
計算時能夠暫且將f做爲迴歸中y的角色,那麼以下看去就將對應的迴歸結論中的噪聲sigma去掉便可。
但咱們終究仍是要p(f*|X, y, x*),也就是須要加入一個「f given y的關係」,便是上述說起的近似高斯技巧。
與「迴歸」對比,是否感受總有點複雜?爲何搞複雜了呢?
計算結果以下:
p(f*|X,y,x*) = N(f*| K(x*)TK-1b, K(x*,x*)-K(x*)T[K-1-K-1ΣK-1]K(x*))
接下來就是「預測」問題,一般有兩種策略:Average and MAP
可見雖然求出了f*,但依然沒法逃避「f* --> y*」這段non-gaussian的過程。
此時,便天然而然得想到用mcmc去估計積分結果。
這一部分是超高級內容,只是簡單聊一聊,仰望一下。
想一想PCA,隱變量的意義是壓縮,這裏將要說的隱變量,也就是inducing variables也是如此。
要計算這個東西,是O(N3),因此有必要想辦法減少計算量。
可採用decomposition的方法,例如使用inducing variables:u。
以上即是緣由之一。下圖中的f之間用粗線表示「f之間是全鏈接」。
原理詳見原論文(上圖標題),以下來個例子瞧瞧。
至少咱們知道有了u,z這樣的概念,並且維度比N要低不少。
在Subset of Regressors (SR) approximation中,假設了covariance function:
與標準GP相比,看上去精簡了「相關性」的計算。將上式替代到標準GP迴歸時的結論便可獲得以下:
計算過程較複雜,其中會涉及到以下這個公式的運用 from Maxtrix Cookbook:
就到這裏,由於inducing variables的引入,展開了一大片坑,能夠閱讀該連接深刻了解:Generic Inference in Latent Gaussian Process Models
本篇寫得至關基礎, 大體寫個學習進階套路,一來確實須要至關的數學功底,二來更想花時間follow (STATS 385)。
再次強調下,本系列不提供「全套服務」,只幫助整理下我的近期的知識體系,若有興趣,請點擊文章中說起的各個親測的高質量連接。
那麼,就到這裏吧。
相關連接:
Ref: http://www.cnblogs.com/hxsyl/p/5229746.html
Ref: https://zhuanlan.zhihu.com/p/24388992