微軟新工具 NNI 使用指南之 Tuner 篇

作者

  • DeamoV
  • 變身的大惡魔
  • 張博涵

什么是 Tuner

在開始之間我們首先需要了解什么是 Tuner。正如之前的博文在 NNI 使用體驗中提到的,通俗的來講,Tuner的作用為讓機器自動決定下一次測試的超參設置或下一次嘗試的模型結構。 而這篇文章根據學術屆的分類將其分為超參調優 (Hyperparameter Optimization)和網絡結構搜索 (Neural Architecture Search) 兩個部分來介紹。并在每部分結尾處簡單介紹一些 NNI 尚未實現但出現在最新頂會中有趣的算法。

注:本文中出現的所有引用均可以在該倉庫 內找到

Hyperparameter Optimization

HO(Hyperparameter Optimization) 為超參調優。簡單的來說,該算法僅僅是是使用一系列操作針對超參集中選擇最優的超參,但未對原有模型結構進行調優。準確的定義如下:

In machine learning, hyperparameter optimization or tuning is the problem of choosing a set of optimal hyperparameters for a learning algorithm.

From Wikipedia

Anneal

Anneal Tuner 來源于模擬退火算法 SA(Simulated Annealing),該算法是一種通用的概率演算法,常用來在一定時間內尋找在一個很大的搜索空間中的近似最優解。該算法類似于貪心算法和遺傳算法的結合,其先對上一步中嘗試的超參組合進行隨機擾動產生新解,之后若該新解有更好的結果則接受新解,若結果變差則按 Metropolis 準則以一定概率接受新解。

根據 NNI 的 Anneal 說明文檔,建議在每個 Trial 的時間不長,并且有足夠的計算資源,或搜索空間的變量能從一些先驗分布中采樣的情況下使用,但是結果和 Random Search 相當。

Batch Tuner(手動批處理模式)

Batch Tuner 的使用場景為,用戶只想讓 NNI 作為一個批處理工具的場景。該 Tuner 讓用
戶自行寫入要嘗試的超參組合,之后 NNI 會按照設置好的超參組合進行嘗試。

優點:節省手工啟動測試程序的步驟
缺點:NNI 僅作為一個批處理工具

注:該方法存在的意義在于,可以節省兩次調參調整中間的間隔時間

Grid Search

網格搜索是一個非常符合人類直觀思路的方法,即窮居法。它窮盡了所有種可能的超參排列方式,再依次進行嘗試后找到最優方案。過程和我們在中學時學的排列組合一樣,三個超參分別有三種取值 3、4、5,那么三種超參就有 3*4*5 = 60 種取值方式。顯然這種搜索方式是不科學的,非常容易組合爆炸,是一種非常不高效的調參方式。

優點:該算法考慮到了搜索空間內所有的參數組合
缺點:存在組合爆炸的問額

注:強烈不推薦使用

Random Search

該思想來源于神經網絡三巨頭 Bengio 在 JMLR 2012的工作 [1],這篇論文的核心貢獻是從經驗和理論上證明了,隨機搜索超參的方式相比傳統的網格搜索,能在更短的時間內找到一樣或更好的模型參數。該算法也從此成為各個優化算法的對比標準。

優點:容易理解
缺點:高維搜索空間表現一般

貝葉斯優化系列

