淺談:高斯過程與貝葉斯優化
高斯過程(Gaussian process)
高斯過程常在論文裡面簡寫為GP。定義:如果隨機過程的有限維分佈均為正態分佈,則稱此隨機過程為高斯過程或正態過程。
首先我們來解讀一下定義:
第一個問題:什麼是隨機過程?
大家都學過概率論,一定知道什麼叫樣本空間和隨機變數(此處假設讀者知道)。在概率論中,講過樣本空間,隨機變數相當於是在樣本空間中的一次取樣,取樣的結果是一個事件,在每次取樣的時候都滿足一定的分佈。隨機過程和隨機變數的區別在於,樣本空間裡裝的不是事件,裝的是過程(一串事件)。每次的取樣的結果是一個過程,比如一個序列,一個時間的函式等等。
樣本空間就是圖中藍紫色的部分,在藍紫色空間中隨便畫一條函式,都是一個可能的隨機過程。(這張圖是盜用的“阿米斯丹貓的部落格”)
第二個問題:什麼是“隨機過程的有限維分佈均為正態分佈”?
我們先來看一個隨機序列:這是一個有限維n的序列,我們可以理解為一個無窮維序列進行的n次取樣。在這裡可以理解為時間,但是更準確的應該理解為一個連續的指標集。因為其一般性,就可以看成的有限維分佈。
所以“隨機過程的有限維分佈均為正態分佈”就好理解了,即服從一個n元正太分佈。
在機器學習任務中,我們往往是假設我們的問題滿足一個高斯過程的,或者通過核函式
貝葉斯優化(Bayesian Optimization)
貝葉斯優化的主要目的是與大部分機器學習演算法類似,學習模型的表達形式 ,在一定範圍內求一個函式的最大(小)值。
這類往往很特殊:
1. 沒有解析表達或者形式未知,故而沒辦法用跟梯度有關的優化方法;
2. 值的確定會受到一些外界干預(如人的干預)。
貝葉斯優化演算法核心步驟如下:
(1).通過樣本點對高斯過程 進行估計和更新。(後簡稱高斯過程)
(2).通過提取函式
高斯過程:假設我們需要估計的模型服從高斯過程,即:
這裡的協方差矩陣要用到內積的核化,筆者理解為拓展了高斯過程表達其他過程的能力,畢竟在實際問題上直接假設一個過程服從高斯過程稍微有點牽強。
假設有一組樣本點
為了簡便推導,先假設資料提前被中心化,即,其中:
對於一個新樣本 ,由於新樣本的加入會更新高斯過程的協方差矩陣:
設
協方差矩陣更新過程如下:
有了更新後的協方差矩陣就可以通過前t個樣本估計出的後驗概率分佈:
關於上述內容的推倒過程和核函式該如何選擇的問題,請參考《Gaussian Processesfor Machine Learning》。
提取函式:從上述高斯過程可以看出,通過取樣可以得到目標函式的概率描述。那麼很自然地,我們希望通過取樣來精確這種描述。我們看論文的時候經常會在論述acquisition function 的地方看到兩種取樣思路,一種是explore和exploit:
Explore:探索新的空間,這種取樣有助於估計更準確的;
Exploit:在已有結果附近(一般是已有最大值附近)進行取樣,從而希望找到更大的;
acquisition function的目的就旨在平衡這兩種取樣過程。
這裡舉一個不太恰當的栗子,對於一個吃貨,到一個陌生的城市去尋找美食,其實就是一個取樣再評價的過程。(顯然吃貨可以吃遍全城,但是受限於囊中羞澀,不得不考慮如何優化取樣)Exploit就是在曾經已經吃過的餐廳裡,再細細品味尋找一個最優的;Explore就好像是尋找新的餐廳。acquisition function在這裡的意義就在於尋找一個更加合理的策略去平衡這二者,給出一個下一次取樣的目標飯點。這個問題就是一個典型的沒有模型,而且取樣結果受外界干預(人的主觀評價)的例子。
迴歸正題,在資料問題裡,Explore是希望選擇有更大方差的資料,Exploit是希望選擇更接近均值的資料。
常見的方法有:
1. Expected Improvement
2. Upper Confidence Bound
下面一一介紹:
方法1:Expected Improvement(EI)
acquisition function:
這裡的定義為資料集D上的最大值。上面的定義式子並不直觀,我們將其展開:
我們為了推導方便定義一個擾動引數:
其中,是高斯分佈的累計概率函式,是高斯分佈的概率密度函式
所以:
方法2:Upper Confidence Bound(UCB)
相比於上面的EI而言,UCB則更加簡單粗暴,效果也十分不錯。
從式子可以看出來,UCB就是一個將Explore和Exploit進行了線性加權。
到此為止,我們解決了模型的估計,更新(高斯過程)和再取樣(提取函式)的過程。貝葉斯優化就是不斷地進行取樣,計算更新模型的過程。
筆者郵箱:[email protected]
有不正確的地方希望您批評指正,這是我第一篇博文。
希望天下沒有難學的演算法