通俗理解高斯過程及其應用

本文主要涉及什麼是高斯過程以及高斯過程的簡單應用。主要參考這個博客

首先簡單理解高斯過程,比如你有

通俗理解高斯過程及其應用

個時間點,每個時間點的觀測值都是高斯分佈的,並且任意k個時間點的觀測值的組合都是聯合高斯分佈。這樣的一個過程稱為高斯過程。

高斯過程通常可以用來表示一個 函數, 更具體來說是表示一個 函數的分佈 (先不急著理解這句話,看到最後就明白了)。通常如果我們要學習一個函數(或者說學習一個映射),首先定義函數的參數,然後根據訓練數據來學習這個函數的參數。例如我們做線性迴歸,學習這樣一個函數就相當於訓練迴歸參數(權重、偏置)。這種方法叫做參數化的方法。但是這種做法就把可學習的函數的範圍限制死了,無法學習任意類型的函數。而非參數化的方法就沒有這個缺點。用高斯過程來建模函數,就是一種非參數方法。

首先看一個簡單的例子,假設我們有兩個點

通俗理解高斯過程及其應用

通俗理解高斯過程及其應用

,對應這兩個點的函數值服從二維高斯分佈(高斯過程中“高斯”二字的由來)

通俗理解高斯過程及其應用

然後我們從這個二維高斯分佈中採樣,兩個x對應在x軸上,採樣得到的兩個y對應在y軸上,我們得到下圖(採樣10組)

通俗理解高斯過程及其應用

每條直線可以被認為是從一個線性 函數分佈 中採樣出來的線性函數。

如果我們有20個x點,對應這20個x的函數值符合均值為0,協方差矩陣為單位矩陣的聯合高斯分佈。和上面一樣進行採樣10組,得到下圖:

通俗理解高斯過程及其應用

每一條線都是一個函數,是從某個 函數分佈 中採樣得到的。但是這樣的函數看上去一點也不平滑,並且顯得雜亂無章,距離很近的兩個x對應的函數值可以相差很大。

直觀來說,兩個x離得越近,對應的函數值應該相差越小,也就是說這個函數應該是平滑的,而不是像上圖那樣是突變的。所以我們應該通過兩個x之間的某種距離來定義這兩個x對應的函數值之間的協方差。兩個x離得越近,對應函數值之間的協方差應該越大,意味著這兩個函數值的取值可能越接近。

我們引入核函數(以高斯核為例,也可以用其他核,並不是說我們在講高斯過程所以這裡就一定用高斯核):

通俗理解高斯過程及其應用

它可以用來表示兩個x之間的距離。此時,若我們有N個數據點(

通俗理解高斯過程及其應用

),則這個N個數據點對應的N個函數值服從N維高斯分佈,這個高斯分佈的均值是0,協方差矩陣是K,K裡的每一個元素對應:

通俗理解高斯過程及其應用

至於為什麼高斯分佈的均值是0,為什麼用核函數來表示協方差,可以 參考PRML 6.4.1 節(P304-P305)。

此時,再以剛才20個數據點的情況為例,我們採樣10組,得到下圖,現在看起來函數就平滑多了:

通俗理解高斯過程及其應用

如果數據點再多點,例如100個數據點,則採樣10組,得到下圖:

通俗理解高斯過程及其應用

上圖每條曲線就是一個高斯過程的採樣,每個數據點上的函數值都是高斯分佈。且任意k個數據點對應的函數值的組合都是聯合高斯分佈。

然後我們可以用高斯過程作為先驗,來學習任意函數,接下來我們將以迴歸問題為例。所謂的以高斯過程作為先驗,意思是在沒有觀察到任何數據的情況下,我們認為給定x,y服從分佈

通俗理解高斯過程及其應用

。其中

通俗理解高斯過程及其應用

接下來我們有訓練數據

通俗理解高斯過程及其應用

。迴歸問題就是希望我們通過

通俗理解高斯過程及其應用

學習一個由

通俗理解高斯過程及其應用

通俗理解高斯過程及其應用

的映射函數 。然後給定一個

通俗理解高斯過程及其應用

,預測

通俗理解高斯過程及其應用

根據我們的高斯過程先驗,訓練數據

通俗理解高斯過程及其應用

通俗理解高斯過程及其應用

的聯合條件分佈

通俗理解高斯過程及其應用

服從如下

根據以上

通俗理解高斯過程及其應用

通俗理解高斯過程及其應用

的聯合分佈,可以得到條件分佈


上述就是把高斯過程作為先驗的一種非參數方法。可以看到,除了kernel裡面的超參數,最後對

通俗理解高斯過程及其應用

的預測裡面沒有涉及到任何參數的估計。


分享到:


相關文章: