貝葉斯優化之美:精妙算法背後的直覺

2021-01-11 讀芯術

全文共2913字,預計學習時長8分鐘

圖源:unsplash

有一個函數f(x),它的計算成本很高,甚至不一定是解析表達式,而且導數未知。你的任務是,找出全局最小值。當然,這個任務挺難的,比機器學習中的其他優化問題要難得多。例如,梯度下降可以獲得函數的導數,並利用數學捷徑來更快地計算表達式。

另外,在某些優化場景中,函數的計算成本很低。如果可以在幾秒鐘內得到數百個輸入值x的變量結果,簡單的網格搜索效果會更好。另外,還可以使用大量非傳統的非梯度優化方法,如粒子群算法或模擬退火算法(simulated annealing)。

但是,當前的任務沒有還沒這麼高級。優化層面有限,主要包括:

· 計算成本高。理想情況下,我們能夠對函數進行足夠的查詢,從而從本質上複製它,但是採用的優化方法必須在有限的輸入採樣中才能起作用。

· 導數未知。梯度下降及其風格仍然是最流行的深度學習方法,甚至有時在其他機器學習算法中也備受歡迎的原因所在。導數給了優化器方向感,不過我們沒有導數。

· 需要找出全局最小值,即使對於梯度下降這樣精細的方法,這也是一項困難的任務。模型需要某種機制來避免陷入局部最小值。

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

構造一個函數c(x)的假設例子,或者給定輸入值x的模型的成本。當然,這個函數看起來是什麼樣子對優化器是隱藏的——這就是c(x)的真實形狀,行話中被稱為「目標函數」。

貝葉斯優化通過代理優化方法來完成這項任務。代理函數(surrogate function)是指目標函數的近似函數,是基於採樣點形成的。

代理函數可以幫助確定哪些點是可能的最小值。我們決定從這些有希望的區域中抽取更多樣本,並相應地更新代理函數。

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

經過一定次數的迭代,最終一定會得到一個全局最小值,除非函數的形狀非常奇怪(因為它有大幅度且不穩定的波動),這時出現了一個比優化更有意義的問題:你的數據出了什麼問題?

讓我們來欣賞一下貝葉斯優化之美。它不做任何關於函數的假設(除了首先假設它本身是可優化的),不需要關於導數的信息,並且能夠巧妙地使用一個不斷更新的近似函數來使用常識推理,對原始目標函數的高成本評估根本不是問題。這是一種基於替代的優化方法。

所以,貝葉斯理論到底是什麼呢?貝葉斯統計和建模的本質是根據新信息更新之前的函數(先驗函數),產生一個更新後的函數(後驗函數)。這正是代理優化在本例中的作用,可以通過貝葉斯理論、公式和含義來進行最佳表達。

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

左:四個數據點的幾個高斯過程生成的函

使用GP而不是其他曲線擬合方法來建模代理函數,是因為它本質上是貝葉斯的。GP是一個概率分布,類似一個事件的最終結果的分布(例如,1/2的概率拋硬幣),但是覆蓋了所有可能的函數。

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

代理函數表示為概率分布,先驗函數被更新為「採集函數」。該函數負責權衡探索和利用問題驅動新點的命題進行測試:

· 「利用函數」試圖進行取樣以便代理函數預測最合適的最小值,這是利用已知的可能的點。然而,如果我們已經對某一區域進行了足夠的探索,那麼繼續利用已知的信息將不會有什麼收穫。

· 「探索函數」試圖在不確定性高的地方取樣。這就確保了空間中沒有什麼主要區域是未知的——全局最小值可能恰好就在那裡。

一個鼓勵多利用和少探索的採集函數將導致模型只停留在它首先找到的最小值(通常是局部的——「只去有光的地方」)。反之,模型則首先不會停留在局部或全局的最小值上,而是在微妙的平衡中尋求最佳結果。

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

結合以上所有內容,貝葉斯優化的原理如下:

