高斯過程(Gaussian process)算法
高斯過程常在論文裏面簡寫爲GP。定義:若是隨機過程的有限維分佈均爲正態分佈,則稱此隨機過程爲高斯過程或正態過程。機器學習
首先咱們來解讀一下定義:ide
第一個問題:什麼是隨機過程?函數
你們都學過幾率論,必定知道什麼叫樣本空間和隨機變量(此處假設讀者知道)。在機率論中,講過樣本空間,隨機變量至關因而在樣本空間中的一次採樣,採樣的結果是一個事件,在每次採樣的時候都知足必定的分佈。隨機過程和隨機變量的區別在於,樣本空間裏裝的不是事件,裝的是過程(一串事件)。每次的採樣的結果是一個過程,好比一個序列,一個時間的函數等等。學習
樣本空間就是圖中藍紫色的部分,在藍紫色空間中隨便畫一條函數,都是一個可能的隨機過程。(這張圖是盜用的「阿米斯丹貓的博客」)優化
第二個問題:什麼是「隨機過程的有限維分佈均爲正態分佈」?ui
咱們先來看一個隨機序列:這是一個有限維n的序列,咱們能夠理解爲一個無窮維序列進行的n次採樣。在這裏能夠理解爲時間,可是更準確的應該理解爲一個連續的指標集。由於其通常性,就能夠當作的有限維分佈。3d
因此「隨機過程的有限維分佈均爲正態分佈」就好理解了,即服從一個n元正太分佈。
在機器學習任務中,咱們每每是假設咱們的問題知足一個高斯過程的,或者經過核函數來「拓展」高斯過程對其餘過程的表示能力。blog
貝葉斯優化的主要目的是與大部分機器學習算法相似,學習模型的表達形式 ,在必定範圍內求一個函數的最大(小)值。事件
這類每每很特殊:
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進行了線性加權。
到此爲止,咱們解決了模型的估計,更新(高斯過程)和再採樣(提取函數)的過程。貝葉斯優化就是不斷地進行採樣,計算更新模型的過程。