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

2021-01-11 AI 科技評論

編譯 | 蔣寶尚

編輯 | 陳彩嫻

假設有一個函數F(x),已知計算成本很高,且解析式和導數未知。問:如何找到全局最小值?

毫無疑問,這是一個非常燒腦的任務,比機器學習所有的優化問題都燒腦,畢竟機器學習中的梯度下降就默認了導數可得。

在其他優化問題下,能夠採用的方法非常多,即使不用梯度下降,粒子群或模擬退火等非梯度優化方法也是解決方案之一。

再者,如果能夠以較低的計算成本得到輸入變量x的結果,那麼也能夠用簡單的網格搜索,從而得到良好的效果。

顯然,開頭提到的問題並不具備這些條件,主要來說有以下幾方面的限制:

1、計算昂貴。我們的優化方法必須在有限的輸入採樣的條件下工作。

2、導數未知。梯度下降以及它的各種變體仍然是深度學習中最受歡迎的方法,而梯度下降必須要求導數條件可得。其實,有了導數,優化器也有了方向感。可惜,本題導數不可得。

3、任務目標是全局最優值。這一任務即使把條件放寬到導數可知,也是非常困難的。所以,我們需要一種機制來避免陷入局部最小值。

如此困難,那麼有沒有解決方法?有的!它的名字叫做:貝葉斯優化。它能夠有效克服上述難點,並且試圖用最少的步驟找到全局最小值。

1

貝葉斯優化之美

先構建一個函數C(x),描述了在給定輸入x的情況下的成本開銷。在行話術語裡,這一函數也叫作 "目標函數",一般來說C(x)的表達式會隱藏在優化器之中。

而貝葉斯優化是通過尋找「替代函數」完成任務,替代函數替代一詞指的是目標函數的近似。利用採樣點形成的替代函數,如上圖所示:

有了替代函數,我們就可以確定哪些點是最有希望的全局最小值,然後「希望的區域」裡抽取更多的樣本,並相應的更新替代函數。

每一次迭代,都會繼續觀察當前的替代函數,通過採樣了解更多有希望的區域,並及時更新函數。值得一提的是,替代函數選擇的原則是「便宜」,例如y=x就是成本非常高的替代函數, y=arcsin((1-cosx)/sin x)則在某些情況下比較便宜。

經過一定次數的迭代後,肯定會找到全局最小值。如果找不到,那麼函數的形狀肯定非常奇怪(例如上下波動的幅度非常大),所以,在這種情況下,應該問一個比優化更好的問題:數據有什麼問題?

顯然,用替代函數的方法,滿足了開頭的三個條件:1.計算便宜;2.解析式不知;3.導數不知。

2

高斯分布表示替代函數

那麼,為什麼用替代函數的方法成為了貝葉斯優化呢?

其實,貝葉斯統計和建模的本質是根據新的信息更新先驗信念(prior belief) ,然後產生後驗信念(posterior belief)。

另外,替代函數通常由高斯過程表示。更形象一些,可以用骰子類比,只不過投擲出去之後,返回的是一些函數(例如sin、log),而不是1~6的數字。這些函數能夠擬合給定的數據,並且以某種概率被「擲」出來。

左:四個數據點的幾個高斯過程生成的函數;將四個函數聚合之後的函數。

那麼,為什麼使用高斯分布,而不用其他什麼的曲線進行擬合建模替代函數?其中一個理由是:高斯分布具有貝葉斯性質。高斯過程作為一種概率分布,是事件最終結果的分布,包含了所有可能的函數。

例如,我們先將當前的數據點集合可由函數a(x)和b(x)表示。其中,滿足a(x)的佔比為40%,滿足b(x)的佔比為10%。然後將替代函數表示為概率分布時,可以通過固有的概率貝葉斯過程,用新信息進行更新。或許當引入新信息時,滿足a(x)的數據變為20%,這種變化由貝葉斯公式控制。

替代函數(先驗)會被更新為習得函數(acquisition function),習得函數會在開發(Exploitation)和勘探(Exploration)之間做權衡。其中,開發是指的在模型預測的目標好的地方進行採樣,也就是利用已知的有希望的區域。但是,如果已經對某一區域進行了足夠的開發,那麼繼續利用已知的信息就不會有什麼收穫。

勘探指的是在不確定性高的地方進行採樣,這能查缺補漏,因為有可能全局最小值可能恰好就在之前沒有注意到的地方。

如果習得函數鼓勵更多的開發,比較少的探索,這會導致模型可能陷入局部最小值。相反,如果鼓勵探索,抑制開發,模型可能在最開始會略過全局最小值。所以,採集函數試圖找到微妙的平衡,才能產生良好的結果。

