貝葉斯優(yōu)化是機器學習超參數(shù)優(yōu)化的常用技術之一,本文不會使用艱深的數(shù)學論證,而是通過簡單的術語帶你領略貝葉斯優(yōu)化之美。
假設有一個函數(shù) f(x)。其計算成本很高,它不一定是分析表達式,而且你不知道它的導數(shù)。
你的任務:找到全局最小值。
當然,這是一個困難的任務,而且難度超過機器學習領域內(nèi)的其它優(yōu)化問題。梯度下降就是一種解決方案,它能通過函數(shù)的導數(shù),利用數(shù)學捷徑來實現(xiàn)更快的表達式評估。
或者,在某些優(yōu)化場景中,函數(shù)的評估成本較低。如果你能在幾秒內(nèi)得到輸入 x 的變體的數(shù)百種結果,那么使用簡單的網(wǎng)格搜索就能得到很好的結果。
或者,你還可以使用一整套非常規(guī)的非梯度優(yōu)化方法,比如粒子群或模擬退火。
不幸的是,當前的任務沒有這樣的便利。我們的優(yōu)化受到了多個方面的限制,其中最顯著的包括:
計算成本高。理想情況下,只要我們查詢函數(shù)的次數(shù)足夠多,我們就能在實質(zhì)上將它復現(xiàn)出來,但在實際情況下,輸入的采樣很有限,優(yōu)化方法必須在這種情況下也能有效工作。
導數(shù)未知。在深度學習以及其它一些機器學習算法中,梯度下降及其變體方法依然是最常用的方法,這當然是有原因的。知道了導數(shù),能讓優(yōu)化器獲得一定的方向感——我們沒有這種方向感。
我們需要找到全局最小值,這個任務即使對于梯度下降這種復雜精細的方法來說也很困難。我們的模型有時需要某種機制來避免被困于局部最小值。
解決方案:針對以最少的步驟尋找全局最小值的問題,貝葉斯優(yōu)化是一個優(yōu)雅的框架。
我們來構建一個假設的示例函數(shù) c(x),即一個模型在給定輸入 x 下的成本。當然,這個函數(shù)的實際情況對優(yōu)化器來說是未知的。假設 c(x) 的實際形狀如下:這就是所謂的「目標函數(shù)」。
貝葉斯優(yōu)化可通過一種名為「代理優(yōu)化(surrogate optimization)」的方法解決這一問題。在語境中,代理母親(代孕媽媽)是指同意為其他人生小孩的女人?;谕瑯拥恼Z境,代理函數(shù)是指目標函數(shù)的一種近似。
代理函數(shù)可基于采樣得到的數(shù)據(jù)點而構建。
我們可以根據(jù)代理函數(shù)來識別哪些點是有潛力的最小值。然后我們在這些有潛力的區(qū)域執(zhí)行更多采樣,然后據(jù)此更新代理函數(shù)。
在每一次迭代中,我們都要繼續(xù)觀察當前的代理函數(shù),通過采樣對相關區(qū)域有更多了解,然后更新函數(shù)。注意,代理函數(shù)可表示成評估成本低得多的數(shù)學形式(比如用 y=x 近似表示一個成本更高的函數(shù) y=arcsin((1-cos2x)/sin x) 的某個特定范圍)。
經(jīng)過一定數(shù)量的迭代之后,我們的目標是抵達全局最小值,除非該函數(shù)的形狀非常古怪(比如其中有大量大起大落的部分),這時候你就要問自己了:是不是數(shù)據(jù)有問題?
我們先來欣賞一下這種方法的美妙之處。它不會對函數(shù)做出任何假設(只要它是可優(yōu)化的既可)、不需要導數(shù)的相關信息、可通過巧妙地使用不斷更新的近似函數(shù)來執(zhí)行常識推理。對原本的目標函數(shù)的高成本估計也不再是問題。
這是一種基于代理的優(yōu)化方法。但它的貝葉斯性質(zhì)體現(xiàn)在哪里?
貝葉斯統(tǒng)計和建模和本質(zhì)是基于新信息先驗(之前的)信念,然后得到更新后的后驗(之后的)信念。這里的代理優(yōu)化就是這樣工作的,使得其能通過貝葉斯系統(tǒng)、公式和思想很好地表示。
我們來更仔細地看看這個代理函數(shù),其通常表示成高斯過程,這可被看作是一種擲骰子過程,返回的是與給定數(shù)據(jù)點擬合的函數(shù)(比如 sin 或 log),而不是數(shù)字 1 到 6. 這個過程會返回若干函數(shù)以及它們各自的概率。
左圖:基于 4 個數(shù)據(jù)點生成的幾個基于高斯過程的函數(shù);右圖:將這些函數(shù)聚合之后。
Oscar Knagg 這篇文章直觀地介紹了高斯過程的工作方式:https://towardsdatascience.com/an-intuitive-guide-to-gaussian-processes-ec2f0b45c71d
為什么要使用高斯過程來建模代理函數(shù),而不是使用其它曲線擬合方法?這是因為高斯過程本質(zhì)上就是貝葉斯模式的。高斯過程是一種概率分布,就像一個事件的最終結果分布一樣(比如擲硬幣的 1/2 概率),只不過高斯過程是在所有可能的函數(shù)上的分布。
舉個例子,我們也許可以定義當前的數(shù)據(jù)點集可由函數(shù) a(x) 表示 40%、由函數(shù) b(x) 表示 10% 等等。通過將代理函數(shù)表示成概率分布,可使用新信息,通過固有的概率貝葉斯過程來完成更新。也許當新信息被引入時,a(x) 函數(shù)又只能表示 20% 的數(shù)據(jù)了。這樣的變化受貝葉斯公式的約束。
這會使得類似于新數(shù)據(jù)點的多項式回歸擬合這樣的目標難以完成甚至不可能完成。
表示成先驗概率分布的代理函數(shù)會通過一個「獲取函數(shù)(acquisition function)」而更新。這個函數(shù)負責在探索與利用權衡的基礎上,對提議的新點進行測試。
利用的目標是采樣代理模型能很好地預測目標函數(shù)的地方。這會用到已知的有潛力的位置。但是,如果我們已經(jīng)充分探索了某個特定的區(qū)域,再繼續(xù)利用已知信息也收益不大了。
探索的目標是采樣不確定度較高的位置。這能確??臻g中不留下未探索的主要區(qū)域——全局最小值可能就藏在此處。
太過重視利用而不太重視探索的獲取函數(shù)會讓模型駐留于其發(fā)現(xiàn)的第一個最小值(通常是局部最小值)。反過來,重探索而輕利用的獲取函數(shù)則一開始就不會留在某個最小值,不管是局部最小值還是全局最小值。因此,為了得到很好的結果,需要達到微妙精巧的平衡。
獲取函數(shù) a(x) 必須兼顧探索和利用。常見的獲取函數(shù)包括預期提升和提升的最大可能性,所有這些衡量的都是給定有關先驗(高斯過程)的信息下,一個特定輸入在未來產(chǎn)生回報的概率。
我們歸總一下這些知識點。貝葉斯優(yōu)化的執(zhí)行方式為:
初始化一個高斯過程「代理函數(shù)」先驗分布。
選擇幾個數(shù)據(jù)點 x 使得獲取函數(shù) a(x) 在當前先驗分布上的結果是最大的。
在目標成本函數(shù) c(x) 中評估數(shù)據(jù)點 x 并獲取其結果 y。
使用新數(shù)據(jù)更新高斯過程先驗分布,得到一個后驗分布(這將作為下一步的先驗分布)。
重復第 2-5 步并多次迭代。
解讀當前的高斯過程分布(成本很低),找到全局最小值。
貝葉斯優(yōu)化的核心是將概率思想融入到代理優(yōu)化思想之中。這兩種思想組合到一起,能創(chuàng)造出一種強大的系統(tǒng)。該系統(tǒng)具有很多應用場景,從醫(yī)藥產(chǎn)品開發(fā)到自動駕駛汽車。
不過,貝葉斯優(yōu)化最常見的應用領域還是機器學習,尤其是超參數(shù)優(yōu)化任務。舉個例子,如果我們要訓練一個梯度上升分類器,則會遇到幾十個超參數(shù),從學習率到最大深度再到最小不純度拆分值。在這里,x 表示模型的超參數(shù),c(x) 表示模型在給定超參數(shù) x 下的表現(xiàn)。
使用貝葉斯優(yōu)化的主要動機是:在有些場景中,評估輸出的成本非常高。首先,需要使用這些參數(shù)構建一整個集成樹;其次,它們需要運行并完成幾次預測,這對于集成方法來說成本高昂。
可以這樣說,在給定一組參數(shù)的條件下,使用神經(jīng)網(wǎng)絡來評估損失函數(shù)的速度更快:只是重復執(zhí)行矩陣乘法,這是非??斓模绕涫鞘褂脤S糜嬎阌布r。這是使用梯度下降的原因之一,也就是反復查詢以找到前進的方向。
總結
代理優(yōu)化是使用一個代理函數(shù)或近似函數(shù)來通過采樣估計目標函數(shù)。
貝葉斯優(yōu)化是通過將代理函數(shù)表示成概率分布而將代理優(yōu)化放入一個概率框架中,然后再使用新信息更新這個分布。
獲取函數(shù)則是用于基于已知的先驗,評估利用空間中的某個特定點得到「好」結果的概率。其關鍵在于探索與利用的平衡。
貝葉斯優(yōu)化的主要使用場景是目標函數(shù)評估成本高的任務,比如超參數(shù)調(diào)節(jié)。有一些用于該任務的軟件庫,比如 HyperOpt。
編輯:hfy
-
函數(shù)
+關注
關注
3文章
4381瀏覽量
64889 -
貝葉斯
+關注
關注
0文章
77瀏覽量
12765 -
機器學習
+關注
關注
66文章
8503瀏覽量
134622
發(fā)布評論請先 登錄
使用PyMC3包實現(xiàn)貝葉斯線性回歸
機器學習之樸素貝葉斯應用教程

如何理解貝葉斯公式

機器學習之樸素貝葉斯
貝葉斯統(tǒng)計的一個實踐案例讓你更快的對貝葉斯算法有更多的了解
帶你入門常見的機器學習分類算法——邏輯回歸、樸素貝葉斯、KNN、SVM、決策樹
一文秒懂貝葉斯優(yōu)化/Bayesian Optimization

評論