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

AIBigbull2050發表於2020-10-10
2020-10-09 01:10:07

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

編譯 | 蔣寶尚

編輯 | 陳彩嫻

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

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

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

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

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

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

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

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

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

1 貝葉斯最佳化之美

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

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

而貝葉斯最佳化是透過尋找“替代函式”完成任務,替代函式替代一詞指的是目標函式的近似。利用取樣點形成的替代函式,如上圖所示:

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

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

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

每一次迭代,都會繼續觀察當前的替代函式,透過取樣瞭解更多有希望的區域,並及時更新函式。值得一提的是,替代函式選擇的原則是“便宜”,例如y=x就是成本非常高的替代函式, y=arcsin((1-cos²x)/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、解釋當前的高斯過程分佈,從而找到全域性最小值。

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

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





來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69946223/viewspace-2725721/,如需轉載,請註明出處,否則將追究法律責任。

相關文章