實際上 Grid Search 和 Random Search 都是非常普通的方法,同時暴力搜索和隨機搜索當然也很難體現算法設計者的智慧。而接下來要講的貝葉斯優化系列則“很可能”存在與人工經驗調慘相媲美的實力。

  1. Bayesian Optimization
    貝葉斯優化 (Bayesian Optimization),這個工作最初是由 J Snoek et.[2] 在 NIPS 2012 中提出的,并隨后多次進行改進 [3, 4]。它要求已經存在幾個樣本點,并且通過高斯過程回歸(假設超參數間符合聯合高斯分布)計算前面 n 個點的后驗概率分布,得到每一個超參數在每一個取值點的期望均值和方差,其中均值代表這個點最終的期望效果,均值越大表示模型最終指標越大,方差表示這個點的效果不確定性,方差越大表示這個點不確定是否可能取得最大值非常值得去探索,具體的細節分析可以參見這篇博客

    但是這個算法僅僅在低緯空間表現優于 Random Search,而在高維空間和 Random Search 表現相當。

    優點:在低維空間顯著優于 Random Search
    缺點:在高維空間僅和 Random Search 相當

    注:這個算法的另一個名稱為 Spearmint[2]

  1. TPE
    TPE 算法來源于 Y Bengio 在頂會 NIPS2011 的工作 [7]。 TPE 依舊屬于貝葉斯優化,其和 SMAC 也有著很深的淵源。其為一種基于樹狀結構 Parzen 密度估計的非標準貝葉斯優化算法。相較于其他貝葉斯優化算法,TPE 在高維空間表現最佳。

    優點 1:相比其他貝葉斯優化算法,高維空間的情況下效果更好
    優點 2:相比 BO 速度有顯著提升
    缺點:在高維空間的情況下,與 Random Search 效果相當

    注:所有貝葉斯優化算法在高維空間下表現均和 Random Search 相當 [6]

  2. SMAC
    SMAC 算法出自于期刊 LION 2011[5],其論文中表明,由于先前的 SMBO 算法,不支持離散型變量。SMAC 提出使用 Random Forest 將條件概率 p(y|λ) 建模為高斯分布,其中 λ 為超參的選擇。這使得它能夠很好的支持離散型變量,并在離散型變量和連續型變量的混合的時候有著不錯的表現 [6]。

    優點 1:能很好的支持離散型變量,并針對高維空間有一定改善
    優點 2:相比 BO 速度有顯著提升
    缺點:效果不穩定,高維空間表現和 Random Search 相當

HyperBand

HyperBand 來源于非常新的來自 JMLR 2018 的工作 [6],實質為 Multi-Armed Bandit 問題。
其解決的問題為如何平衡“探索”(exploration) 和“利用”(exploitation)。該算法相比之前的算法,最突出的特點為,其限定了資源的總量,優化算法的問題轉化為如何在給定資源的情況下,更好的利用資源找出最優解的問題。這些可以體現在超參的設計當中。

優點 1:考慮到了資源有限的情況
優點 2:可以和其他的算法,如 TPE 等進行融合(當前 NNI 不支持)[6]
缺點:算法篩選結果的方式為每多步之后,保留 TopK 的結果,其將導致一些開始收斂較慢的參數配置被淘汰。

Metis

Metis 為微軟提供的自動調參服務,在論文 [8] 中指出,之前的貝葉斯優化算法存在兩個較大的問題,一方面貝葉斯優化算法,存在過度采樣的問題,這在資源密集型的算法,如深度學習的情況下是一筆很重的開銷。另一方面貝葉斯優化和高斯處理算法均假設,問題是理想的無噪聲或**僅受高斯分布的噪聲影響,但實際情況比這個假設要復雜。而 Metis 在一定程度上解決了這個問題。Metis 的本質是隨機搜索,為了最小化調整配置時造成的系統性能損失,該算法當且僅當預測的配置可以帶來高于一定程度的優化時才會切換配置。

優點 1:在系統配置選擇等存在非高斯噪聲的情況下,Metis 顯著優于 TPE 算法
優點 2:能為接下來的嘗試提供候選
缺點:訓練時間基本由樣本點的數量決定,且呈立方級增長(復雜度為 O(N^{3}+N^{2}D) 其中 N 為樣本點數量,D 為樣本點的維數)。配置選擇時間同樣基本由樣本點的數目決定,其復雜度為 O(N^{2}+ND) \Rightarrow 和樣本點的數據量高度相關且復雜度高

注:NNI 中 Metis 只支持 choice, quniform, uniformrandint 類型。

Neural Architecture Search

什么是 NAS

和上一節中的 HO 不同的是,在超參調整中,NAS 調整的超參會影響到模型的結構。意在通過大量嘗試探索一種更為合理的網絡結構。而這些超參的調整已經超出了之前介紹的貝葉斯優化系列的能力范疇。在 NAS 中遺傳算法系列和強化學習系列有著不錯的表現。

Naive Evolution