· 初始化一個高斯過程的「代理函數」先驗分布。

· 選擇多個數據點x,使運行在當前先驗分布上的採集函數a(x)最大化。

· 對目標成本函數c(x)中的數據點x進行評估,得到結果y。

· 用新的數據更新高斯過程的先驗分布,產生後驗(在下一步將成為先驗)。

· 重複步驟2-5進行多次迭代。

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

貝葉斯優化就是把概率的概念建立在代理優化的基礎之上。這兩種概念的結合創造了一個功能強大的系統,應用範圍廣闊,從製藥產品開發到自動駕駛汽車都有相關應用。

然而,在機器學習中最常見的是用於超參數優化。例如,如果要訓練一個梯度增強分類器,從學習率到最大深度到最小雜質分割值,有幾十個參數。在本例中,x表示模型的超參數,c(x)表示模型的性能,給定超參數x。

使用貝葉斯優化的主要目的在於應對評估輸出非常昂貴的情況。首先,需要用這些參數建立一個完整的樹集合,其次,它們需要經過多次預測,這對於集合而言成本極高。

可以說,神經網絡評估給定參數集的損失更快:簡單地重複矩陣乘法,這是非常快的,特別是在專用硬體上。這就是使用梯度下降法的原因之一,它需要反覆查詢來了解其發展方向。

圖源:unsplash

總結一下,我們的結論是:

· 代理優化使用代理函數或近似函數來通過抽樣估計目標函數。

· 貝葉斯優化通過將代理函數表示為概率分布,將代理優化置於概率框架中,並根據新信息進行更新。

· 採集函數用於評估探索空間中的某個點將產生「良好」結果的概率,給定目前從先驗已知的信息,平衡探索和利用的問題。

· 主要在評估目標函數成本昂貴時使用貝葉斯優化,通常用於超參數調優。有許多像HyperOpt這樣的庫可以實現這個功能。

貝葉斯優化之美,你感受到了嗎?

留言點讚關注

我們一起分享AI學習與發展的乾貨

如轉載,請後臺留言,遵守轉載規範

