來源:towardsdatascience
編輯:LRS
【新智元導(dǎo)讀】AI程序員狠起來連自己的崗位都要干掉。隨著AutoML研究的深入,自動搜索最優(yōu)的神經(jīng)網(wǎng)絡(luò)模型已經(jīng)變得越來越快。最近微軟開源了他們的方案FLAMA,網(wǎng)絡(luò)搜索性能比sota還要顯著提升,資源消耗降低為原來的十分之一!最重要的是它是Python庫,三行代碼就能徹底改造你的AutoML方案!
近年來,AutoML在自動化機器學(xué)習(xí)的設(shè)計方面已經(jīng)取得了巨大的成功,例如設(shè)計神經(jīng)網(wǎng)絡(luò)架構(gòu)和模型更新規(guī)則。
神經(jīng)架構(gòu)搜索(NAS)是其中一個重要的研究方向,可以用來搜索更好的神經(jīng)網(wǎng)絡(luò)架構(gòu)以用于圖像分類等任務(wù),并且可以幫助設(shè)計人員在硬件設(shè)計上找到速度更快、能耗更低的架構(gòu)方案。
但AutoML 是一個十分消耗資源和時間的操作,因為它涉及到大量的實驗來排除性能不強的架構(gòu),來找到一個具有良好性能的超參數(shù)配置。由于它的搜索空間通常非常大,因此需要一種有效的 AutoML 方法來更有效地搜索它們。
AutoML 中超參數(shù)搜索的資源和時間消耗可歸結(jié)為以下兩個因素:
1. 大量的候選超參數(shù)的組合實驗需要找到一個性能良好的配置;
2. 每個超參數(shù)的都需要很長時間來評估性能,因為評估過程包括訓(xùn)練模型和在一個給定的數(shù)據(jù)集上驗證機器學(xué)習(xí)模型性能。
如此浪費時間,怎么忍?微軟最近就帶了他們FLAML(Fast Lightweight AutoML),即快速的、輕量化的AutoML庫。
論文的第一作者是雷德蒙德微軟研究院的首席研究員,研究主要集中在與數(shù)據(jù)平臺和數(shù)據(jù)科學(xué)相關(guān)的理論和系統(tǒng)之間的相互作用,追求快速,經(jīng)濟,可擴展和實用的解決方案與理論保證。
他在清華大學(xué)獲得了計算機科學(xué)學(xué)士學(xué)位,在伊利諾伊大學(xué)厄巴納-香檳分校計算機科學(xué)系完成了博士學(xué)位。
FLAML是一個輕量級Python庫,可以自動、高效、經(jīng)濟地查找準(zhǔn)確的機器學(xué)習(xí)模型,用戶無需為每個learner選擇具體使用的模型和超參數(shù)。
它速度快,還省錢,簡單輕量級的設(shè)計使得這個庫很容易擴展,例如添加定制的learner或評價指標(biāo)。
FLAML 利用搜索空間的結(jié)構(gòu)同時優(yōu)化成本和模型性能。它包含由微軟研究院開發(fā)的兩個新方法:
1. 成本節(jié)約優(yōu)化 Cost-Frugal Optimization (CFO)
成本節(jié)約優(yōu)化對搜索過程中對cost是十分敏感的,搜索方法從一個低成本的初始點開始,逐漸移動到一個較高的成本區(qū)域,同時優(yōu)化給定的目標(biāo)(如模型損失或準(zhǔn)確度)。
2. BlendSearch
Blendsearch 是 CFO 的擴展,它結(jié)合了 CFO 的節(jié)儉和貝葉斯優(yōu)化的探索能力。與 CFO 一樣,BlendSearch 需要一個低成本的初始點作為輸入(如果存在這個點的話) ,并從這個點開始搜索。然而,與 CFO 不同的是,BlendSearch 不會等到本地搜索完全收斂之后才嘗試新的起點。
這兩個方法的靈感來源主要源于傳統(tǒng)的機器學(xué)習(xí)模型:
1. 許多機器學(xué)習(xí)算法都有超參數(shù),這會導(dǎo)致訓(xùn)練成本的大幅度變化。例如,一個有10棵樹的 XGBoost 模型比一個有1000棵樹的模型訓(xùn)練得更快。
2. 參數(shù)的cost通常是連續(xù)的、一致的,也就是說評估10棵樹比評估100棵樹的速度要更快,而評估100棵樹要比評估500棵樹更快。
這兩個思路提供了關(guān)于成本空間中超參數(shù)的有用的結(jié)構(gòu)信息,CFO 和 BlendSearch,能夠有效地利用這些啟發(fā)式方法來降低搜索過程中產(chǎn)生的成本,而不影響到最優(yōu)解的收斂性。
在驗證FLAML的有效性時,在最新的 AutoML 基準(zhǔn)測試中,F(xiàn)LAML 能夠在超過62% 的任務(wù)上只使用10% 的計算資源,就能夠獲得與最先進(jìn)的 AutoML 解決方案相同或更好的性能。
FLAML 的高性能歸功于其快速的優(yōu)化方法,CFO和BlendSearch利用搜索空間的結(jié)構(gòu)來選擇性能優(yōu)良和成本低的搜索順序。在有限的預(yù)算約束條件下,可以對搜索效率產(chǎn)生很大的影響。
FLAML利用搜索空間的結(jié)構(gòu)來選擇針對成本和錯誤優(yōu)化的搜索順序。例如,系統(tǒng)傾向于在搜索的開始階段提出更簡單、快速的配置,但在搜索的后期階段需要時,會迅速轉(zhuǎn)向具有高模型復(fù)雜度和大樣本量的配置。如果它在開始時有利于簡單的學(xué)習(xí)者,但如果錯誤改善過于緩慢,則會對這種選擇進(jìn)行懲罰。
CFO 從一個低成本的初始點(在搜索空間中通過 low_cost_init_value 指定)開始,并根據(jù)其隨機本地搜索策略執(zhí)行本地更新。利用這種策略,CFO 可以快速地向低損耗區(qū)域移動,表現(xiàn)出良好的收斂性。此外,CFO 傾向于在必要時避免探索高成本區(qū)域。進(jìn)一步證明了該搜索策略具有可證明的收斂速度和有界的期望代價。
BlendSearch 進(jìn)一步將 CFO 使用的局部和全局搜索策略與全球搜索結(jié)合起來。具體來說,BlendSearch 維護(hù)一個全局搜索模型,并基于全局模型提出的超參數(shù)配置逐步創(chuàng)建局部搜索線程。
它基于實時性能和損失進(jìn)一步優(yōu)化了全局搜索線程和多個局部搜索線程。在復(fù)雜的搜索空間情況下,如搜索空間包含多個不相交、不連續(xù)的子空間時,可以進(jìn)一步提高 CFO 的效率。
相比最先進(jìn)的超參數(shù)調(diào)優(yōu)庫 Optuna 獲得的結(jié)果,F(xiàn)LAML使用9個維度的超參數(shù)調(diào)優(yōu) LightGBM,可以看到,F(xiàn)LAML 能夠在更短的時間內(nèi)實現(xiàn)更好的解決方案。
研究人員進(jìn)行了一個實驗來檢查 BlendSearch 和 Optuna (使用多變量 TPE 采樣器)以及在高并行化設(shè)置中的隨機搜索的性能。使用了來自 AutoML 基準(zhǔn)測試的12個數(shù)據(jù)集的子集。每個優(yōu)化運行是與16個試驗并行進(jìn)行20分鐘,使用3倍的交叉驗證,使用 ROC-AUC評價指標(biāo)。這些試驗用不同的隨機種子重復(fù)了三次。
在12個數(shù)據(jù)集中,BlendSearch 在6個數(shù)據(jù)集中取得了最好的交叉驗證分?jǐn)?shù)。此外,與 Optuna 的1.96% 相比,BlendSearch 比隨機搜索平均提高了2.52% 。值得注意的是,BlendSearch 使用單變量 Optuna-TPE 作為其全局搜索器ーー使用多變量 TPE 最有可能進(jìn)一步提高分?jǐn)?shù)。
此外,由于其低成本的方法,BlendSearch 在同一時間內(nèi)評估的試驗次數(shù)平均是其他搜索者的兩倍。這表明 BlendSearch 和其他算法之間的差距會隨著時間預(yù)算的增加而擴大。
FLAMA的使用也很簡單,首先使用pip進(jìn)行安裝。
假設(shè)提供了訓(xùn)練數(shù)據(jù)集并將其保存為 x _ train、 y _ train,任務(wù)是以60秒的時間預(yù)算調(diào)優(yōu) LightGBM 模型的超參數(shù),代碼如下所示。
除了LightGBM,F(xiàn)LAML 還為相關(guān)任務(wù)提供了豐富的定制選項,如不同learner、搜索空間、評估度量等。
為了加速超參數(shù)優(yōu)化,用戶可以選擇并行化超參數(shù)搜索,BlendSearch 能夠在并行中很好地工作: 它利用了多個搜索線程,這些線程可以獨立執(zhí)行,而不會明顯降低性能。對于現(xiàn)有的優(yōu)化算法(如貝葉斯優(yōu)化算法)來說,并不是所有優(yōu)化方法都可以并行處理。
為了實現(xiàn)并行化,F(xiàn)LAML 與 Ray Tune 進(jìn)行集成中,Ray Tune 是一個 Python 庫,可以通過邊緣優(yōu)化算法(edge optimization algorithms)來加速超參數(shù)調(diào)整。Ray Tune 還允許用戶在不更改代碼的情況下將超參數(shù)搜索從單個計算機擴展到集群上運行。
用戶可以在 FLAML 中使用 Ray Tune,或者在 Ray Tune 中從 FLAML 運行超參數(shù)搜索方法來并行化的搜索,主要通過在 FLAML 中配置 n_concurrent _trials 參數(shù)可以實現(xiàn)并行。
參考資料:
https://towardsdatascience.com/fast-automl-with-flaml-ray-tune-64ff4a604d1c
版權(quán)聲明:本文內(nèi)容由互聯(lián)網(wǎng)用戶自發(fā)貢獻(xiàn),該文觀點僅代表作者本人。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如發(fā)現(xiàn)本站有涉嫌抄襲侵權(quán)/違法違規(guī)的內(nèi)容, 請發(fā)送郵件至 舉報,一經(jīng)查實,本站將立刻刪除。