Naive Evolution 出自 ICML 2017 的工作 [9],其將遺傳算法引入模型結構的搜索。根據論文中的描述,該方法為一種典型的遺傳算法),其通過設置一定量的初始種群,經過“突變”(更改超參)后根據“自然篩選”(篩選出表現優秀的模型)保留優異的個體。論文中是針對圖片分類的模型探索,支持多種“突變”,細節可參見原論文 [9]。除了使用遺傳算法這個特點外,其還有一個特點是支持權重遷移的模型,這個特點會使得每個突變個體只需要少量的 epoch 來訓練。而這個優點也在 Morphism 算法中得以體現。但是該算法也存在陷入局部最優解的問題,論文中描述該問題主要可以通過增大以下兩個參數解決。

  • population size
    這個參數的增大會讓初始種群個體數量更多,這樣子可以通過增加會避免模型陷入局部最優解。
  • the number of training steps per individual
    這個參數的增大會讓每一個個體的表現得到最大的發揮,從而不會錯淘汰掉潛力優秀的個體

注:遺憾的是 NNI 中還未能讓用戶自行調整這兩個參數

優點 1: 使用遺傳算法進行模型結構的搜索
優點 2: 對支持權重遷移的模型,運算的速度會有顯著提升

缺點:同所有的遺傳算法一樣,優于需要嘗試大量的突變個體,需要大量的計算資源

Network Morphism

Network Morphism 來自另一個開源自動調參工具 Auto-keras 的其中一篇 arXiv 上的文章 [10]。該算法的設計的初衷是減少調參的計算損耗。為了提高算法的效率,其引入了一個新的神經網絡核 (Neural Network Kernel) 和 一個樹形采樣函數,來用貝葉斯優化的方式探索搜索空間。
除此之外,另一點提高效率的方式為引入了 Morphism Operation。該操作是在已經訓練好的模型上進行調整,這樣新生成的網絡結構就只需要少量的訓練就能達到好的效果。這個方式在 Naive Evolution 也有使用。就論文中在 MNIST,FASHION,CIFAR-10 三個數據集上的實驗結果看,其顯著好于 Random Search,SPMT[11],SMAC,SEA[12],NASBOT[13]。

優點 1: 在探索網絡結構的時候引入了貝葉斯優化,提高了搜索效率
優點 2: Morphism 操作,保留了之前的訓練的結果,讓新的變種網絡訓練的更快

缺點:當前版本不支持 RNN 的網絡模型探索

ENAS

ENAS 源自 CVPR 2018 的一個工作 [14],其使用 RNN 作為控制器然后根據收斂精度調整 RNN,
論文中在 Cifar10 上訓練 RNN,之后再應用到 ImageNet 上,效果很驚人(應用到 Fast-RCNN 上之后居然有 4% 的準確率提升)。但是該算法需要很多預先的人為的前提設定,同時速度還是很慢, 而 ENAS 的主要工作為在其工作上,增加參數共享的方式,避免新產生的模型重訓練,加快了訓練速度。

優點:相較于其他的 NAS 算法,該算法速度非常快
缺點:同它的改進的模型一樣,其需要設置每個 Cell 的 Block 等多個前提設定的參數

注:相較于其他算法,這個算法更有趣,論文中的效果現實也是最有意思最好的

NNI 未實現但很有趣的算法

NASBOT

NASBOT 源自 NIPS2018 的一個工作 [13], 其核心就在于計算 OTMANN distance。該方法使用了 layer masses 和 path length 來定義 OTMANN distance。
三者的定義如下:

  • layer masses:在比較兩個神經網絡時匹配的層的個數
  • path length:兩個層之前的距離,如 (2, 5, 8, 13) 是一條從 layer2 到 layer13 的一條長度為 3 的路徑
  • OTMANN distance:通過最優化算法得出的神經網絡之間的距離
    就結果而言論文中表明 NASBOT 在 Cifar10 數據集上,在計算量運行時間方面顯著優于其他 tuner 算法,如隨機搜索,進化算法等。

優點 1:對 MLPs 和 CNN 的支持效果較好
優點 2:訓練需要的總計算量較小

