<转>浅谈:高斯过程与贝叶斯优化
高斯過(guò)程(Gaussian process)
高斯過(guò)程常在論文里面簡(jiǎn)寫為GP。定義:如果隨機(jī)過(guò)程的有限維分布均為正態(tài)分布,則稱此隨機(jī)過(guò)程為高斯過(guò)程或正態(tài)過(guò)程。
首先我們來(lái)解讀一下定義:
第一個(gè)問(wèn)題:什么是隨機(jī)過(guò)程?
大家都學(xué)過(guò)概率論,一定知道什么叫樣本空間和隨機(jī)變量(此處假設(shè)讀者知道)。在概率論中,講過(guò)樣本空間,隨機(jī)變量相當(dāng)于是在樣本空間中的一次采樣,采樣的結(jié)果是一個(gè)事件,在每次采樣的時(shí)候都滿足一定的分布。隨機(jī)過(guò)程和隨機(jī)變量的區(qū)別在于,樣本空間里裝的不是事件,裝的是過(guò)程(一串事件)。每次的采樣的結(jié)果是一個(gè)過(guò)程,比如一個(gè)序列,一個(gè)時(shí)間的函數(shù)等等。
樣本空間就是圖中藍(lán)紫色的部分,在藍(lán)紫色空間中隨便畫一條函數(shù),都是一個(gè)可能的隨機(jī)過(guò)程。(這張圖是盜用的“阿米斯丹貓的博客”)
第二個(gè)問(wèn)題:什么是“隨機(jī)過(guò)程的有限維分布均為正態(tài)分布”?
我們先來(lái)看一個(gè)隨機(jī)序列:這是一個(gè)有限維n的序列,我們可以理解為一個(gè)無(wú)窮維序列進(jìn)行的n次采樣。在這里可以理解為時(shí)間,但是更準(zhǔn)確的應(yīng)該理解為一個(gè)連續(xù)的指標(biāo)集。因?yàn)槠湟话阈裕涂梢钥闯傻挠邢蘧S分布。
所以“隨機(jī)過(guò)程的有限維分布均為正態(tài)分布”就好理解了,即服從一個(gè)n元正太分布。
在機(jī)器學(xué)習(xí)任務(wù)中,我們往往是假設(shè)我們的問(wèn)題滿足一個(gè)高斯過(guò)程的,或者通過(guò)核函數(shù)來(lái)“拓展”高斯過(guò)程對(duì)其他過(guò)程的表示能力。
貝葉斯優(yōu)化(Bayesian Optimization)
貝葉斯優(yōu)化的主要目的是與大部分機(jī)器學(xué)習(xí)算法類似,學(xué)習(xí)模型的表達(dá)形式 ,在一定范圍內(nèi)求一個(gè)函數(shù)的最大(小)值。
這類往往很特殊:
1. 沒(méi)有解析表達(dá)或者形式未知,故而沒(méi)辦法用跟梯度有關(guān)的優(yōu)化方法;
2. 值的確定會(huì)受到一些外界干預(yù)(如人的干預(yù))。
貝葉斯優(yōu)化算法核心步驟如下:
(1).通過(guò)樣本點(diǎn)對(duì)高斯過(guò)程 進(jìn)行估計(jì)和更新。(后簡(jiǎn)稱高斯過(guò)程)
(2).通過(guò)提取函數(shù) (acquisition function)來(lái)指導(dǎo)新的采樣。(后簡(jiǎn)稱提取函數(shù))
高斯過(guò)程:假設(shè)我們需要估計(jì)的模型服從高斯過(guò)程,即:
這里的協(xié)方差矩陣要用到內(nèi)積的核化,筆者理解為拓展了高斯過(guò)程表達(dá)其他過(guò)程的能力,畢竟在實(shí)際問(wèn)題上直接假設(shè)一個(gè)過(guò)程服從高斯過(guò)程稍微有點(diǎn)牽強(qiáng)。
假設(shè)有一組樣本點(diǎn)
為了簡(jiǎn)便推導(dǎo),先假設(shè)數(shù)據(jù)提前被中心化,即,其中:
對(duì)于一個(gè)新樣本 ,由于新樣本的加入會(huì)更新高斯過(guò)程的協(xié)方差矩陣:
設(shè)
協(xié)方差矩陣更新過(guò)程如下:
有了更新后的協(xié)方差矩陣就可以通過(guò)前t個(gè)樣本估計(jì)出的后驗(yàn)概率分布:
關(guān)于上述內(nèi)容的推倒過(guò)程和核函數(shù)該如何選擇的問(wèn)題,請(qǐng)參考《Gaussian Processesfor Machine Learning》。
提取函數(shù):從上述高斯過(guò)程可以看出,通過(guò)采樣可以得到目標(biāo)函數(shù)的概率描述。那么很自然地,我們希望通過(guò)采樣來(lái)精確這種描述。我們看論文的時(shí)候經(jīng)常會(huì)在論述acquisition function 的地方看到兩種采樣思路,一種是explore和exploit:
Explore:探索新的空間,這種采樣有助于估計(jì)更準(zhǔn)確的;
Exploit:在已有結(jié)果附近(一般是已有最大值附近)進(jìn)行采樣,從而希望找到更大的;
acquisition function的目的就旨在平衡這兩種采樣過(guò)程。
這里舉一個(gè)不太恰當(dāng)?shù)睦踝樱瑢?duì)于一個(gè)吃貨,到一個(gè)陌生的城市去尋找美食,其實(shí)就是一個(gè)采樣再評(píng)價(jià)的過(guò)程。(顯然吃貨可以吃遍全城,但是受限于囊中羞澀,不得不考慮如何優(yōu)化采樣)Exploit就是在曾經(jīng)已經(jīng)吃過(guò)的餐廳里,再細(xì)細(xì)品味尋找一個(gè)最優(yōu)的;Explore就好像是尋找新的餐廳。acquisition function在這里的意義就在于尋找一個(gè)更加合理的策略去平衡這二者,給出一個(gè)下一次采樣的目標(biāo)飯點(diǎn)。這個(gè)問(wèn)題就是一個(gè)典型的沒(méi)有模型,而且采樣結(jié)果受外界干預(yù)(人的主觀評(píng)價(jià))的例子。
回歸正題,在數(shù)據(jù)問(wèn)題里,Explore是希望選擇有更大方差的數(shù)據(jù),Exploit是希望選擇更接近均值的數(shù)據(jù)。
常見(jiàn)的方法有:
1. Expected Improvement
2. Upper Confidence Bound
下面一一介紹:
方法1:Expected Improvement(EI)
acquisition function:
這里的定義為數(shù)據(jù)集D上的最大值。上面的定義式子并不直觀,我們將其展開(kāi):
我們?yōu)榱送茖?dǎo)方便定義一個(gè)擾動(dòng)參數(shù):
其中,是高斯分布的累計(jì)概率函數(shù),是高斯分布的概率密度函數(shù)
所以:
方法2:Upper Confidence Bound(UCB)
相比于上面的EI而言,UCB則更加簡(jiǎn)單粗暴,效果也十分不錯(cuò)。
從式子可以看出來(lái),UCB就是一個(gè)將Explore和Exploit進(jìn)行了線性加權(quán)。
到此為止,我們解決了模型的估計(jì),更新(高斯過(guò)程)和再采樣(提取函數(shù))的過(guò)程。貝葉斯優(yōu)化就是不斷地進(jìn)行采樣,計(jì)算更新模型的過(guò)程。
總結(jié)
以上是生活随笔為你收集整理的<转>浅谈:高斯过程与贝叶斯优化的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: Java常见开发规范
- 下一篇: linux(ubuntu) 查看系统设备