隨機過程基本概念:
隨機過程是一個比隨機變量更廣泛的概念。在概率論中,通常研究一個或多個這樣有限個數的隨機變量,即使在大數定律和中心極限定理中考慮了無窮多個隨機變量,但也要假設隨機變量之間互相獨立。而隨機過程主要是研究無窮多個互相不獨立的、有一定相關關系的隨機變量。隨機過程就是許多隨機變量的集合,代表了某個隨機系統隨着某個指示向量的變化,這個指示向量常用的是時間向量
其中指標集合T:通常用的指標集合是代表時間,以實數或整數表示其元素。以實數形式表示時,隨機過程即為連續隨機過程;以整數形式表示時,為離散隨機過程。
GP的定義:
對於任意集合S,S上的高斯過程(GP)是隨機變量序列(Zt:t∈S)的一個集合,使得所有n∈N,所有t1,t2……,tn∈S,(Zt1,Zt2,……,Ztn)是多維高斯。
如果S集合中的元素個數是有限的,則Z是否為GP可以通過窮舉判斷其是否為多維高斯函數。如果S集合中元素的個數是無限的,則Z不能通過窮舉獲得,但是如果Z中的變量和某個高斯變量有直接聯系的話,Z也有可能是S上的一個GP。
為什么要用高斯過程回歸
現實實生活中,我們遇到的一個典型問題就是選擇合適的模型擬合訓練集中自變量 X 與因變量 y 之間的關系,並根據新的自變量 x 來預測對應的因變量 f
如果關系足夠簡單,那么線性回歸就能實現很好的預測,但現實情況往往十分復雜,此時,高斯過程回歸就為我們提供了擬合復雜關系(quadratic, cubic, or even nonpolynomial)的絕佳方法
什么是高斯過程回歸
高斯過程可以看做是多維高斯分布向無限維的擴展,我們可以將 y=y1,y2,…,yn看作是從 n 維高斯分布中隨機抽取的一個點
對高斯過程的刻畫,如同高斯分布一樣,也是用均值和方差來刻畫。通常在應用高斯過程 f∼GP(m,K)的方法中,都是假設均值 m 為零,而協方差函數 K 則是根據具體應用而定
高斯回歸的本質其實就是通過一個映射把自變量從低維空間映射到高維空間(類似於支持向量機中的核函數將低維線性不可分映射為高維線性可分),只需找到合適的核函數,就可以知道 p(f|x,X,y)的分布,最常用的就是高斯核函數
高斯過程回歸的基本流程
再利用高斯過程回歸時,不需要指明 f(x)的具體形式,如線性 f(x)=mx+c,或者二次
等具體式,n 個訓練集的觀測值 y1,y2,…,yn會被看做多維(n 維)高斯分布中采樣出來的一個點
現在給定訓練集 x1,x2,…,xn與對應的觀測值y1,y2,…,yn,由於觀測通常是帶噪聲的,所以將每個觀測 y 建模為某個隱函數 f(x) 加上一個高斯噪聲,即
其中,f(x)被假定給予一個高斯過程先驗,即
其中協方差函數 k(x,x′)可以選擇不同的單一形式,也可以采用協方差函數的組合形式,由於假設均值為零,因此最后結果的好壞很大程度上取決於協方差函數的選擇。不同的協方差函數形式參見這篇文章對 Covariance Functions 的詳細介紹。常見的協方差函數如下,參見 Wikipedia-Gaussian Process
存在定理說明:
對任意集合S中的單個元素都存在某個均值函數,以及對任意集合S中的2個元素都存在某個核函數(即協方差),則在S上一定存在一個高斯過程Z(t),其元素具有類似S形式的均值和方差。所以在給定集合S后,我們只需要給出一個一元的均值函數,一個二元的核函數表達式,就能構造出一個高斯過程。
常見的高斯過程
根據高斯分布的性質以及測試集和訓練集數據來自同一分布的特點,可以得到訓練數據與測試數據的聯合分布為高維的高斯分布,有了聯合分布就可以比較容易地求出預測數據 y∗ 的條件分布 p(y∗|y),對 y∗的估計的估計,我們就用分布的均值來作為其估計值
這里介紹一下通常情況對高斯函數采樣的方法:首先我們知道任何高斯函數都可以寫成標准高斯函數的線性組合,因此只要能夠對標准高斯函數進行采樣就OK了。其方法為:計算出標准高斯函數的分布函數,用[0,1]均勻分布隨機發生器選擇隨機的值y,當做標准高斯函數的函數值,然后找到分布函數下對應的S就可以了,該點即為我們所需要的 Sample。
在常用的編程語言中,我們很容易生成一個高斯隨機變量額采樣(例如Matlab的randn函數),但如何生成給定均值函數和方差函數的高斯過程的采樣呢?
問題
已知高斯過程的均值函數μ(x)以及相關函數k(t1,t2),欲生成N個符合此高斯過程的采樣x(n),n=1,2,…..N均值函數只要最后累加即可。難點是如何生成滿足相關性要求的采樣。
步驟:
1.生成N個時間采樣點t=[t1,t2,….,tN]
2.計算N個采樣點之間的相關函數取值矩陣C:cij=k(ti,tj)
3.對C進行SVD分解,由於協方差矩陣對稱,有C=USUT
3.生成N個獨立同分布的高斯隨機變量y=[y1,y2,….,yN],均值為0
證明
時間節點i處的隨機變量Zi=UiSy,其中Ui為U的第i行,S為對角陣。
時間節點i和j處隨機變量的相關:
由於y在每個時刻都獨立,且上式得兩個求和相乘中,只有k1=k2的項期望非0
所以
高斯過程回歸與貝葉斯線性回歸
兩者其實比較相似,區別在於高斯過程回歸中用核函數代替了貝葉斯線性回歸中的基函數(其實也是核函數,線性核)。采用核函數定義高斯過程回歸是一個比貝葉斯線性回歸更通用的模型。
貝葉斯線性回歸:數據D={(x1,y1),(x2,y2),…..,(xn,yn)} xi∈Rd y∈R y1,…..yn依賴於給定的W
P(yi|xi,w)=N(yi|WTx) 即
其中WTx是高斯分布,可以看作是高斯分布的線性組合,由此WT是一個多維的高斯分布
如果高斯過程為線性的,即它的sample是在高維空間中的平面,要求它的核函數滿足k(xi,xj)d的形式,且均值函數為0,下面是它的證明過程:
既然已經得知yi的中心是在一個高維空間的平面上,所以當新來的數據后,就可以預測它的均值也在該平面對應的位置上,這就達到了回歸的目的。
在將BLR(貝葉斯線性回歸)擴展到GPR(高斯過程回歸)前,來看看多維高斯分布的一些重要性質,第一個性質為兩個相互獨立的多維高斯分布A和B的和也是一個多維高斯分布C,且C的均值和方差都為A和B均值方差的和。第二個性質為:兩個多維高斯分布之和構成的分布C而言,在已知一部分觀察值C1的條件下,另一部分觀察值C2的概率分布是一個多維高斯分布,且可以用A和B中對應的信息來表示。這2個性質的介紹如下:
接下來就是要怎樣利用高斯過程進行回歸運算了。高斯過程回歸的模型如下:
其中的ya為需要預測的值,yb為觀察到的值,當然了,xa和xb也是觀察值。由前面博文機器學習&數據挖掘筆記_10(高斯過程簡單理解)中介紹的高斯過程存在性定理可知,一旦我們確定了x上的u和k,就可以得到一個高斯過程Zx,此時的樣本值Yi可以寫成: 即兩個獨立的多維高斯變量之和。而利用上面多維高斯變量的性質,可推導出需要預測的ya在yb條件下的概率:
上面的m和D有解析表達式,因此可以直接求,里面的的變量都是已知的。其中的m就是我們回歸預測的值,而D就是此時預測的誤差,兩者表達式和前面類似,如下:
由貝葉斯線性回歸和高斯過程回歸的對比可知,貝葉斯線性回歸是高斯過程回歸中的一個子集,只是它用的是線性核而已,通過兩者的公式就可以看出它們之間的關系:
上面是貝葉斯線性回歸,下面是高斯過程回歸。
總結
參考文獻:
http://www.cnblogs.com/tornadomeet
http://www.gaussianprocess.org/
http://blog.sina.com.cn/s/blog_5033f3b40102vts4.html