編譯 | 蔣寶尚
編輯 | 陳彩嫻
假設有一個函數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),活動推送內僅允許中獎一次。