習得函數,必須同時考慮開發和探索。常見的習得函數包括預期改進和最大改進概率,所有這些函數都是在給定先驗信息(高斯過程)的情況下,衡量特定投入在未來可能得到回報的概率。

3

總結

基於以上,總結下貝葉斯優化的執行方式:

1、初始化一個高斯過程 "替代函數 "的先驗分布

2、選擇幾個數據點x,在當前先驗分布上運行的習得函數a(x)最大化。

3、評估目標成本函數c(x)中的數據點x,得到結果y。

4、用新的數據更新高斯過程先驗分布,以重複步驟2-5進行多次迭代。

5、產生一個後驗(它將成為下一步的先驗)

6、解釋當前的高斯過程分布,從而找到全局最小值。

貝葉斯優化就是概率論的思想和替代優化思想的結合。這兩種思想的結合已經有了很多應用,從醫藥產品開發到自動駕駛汽車都能看到它的身影。

但在機器學習中,最常見的是貝葉斯優化是用於超參數優化。但其他計算評估輸出比較昂貴的場景也同樣適用。

[博文視點贈書福利]

在10月1日頭條《秋天的第一本AI書:周志華親作森林書&賈揚清力薦天池書 | 贈書》留言區留言,談一談你對這兩本書的看法或有關的學習、競賽等經歷。

AI 科技評論將會在留言區選出15名讀者,送出《阿里雲天池大賽賽題解析——機器學習篇》10本,《集成學習:基礎與算法》5本,每人最多獲得其中一本。

活動規則:

1. 在留言區留言,留言點讚最高的前 15 位讀者將獲得贈書,活動結束後,中獎讀者將按照點讚排名由高到低的順序優先挑選兩本書中的其中一本,獲得贈書的讀者請添加AI科技評論官方微信(aitechreview)。

2. 留言內容會有篩選,例如「選我上去」等內容將不會被篩選,亦不會中獎。

3. 本活動時間為2020年10月1日 - 2020年10月8日(23:00),活動推送內僅允許中獎一次。

相關焦點

  • 貝葉斯優化之美:精妙算法背後的直覺
    當然,這個任務挺難的,比機器學習中的其他優化問題要難得多。例如,梯度下降可以獲得函數的導數,並利用數學捷徑來更快地計算表達式。另外,在某些優化場景中,函數的計算成本很低。如果可以在幾秒鐘內得到數百個輸入值x的變量結果,簡單的網格搜索效果會更好。另外,還可以使用大量非傳統的非梯度優化方法,如粒子群算法或模擬退火算法(simulated annealing)。
  • 數學之美:貝葉斯優化
    字幕組雙語原文:數學之美:貝葉斯優化英語原文: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,」研究人員說。
  • 數學背後的價值——讀《數學之美》
    數學可能是大多數學生最頭疼的科目,因為其要求抽象思維能力較高,也就是從枯燥的表達方式背後思考邏輯所在,並且這種邏輯會隨著情景的變化而不斷變化,這也導致了離開校園之後,多數人忽略了數學這門學科,韓寒說的數學學到初二就夠了,能算帳就行了,當然對於一般日常用是足夠的,但是對於想要與眾不同的人來說
  • 專欄| 貝葉斯學習與未來人工智慧
    機器之心專欄作者:鄧仰東 發射資本人人都喜歡美劇《生活大爆炸》。Sheldon 和朋友們的生活看似單調,但是自有其獨特的精彩。捧腹之餘,理工科出身的觀眾不免也想看看 Sheldon 到底在做怎樣的研究,特別是和我們自己相關的工作。果然,在第四季第 2 集中我們看到了下圖中的公式(用紅框標出)——貝葉斯定理!
  • 算法優化之道:避開鞍點
    實踐當中,許多流行的優化技術都是基於一階導的優化算法:它們只觀察梯度信息,並沒有明確計算Hessian矩陣。這樣的算法可能會陷入鞍點之中。在文章的剩下部分,我們首先會介紹,收斂於鞍點的可能性是很大的,因為大多數自然目標函數都有指數級的鞍點。然後,我們會討論如何對算法進行優化,讓它能夠嘗試去避開鞍點。
  • 基於人工智慧的貝葉斯分類算法
    基於人工智慧的貝葉斯分類算法  貝爾斯算法的應用:  1.百度實時路況  2.騰訊新聞分類  3.數據清洗:數據補全  4.數據歸類  5.垃圾郵箱  什麼是貝爾斯算法  貝爾斯算法就是貝葉斯所研究的逆向概率: 給出一個條件