假設(shè)有一個(gè)函數(shù) f(x)。其計(jì)算成本很高,它不一定是分析表達(dá)式,而且你不知道它的導(dǎo)數(shù)。 你的任務(wù):找到全局最小值。 當(dāng)然,這是一個(gè)困難的任務(wù),而且難度超過(guò)機(jī)器學(xué)習(xí)領(lǐng)域內(nèi)的其它優(yōu)化問(wèn)題。梯度下降就是一種解決方案,它能通過(guò)函數(shù)的導(dǎo)數(shù),利用數(shù)學(xué)捷徑來(lái)實(shí)現(xiàn)更快的表達(dá)式評(píng)估。 或者,在某些優(yōu)化場(chǎng)景中,函數(shù)的評(píng)估成本較低。如果你能在幾秒內(nèi)得到輸入 x 的變體的數(shù)百種結(jié)果,那么使用簡(jiǎn)單的網(wǎng)格搜索就能得到很好的結(jié)果。 或者,你還可以使用一整套非常規(guī)的非梯度優(yōu)化方法,比如粒子群或模擬退火。 不幸的是,當(dāng)前的任務(wù)沒(méi)有這樣的便利。我們的優(yōu)化受到了多個(gè)方面的限制,其中最顯著的包括:
解決方案:針對(duì)以最少的步驟尋找全局最小值的問(wèn)題,貝葉斯優(yōu)化是一個(gè)優(yōu)雅的框架。 我們來(lái)構(gòu)建一個(gè)假設(shè)的示例函數(shù) c(x),即一個(gè)模型在給定輸入 x 下的成本。當(dāng)然,這個(gè)函數(shù)的實(shí)際情況對(duì)優(yōu)化器來(lái)說(shuō)是未知的。假設(shè) c(x) 的實(shí)際形狀如下:這就是所謂的「目標(biāo)函數(shù)」。 貝葉斯優(yōu)化可通過(guò)一種名為「代理優(yōu)化(surrogate optimization)」的方法解決這一問(wèn)題。在語(yǔ)境中,代理母親(代孕媽媽?zhuān)┦侵竿鉃槠渌松『⒌呐??;谕瑯拥恼Z(yǔ)境,代理函數(shù)是指目標(biāo)函數(shù)的一種近似。 代理函數(shù)可基于采樣得到的數(shù)據(jù)點(diǎn)而構(gòu)建。 我們可以根據(jù)代理函數(shù)來(lái)識(shí)別哪些點(diǎn)是有潛力的最小值。然后我們?cè)谶@些有潛力的區(qū)域執(zhí)行更多采樣,然后據(jù)此更新代理函數(shù)。 在每一次迭代中,我們都要繼續(xù)觀察當(dāng)前的代理函數(shù),通過(guò)采樣對(duì)相關(guān)區(qū)域有更多了解,然后更新函數(shù)。注意,代理函數(shù)可表示成評(píng)估成本低得多的數(shù)學(xué)形式(比如用 y=x 近似表示一個(gè)成本更高的函數(shù) y=arcsin((1-cos2x)/sin x) 的某個(gè)特定范圍)。 經(jīng)過(guò)一定數(shù)量的迭代之后,我們的目標(biāo)是抵達(dá)全局最小值,除非該函數(shù)的形狀非常古怪(比如其中有大量大起大落的部分),這時(shí)候你就要問(wèn)自己了:是不是數(shù)據(jù)有問(wèn)題? 我們先來(lái)欣賞一下這種方法的美妙之處。它不會(huì)對(duì)函數(shù)做出任何假設(shè)(只要它是可優(yōu)化的既可)、不需要導(dǎo)數(shù)的相關(guān)信息、可通過(guò)巧妙地使用不斷更新的近似函數(shù)來(lái)執(zhí)行常識(shí)推理。對(duì)原本的目標(biāo)函數(shù)的高成本估計(jì)也不再是問(wèn)題。 這是一種基于代理的優(yōu)化方法。但它的貝葉斯性質(zhì)體現(xiàn)在哪里? 貝葉斯統(tǒng)計(jì)和建模和本質(zhì)是基于新信息先驗(yàn)(之前的)信念,然后得到更新后的后驗(yàn)(之后的)信念。這里的代理優(yōu)化就是這樣工作的,使得其能通過(guò)貝葉斯系統(tǒng)、公式和思想很好地表示。 我們來(lái)更仔細(xì)地看看這個(gè)代理函數(shù),其通常表示成高斯過(guò)程,這可被看作是一種擲骰子過(guò)程,返回的是與給定數(shù)據(jù)點(diǎn)擬合的函數(shù)(比如 sin 或 log),而不是數(shù)字 1 到 6. 這個(gè)過(guò)程會(huì)返回若干函數(shù)以及它們各自的概率。 左圖:基于 4 個(gè)數(shù)據(jù)點(diǎn)生成的幾個(gè)基于高斯過(guò)程的函數(shù);右圖:將這些函數(shù)聚合之后。 Oscar Knagg 這篇文章直觀地介紹了高斯過(guò)程的工作方式:https:///an-intuitive-guide-to-gaussian-processes-ec2f0b45c71d 為什么要使用高斯過(guò)程來(lái)建模代理函數(shù),而不是使用其它曲線擬合方法?這是因?yàn)楦咚惯^(guò)程本質(zhì)上就是貝葉斯模式的。高斯過(guò)程是一種概率分布,就像一個(gè)事件的最終結(jié)果分布一樣(比如擲硬幣的 1/2 概率),只不過(guò)高斯過(guò)程是在所有可能的函數(shù)上的分布。 舉個(gè)例子,我們也許可以定義當(dāng)前的數(shù)據(jù)點(diǎn)集可由函數(shù) a(x) 表示 40%、由函數(shù) b(x) 表示 10% 等等。通過(guò)將代理函數(shù)表示成概率分布,可使用新信息,通過(guò)固有的概率貝葉斯過(guò)程來(lái)完成更新。也許當(dāng)新信息被引入時(shí),a(x) 函數(shù)又只能表示 20% 的數(shù)據(jù)了。這樣的變化受貝葉斯公式的約束。 這會(huì)使得類(lèi)似于新數(shù)據(jù)點(diǎn)的多項(xiàng)式回歸擬合這樣的目標(biāo)難以完成甚至不可能完成。 表示成先驗(yàn)概率分布的代理函數(shù)會(huì)通過(guò)一個(gè)「獲取函數(shù)(acquisition function)」而更新。這個(gè)函數(shù)負(fù)責(zé)在探索與利用權(quán)衡的基礎(chǔ)上,對(duì)提議的新點(diǎn)進(jìn)行測(cè)試。
太過(guò)重視利用而不太重視探索的獲取函數(shù)會(huì)讓模型駐留于其發(fā)現(xiàn)的第一個(gè)最小值(通常是局部最小值)。反過(guò)來(lái),重探索而輕利用的獲取函數(shù)則一開(kāi)始就不會(huì)留在某個(gè)最小值,不管是局部最小值還是全局最小值。因此,為了得到很好的結(jié)果,需要達(dá)到微妙精巧的平衡。 獲取函數(shù) a(x) 必須兼顧探索和利用。常見(jiàn)的獲取函數(shù)包括預(yù)期提升和提升的最大可能性,所有這些衡量的都是給定有關(guān)先驗(yàn)(高斯過(guò)程)的信息下,一個(gè)特定輸入在未來(lái)產(chǎn)生回報(bào)的概率。 我們歸總一下這些知識(shí)點(diǎn)。貝葉斯優(yōu)化的執(zhí)行方式為:
貝葉斯優(yōu)化的核心是將概率思想融入到代理優(yōu)化思想之中。這兩種思想組合到一起,能創(chuàng)造出一種強(qiáng)大的系統(tǒng)。該系統(tǒng)具有很多應(yīng)用場(chǎng)景,從醫(yī)藥產(chǎn)品開(kāi)發(fā)到自動(dòng)駕駛汽車(chē)。 不過(guò),貝葉斯優(yōu)化最常見(jiàn)的應(yīng)用領(lǐng)域還是機(jī)器學(xué)習(xí),尤其是超參數(shù)優(yōu)化任務(wù)。舉個(gè)例子,如果我們要訓(xùn)練一個(gè)梯度上升分類(lèi)器,則會(huì)遇到幾十個(gè)超參數(shù),從學(xué)習(xí)率到最大深度再到最小不純度拆分值。在這里,x 表示模型的超參數(shù),c(x) 表示模型在給定超參數(shù) x 下的表現(xiàn)。 使用貝葉斯優(yōu)化的主要?jiǎng)訖C(jī)是:在有些場(chǎng)景中,評(píng)估輸出的成本非常高。首先,需要使用這些參數(shù)構(gòu)建一整個(gè)集成樹(shù);其次,它們需要運(yùn)行并完成幾次預(yù)測(cè),這對(duì)于集成方法來(lái)說(shuō)成本高昂。 可以這樣說(shuō),在給定一組參數(shù)的條件下,使用神經(jīng)網(wǎng)絡(luò)來(lái)評(píng)估損失函數(shù)的速度更快:只是重復(fù)執(zhí)行矩陣乘法,這是非常快的,尤其是使用專(zhuān)用計(jì)算硬件時(shí)。這是使用梯度下降的原因之一,也就是反復(fù)查詢以找到前進(jìn)的方向。 總結(jié)
原文鏈接:https:///the-beauty-of-bayesian-optimization-explained-in-simple-terms-81f3ee13b10f |
|
來(lái)自: taotao_2016 > 《概率》