大數(shù)據(jù)文摘作品 編譯:丁慧,、文明、Katherine Hou,、云舟 高斯過(guò)程可能不是當(dāng)前機(jī)器學(xué)習(xí)最火的研究方向,,但仍然在很多前沿的研究中被使用到——例如,最近在AlphaGo Zero中自動(dòng)調(diào)整MCTS超參數(shù)就使用了它。在建模能力和進(jìn)行不確定性估計(jì)方面,,它們具有非常高的易用性,。 然而,高斯過(guò)程很難掌握,,尤其是當(dāng)你習(xí)慣了深度學(xué)習(xí)中其他常見(jiàn)的模型之后,。所以本文希望在具備相當(dāng)少的ML知識(shí)背景下,對(duì)高斯過(guò)程提供一個(gè)直觀的理論介紹,,請(qǐng)學(xué)習(xí)者下載notebook并實(shí)現(xiàn)本文中提到的所有代碼,。 Jupyter notebook 版本: https://gist.github.com/Bridgo/429594942ff51037ecc703905e40c562
高斯過(guò)程(Gaussian process, GP)是一個(gè)強(qiáng)大的模型,,可以用來(lái)表示函數(shù)的分布。機(jī)器學(xué)習(xí)中的大多數(shù)現(xiàn)代技術(shù)都傾向于通過(guò)參數(shù)化函數(shù),,然后對(duì)這些參數(shù)(例如線(xiàn)性回歸中的權(quán)重)進(jìn)行建模來(lái)避免這種情況,。 然而,GP是直接對(duì)函數(shù)建模的非參模型,。這種方法帶來(lái)的一個(gè)非常重要的好處是:不僅可以擬合任何黑箱函數(shù),,還可以擬合我們的不確定性。量化不確定性是非常有價(jià)值的——例如,,如果允許我們隨意探索(需要更多的數(shù)據(jù)),,我們就可以選擇盡可能高效地探索最不確定的領(lǐng)域。這是貝葉斯優(yōu)化背后的主要思想,。
對(duì)于這個(gè)介紹,我們將考慮一個(gè)沒(méi)有噪聲的簡(jiǎn)單回歸模型設(shè)置(但GP可以擴(kuò)展到多維和噪聲數(shù)據(jù)):
GP背后的關(guān)鍵思想是可以使用無(wú)限維多元高斯分布擬合函數(shù)。換句話(huà)說(shuō),,輸入空間中的每個(gè)點(diǎn)與一個(gè)隨機(jī)變量相關(guān)聯(lián),,并將多元高斯分布用來(lái)擬合這些點(diǎn)的聯(lián)合分布。 那么,,這究竟意味著什么呢,?讓我們從一個(gè)更簡(jiǎn)單的情況開(kāi)始:一個(gè)二維高斯。已知: 通常它是高度表示概率密度的3D鐘形曲線(xiàn),。但是,,假如不是表示整個(gè)分布,,我們只需要從分布中抽樣。然后我們將得到兩個(gè)值,,我們可以繪制點(diǎn)d并在它們之間畫(huà)一條線(xiàn),。 觀察圖中的這些直線(xiàn),看起來(lái)像我們僅僅抽取了10個(gè)線(xiàn)性函數(shù)樣本……如果我們現(xiàn)在使用20維的高斯函數(shù),,依次連接每個(gè)樣本點(diǎn),,會(huì)發(fā)生什么樣的變化呢? 這些絕對(duì)看起來(lái)像多個(gè)函數(shù),,但相對(duì)于我們的目的,,它們看起來(lái)噪聲太大所以不可用。讓我們進(jìn)一步考慮可以從這些樣本中得到什么,,以及如何改變分布從而獲得更好的樣本…… 多元高斯有兩個(gè)參數(shù),,即均值和協(xié)方差矩陣。如果我們改變了均值的話(huà),,我們只會(huì)改變整體趨勢(shì)(即如果均值是上升的整數(shù),,如np.arange(D),那么樣本會(huì)呈現(xiàn)出整體正向線(xiàn)性趨勢(shì)),但是仍然會(huì)出現(xiàn)鋸齒形的噪聲形狀,。出于這個(gè)原因,,我們將GP的均值設(shè)置為0——它們實(shí)際上已經(jīng)足夠強(qiáng)大,可以在不改變均值的情況下擬合各種函數(shù),。 相反,,我們需要一些平滑的概念:即如果兩個(gè)輸入點(diǎn)彼此鄰近,那么我們期望這些點(diǎn)的函數(shù)值是相似的,。就我們的模型而言,,對(duì)用于相鄰點(diǎn)的隨機(jī)變量在它們的聯(lián)合分布(即高斯協(xié)方差)下采樣時(shí)應(yīng)該具有相似的值。 這些點(diǎn)的協(xié)方差被定義為高斯的協(xié)方差矩陣,。假設(shè)我們有N維高斯模型y0,…yN,,協(xié)方差矩陣Σ是N╳N維且它的第(i,j)個(gè)元素是Σij = cov(yi,yj)。換句話(huà)說(shuō),,Σ是對(duì)稱(chēng)的而且存儲(chǔ)著所有隨機(jī)變量的聯(lián)合模型的成對(duì)協(xié)方差,。
那么如何定義我們的協(xié)方差函數(shù)呢,?這時(shí)大量關(guān)于核的文獻(xiàn)可以派上用場(chǎng),。我們將選擇平方指數(shù)核(最簡(jiǎn)單的形式)來(lái)達(dá)到我們的目的,定義如下: 當(dāng)x = x’時(shí),,函數(shù)值(我們剛剛繪制的)為1并且隨著點(diǎn)的不同而趨于0 我們可以繪制這個(gè)核函數(shù)來(lái)展示它在x = x’時(shí)是最大的,,然后隨著兩個(gè)輸入的不同開(kāi)始平滑的下降 因此,為了得到我們想要的那種平滑性,,我們將考慮在xi和xj處繪制兩個(gè)隨機(jī)變量yi和yj,,來(lái)得到它們的協(xié)方差cov(yi,yj) = k(xi,xj) ——它們?cè)浇咏?,它們的協(xié)方差越高。 使用上面的核函數(shù)我們可以得到k(xs,xs)這個(gè)矩陣?,F(xiàn)在我們?cè)囍鴱?0維高斯中抽取另外10個(gè)樣本,,但是這次使用新的協(xié)方差矩陣。當(dāng)我們這樣做時(shí),,我們可以得到: 現(xiàn)在我們有了一些開(kāi)始看起來(lái)像一個(gè)(有用的)函數(shù)分布,。而且我們可以看到,隨著維數(shù)趨于無(wú)窮大,,我們不再需要連接這些點(diǎn),,因?yàn)槲覀兛梢詾槊恳粋€(gè)可能的輸入指定一個(gè)點(diǎn)。 讓我們使用更多維度,,并在更大范圍的輸入中查看他的外形:
現(xiàn)在我們有了函數(shù)的分布,,我們?nèi)绾瓮ㄟ^(guò)訓(xùn)練數(shù)據(jù)擬合隱函數(shù)從而進(jìn)行預(yù)測(cè)? 首先,,我們需要獲取訓(xùn)練數(shù)據(jù),。 這可以通過(guò)構(gòu)造我們的秘密函數(shù)f來(lái)生成數(shù)據(jù)。
本教程中我們使用一個(gè)五次多項(xiàng)式: 我選擇它是因?yàn)檫@個(gè)函數(shù)有個(gè)漂亮的波浪圖形,。當(dāng)然,,我們也可以用其它的函數(shù)。
現(xiàn)在我們已經(jīng)進(jìn)入高斯過(guò)程的核心了,。這需要更多的數(shù)學(xué)知識(shí),,不過(guò)不用擔(dān)心,我們只需要鞏固已有的知識(shí)就行,,然后用一個(gè)小技巧在觀測(cè)數(shù)據(jù)上決定我們的聯(lián)合概率分布: 到目前為止,,我們已知能夠用多元正態(tài)分布來(lái)模擬p(y|x)了。 其中,, 這是一個(gè)先驗(yàn)分布,,它表示在沒(méi)有任何觀測(cè)數(shù)據(jù)的情況下,出現(xiàn)時(shí),,出現(xiàn)的概率,。 現(xiàn)在,我們有了訓(xùn)練集,,其訓(xùn)練得到的模型輸入為,,輸出。當(dāng)有新樣本時(shí),,其預(yù)測(cè)值為,。 回顧之前高斯過(guò)程的定義,我們將擬合和的聯(lián)合概率分布,。 其中,,和前面一樣,,我們將均值設(shè)為0. 但是,這是在擬合,,而我們僅需要的分布,。
與其從頭開(kāi)始計(jì)算的分布,我們可以使用標(biāo)準(zhǔn)結(jié)果,。如果我們有了前面提到過(guò)的和的聯(lián)合概率分布,,而要得到的條件概率分布,可以用如下的公式: 現(xiàn)在我們就可以用先驗(yàn)分布和觀測(cè)數(shù)據(jù)計(jì)算的后驗(yàn)分布了! 注意:下面給的代碼在實(shí)際過(guò)程中并沒(méi)有用到,,因?yàn)镵通常處于較差條件,,所以它的逆通常不準(zhǔn)確。在本教程第二部分中我們將給出一個(gè)更好的方法,。 這就是上面公式的代碼實(shí)現(xiàn)! 現(xiàn)在就可以用這兩個(gè)參數(shù)從條件概率分布中采樣了,。我們將它們與真實(shí)函數(shù)(虛線(xiàn))畫(huà)在一起對(duì)比。因?yàn)槲覀冇玫氖歉咚惯^(guò)程,,它包含有不確定性信息,,這種不確定性信息以隨機(jī)變量的方差形式表示出來(lái)。我們知道第i個(gè)隨機(jī)變量的方差為∑*ii,,換句話(huà)說(shuō),,方差就是∑*的對(duì)角線(xiàn)值。下圖中的樣本包含了標(biāo)準(zhǔn)方差為±2的不確定性,。
實(shí)際上,我們需要做更多的工作才能得到更好的預(yù)測(cè)結(jié)果,。你可能已經(jīng)注意到核中包含兩個(gè)參數(shù)-σ和l,。如果你在采樣過(guò)程中試著改變這兩個(gè)參數(shù),你會(huì)發(fā)現(xiàn)σ影響縱坐標(biāo)的變化而l影響橫坐標(biāo)的范圍,。 因此,,我們需要改變它們來(lái)反映我們對(duì)隱函數(shù)的先驗(yàn)置信度。譬如,,如果我們希望隱函數(shù)有更大的輸出范圍(一個(gè)我們感興趣的范圍),,那么我們需要相應(yīng)的增加的值(試著將隱函數(shù)返回的值放大100倍,看會(huì)出現(xiàn)什么,,然后將sigma設(shè)置為100再看),。事實(shí)上,任何用到核的函數(shù),,我們都可以通過(guò)改變核得到一個(gè)完全不一樣的函數(shù)(例如,,周期函數(shù)),。 核的選擇需要人工進(jìn)行,,但參數(shù)可以通過(guò)最小化損失函數(shù)來(lái)自動(dòng)優(yōu)化,。這就是高斯過(guò)程回歸的內(nèi)容。 最后,,我們需要考慮怎么處理含有噪聲的數(shù)據(jù),,例如,在實(shí)際過(guò)程中我們可能無(wú)法獲得符合隱函數(shù)的標(biāo)準(zhǔn)數(shù)據(jù),。在這種情況下我們需要將這種不確定性納入模型中以獲得更好的泛化能力,。 參考資料:
原文地址: http://nd/posts/gaussian-processes- 1?utm_campaign=Revue%20newsletter&utm _medium=Newsletter&utm_source=The%20Wild%20Week%20in%20AI 【今日機(jī)器學(xué)習(xí)概念】 Have a Great Defination 線(xiàn)下課程推薦|機(jī)器學(xué)習(xí)和人工智能方向 早鳥(niǎo)價(jià)倒計(jì)時(shí)3天 新年新目標(biāo),,稀牛喊你找工作啦,! ? 高頻面試考點(diǎn) ? 行業(yè)項(xiàng)目經(jīng)驗(yàn) ? 簡(jiǎn)歷修改完善 ? 面試注意事項(xiàng) VIP小班授課,定制化服務(wù),,2018春招Offer觸手可即,! 志愿者介紹 回復(fù)“志愿者”加入我們 |
|
來(lái)自: 萬(wàn)皇之皇 > 《IT互聯(lián)》