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