0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

理解貝葉斯優(yōu)化之美,探索精妙算法的奧秘

如意 ? 來源:讀芯術(shù)微信公眾號(hào) ? 作者:讀芯術(shù)微信公眾號(hào) ? 2020-10-09 15:56 ? 次閱讀

有一個(gè)函數(shù)f(x),它的計(jì)算成本很高,甚至不一定是解析表達(dá)式,而且導(dǎo)數(shù)未知。你的任務(wù)是,找出全局最小值。當(dāng)然,這個(gè)任務(wù)挺難的,比機(jī)器學(xué)習(xí)中的其他優(yōu)化問題要難得多。例如,梯度下降可以獲得函數(shù)的導(dǎo)數(shù),并利用數(shù)學(xué)捷徑來更快地計(jì)算表達(dá)式。

另外,在某些優(yōu)化場景中,函數(shù)的計(jì)算成本很低。如果可以在幾秒鐘內(nèi)得到數(shù)百個(gè)輸入值x的變量結(jié)果,簡單的網(wǎng)格搜索效果會(huì)更好。另外,還可以使用大量非傳統(tǒng)的非梯度優(yōu)化方法,如粒子群算法模擬退火算法(simulated annealing)。

但是,當(dāng)前的任務(wù)沒有還沒這么高級(jí)。優(yōu)化層面有限,主要包括:

計(jì)算成本高。理想情況下,我們能夠?qū)瘮?shù)進(jìn)行足夠的查詢,從而從本質(zhì)上復(fù)制它,但是采用的優(yōu)化方法必須在有限的輸入采樣中才能起作用。

導(dǎo)數(shù)未知。梯度下降及其風(fēng)格仍然是最流行的深度學(xué)習(xí)方法,甚至有時(shí)在其他機(jī)器學(xué)習(xí)算法中也備受歡迎的原因所在。導(dǎo)數(shù)給了優(yōu)化器方向感,不過我們沒有導(dǎo)數(shù)。

需要找出全局最小值,即使對(duì)于梯度下降這樣精細(xì)的方法,這也是一項(xiàng)困難的任務(wù)。模型需要某種機(jī)制來避免陷入局部最小值。

我們的解決方案是貝葉斯優(yōu)化,它提供了一個(gè)簡潔的框架來處理類似于場景描述的問題,以最精簡的步驟數(shù)找到全局最小值。

構(gòu)造一個(gè)函數(shù)c(x)的假設(shè)例子,或者給定輸入值x的模型的成本。當(dāng)然,這個(gè)函數(shù)看起來是什么樣子對(duì)優(yōu)化器是隱藏的——這就是c(x)的真實(shí)形狀,行話中被稱為“目標(biāo)函數(shù)”。

理解貝葉斯優(yōu)化之美,探索精妙算法的奧秘

貝葉斯優(yōu)化通過代理優(yōu)化方法來完成這項(xiàng)任務(wù)。代理函數(shù)(surrogate function)是指目標(biāo)函數(shù)的近似函數(shù),是基于采樣點(diǎn)形成的。

理解貝葉斯優(yōu)化之美,探索精妙算法的奧秘

代理函數(shù)可以幫助確定哪些點(diǎn)是可能的最小值。我們決定從這些有希望的區(qū)域中抽取更多樣本,并相應(yīng)地更新代理函數(shù)。

在每次迭代中繼續(xù)查看當(dāng)前的代理函數(shù),通過抽樣了解相關(guān)感興趣領(lǐng)域的更多信息并更新函數(shù)。注意,代理函數(shù)的計(jì)算成本要低得多。例如,y=x即是近似函數(shù),計(jì)算成本更高,即在一定范圍內(nèi)的y=arcsin((1-cos converx)/sin x))。

經(jīng)過一定次數(shù)的迭代,最終一定會(huì)得到一個(gè)全局最小值,除非函數(shù)的形狀非常奇怪(因?yàn)樗写蠓惹也环€(wěn)定的波動(dòng)),這時(shí)出現(xiàn)了一個(gè)比優(yōu)化更有意義的問題:你的數(shù)據(jù)出了什么問題?

