當前位置:
首頁 > 新聞 > 擬合目標函數後驗分布的調參利器:貝葉斯優化

擬合目標函數後驗分布的調參利器:貝葉斯優化

機器之心編譯

參與:蔣思源


如何優化機器學習的超參數一直是一個難題,我們在模型訓練中經常需要花費大量的精力來調節超參數而獲得更好的性能。因此,貝葉斯優化利用先驗知識逼近未知目標函數的後驗分布從而調節超參數就變得十分重要了。本文簡單介紹了貝葉斯優化的基本思想和概念,更詳細的推導可查看文末提供的論文。

超參數

超參數是指模型在訓練過程中並不能直接從數據學到的參數。比如說隨機梯度下降演算法中的學習速率,出於計算複雜度和演算法效率等,我們並不能從數據中直接學習一個比較不錯的學習速度。但學習速率卻又是十分重要的,較大的學習速率不易令模型收斂到較合適的較小值解,而較小的學習速率卻又常常令模型的訓練速度大大降低。對於像學習速率這樣的超參數,我們通常需要在訓練模型之前設定。因此,對於超參數眾多的複雜模型,微調超參數就變得十分痛苦。

超參數的選擇同樣對深度神經網路十分重要,它能大大提高模型的性能和精度。尋找優良的超參數通常需要解決這兩個問題:

  1. 如何高效地搜索可能的超參數空間,在實踐中至少會有一些超參數相互影響。

  2. 如何管理調參的一系列大型試驗。

簡單方法調參

在介紹如何使用貝葉斯優化進行超參數調整前,我們先要了解調參的樸素方法。

執行超參數調整的傳統方法是一種稱之為網格搜索(Grid search)的技術。網格搜索本質上是一種手動指定一組超參數的窮舉搜索法。假定我們的模型有兩個超參數 learning_rate 和 num_layes,表格搜索要求我們創建一個包含這兩個超參數的搜索表,然後再利用表格中的每一對(learning_rate,num_layes)超參數訓練模型,並在交叉驗證集或單獨的驗證集中評估模型的性能。網格搜索最後會將獲得最佳性能的參數組作為最優超參數。

網格搜索窮舉地搜索整個超參數空間,它在高維空間上並不起作用,因為它太容易遇到維度災難了。而對於隨機搜索來說,進行稀疏的簡單隨機抽樣並不會遇到該問題,因此隨機搜索方法廣泛地應用於實踐中。但是隨機搜索並不能利用先驗知識來選擇下一組超參數,這一缺點在訓練成本較高的模型中尤為突出。因此,貝葉斯優化能利用先驗知識高效地調節超參數。

貝葉斯優化的思想

貝葉斯優化是一種近似逼近的方法。如果說我們不知道某個函數具體是什麼,那麼可能就會使用一些已知的先驗知識逼近或猜測該函數是什麼。這就正是後驗概率的核心思想。本文的假設有一系列觀察樣本,並且數據是一條接一條地投入模型進行訓練(在線學習)。這樣訓練後的模型將顯著地服從某個函數,而該未知函數也將完全取決於它所學到的數據。因此,我們的任務就是找到一組能最大化學習效果的超參數。

具體來說在 y=mx+c 中,m 和 c 是參數,y 和 x 分別為標註和特徵,機器學習的任務就是尋找合適的 m 和 c 構建優秀的模型。

貝葉斯優化可以幫助我們在眾多模型中選取性能最優的模型。雖然我們可以使用交叉驗證方法尋找更好的超參數,但是我們不知道需要多少樣本才能從一些列候選模型中選出性能最好的模型。這就是為什麼貝葉斯方法能通過減少計算任務而加速尋找最優參數的進程。同時貝葉斯優化還不依賴於人為猜測所需的樣本量為多少,這種最優化技術是基於隨機性和概率分布而得出的。

簡單來說,當我們饋送第一個樣本到模型中的時候,模型會根據該樣本點構建一個直線。饋送第二個樣本後,模型將結合這兩個點並從前面的線出發繪製一條修正線。再到第三個樣本時,模型繪製的就是一條非線性曲線。當樣本數據增加時,模型所結合的曲線就變得更多。這就像統計學裡面的抽樣定理,即我們從樣本參數出發估計總體參數,且希望構建出的估計量為總體參數的相合、無偏估計。

下面我們繪製了另外一張非線性目標函數曲線圖。我們發現對於給定的目標函數,在饋送了所有的觀察樣本後,它將搜尋到最大值。即尋找令目標函數最大的參數(arg max)。

擬合目標函數後驗分布的調參利器:貝葉斯優化

我們的目標並不是使用儘可能多的數據點完全推斷未知的目標函數,而是希望能求得最大化目標函數值的參數。所以我們需要將注意力從確定的曲線上移開。當目標函數組合能提升曲線形成分布時,其就可以稱為採集函數(Acquisition funtion),這就是貝葉斯優化背後的思想。

