0
本文作者: 我在思考中 | 2021-08-05 10:54 | 專題:KDD 2019 |
近日,由北京大學(xué)崔斌教授數(shù)據(jù)與智能實(shí)驗(yàn)室( Data and Intelligence Research LAB, DAIR)開發(fā)的通用黑盒優(yōu)化系統(tǒng) OpenBox 開源發(fā)布!
相比于SMAC3,Hyperopt等現(xiàn)有開源系統(tǒng),OpenBox支持更通用的黑盒優(yōu)化場景,包括多目標(biāo)優(yōu)化,帶約束優(yōu)化場景等。在25個(gè)LightGBM調(diào)參任務(wù)上,OpenBox在7個(gè)對(duì)比系統(tǒng)中取得了平均1.25名(average rank)的優(yōu)異成績。
相關(guān)論文已經(jīng)被KDD 2021錄用,"OpenBox: A Generalized Black-box Optimization Service"。
研究背景
近年來,人工智能與機(jī)器學(xué)習(xí)備受關(guān)注,越來越多企業(yè)使用機(jī)器學(xué)習(xí)模型解決實(shí)際問題,如人臉識(shí)別、商品推薦等。在應(yīng)用機(jī)器學(xué)習(xí)模型的過程中,模型超參數(shù)的選擇對(duì)模型性能有著至關(guān)重要的影響,因此超參數(shù)優(yōu)化問題成為了機(jī)器學(xué)習(xí)的重要挑戰(zhàn)之一。超參數(shù)優(yōu)化作為典型的黑盒優(yōu)化問題,對(duì)于優(yōu)化目標(biāo)不存在具體表達(dá)式或梯度信息,且驗(yàn)證代價(jià)較大。其目標(biāo)是在有限的驗(yàn)證次數(shù)內(nèi),盡快找到全局最優(yōu)點(diǎn)。除超參數(shù)優(yōu)化外,黑盒優(yōu)化還擁有著廣泛的使用場景,如自動(dòng)化A/B測試、數(shù)據(jù)庫參數(shù)調(diào)優(yōu)、處理器架構(gòu)和芯片設(shè)計(jì)等。
現(xiàn)有開源的黑盒優(yōu)化系統(tǒng)往往存在以下問題:
1)使用場景有限。由于系統(tǒng)基于某個(gè)特定算法,一些系統(tǒng)只能支持單目標(biāo)或是無約束的優(yōu)化問題;
2)性能不穩(wěn)定。基于優(yōu)化問題中 “no free lunch”定理,現(xiàn)有系統(tǒng)中特定的算法無法在所有任務(wù)中表現(xiàn)出色;
3)有限的可擴(kuò)展性。現(xiàn)有系統(tǒng)無法有效利用歷史任務(wù)的結(jié)果以及分布式的驗(yàn)證資源。
針對(duì)這些問題,北京大學(xué)DAIR實(shí)驗(yàn)室AutoML項(xiàng)目組開發(fā)了一個(gè)名為 “OpenBox” 的輕量級(jí)黑盒優(yōu)化系統(tǒng),針對(duì)通用的黑盒優(yōu)化場景,內(nèi)置豐富的優(yōu)化算法,并提供高效的并行支持,幫助用戶“open the box”,解決棘手的黑盒優(yōu)化問題。
項(xiàng)目Github開源地址:https://github.com/PKU-DAIR/open-box
OpenBox設(shè)計(jì)思路
為了解決現(xiàn)有系統(tǒng)上述的問題,OpenBox在設(shè)計(jì)上支持以下系統(tǒng)特性,包括:
多目標(biāo)優(yōu)化:同時(shí)優(yōu)化多個(gè)不同(甚至相互沖突)的目標(biāo),例如同時(shí)優(yōu)化機(jī)器模型準(zhǔn)確率和模型訓(xùn)練/預(yù)測時(shí)間等。
帶約束條件優(yōu)化:最優(yōu)化目標(biāo)的同時(shí),要滿足(黑盒)條件,例如保證模型延遲不能高于某個(gè)閾值等。
多類型參數(shù)輸入(FIOC):系統(tǒng)需要對(duì)多種待優(yōu)化參數(shù)類型提供支持,主要為FIOC,即浮點(diǎn)型、整型、序數(shù)型、類別型四類參數(shù)。例如超參數(shù)優(yōu)化中,SVM模型核函數(shù)用類別型表示,如果單純用整型代替序數(shù)型或類別型參數(shù),將對(duì)參數(shù)附加額外的序關(guān)系,不利于模型優(yōu)化。
遷移學(xué)習(xí):優(yōu)化任務(wù)之間可能存在一定相關(guān)性,例如過去可能在不同數(shù)據(jù)集上進(jìn)行過相同模型的調(diào)參?;谶@種觀察,系統(tǒng)需要能夠利用過去優(yōu)化的知識(shí)加速當(dāng)前優(yōu)化任務(wù)的執(zhí)行效率。
分布式并行驗(yàn)證:內(nèi)置算法支持并行運(yùn)行,并且系統(tǒng)能夠有效利用給定的分布式資源。
作者將現(xiàn)有系統(tǒng)對(duì)上述特點(diǎn)的支持情況總結(jié)如上(其中△表示不支持通用場景)。從表格中不難看出,現(xiàn)有開源黑盒優(yōu)化系統(tǒng)無法支持特定的 使用場景,而 OpenBox 能夠提供完整的支持。
上圖展示了 OpenBox 的并行架構(gòu),包含五個(gè)主要組件。服務(wù)主機(jī)(Service Master)負(fù)責(zé)節(jié)點(diǎn)管理、負(fù)載均衡和錯(cuò)誤恢復(fù)。任務(wù)數(shù)據(jù)庫(Task Database)保存所有任務(wù)的狀態(tài)。建議服務(wù)器(Suggestion Server)為每個(gè)任務(wù)生成新 配置。REST API 在用戶/工作者和建議服務(wù)器之間建立了橋梁。驗(yàn)證工作者(Evaluation Worker)由用戶提供和擁有。
OpenBox內(nèi)置大量優(yōu)化組件,其中優(yōu)化算法包括貝葉斯優(yōu)化,遺傳算法等,如下圖所示:
為簡化用戶的使用門檻以及提高系統(tǒng)在各問題上的性能,OpenBox 默認(rèn)采用一種自動(dòng)選擇優(yōu)化算法的策略,根據(jù)輸入?yún)?shù)類型,目標(biāo)個(gè)數(shù),約束個(gè)數(shù)選擇合適的優(yōu)化算法。用戶也可基于自身需求,在系統(tǒng)推薦的基礎(chǔ)上自行選擇優(yōu)化策略。更多OpenBox的特性請(qǐng)參考開源文檔:
https://open-box.readthedocs.io/zh_CN/latest/overview/overview.html
目前OpenBox已在快手、阿里巴巴集團(tuán)等企業(yè)落地部署與使用。
OpenBox性能驗(yàn)證
1、收斂效果對(duì)比
為體現(xiàn)OpenBox在通用黑盒優(yōu)化問題上的性能,系統(tǒng)針對(duì)單/多目標(biāo),無/有約束,共4種場景對(duì)比OpenBox與現(xiàn)有算法與系統(tǒng)在優(yōu)化數(shù)學(xué)函數(shù)上的效果,實(shí)驗(yàn)效果如下四圖所示。可以看出在不同的優(yōu)化場景中,OpenBox相較現(xiàn)有系統(tǒng)都有較為顯著的收斂效果提升。
2、端到端效果對(duì)比
針對(duì)實(shí)際場景,Openbox以表格分類的機(jī)器學(xué)習(xí)任務(wù)為例,與現(xiàn)有開源系統(tǒng)BoTorch,GPGlowOpt,Spearmint,HyperMapper,SMAC3,Hyperopt進(jìn)行對(duì)比。為保證公平性,Openbox使用串行方式執(zhí)行任務(wù),并匯報(bào)調(diào)參結(jié)果在測試集上的準(zhǔn)確率。以下展示使用LightGBM與LibSVM兩個(gè)模型在25個(gè)OpenML公開數(shù)據(jù)集上的調(diào)參結(jié)果平均排名。值得注意的是,由于LibSVM的搜索空間復(fù)雜且包含條件選擇,OpenBox僅與支持復(fù)雜空間定義的SMAC3以及Hyperopt進(jìn)行對(duì)比。
可以觀察到OpenBox在兩個(gè)模型調(diào)參中均獲得了優(yōu)異的性能。具體來說,OpenBox在Lightgbm調(diào)參中排名中位數(shù)為1.25,在LibSBM調(diào)參中為1.50,體現(xiàn)了OpenBox相比其它開源系統(tǒng)在超參數(shù)優(yōu)化任務(wù)中的優(yōu)勢。
(a) AutoML任務(wù)LightGBM優(yōu)化結(jié)果
(b) AutoML任務(wù)LibSVM優(yōu)化結(jié)果
3、并行性能對(duì)比
OpenBox 支持高效的并行優(yōu)化算法,使得在達(dá)到相同的優(yōu)化效果的前提下,所需要的時(shí)間代價(jià)大幅降低。下圖展示了使用 OpenBox 中并行優(yōu)化算法在 LightGBM 調(diào)參任務(wù)上的提升,使用的數(shù)據(jù)集為公開數(shù)據(jù)集 optdigits 。其中“Sync”表示同步并行,“Async” 表示異步并行,“-n” 表示并發(fā)度。
可以觀察到,相比串行優(yōu)化(Seq-1),并行能夠帶來很大程度上提升搜索效率。其中最顯著的提升來自于并發(fā)度為8的異步優(yōu)化算法,在達(dá)到與串行方法相同的優(yōu)化結(jié)果時(shí)僅使用1/80的時(shí)間預(yù)算,也即實(shí)現(xiàn)7.5×的加速比。(理想加速比為8×)
更多關(guān)于OpenBox的實(shí)驗(yàn)結(jié)果,請(qǐng)參考OpenBox論文:
https://arxiv.org/abs/2106.00421
OpenBox使用示例
目前OpenBox支持主流平臺(tái)(Linux、macOS、Window)使用。用戶只需在代碼中定義空間,給出目標(biāo)函數(shù),構(gòu)造優(yōu)化器即可運(yùn)行。以下以一個(gè)簡單的多目標(biāo)帶約束問題為例:
首先,我們需要import必要的組件:
接下來,我們定義一個(gè)包含兩個(gè)連續(xù)變量的搜索空間:
隨后,我們給出一個(gè)簡單的以上述兩個(gè)變量為輸入的目標(biāo)函數(shù)。這個(gè)目標(biāo)函數(shù)包含兩個(gè)目標(biāo)以及兩個(gè)約束:
最后我們定義一個(gè)優(yōu)化器,傳入指定的參數(shù)后,只需調(diào)用run()即可開始優(yōu)化。
除了上述包調(diào)用的方法,OpenBox還支持用戶通過接口訪問服務(wù),從服務(wù)端獲取推薦的參數(shù)配置,在本地執(zhí)行參數(shù)性能驗(yàn)證,并通過訪問網(wǎng)站頁面,可視化監(jiān)視與管理優(yōu)化過程。
完整的示例以及更多的使用場景,歡迎參考OpenBox官方文檔:
https://open-box.readthedocs.io/zh_CN/latest/
論文地址:https://arxiv.org/abs/2106.00421
項(xiàng)目Github地址:https://github.com/PKU-DAIR/open-box
歡迎大家關(guān)注點(diǎn)贊!
參考文獻(xiàn)
[1]Yang Li, Yu Shen, Wentao Zhang, Yuanwei Chen, Huaijun Jiang, Mingchao Liu, Jiawei Jiang, Jinyang Gao, Wentao Wu, Zhi Yang, Ce Zhang, Bin Cui. "OpenBox: A Generalized Black-box Optimization Service." Proceedings of the 27rd ACM SIGKDD international conference on knowledge discovery and data mining. 2021.
[2] Bergstra, James, et al. "Algorithms for hyper-parameter optimization." Advances in neural information processing systems 24 (2011).
[3] Snoek, Jasper, Hugo Larochelle, and Ryan P. Adams. "Practical bayesian optimization of machine learning algorithms." Advances in neural information processing systems 25 (2012).
[4] Hutter, Frank, Holger H. Hoos, and Kevin Leyton-Brown. "Sequential model-based optimization for general algorithm configuration." International conference on learning and intelligent optimization. Springer, Berlin, Heidelberg, 2011.
[5] Balandat, Maximilian, et al. "BoTorch: A framework for efficient Monte-Carlo Bayesian optimization." Advances in Neural Information Processing Systems (NeurIPS) (2020).
[6] Knudde, Nicolas, et al. "GPflowOpt: A Bayesian optimization library using tensorflow." arXiv preprint arXiv:1711.03845 (2017).
[7] Golovin, Daniel, et al. "Google vizier: A service for black-box optimization." Proceedings of the 23rd ACM SIGKDD international conference on knowledge discovery and data mining. 2017.
[8] Nardi, Luigi, David Koeplinger, and Kunle Olukotun. "Practical design space exploration." 2019 IEEE 27th International Symposium on Modeling, Analysis, and Simulation of Computer and Telecommunication Systems (MASCOTS). IEEE, 2019.
[9] Falkner, Stefan, Aaron Klein, and Frank Hutter. "BOHB: Robust and efficient hyperparameter optimization at scale." International Conference on Machine Learning. PMLR, 2018.
雷鋒網(wǎng)雷鋒網(wǎng)雷鋒網(wǎng)
雷峰網(wǎng)特約稿件,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。
本專題其他文章