讓我們來欣賞一下貝葉斯優(yōu)化之美。它不做任何關(guān)于函數(shù)的假設(shè)(除了首先假設(shè)它本身是可優(yōu)化的),不需要關(guān)于導(dǎo)數(shù)的信息,并且能夠巧妙地使用一個(gè)不斷更新的近似函數(shù)來使用常識(shí)推理,對(duì)原始目標(biāo)函數(shù)的高成本評(píng)估根本不是問題。這是一種基于替代的優(yōu)化方法。

所以,貝葉斯理論到底是什么呢?貝葉斯統(tǒng)計(jì)和建模的本質(zhì)是根據(jù)新信息更新之前的函數(shù)(先驗(yàn)函數(shù)),產(chǎn)生一個(gè)更新后的函數(shù)(后驗(yàn)函數(shù))。這正是代理優(yōu)化在本例中的作用,可以通過貝葉斯理論、公式和含義來進(jìn)行最佳表達(dá)。

仔細(xì)看看代理函數(shù),它通常由高斯過程表示,可以被視為一個(gè)骰子,返回適合給定數(shù)據(jù)點(diǎn)(例如sin、log)的函數(shù),而不是數(shù)字1到6。這個(gè)過程返回幾個(gè)函數(shù),這些函數(shù)都帶有概率。

理解貝葉斯優(yōu)化之美,探索精妙算法的奧秘

左:四個(gè)數(shù)據(jù)點(diǎn)的幾個(gè)高斯過程生成的函數(shù)。右:函數(shù)聚合。| 圖源:Oscar Knagg

使用GP而不是其他曲線擬合方法來建模代理函數(shù),是因?yàn)樗举|(zhì)上是貝葉斯的。GP是一個(gè)概率分布,類似一個(gè)事件的最終結(jié)果的分布(例如,1/2的概率拋硬幣),但是覆蓋了所有可能的函數(shù)。

例如,將當(dāng)前數(shù)據(jù)點(diǎn)集定義為40%可由函數(shù)a(x)表示,10%可由函數(shù)b(x)表示。通過將代理函數(shù)表示為概率分布,可以通過固有的概率貝葉斯過程更新信息。當(dāng)引入新信息時(shí),可能只有20%的數(shù)據(jù)可用函數(shù)a(x)表示。這些變化是由貝葉斯公式控制的。如果使用多項(xiàng)式回歸來擬合新的數(shù)據(jù)點(diǎn),難度就加大了,甚至不可能實(shí)現(xiàn)。

代理函數(shù)表示為概率分布,先驗(yàn)函數(shù)被更新為“采集函數(shù)”。該函數(shù)負(fù)責(zé)權(quán)衡探索和利用問題驅(qū)動(dòng)新點(diǎn)的命題進(jìn)行測試:

· “利用函數(shù)”試圖進(jìn)行取樣以便代理函數(shù)預(yù)測最合適的最小值,這是利用已知的可能的點(diǎn)。然而,如果我們已經(jīng)對(duì)某一區(qū)域進(jìn)行了足夠的探索,那么繼續(xù)利用已知的信息將不會(huì)有什么收獲。

· “探索函數(shù)”試圖在不確定性高的地方取樣。這就確保了空間中沒有什么主要區(qū)域是未知的——全局最小值可能恰好就在那里。

一個(gè)鼓勵(lì)多利用和少探索的采集函數(shù)將導(dǎo)致模型只停留在它首先找到的最小值(通常是局部的——“只去有光的地方”)。反之,模型則首先不會(huì)停留在局部或全局的最小值上,而是在微妙的平衡中尋求最佳結(jié)果。

用a(x)表示采集函數(shù),必須同時(shí)考慮探索和利用。常見的采集函數(shù)包括預(yù)期改進(jìn)和最大改進(jìn)概率,所有這些函數(shù)都度量了給定的先驗(yàn)信息(高斯過程)下,特定輸入值在未來獲得成功的概率。

結(jié)合以上所有內(nèi)容,貝葉斯優(yōu)化的原理如下:

初始化一個(gè)高斯過程的“代理函數(shù)”先驗(yàn)分布。

選擇多個(gè)數(shù)據(jù)點(diǎn)x,使運(yùn)行在當(dāng)前先驗(yàn)分布上的采集函數(shù)a(x)最大化。

