作者
- 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 都是非常普通的方法,同時暴力搜索和隨機搜索當然也很難體現算法設計者的智慧。而接下來要講的貝葉斯優化系列則“很可能”存在與人工經驗調慘相媲美的實力。
-
Bayesian Optimization
貝葉斯優化 (Bayesian Optimization),這個工作最初是由 J Snoek et.[2] 在 NIPS 2012 中提出的,并隨后多次進行改進 [3, 4]。它要求已經存在幾個樣本點,并且通過高斯過程回歸(假設超參數間符合聯合高斯分布)計算前面 n 個點的后驗概率分布,得到每一個超參數在每一個取值點的期望均值和方差,其中均值代表這個點最終的期望效果,均值越大表示模型最終指標越大,方差表示這個點的效果不確定性,方差越大表示這個點不確定是否可能取得最大值非常值得去探索,具體的細節分析可以參見這篇博客但是這個算法僅僅在低緯空間表現優于 Random Search,而在高維空間和 Random Search 表現相當。
優點:在低維空間顯著優于 Random Search
缺點:在高維空間僅和 Random Search 相當注:這個算法的另一個名稱為 Spearmint[2]
-
TPE
TPE 算法來源于 Y Bengio 在頂會 NIPS2011 的工作 [7]。 TPE 依舊屬于貝葉斯優化,其和 SMAC 也有著很深的淵源。其為一種基于樹狀結構 Parzen 密度估計的非標準貝葉斯優化算法。相較于其他貝葉斯優化算法,TPE 在高維空間表現最佳。優點 1:相比其他貝葉斯優化算法,高維空間的情況下效果更好
優點 2:相比 BO 速度有顯著提升
缺點:在高維空間的情況下,與 Random Search 效果相當注:所有貝葉斯優化算法在高維空間下表現均和 Random Search 相當 [6]
-
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:能為接下來的嘗試提供候選
缺點:訓練時間基本由樣本點的數量決定,且呈立方級增長(復雜度為其中 N 為樣本點數量,D 為樣本點的維數)。配置選擇時間同樣基本由樣本點的數目決定,其復雜度為
![]()
和樣本點的數據量高度相關且復雜度高
注:NNI 中 Metis 只支持
choice
,quniform
,uniform
和randint
類型。
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).