拒絕日夜調參:超引數搜尋演算法一覽
機器學習訓練模型的過程中自然少不了調參,許多機器學習工程師都戲稱自己為「調參師」,其重要性不言而喻。
模型的引數可分成兩類:引數與超引數,前者是模型通過自身的訓練學習得到的引數資料;後者則需要通過自身經驗設定,以提高模型訓練的效果。如下圖中紅色框內的隱層個數、每個隱層神經元個數、採用什麼啟用函式及學習演算法、學習率以及正則化係數等都屬於超引數。
一個模型的落地流程如圖所示:
-
收集日誌,並從日誌中抽象出特徵,再把特徵餵給模型,模型在初始的超引數指導下學習第一類引數;
-
通過離線效果指標評估超引數的設定是否合適;
-
若不合適則繼續不斷調整。
在這個調參過程中主要有 2 個難點:
1.引數空間大,嘗試成本高
在工業界往往資料規模巨大、模型複雜,計算成本很高,並且每個型別的超引數都有眾多選擇。
2.目標模型是黑盒
在搜尋超引數的過程中只能看到模型的輸入和輸出,無法獲取模型內部資訊(如梯度等),亦無法直接對最優超引數組合建立目標函式進行優化。
超引數的選擇對模型最終的展現效果有很大影響,針對以上難點下文將介紹如何通過演算法自動調參,業界常用的搜尋超引數方法主要有網格搜尋、隨機搜尋和貝葉斯優化。
1#網格搜尋Grid Search
網格搜尋是指在所有候選的引數選擇中,通過迴圈遍歷嘗試每一種可能性,表現最好的引數就是最終的結果。
舉個例子,上圖中有兩類超引數,每類超引數有 3 個待探索的值,對它們進行笛卡爾積後得到 9 個超引數組合,通過網格搜尋使用每種組合來訓練模型,並在驗證集上挑選出最好的超引數。如圖所示,這種方法往往根據不同種類列出表格,並在表格內迴圈遍歷搜尋,因此稱為網格搜尋。
網格搜尋演算法思路及實現方式都很簡單,但經過笛卡爾積組合後會擴大搜索空間,並且在存在某種不重要的超引數的情況下,網格搜尋會浪費大量的時間及空間做無用功,因此它只適用於超引數數量小的情況。
2# 隨機搜尋 Random Search
原文地址:http://www.jmlr.org/papers/volume13/bergstra12a/bergstra12a.pdf
針對網格搜尋的不足,Bengio 等人提出了隨機搜尋方法。隨機搜尋首先為每類超引數定義一個邊緣分佈,通常取均勻分佈,然後在這些引數上取樣進行搜尋。
隨機搜尋雖然有隨機因素導致搜尋結果可能特別差,但是也可能效果特別好。總體來說效率比網格搜尋更高,但是不保證一定能找到比較好的超引數。
3# 貝葉斯優化 Bayesian Optimization
舉個簡單的例子,假設關於模型最優超引數組合的函式是一維曲線,由於它是一個黑盒無法直到具體的函式形式,但是可以輸入某些值並得到輸出。
我們隨機嘗試了 4 個超引數,並得到了對應的效能指標,如下圖所示。
那麼問題來了, 最優超引數可能在哪裡?下一個待探索的超引數是哪個? 我猜測最優值可能在 0.4 這裡,函式的真實形式可能長這樣子的:
*直方圖記錄的是每次猜測的最小值的位置
而每個人猜測的是不一樣的,因此每次生成的函式也不同:
可以看到大部分都認為最優超引數是在第 3 個點附近, 由於開始時在右側採點的離線指標是最差的,所以先驗認為最優超引數在這裡的可能性不大。接著把這個過程取極限,就會得到一個關於最優超引數的概率分佈。
假設每個分佈都是高斯分佈,那麼得到的是一個高斯過程,其中高斯分佈的均值為 0,方差大概為 5。
這樣無論我們猜測最優超引數是取哪個值,總能得到一個關於超引數好壞的描述,即是均值和方差,這裡實際上我們用一個無限維的高斯過程來模擬黑盒的超引數搜尋的目標函式形式。
總結來說,超引數搜尋問題其實是一個黑盒優化問題,貝葉斯優化通過無限維的高斯過程來描述黑盒,在這個高斯過程中可以得到每一組輸入超引數的均值和方差。
得到了均值和方差則解決了上文提到的第一個問題:「最優超引數可能在哪裡?」,那麼下一個待探索的超引數是哪個?這其實是一個 E&E 問題(探索與利用問題),是穩妥地在目前已有的最大值附近搜尋還是在不確定性大的地方搜尋?後者效果可能很差,但也可能有意想不到的收穫。
而 Acquisition function 正是平衡 E&E 問題的方式,下面我們依次介紹 3 種常見的做法。
1# Upper (lower) Confidence Band
UCB 方法用線性加權的方式直接對 E&E 取樣進行平衡,第一項是當前最好的超引數值,在當前最好的結果附近穩妥的搜尋;第二項是方差,表示去探索更未知的空間,beta引數用來控制力度,這種方法簡單有效。
2# Maximum Probability of Improvement
MPI 方法的目的是下一個待搜尋的值能最大限度提升概率,假設當前最好的是 y_best, 那麼 MPI 表示的是下一個待搜尋的點能比 y_best 小的概率,這種方法容易陷入在區域性最小值附近。
3# Expected Improvement
該種方法描述的是下一個待搜尋的點能比當前最好的值更好的期望,因為是高斯過程,這裡的後驗概率是高斯形式,積分有閉式解,實現起來較為簡單,因此這種方法也較為常用。
:chestnut:舉個例子
如上方圖所示,虛線代表關於最優超引數的真實函式形式(但實際上它是個黑盒,不知道其具體形式),實線代表當前最好的超參所在位置,兩條淺灰線表示的是當前點的方差。
下方圖表示已知的和待探索超引數的 Expected Improvement,此時很多地方都有希望能取得比當前最好值更好的超引數,主要需要探索,我們首先選擇 0.0 點作為下一個待探索的超引數。
可以看到,此時 0.0 點的方差變為 0。繼續尋找下一個待探索的超引數,選擇 1.0。
如圖,1.0 點的方差變為 0,經過兩次探索我們注意到不需要再探索右側區域,因為我們在右邊得到的超引數效果比左邊的差。繼續選擇下一個超引數位置,選擇 0.25 點左右的位置。
按照 EI 方法,依次尋找下一個待探索的超引數,這次我們選擇的超引數位置大概在 0.7 點。
選擇 0.7 點的超引數效果比之前選擇的更好,此時 Expected Improvement acquision 建議應該加大在 0.7 附近搜尋的力度。
經過幾輪探索之後發現最優超引數應該在 0.8 點附近。
通過以上案例可以看出貝葉斯優化是通過 acquisition function 平衡均值和方差,做 E&E 問題探索下一個可能的最優超引數。
最後通過三張動圖概括網格搜尋、隨機搜尋和貝葉斯優化。
網格搜尋
隨機搜尋
貝葉斯優化
*本文部分圖源 :
http://gpss.cc/gpmc17/slides/LancasterMasterclass_1.pdf
ofollow,noindex">美團技術團隊
在美團,我們信仰耐心和堅持的力量,願意持續去做一些正確、有積累、可能表面看上去不那麼重要實則非常關鍵的事情。
理論 演算法 貝葉斯優化
相關資料
Gaussian distribution
正態分佈是一個非常常見的連續概率分佈。由於中心極限定理(Central Limit Theorem)的廣泛應用,正態分佈在統計學上非常重要。中心極限定理表明,由一組獨立同分布,並且具有有限的數學期望和方差的隨機變數X1,X2,X3,...Xn構成的平均隨機變數Y近似的服從正態分佈當n趨近於無窮。另外眾多物理計量是由許多獨立隨機過程的和構成,因而往往也具有正態分佈。
來源: Wikipedia
Learning rate
在使用不同優化器(例如隨機梯度下降,Adam)神經網路相關訓練中,學習速率作為一個超引數控制了權重更新的幅度,以及訓練的速度和精度。學習速率太大容易導致目標(代價)函式波動較大從而難以找到最優,而弱學習速率設定太小,則會導致收斂過慢耗時太長
來源:Liu, T. Y. (2009). Learning to rank for information retrieval. Foundations and Trends® in Information Retrieval, 3(3), 225-331. Wikipedia
Grid search
網格搜尋是一項模型超引數優化技術,常用於優化三個或者更少數量的超引數,本質是一種窮舉法。對於每個超引數,使用者選擇一個較小的有限集去探索。然後,這些超引數笛卡爾乘積得到若干組超引數。網格搜尋使用每組超引數訓練模型,挑選驗證集誤差最小的超引數作為最好的超引數。
Machine Learning
機器學習是人工智慧的一個分支,是一門多領域交叉學科,涉及概率論、統計學、逼近論、凸分析、計算複雜性理論等多門學科。機器學習理論主要是設計和分析一些讓計算機可以自動“學習”的演算法。因為學習演算法中涉及了大量的統計學理論,機器學習與推斷統計學聯絡尤為密切,也被稱為統計學習理論。演算法設計方面,機器學習理論關注可以實現的,行之有效的學習演算法。
來源:Mitchell, T. (1997). Machine Learning. McGraw Hill.
neurons
(人工)神經元是一個類比於生物神經元的數學計算模型,是神經網路的基本組成單元。 對於生物神經網路,每個神經元與其他神經元相連,當它“興奮”時會向相連的神經元傳送化學物質,從而改變這些神經元的電位;神經元的“興奮”由其電位決定,當它的電位超過一個“閾值”(threshold)便會被啟用,亦即“興奮”。 目前最常見的神經元模型是基於1943年 Warren McCulloch 和 Walter Pitts提出的“M-P 神經元模型”。 在這個模型中,神經元通過帶權重的連線接處理來自n個其他神經元的輸入訊號,其總輸入值將與神經元的閾值進行比較,最後通過“啟用函式”(activation function)產生神經元的輸出。
來源: Overview of Artificial Neural Networks and its Applications. (2018). medium.com.
Objective function
目標函式f(x)就是用設計變數來表示的所追求的目標形式,所以目標函式就是設計變數的函式,是一個標量。從工程意義講,目標函式是系統的效能標準,比如,一個結構的最輕重量、最低造價、最合理形式;一件產品的最短生產時間、最小能量消耗;一個實驗的最佳配方等等,建立目標函式的過程就是尋找設計變數與目標的關係的過程,目標函式和設計變數的關係可用曲線、曲面或超曲面表示。
來源: 百度百科
Posterior probability
在貝葉斯統計中,一個隨機事件或者一個不確定事件的後驗概率是在考慮和給出相關證據或資料後所得到的條件概率。同樣,後驗概率分佈是一個未知量(視為隨機變數)基於試驗和調查後得到的概率分佈。“後驗”在本文中代表考慮了被測試事件的相關證據。
來源: 維基百科
Regularization
當模型的複雜度增大時,訓練誤差會逐漸減小並趨向於0;而測試誤差會先減小,達到最小值後又增大。當選擇的模型複雜度過大時,過擬合現象就會發生。這樣,在學習時就要防止過擬合。進行最優模型的選擇,即選擇複雜度適當的模型,以達到使測試誤差最小的學習目的。
來源:李航著 統計學習方法 清華大學出版社
Gaussian Processes