對(duì)目標(biāo)成本函數(shù)c(x)中的數(shù)據(jù)點(diǎn)x進(jìn)行評(píng)估,得到結(jié)果y。

用新的數(shù)據(jù)更新高斯過程的先驗(yàn)分布,產(chǎn)生后驗(yàn)(在下一步將成為先驗(yàn))。

重復(fù)步驟2-5進(jìn)行多次迭代。

解釋當(dāng)前的高斯過程分布(成本極低)來找到全局最小值。

貝葉斯優(yōu)化就是把概率的概念建立在代理優(yōu)化的基礎(chǔ)之上。這兩種概念的結(jié)合創(chuàng)造了一個(gè)功能強(qiáng)大的系統(tǒng),應(yīng)用范圍廣闊,從制藥產(chǎn)品開發(fā)到自動(dòng)駕駛汽車都有相關(guān)應(yīng)用。

然而,在機(jī)器學(xué)習(xí)中最常見的是用于超參數(shù)優(yōu)化。例如,如果要訓(xùn)練一個(gè)梯度增強(qiáng)分類器,從學(xué)習(xí)率到最大深度到最小雜質(zhì)分割值,有幾十個(gè)參數(shù)。在本例中,x表示模型的超參數(shù),c(x)表示模型的性能,給定超參數(shù)x。

使用貝葉斯優(yōu)化的主要目的在于應(yīng)對(duì)評(píng)估輸出非常昂貴的情況。首先,需要用這些參數(shù)建立一個(gè)完整的樹集合,其次,它們需要經(jīng)過多次預(yù)測,這對(duì)于集合而言成本極高。

可以說,神經(jīng)網(wǎng)絡(luò)評(píng)估給定參數(shù)集的損失更快:簡單地重復(fù)矩陣乘法,這是非??斓?,特別是在專用硬件上。這就是使用梯度下降法的原因之一,它需要反復(fù)查詢來了解其發(fā)展方向。

圖源:unsplash

總結(jié)一下,我們的結(jié)論是:

· 代理優(yōu)化使用代理函數(shù)或近似函數(shù)來通過抽樣估計(jì)目標(biāo)函數(shù)。

· 貝葉斯優(yōu)化通過將代理函數(shù)表示為概率分布,將代理優(yōu)化置于概率框架中,并根據(jù)新信息進(jìn)行更新。

· 采集函數(shù)用于評(píng)估探索空間中的某個(gè)點(diǎn)將產(chǎn)生“良好”結(jié)果的概率,給定目前從先驗(yàn)已知的信息,平衡探索和利用的問題。

· 主要在評(píng)估目標(biāo)函數(shù)成本昂貴時(shí)使用貝葉斯優(yōu)化,通常用于超參數(shù)調(diào)優(yōu)。有許多像HyperOpt這樣的庫可以實(shí)現(xiàn)這個(gè)功能。