相關焦點

  • 巧妙算法背後的直覺:淺談貝葉斯優化之美
    它的名字叫做:貝葉斯優化。它能夠有效克服上述難點,並且試圖用最少的步驟找到全局最小值。1貝葉斯優化之美先構建一個函數C(x),描述了在給定輸入x的情況下的成本開銷。在行話術語裡,這一函數也叫作 "目標函數",一般來說C(x)的表達式會隱藏在優化器之中。而貝葉斯優化是通過尋找「替代函數」完成任務,替代函數替代一詞指的是目標函數的近似。
  • 數學之美:貝葉斯優化
    字幕組雙語原文:數學之美:貝葉斯優化英語原文:The Beauty of Bayesian Optimization, Explained in Simple Terms翻譯:季一帆、Icarus、問題定義:給定函數f(x),該函數計算成本高、甚至可能不是解析表達式,同時假定函數導數未知。
  • 擬合目標函數後驗分布的調參利器:貝葉斯優化
    本文由機器之心編輯,「機器之心」專注生產人工智慧專業性內容,適合開發者和從業者閱讀參考。點擊右上角即刻關注。如何優化機器學習的超參數一直是一個難題,我們在模型訓練中經常需要花費大量的精力來調節超參數而獲得更好的性能。因此,貝葉斯優化利用先驗知識逼近未知目標函數的後驗分布從而調節超參數就變得十分重要了。
  • 機器學習算法之樸素貝葉斯
    一、貝葉斯定理貝葉斯定理由英國數學家貝葉斯(Thomas Bayes 1702-1761)發展用來描述兩個條件概率之間的關係在B條件下A發生的概率: P(A∣B)=P(AB)/P(B)在A條件下B發生的概率: P(B∣A)=P(AB)/P
  • 數學之美——貝葉斯網絡 (Bayesian Networks)
    我們可以把上述的有向圖看成一個網絡,它就是貝葉斯網絡。其中每個圓圈表示一個狀態。當然,這些關係可以有一個量化的可信度 (belief),用一個概率描述。我們可以通過這樣一張網絡估計出一個人的心血管疾病的可能性。在網絡中每個節點概率的計算,可以用貝葉斯公式來進行,貝葉斯網絡因此而得名。由於網絡的每個弧有一個可信度,貝葉斯網絡也被稱作信念網絡 (belief networks)。和馬爾可夫鏈類似,貝葉斯網絡中的每個狀態值取決於前面有限個狀態。
  • 具有貝葉斯優化的XGBoost和隨機森林
    作者 | Edwin Lisowski 編譯 | CDA數據分析師 XGBoost and Random Forest with Bayesian Optimisation在這篇文章中,我們將介紹帶有貝葉斯優化算法的兩種流行的算法即XGBoost
  • 詳解凸優化、圖神經網絡、強化學習、貝葉斯方法等四大主題
    2020-11-23 20:23:27 來源: 算法與數學之美 舉報
  • 基於貝葉斯定理的算法——樸素貝葉斯分類
    ,這兩種算法在數據量較大時複雜度很高,一般只用在數據量較小的情況下,這樣數據可以放入內存中運行。不過今天我們介紹的樸素貝葉斯分類器通過獨立假設簡化了概率的計算,節省了內存,可以很好地用於數據量大的情況。下面我們首先來了解這一算法的數理背景——貝葉斯定理。這一算法是由我們在概率論中學到的貝葉斯定理延伸出來的。我們知道貝葉斯公式為:其中,
  • 算法之美:充足的先驗知識加上小數據也可以幫助人們進行準確預測
    本文節選自《算法之美:指導工作與生活的算法》中信出版集團,2018年05月出版三個預測法則——相乘、平均和相加適用於日常生活的各個方面。在這種情況下,人們一般都非常善於使用正確的預測法則。然後,他們比較了人們所預測的結果和應用貝葉斯法則的結果。事實證明,人們所做的預測與貝葉斯法則所得出的預測非常接近。直覺上,人們做出不同類型的預測也是遵循在現實世界中的不同分布——冪律、正態和厄蘭分布。換句話說,雖然你可能不知道或不清楚某種情況是需要用相乘法則、平均法則,還是相加法則,但你每天做的預測往往隱含在這些分布中,它反映了日常生活中出現的不同情況,以及不同的行為方式。
  • 貝葉斯定理:AI 不只是個理科生 | 贈書
    要回答這些問題,我們先要研究「貝葉斯定理」。因為它是隱藏在A.I.背後的智能基石。一個又一個的節點,一個又一個的概率,都來源於人類的先驗知識,有效知識越多,貝葉斯網絡展示的力量越讓人震撼。今天一場轟轟烈烈的「貝葉斯革命」正在AI界發生:貝葉斯公式已經滲入到工程師的骨子裡,貝葉斯分類算法也成為主流算法。在很多工程師眼中,貝葉斯定理就是AI發展的基石。
  • 數學之美:貝葉斯公式估算災備切換概率
    數學之美,在於使人一頭霧水詩歌之美,在於煽動男女出軌年少無知,不懂你的美狗日的中年,開始寫詩,編程,發現你的美災備,這麼冷門的詞彙,很多人覺得無趣然,災備也可以很有意思最近剛好在看數學相關的書看到一些有趣的理論,前面結合Python和自然語言處理用了一些今天繼續,
  • 樸素貝葉斯算法及其應用
    在這篇文章中,我們將嘗試以簡單的方式理解什麼是樸素貝葉斯,它是如何工作的以及我們如何應用樸素貝葉斯分類器將文本或評論分類為「肯定」或「否定」,我們將通過電影評論案例進行研究。什麼是樸素貝葉斯?貝葉斯定理是由Reverend Bayes開發的最早的概率推理算法之一(他過去常常嘗試推斷上帝的存在)並且對於某些用例仍然表現得非常好。
  • 聚類算法簡析(一):樸素貝葉斯算法的場景案例
    本文作者通過一些場景案例,帶領大家了解一下樸素貝葉斯算法作為聚類算法中的一員,如何來區分各類數組。通過一組參數模型來區分互斥群組中的個體十分常見,我們可以使用樸素貝葉斯分析來應用於這種場景,取決於模型的相似矩陣算法常常運用在估算決策論框架的矩陣中。
  • 【乾貨】2018值得嘗試的無參數全局優化新算法,所有測試取得最優...
    算法不會設置這些參數,而是需要你去決定它們的值。如果不把這些參數設置為「良好」的值,這個算法就不會起作用。那麼你會怎麼做呢?下面我列出了我見過的人們的做法,從最常見到最不常見排序:  猜測和檢查:聽從你的直覺,選擇感覺不錯的數字,看看它們是否工作。一直持續這樣做,直到厭倦。  網格搜索:讓計算機嘗試在一定範圍內均勻分布的一組值。
  • 貝葉斯算法可降低應用雙面光伏組件的電站LCOE
    他們提出的這一模型以貝葉斯優化方法為基礎。該方法基於貝葉斯定理——這個簡單的數學公式能夠用於計算條件概率,並根據添加的新的相關證據對現有結論加以更新。科學家們應用該算法計算了位於西雅圖(暖溫帶地中海氣候)、達拉斯(溼潤的亞熱帶氣候)、莫哈韋沙漠(炎熱的沙漠氣候)和古巴哈瓦那(熱帶氣候)的四個太陽能電站附近三處地點的年發電量。「我們計算了最佳的組件傾角和組件距離,得出了各種組件與土地成本比的最小LCOE,」研究人員說。
  • 數學背後的價值——讀《數學之美》
    數學可能是大多數學生最頭疼的科目,因為其要求抽象思維能力較高,也就是從枯燥的表達方式背後思考邏輯所在,並且這種邏輯會隨著情景的變化而不斷變化,這也導致了離開校園之後,多數人忽略了數學這門學科,韓寒說的數學學到初二就夠了,能算帳就行了,當然對於一般日常用是足夠的,但是對於想要與眾不同的人來說
  • 算法優化之道:避開鞍點
    實踐當中,許多流行的優化技術都是基於一階導的優化算法:它們只觀察梯度信息,並沒有明確計算Hessian矩陣。這樣的算法可能會陷入鞍點之中。在文章的剩下部分,我們首先會介紹,收斂於鞍點的可能性是很大的,因為大多數自然目標函數都有指數級的鞍點。然後,我們會討論如何對算法進行優化,讓它能夠嘗試去避開鞍點。
  • 基於人工智慧的貝葉斯分類算法
    基於人工智慧的貝葉斯分類算法  貝爾斯算法的應用:  1.百度實時路況  2.騰訊新聞分類  3.數據清洗:數據補全  4.數據歸類  5.垃圾郵箱  什麼是貝爾斯算法  貝爾斯算法就是貝葉斯所研究的逆向概率: 給出一個條件
  • 直覺去了哪裡?
    30年前這一問題被美國一知名雜誌刊登後引發了熱議,因為直覺告訴我們換不換都是一樣的,但答題人選擇換。數學愛好者、專業人士紛紛加入討論,進行了一場曠日持久的論戰,還發展出了諸多變種。現在讓我們來回顧一下這道經典問題,來看看直覺到底哪出錯了,信息又是如何影響結果的。
  • 樸素貝葉斯算法及應用案例
    作者:陳千鶴 來源:人工智慧學習圈本篇主要介紹樸素貝葉斯算法及應用案例。以Tatinic數據集為例進行應用,同時介紹數據處理,數據集的劃分,算法效果評估等內容。一、簡介樸素貝葉斯法是基於貝葉斯定理與特徵條件獨立假設的分類方法 。