缺點:在尋找下一個網絡架構的用時較長

注:該算法的 python 實現:[源碼鏈接][https://github.com/kirthevasank/nasbot]

DARTS

DARTS 為在 arXiv 上的一篇很有意思的工作 [15],其正在等待 ICLR 2019 的審核,詳情可以參見 OpenReview 該論文的鏈接。該工作的中心思想為科學選擇神經網絡結構,將神經網絡結構作為參數進行優化。該論文在 Cifar10,ImageNet 等數據集上進行了大量的實驗,發現此算法適用于圖像分類的高性能卷積結構和語言建模的循環神經網絡結構,并提出此方法的效率高于 ENAS

優點 1:將模型結構視為參數,擴大搜索空間
優點 2:較高的可遷移性

缺點:參數過多,對算力和數據量的要求較高

注:該論文的復現可以參考作者的源碼:源碼鏈接

參考論文

  • [1] Bergstra J, Bengio Y. Random search for hyper-parameter optimization[J]. Journal of Machine Learning Research, 2012, 13(Feb): 281-305.
  • [2] Snoek J, Larochelle H, Adams R P. Practical bayesian optimization of machine learning algorithms[C]//Advances in neural information processing systems. 2012: 2951-2959.
  • [3] Swersky K, Snoek J, Adams R P. Multi-task bayesian optimization[C]//Advances in neural information processing systems. 2013: 2004-2012.
  • [4] Snoek J, Rippel O, Swersky K, et al. Scalable bayesian optimization using deep neural networks[C]//International Conference on Machine Learning. 2015: 2171-2180.
  • [5] Hutter F, Hoos H H, Leyton-Brown K. Sequential model-based optimization for general algorithm configuration[C]//International Conference on Learning and Intelligent Optimization. Springer, Berlin, Heidelberg, 2011: 507-523.
  • [6] Li L, Jamieson K, DeSalvo G, et al. Hyperband: A novel bandit-based approach to hyperparameter optimization[J]. arXiv preprint arXiv:1603.06560, 2018: 1-48.
  • [7] Bergstra J S, Bardenet R, Bengio Y, et al. Algorithms for hyper-parameter optimization[C]//Advances in neural information processing systems. 2011: 2546-2554.
  • [8] Li Z L, Liang C J M, He W, et al. Metis: robustly optimizing tail latencies of cloud systems[C]//Proceedings of the 2018 USENIX Conference on Usenix Annual Technical Conference. USENIX Association, 2018: 981-992.
  • [9] Real, E., Moore, S., Selle, A., Saxena, S., Suematsu, Y. L., Tan, J., ... & Kurakin, A. (2017, July). Large-Scale Evolution of Image Classifiers. In International Conference on Machine Learning (pp. 2902-2911).
  • [10] Jin H, Song Q, Hu X. Efficient neural architecture search with network morphism[J]. arXiv preprint arXiv:1806.10282, 2018.
  • [11] Snoek, J., Larochelle, H., and Adams, R. P.Practical bayesian optimization of machine learning algorithms.In Advances in Neural Information Processing Systems, pp. 2951–2959, 2012.
  • [12] Elsken, T., Metzen, J. H., and Hutter, F. Neural architec- ture search: A survey. arXiv preprint arXiv:1808.05377, 2018.
  • [13] Kandasamy, K., Neiswanger, W., Schneider, J., Poczos, B., and Xing, E. Neural architecture search with bayesian optimisation and optimal transport. NIPS, 2018.
  • [14] Zoph B, Vasudevan V, Shlens J, et al. Learning transferable architectures for scalable image recognition[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2018: 8697-8710.
  • [15] Liu, Hanxiao, Karen Simonyan, and Yiming Yang. Darts: Differentiable architecture search. arXiv preprint arXiv:1806.09055 (2018).
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,238評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,430評論 3 415
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,134評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,893評論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,653評論 6 408
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,136評論 1 323
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,212評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,372評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,888評論 1 334
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,738評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,939評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,482評論 5 359
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,179評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,588評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,829評論 1 283
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,610評論 3 391
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,916評論 2 372

推薦閱讀更多精彩內容