貝葉斯優(yōu)化之美,你感受到了嗎?
責(zé)編AJX

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 算法
    +關(guān)注

    關(guān)注

    23

    文章

    4612

    瀏覽量

    92891
  • 函數(shù)
    +關(guān)注

    關(guān)注

    3

    文章

    4331

    瀏覽量

    62618
  • 貝葉斯
    +關(guān)注

    關(guān)注

    0

    文章

    77

    瀏覽量

    12566
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    機(jī)器學(xué)習(xí):簡單的術(shù)語帶你領(lǐng)略優(yōu)化

    優(yōu)化是機(jī)器學(xué)習(xí)超參數(shù)優(yōu)化的常用技術(shù)之一,本文不會(huì)使用艱深的數(shù)學(xué)論證,而是通過簡單的術(shù)語帶你領(lǐng)略
    的頭像 發(fā)表于 10-12 15:34 ?2057次閱讀
    機(jī)器學(xué)習(xí):簡單的術(shù)語帶你領(lǐng)略<b class='flag-5'>貝</b><b class='flag-5'>葉</b><b class='flag-5'>斯</b><b class='flag-5'>優(yōu)化</b><b class='flag-5'>之</b><b class='flag-5'>美</b>

    機(jī)器學(xué)習(xí)的樸素講解

    秦剛剛的機(jī)器學(xué)習(xí)成長之路樸素
    發(fā)表于 05-15 14:41

    六大步驟學(xué)習(xí)算法

    學(xué)習(xí)算法的五個(gè)步驟
    發(fā)表于 07-16 16:57

    樸素法的優(yōu)缺點(diǎn)

    樸素法(1) 基礎(chǔ)概念
    發(fā)表于 08-05 11:32

    對(duì)樸素算法理解

    我對(duì)樸素算法理解
    發(fā)表于 05-15 14:13

    網(wǎng)絡(luò)精確推理算法的研究

    網(wǎng)絡(luò)是以概率理論為基礎(chǔ)的不確定知識(shí)表示模型,網(wǎng)絡(luò)推理的目的是得到隨機(jī)變量的概率分布。
    發(fā)表于 08-15 09:34 ?38次下載

    算法(bayesian)介紹

    是基于概率的一種算法,是Thomas Bayes:一位偉大的數(shù)學(xué)大師所創(chuàng)建的。
    發(fā)表于 06-01 17:58 ?0次下載

    如何理解公式

    前言 大家經(jīng)??吹降?b class='flag-5'>貝公式(Bayes)是寫成如下圖的形式,通常以P(A|B),P(B|A)的形式表示,雖然數(shù)學(xué)上看著簡單,那到底A,B是什么意思,應(yīng)該怎么去理解呢,然后怎么運(yùn)用于
    發(fā)表于 02-02 14:13 ?3921次閱讀
    如何<b class='flag-5'>理解</b><b class='flag-5'>貝</b><b class='flag-5'>葉</b><b class='flag-5'>斯</b>公式

    分類算法及其實(shí)現(xiàn)

     算法描述及實(shí)現(xiàn)根據(jù)樸素公式,每個(gè)測試樣
    發(fā)表于 02-02 15:54 ?7447次閱讀
    <b class='flag-5'>貝</b><b class='flag-5'>葉</b><b class='flag-5'>斯</b>分類<b class='flag-5'>算法</b>及其實(shí)現(xiàn)

    機(jī)器學(xué)習(xí)樸素

    學(xué)習(xí)過概率的人一定知道貝葉斯定理,在信息領(lǐng)域內(nèi)有著無與倫比的地位。算法是基于貝葉斯定理的一類算法,主要用來解決分類和回歸問題。人工智能
    發(fā)表于 05-29 09:01 ?894次閱讀

    統(tǒng)計(jì)的一個(gè)實(shí)踐案例讓你更快的對(duì)算法有更多的了解

    為了大家可以對(duì)算法有更多的了解,為大家整理過一篇關(guān)于
    的頭像 發(fā)表于 07-16 17:15 ?1.5w次閱讀

    一文秒懂優(yōu)化/Bayesian Optimization

    ,大神/優(yōu)化專家們求輕噴,覺得不錯(cuò)的記得幫點(diǎn)贊/在看/轉(zhuǎn)發(fā)幫擴(kuò)散哦!謝謝。 梳理這個(gè)問題有這么兩個(gè)原因: 1、在工業(yè)界,最近我看到不少同學(xué)在
    的頭像 發(fā)表于 04-09 11:26 ?1.7w次閱讀
    一文秒懂<b class='flag-5'>貝</b><b class='flag-5'>葉</b><b class='flag-5'>斯</b><b class='flag-5'>優(yōu)化</b>/Bayesian Optimization

    樸素分類 樸素算法的優(yōu)點(diǎn)

    樸素方法是在算法的基礎(chǔ)上進(jìn)行了相應(yīng)的簡化
    的頭像 發(fā)表于 10-02 17:14 ?9330次閱讀

    簡述對(duì)公式的基本理解

    簡述對(duì)公式的基本理解
    發(fā)表于 10-18 10:01 ?0次下載

    PyTorch教程22.9樸素

    電子發(fā)燒友網(wǎng)站提供《PyTorch教程22.9樸素.pdf》資料免費(fèi)下載
    發(fā)表于 06-06 09:22 ?0次下載
    PyTorch教程22.9<b class='flag-5'>之</b>樸素<b class='flag-5'>貝</b><b class='flag-5'>葉</b><b class='flag-5'>斯</b>