因此,我們的目標首要就是確定令目標函數取最大值的參數,其次再選擇下一個可能的最大值,該最大值可能就是在函數曲線上。

擬合目標函數後驗分布的調參利器:貝葉斯優化

上圖是許多隨機集成曲線,它們都由三個黑色的觀察樣本所繪製而出。我們可以看到有許多波動曲線,它表示給定一個採樣點,下一個採樣點可能位於函數曲線的範圍。從下方的藍色區域可以看出,分布的方差是由函數曲線的均值得出。

因為我們疊加未知函數曲線的觀察值而進行估計,所以這是一種無雜訊的優化方法。但是當我們需要考慮雜訊優化方法時,我們未知的函數將會因為雜訊誤差值而輕微地偏離觀察樣本點。

貝葉斯優化的目標

我們一般希望能選取獲得最優性能的超參數,因此超參數選擇就可以看作為一種最優化問題,即最優化超參數值為自變數的性能函數 f(x)。我們可以形式化為以下表達式:

擬合目標函數後驗分布的調參利器:貝葉斯優化

許多優化設定都假設目標函數 f(x) 是已知的數學形式,同時還假定它為容易評估的凸函數。但是對於調參來說,目標函數是未知的,且它為計算昂貴的非凸函數。所以常用的優化方法很難起到作用,我們需要專門的貝葉斯優化方法來解決這一類問題。

貝葉斯優化方法在目標函數未知且計算複雜度高的情況下極其強大,該演算法的基本思想是基於數據使用貝葉斯定理估計目標函數的後驗分布,然後再根據分布選擇下一個採樣的超參數組合。

貝葉斯優化充分利用了前一個採樣點的信息,其優化的工作方式是通過對目標函數形狀的學習,並找到使結果向全局最大提升的參數。貝葉斯優化根據先驗分布,假設採集函數而學習到目標函數的形狀。在每一次使用新的採樣點來測試目標函數時,它使用該信息來更新目標函數的先驗分布。然後,演算法測試由後驗分布給出的最值可能點。

高斯過程

為了使用貝葉斯優化,我們需要一種高效的方式來對目標函數的分布建模。這比直接對真實數字建模要簡單地多,因為我們只需要用一個置信的分布對 f(x) 建模就能求得最優解。如果 x 包含連續型超參數,那麼就會有無窮多個 x 來對 f(x) 建模,即對目標函數構建一個分布。對於這個問題,高斯過程(Gaussian Process)實際上生成了多維高斯分布,這種高維正態分布足夠靈活以對任何目標函數進行建模。

擬合目標函數後驗分布的調參利器:貝葉斯優化

逼近目標函數的高斯過程。

在上圖中,假定我們的目標函數(虛線)未知,該目標函數是模型性能和超參數之間的實際關係。但我們的目標僅僅是搜索令性能達到最優的超參數組合。

開發和探索之間的權衡

一旦我們對目標函數建了模,那麼我們就能抽取合適的樣本嘗試計算,這就涉及到了開發(exploitation)和探索(exploration)之間的權衡,即模型到底是在當前最優解進一步開發,還是嘗試探索新的可能解。

對於貝葉斯優化,一旦它找到了局部最優解,那麼它就會在這個區域不斷採樣,所以貝葉斯優化很容易陷入局部最優解。為了減輕這個問題,貝葉斯優化演算法會在探測和開發 (exploration and exploitation) 中找到一個平衡點。

探測(exploration)就是在還未取樣的區域獲取採樣點。開發(exploitation)就是根據後驗分布,在最可能出現全局最優解的區域進行採樣。我們下一個選取點(x)應該有比較大的均值(開發)和比較高的方差(探索)。

擬合目標函數後驗分布的調參利器:貝葉斯優化

選擇下一個可能的最大點,並在方差和均值間權衡。因為我們在高方差分布中搜索下一點,這意味著探測新的點 x。高均值意味著我們在較大偏移/偏差下選擇下一點(x)。

在給定前 t 個觀察樣本,我們可以利用高斯過程計算出觀察值的可能分布,即:

擬合目標函數後驗分布的調參利器:貝葉斯優化

μ和σ的表達式如下,其中 K 和 k 是由正定核推導出的核矩陣和向量。具體來說,K_ij=k(x_i,x_j) 為 t 乘 t 階矩陣,k_i=k(x_i,x_t+1) 為 t 維向量。最後,y 為觀察樣本值的 t 維向量。

擬合目標函數後驗分布的調參利器:貝葉斯優化

