作者
- DeamoV
- 變身的大惡魔
- 張博涵
什么是 Tuner
在開始之間我們首先需要了解什么是 Tuner。正如之前的博文在 NNI 使用體驗(yàn)中提到的,通俗的來講漾根,Tuner的作用為讓機(jī)器自動決定下一次測試的超參設(shè)置或下一次嘗試的模型結(jié)構(gòu)菩掏。 而這篇文章根據(jù)學(xué)術(shù)屆的分類將其分為超參調(diào)優(yōu) (Hyperparameter Optimization)和網(wǎng)絡(luò)結(jié)構(gòu)搜索 (Neural Architecture Search) 兩個(gè)部分來介紹。并在每部分結(jié)尾處簡單介紹一些 NNI 尚未實(shí)現(xiàn)但出現(xiàn)在最新頂會中有趣的算法杠袱。
注:本文中出現(xiàn)的所有引用均可以在該倉庫 內(nèi)找到
Hyperparameter Optimization
HO(Hyperparameter Optimization) 為超參調(diào)優(yōu)尚猿。簡單的來說,該算法僅僅是是使用一系列操作針對超參集中選擇最優(yōu)的超參楣富,但未對原有模型結(jié)構(gòu)進(jìn)行調(diào)優(yōu)凿掂。準(zhǔn)確的定義如下:
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),該算法是一種通用的概率演算法纹蝴,常用來在一定時(shí)間內(nèi)尋找在一個(gè)很大的搜索空間中的近似最優(yōu)解庄萎。該算法類似于貪心算法和遺傳算法的結(jié)合,其先對上一步中嘗試的超參組合進(jìn)行隨機(jī)擾動產(chǎn)生新解塘安,之后若該新解有更好的結(jié)果則接受新解惨恭,若結(jié)果變差則按 Metropolis 準(zhǔn)則以一定概率接受新解。
根據(jù) NNI 的 Anneal 說明文檔耙旦,建議在每個(gè) Trial 的時(shí)間不長脱羡,并且有足夠的計(jì)算資源萝究,或搜索空間的變量能從一些先驗(yàn)分布中采樣的情況下使用,但是結(jié)果和 Random Search 相當(dāng)锉罐。
Batch Tuner(手動批處理模式)
Batch Tuner 的使用場景為帆竹,用戶只想讓 NNI 作為一個(gè)批處理工具的場景。該 Tuner 讓用
戶自行寫入要嘗試的超參組合脓规,之后 NNI 會按照設(shè)置好的超參組合進(jìn)行嘗試栽连。
優(yōu)點(diǎn):節(jié)省手工啟動測試程序的步驟
缺點(diǎn):NNI 僅作為一個(gè)批處理工具注:該方法存在的意義在于,可以節(jié)省兩次調(diào)參調(diào)整中間的間隔時(shí)間
Grid Search
網(wǎng)格搜索是一個(gè)非常符合人類直觀思路的方法侨舆,即窮居法秒紧。它窮盡了所有種可能的超參排列方式,再依次進(jìn)行嘗試后找到最優(yōu)方案挨下。過程和我們在中學(xué)時(shí)學(xué)的排列組合一樣熔恢,三個(gè)超參分別有三種取值 3、4臭笆、5叙淌,那么三種超參就有 3*4*5 = 60 種取值方式。顯然這種搜索方式是不科學(xué)的愁铺,非常容易組合爆炸鹰霍,是一種非常不高效的調(diào)參方式。
優(yōu)點(diǎn):該算法考慮到了搜索空間內(nèi)所有的參數(shù)組合
缺點(diǎn):存在組合爆炸的問額注:強(qiáng)烈不推薦使用
Random Search
該思想來源于神經(jīng)網(wǎng)絡(luò)三巨頭 Bengio 在 JMLR 2012的工作 [1]茵乱,這篇論文的核心貢獻(xiàn)是從經(jīng)驗(yàn)和理論上證明了茂洒,隨機(jī)搜索超參的方式相比傳統(tǒng)的網(wǎng)格搜索,能在更短的時(shí)間內(nèi)找到一樣或更好的模型參數(shù)瓶竭。該算法也從此成為各個(gè)優(yōu)化算法的對比標(biāo)準(zhǔn)督勺。
優(yōu)點(diǎn):容易理解
缺點(diǎn):高維搜索空間表現(xiàn)一般
貝葉斯優(yōu)化系列
實(shí)際上 Grid Search 和 Random Search 都是非常普通的方法,同時(shí)暴力搜索和隨機(jī)搜索當(dāng)然也很難體現(xiàn)算法設(shè)計(jì)者的智慧在验。而接下來要講的貝葉斯優(yōu)化系列則“很可能”存在與人工經(jīng)驗(yàn)調(diào)慘相媲美的實(shí)力。
-
Bayesian Optimization
貝葉斯優(yōu)化 (Bayesian Optimization)堵未,這個(gè)工作最初是由 J Snoek et.[2] 在 NIPS 2012 中提出的腋舌,并隨后多次進(jìn)行改進(jìn) [3, 4]。它要求已經(jīng)存在幾個(gè)樣本點(diǎn)渗蟹,并且通過高斯過程回歸(假設(shè)超參數(shù)間符合聯(lián)合高斯分布)計(jì)算前面 n 個(gè)點(diǎn)的后驗(yàn)概率分布块饺,得到每一個(gè)超參數(shù)在每一個(gè)取值點(diǎn)的期望均值和方差,其中均值代表這個(gè)點(diǎn)最終的期望效果雌芽,均值越大表示模型最終指標(biāo)越大授艰,方差表示這個(gè)點(diǎn)的效果不確定性,方差越大表示這個(gè)點(diǎn)不確定是否可能取得最大值非常值得去探索世落,具體的細(xì)節(jié)分析可以參見這篇博客但是這個(gè)算法僅僅在低緯空間表現(xiàn)優(yōu)于 Random Search淮腾,而在高維空間和 Random Search 表現(xiàn)相當(dāng)。
優(yōu)點(diǎn):在低維空間顯著優(yōu)于 Random Search
缺點(diǎn):在高維空間僅和 Random Search 相當(dāng)注:這個(gè)算法的另一個(gè)名稱為 Spearmint[2]
-
TPE
TPE 算法來源于 Y Bengio 在頂會 NIPS2011 的工作 [7]。 TPE 依舊屬于貝葉斯優(yōu)化谷朝,其和 SMAC 也有著很深的淵源洲押。其為一種基于樹狀結(jié)構(gòu) Parzen 密度估計(jì)的非標(biāo)準(zhǔn)貝葉斯優(yōu)化算法。相較于其他貝葉斯優(yōu)化算法圆凰,TPE 在高維空間表現(xiàn)最佳杈帐。優(yōu)點(diǎn) 1:相比其他貝葉斯優(yōu)化算法,高維空間的情況下效果更好
優(yōu)點(diǎn) 2:相比 BO 速度有顯著提升
缺點(diǎn):在高維空間的情況下专钉,與 Random Search 效果相當(dāng)注:所有貝葉斯優(yōu)化算法在高維空間下表現(xiàn)均和 Random Search 相當(dāng) [6]
-
SMAC
SMAC 算法出自于期刊 LION 2011[5]挑童,其論文中表明,由于先前的 SMBO 算法跃须,不支持離散型變量站叼。SMAC 提出使用 Random Forest 將條件概率 p(y|λ) 建模為高斯分布,其中 λ 為超參的選擇回怜。這使得它能夠很好的支持離散型變量大年,并在離散型變量和連續(xù)型變量的混合的時(shí)候有著不錯(cuò)的表現(xiàn) [6]。優(yōu)點(diǎn) 1:能很好的支持離散型變量玉雾,并針對高維空間有一定改善
優(yōu)點(diǎn) 2:相比 BO 速度有顯著提升
缺點(diǎn):效果不穩(wěn)定翔试,高維空間表現(xiàn)和 Random Search 相當(dāng)
HyperBand
HyperBand 來源于非常新的來自 JMLR 2018 的工作 [6],實(shí)質(zhì)為 Multi-Armed Bandit 問題复旬。
其解決的問題為如何平衡“探索”(exploration) 和“利用”(exploitation)垦缅。該算法相比之前的算法,最突出的特點(diǎn)為驹碍,其限定了資源的總量壁涎,優(yōu)化算法的問題轉(zhuǎn)化為如何在給定資源的情況下,更好的利用資源找出最優(yōu)解的問題志秃。這些可以體現(xiàn)在超參的設(shè)計(jì)當(dāng)中怔球。
優(yōu)點(diǎn) 1:考慮到了資源有限的情況
優(yōu)點(diǎn) 2:可以和其他的算法,如 TPE 等進(jìn)行融合(當(dāng)前 NNI 不支持)[6]
缺點(diǎn):算法篩選結(jié)果的方式為每多步之后浮还,保留 TopK 的結(jié)果竟坛,其將導(dǎo)致一些開始收斂較慢的參數(shù)配置被淘汰。
Metis
Metis 為微軟提供的自動調(diào)參服務(wù)钧舌,在論文 [8] 中指出担汤,之前的貝葉斯優(yōu)化算法存在兩個(gè)較大的問題,一方面貝葉斯優(yōu)化算法洼冻,存在過度采樣的問題崭歧,這在資源密集型的算法,如深度學(xué)習(xí)的情況下是一筆很重的開銷撞牢。另一方面貝葉斯優(yōu)化和高斯處理算法均假設(shè)率碾,問題是理想的無噪聲或**僅受高斯分布的噪聲影響叔营,但實(shí)際情況比這個(gè)假設(shè)要復(fù)雜。而 Metis 在一定程度上解決了這個(gè)問題播掷。Metis 的本質(zhì)是隨機(jī)搜索审编,為了最小化調(diào)整配置時(shí)造成的系統(tǒng)性能損失,該算法當(dāng)且僅當(dāng)預(yù)測的配置可以帶來高于一定程度的優(yōu)化時(shí)才會切換配置歧匈。
優(yōu)點(diǎn) 1:在系統(tǒng)配置選擇等存在非高斯噪聲的情況下垒酬,Metis 顯著優(yōu)于 TPE 算法
優(yōu)點(diǎn) 2:能為接下來的嘗試提供候選
缺點(diǎn):訓(xùn)練時(shí)間基本由樣本點(diǎn)的數(shù)量決定,且呈立方級增長(復(fù)雜度為 其中 N 為樣本點(diǎn)數(shù)量件炉,D 為樣本點(diǎn)的維數(shù))勘究。配置選擇時(shí)間同樣基本由樣本點(diǎn)的數(shù)目決定,其復(fù)雜度為 和樣本點(diǎn)的數(shù)據(jù)量高度相關(guān)且復(fù)雜度高注:NNI 中 Metis 只支持
choice
,quniform
,uniform
和randint
類型斟冕。
Neural Architecture Search
什么是 NAS
和上一節(jié)中的 HO 不同的是口糕,在超參調(diào)整中,NAS 調(diào)整的超參會影響到模型的結(jié)構(gòu)磕蛇。意在通過大量嘗試探索一種更為合理的網(wǎng)絡(luò)結(jié)構(gòu)景描。而這些超參的調(diào)整已經(jīng)超出了之前介紹的貝葉斯優(yōu)化系列的能力范疇。在 NAS 中遺傳算法系列和強(qiáng)化學(xué)習(xí)系列有著不錯(cuò)的表現(xiàn)秀撇。
Naive Evolution
Naive Evolution 出自 ICML 2017 的工作 [9]超棺,其將遺傳算法引入模型結(jié)構(gòu)的搜索。根據(jù)論文中的描述呵燕,該方法為一種典型的遺傳算法)棠绘,其通過設(shè)置一定量的初始種群,經(jīng)過“突變”(更改超參)后根據(jù)“自然篩選”(篩選出表現(xiàn)優(yōu)秀的模型)保留優(yōu)異的個(gè)體再扭。論文中是針對圖片分類的模型探索氧苍,支持多種“突變”,細(xì)節(jié)可參見原論文 [9]泛范。除了使用遺傳算法這個(gè)特點(diǎn)外让虐,其還有一個(gè)特點(diǎn)是支持權(quán)重遷移的模型,這個(gè)特點(diǎn)會使得每個(gè)突變個(gè)體只需要少量的 epoch 來訓(xùn)練罢荡。而這個(gè)優(yōu)點(diǎn)也在 Morphism 算法中得以體現(xiàn)赡突。但是該算法也存在陷入局部最優(yōu)解的問題,論文中描述該問題主要可以通過增大以下兩個(gè)參數(shù)解決柠傍。
- population size
這個(gè)參數(shù)的增大會讓初始種群個(gè)體數(shù)量更多麸俘,這樣子可以通過增加會避免模型陷入局部最優(yōu)解辩稽。 - the number of training steps per individual
這個(gè)參數(shù)的增大會讓每一個(gè)個(gè)體的表現(xiàn)得到最大的發(fā)揮惧笛,從而不會錯(cuò)淘汰掉潛力優(yōu)秀的個(gè)體
注:遺憾的是 NNI 中還未能讓用戶自行調(diào)整這兩個(gè)參數(shù)
優(yōu)點(diǎn) 1: 使用遺傳算法進(jìn)行模型結(jié)構(gòu)的搜索
優(yōu)點(diǎn) 2: 對支持權(quán)重遷移的模型,運(yùn)算的速度會有顯著提升缺點(diǎn):同所有的遺傳算法一樣逞泄,優(yōu)于需要嘗試大量的突變個(gè)體患整,需要大量的計(jì)算資源
Network Morphism
Network Morphism 來自另一個(gè)開源自動調(diào)參工具 Auto-keras 的其中一篇 arXiv 上的文章 [10]拜效。該算法的設(shè)計(jì)的初衷是減少調(diào)參的計(jì)算損耗。為了提高算法的效率各谚,其引入了一個(gè)新的神經(jīng)網(wǎng)絡(luò)核 (Neural Network Kernel) 和 一個(gè)樹形采樣函數(shù)紧憾,來用貝葉斯優(yōu)化的方式探索搜索空間。
除此之外昌渤,另一點(diǎn)提高效率的方式為引入了 Morphism Operation赴穗。該操作是在已經(jīng)訓(xùn)練好的模型上進(jìn)行調(diào)整,這樣新生成的網(wǎng)絡(luò)結(jié)構(gòu)就只需要少量的訓(xùn)練就能達(dá)到好的效果膀息。這個(gè)方式在 Naive Evolution 也有使用般眉。就論文中在 MNIST,F(xiàn)ASHION潜支,CIFAR-10 三個(gè)數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果看甸赃,其顯著好于 Random Search,SPMT[11]冗酿,SMAC埠对,SEA[12],NASBOT[13]裁替。
優(yōu)點(diǎn) 1: 在探索網(wǎng)絡(luò)結(jié)構(gòu)的時(shí)候引入了貝葉斯優(yōu)化项玛,提高了搜索效率
優(yōu)點(diǎn) 2: Morphism 操作,保留了之前的訓(xùn)練的結(jié)果胯究,讓新的變種網(wǎng)絡(luò)訓(xùn)練的更快缺點(diǎn):當(dāng)前版本不支持 RNN 的網(wǎng)絡(luò)模型探索
ENAS
ENAS 源自 CVPR 2018 的一個(gè)工作 [14]稍计,其使用 RNN 作為控制器然后根據(jù)收斂精度調(diào)整 RNN,
論文中在 Cifar10 上訓(xùn)練 RNN裕循,之后再應(yīng)用到 ImageNet 上臣嚣,效果很驚人(應(yīng)用到 Fast-RCNN 上之后居然有 4% 的準(zhǔn)確率提升)。但是該算法需要很多預(yù)先的人為的前提設(shè)定剥哑,同時(shí)速度還是很慢, 而 ENAS 的主要工作為在其工作上硅则,增加參數(shù)共享的方式,避免新產(chǎn)生的模型重訓(xùn)練株婴,加快了訓(xùn)練速度怎虫。
優(yōu)點(diǎn):相較于其他的 NAS 算法,該算法速度非忱Ы椋快
缺點(diǎn):同它的改進(jìn)的模型一樣大审,其需要設(shè)置每個(gè) Cell 的 Block 等多個(gè)前提設(shè)定的參數(shù)注:相較于其他算法,這個(gè)算法更有趣座哩,論文中的效果現(xiàn)實(shí)也是最有意思最好的
NNI 未實(shí)現(xiàn)但很有趣的算法
NASBOT
NASBOT 源自 NIPS2018 的一個(gè)工作 [13]徒扶, 其核心就在于計(jì)算 OTMANN distance。該方法使用了 layer masses 和 path length 來定義 OTMANN distance根穷。
三者的定義如下:
- layer masses:在比較兩個(gè)神經(jīng)網(wǎng)絡(luò)時(shí)匹配的層的個(gè)數(shù)
- path length:兩個(gè)層之前的距離姜骡,如 (2, 5, 8, 13) 是一條從 layer2 到 layer13 的一條長度為 3 的路徑
- OTMANN distance:通過最優(yōu)化算法得出的神經(jīng)網(wǎng)絡(luò)之間的距離
就結(jié)果而言論文中表明 NASBOT 在 Cifar10 數(shù)據(jù)集上导坟,在計(jì)算量和運(yùn)行時(shí)間方面顯著優(yōu)于其他 tuner 算法,如隨機(jī)搜索圈澈,進(jìn)化算法等惫周。
優(yōu)點(diǎn) 1:對 MLPs 和 CNN 的支持效果較好
優(yōu)點(diǎn) 2:訓(xùn)練需要的總計(jì)算量較小缺點(diǎn):在尋找下一個(gè)網(wǎng)絡(luò)架構(gòu)的用時(shí)較長
注:該算法的 python 實(shí)現(xiàn):[源碼鏈接][https://github.com/kirthevasank/nasbot]
DARTS
DARTS 為在 arXiv 上的一篇很有意思的工作 [15],其正在等待 ICLR 2019 的審核康栈,詳情可以參見 OpenReview 該論文的鏈接递递。該工作的中心思想為科學(xué)選擇神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),將神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)作為參數(shù)進(jìn)行優(yōu)化啥么。該論文在 Cifar10漾狼,ImageNet 等數(shù)據(jù)集上進(jìn)行了大量的實(shí)驗(yàn),發(fā)現(xiàn)此算法適用于圖像分類的高性能卷積結(jié)構(gòu)和語言建模的循環(huán)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)饥臂,并提出此方法的效率高于 ENAS逊躁。
優(yōu)點(diǎn) 1:將模型結(jié)構(gòu)視為參數(shù),擴(kuò)大搜索空間
優(yōu)點(diǎn) 2:較高的可遷移性缺點(diǎn):參數(shù)過多隅熙,對算力和數(shù)據(jù)量的要求較高
注:該論文的復(fù)現(xiàn)可以參考作者的源碼:源碼鏈接
參考論文
- [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).