1. 程式人生 > >淺談:高斯過程與貝葉斯優化

淺談:高斯過程與貝葉斯優化

        高斯過程(Gaussian process)

        高斯過程常在論文裡面簡寫為GP。定義:如果隨機過程的有限維分佈均為正態分佈,則稱此隨機過程為高斯過程或正態過程。

        首先我們來解讀一下定義:

        第一個問題:什麼是隨機過程?

        大家都學過概率論,一定知道什麼叫樣本空間和隨機變數(此處假設讀者知道)。在概率論中,講過樣本空間,隨機變數相當於是在樣本空間中的一次取樣,取樣的結果是一個事件,在每次取樣的時候都滿足一定的分佈。隨機過程和隨機變數的區別在於,樣本空間裡裝的不是事件,裝的是過程(一串事件)。每次的取樣的結果是一個過程,比如一個序列,一個時間的函式等等。

        樣本空間就是圖中藍紫色的部分,在藍紫色空間中隨便畫一條函式,都是一個可能的隨機過程。(這張圖是盜用的“阿米斯丹貓的部落格”)

        第二個問題:什麼是“隨機過程的有限維分佈均為正態分佈”?

        我們先來看一個隨機序列:這是一個有限維n的序列,我們可以理解為一個無窮維序列進行的n次取樣。在這裡可以理解為時間,但是更準確的應該理解為一個連續的指標集。因為其一般性,就可以看成的有限維分佈。

        所以“隨機過程的有限維分佈均為正態分佈”就好理解了,即服從一個n元正太分佈。

        在機器學習任務中,我們往往是假設我們的問題滿足一個高斯過程的,或者通過核函式

來“拓展”高斯過程對其他過程的表示能力。

    貝葉斯優化(Bayesian Optimization)

       貝葉斯優化的主要目的是與大部分機器學習演算法類似,學習模型的表達形式 ,在一定範圍內求一個函式的最大(小)值。

        這類往往很特殊:

        1. 沒有解析表達或者形式未知,故而沒辦法用跟梯度有關的優化方法;

        2. 值的確定會受到一些外界干預(如人的干預)。

        貝葉斯優化演算法核心步驟如下:

        (1).通過樣本點對高斯過程 進行估計和更新。(後簡稱高斯過程)

        (2).通過提取函式

acquisition function)來指導新的取樣。(後簡稱提取函式)

        高斯過程:假設我們需要估計的模型服從高斯過程,即:

       這裡的協方差矩陣要用到內積的核化,筆者理解為拓展了高斯過程表達其他過程的能力,畢竟在實際問題上直接假設一個過程服從高斯過程稍微有點牽強。

        假設有一組樣本點

        為了簡便推導,先假設資料提前被中心化,即,其中:

對於一個新樣本 ,由於新樣本的加入會更新高斯過程的協方差矩陣:

設  

        協方差矩陣更新過程如下:

        有了更新後的協方差矩陣就可以通過前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]

有不正確的地方希望您批評指正,這是我第一篇博文。

希望天下沒有難學的演算法