[Image: file:///-/blob/RYFAAA1FF4g/9ESrR8DT3ddY6ssP9w-aMQ] 上面的概率分布表明在擬合數據後,樣本點 x 的預測值 y 成高斯分布。並且該高斯分布有樣本均值和樣本方差這兩個統計量。現在為了權衡開發和探索,我們需要選擇下一點到底是均值較高(開發)還是方差較大(探索)。

採集函數

為了編碼開發探索之間的權衡,我們需要定義一個採集函數(Acquisition function)而度量給定下一個採樣點,到底它的效果是怎樣的。因此我們就可以反覆計算採集函數的極大值而尋找下一個採樣點。

擬合目標函數後驗分布的調參利器:貝葉斯優化

隨著樣本增加,不同的採集函數和曲線擬合的對比。

上置信邊界

也許最簡單的採集函數就是採取有較高期望的樣本點。給定參數 beta,它假設該樣本點的值為均值加上 beta 倍標準差,即:

擬合目標函數後驗分布的調參利器:貝葉斯優化

通過不同的 beta 值,我們可以令演算法傾向於開發還是探索。

提升的概率

提升採集函數概率背後的思想,即我們在最大化提升概率(MPI)的基礎上選擇下一個採樣點。

擬合目標函數後驗分布的調參利器:貝葉斯優化

高斯過程的提升概率。

在上圖中,最大觀察值是在 x*上的 y*,綠色區域給出了在 x_3 點的提升概率,而 x_1 和 x_2 點的提升概率非常小。因此,在 x_3 點抽樣可能會在 y*的基礎上得到提升。

擬合目標函數後驗分布的調參利器:貝葉斯優化

其中Φ(x) 為標準正態分布函數。

貝葉斯優化過程

擬合目標函數後驗分布的調參利器:貝葉斯優化

上圖可以直觀地解釋貝葉斯優化。其中紅色的曲線為實際的目標函數,並且我們並不知道該函數確切的表達式。所以我們希望使用高斯過程逼近該目標函數。通過採樣點(上圖有 4 個抽樣點),我們能夠得出直觀或置信曲線以擬合觀察到的樣本點。所以上圖綠色的區域為置信域,即目標曲線最有可能處於的區域。從上面的先驗知識中,我們確定了第二個點(f+)為最大的樣本觀察值,所以下一個最大點應該要比它大或至少與之相等。因此,我們繪製出一條藍線,並且下一個最大點應該位於這一條藍線之上。因此,下一個採樣在交叉點 f+和置信域之間,我們能假定在 f+點以下的樣本是可以丟棄的,因為我們只需要搜索令目標函數取極大值的參數。所以現在我們就縮小了觀察區域,我們會迭代這一過程,直到搜索到最優解。下圖是貝葉斯優化演算法的偽代碼:

擬合目標函數後驗分布的調參利器:貝葉斯優化

論文:Taking the Human Out of the Loop: A Review of Bayesian Optimization

擬合目標函數後驗分布的調參利器:貝葉斯優化

地址:http://ieeexplore.ieee.org/document/7352306/

摘要:大數據應用通常和複雜系統聯繫到一起,這些系統擁有巨量用戶、大量複雜性軟體系統和大規模異構計算與存儲架構。構建這樣的系統通常也面臨著分散式的設計選擇,因此最終產品(如推薦系統、藥物分析工具、實時遊戲引擎和語音識別等)涉及到許多可調整的配置參數。這些參數通常很難由各種開發者或團隊具體地編入軟體中。如果我們能聯合優化這些超參數,那麼系統的性能將得到極大的提升。貝葉斯優化是一種聯合優化超參數的強力工具,並且最近也變得越來越流行。它能自動調節超參數以提升產品質量和人類生產力。該綜述論文介紹了貝葉斯優化,並重點關注該演算法的方法論和列舉一些廣泛應用的案例。

喜歡這篇文章嗎?立刻分享出去讓更多人知道吧!

本站內容充實豐富,博大精深,小編精選每日熱門資訊,隨時更新,點擊「搶先收到最新資訊」瀏覽吧!


請您繼續閱讀更多來自 機器之心 的精彩文章:

電話詐騙層出不窮?一家公司正在用人工智慧解決這個社會頑疾
從GPU、TPU到FPGA:一文讀懂神經網路硬體平台戰局
深度學習在NLP中的運用?從分詞、詞性到機器翻譯、對話系統

TAG:機器之心 |

您可能感興趣

分類和高斯分布
研究揭示溫泉菌群空間分布的特徵參數
索尼全新VR手柄專利圖曝光,按鍵分布更加合理
素數(四)素數的分布規律與黎曼猜想有什麼關係?
利用搜索引擎數據模擬疾病空間分布
乾濕分離衛浴裝修,格局分布合理化
庫里和詹姆斯隊中各球員代言品牌分布
哈爾濱中軟分享:中國獲得首張二氧化碳分布圖
數據集如何確保開發集和測試集的數據分布一致?
森林樹種分布變化研究取得進展
鼓槌石斛分布與生活習性及育苗技術
脂類在體內的分布和含量
基於特徵值對數分布的頻譜感知演算法
陸龜飼養區域分布及各種形態表情的分析
課程預告 | 從行星分布看Ta的特質
伊拉克派別分布圖
人工智慧準確地預測了放射性塵埃的分布
雪玉洞,洞內景觀規模宏大、分布密集、形態精美、令人難以置信
趣題:均勻分布且和為常數的n個變數
10分鐘讓你理解泊松分布、指數分布