近日,日本的深度學習公司PerferredNetworks 發(fā)布了其超參數(shù)優(yōu)化框架的beta版本。這篇文章中將詳細介紹這一框架的特性及其后面的原理。
關于超參數(shù)
超參數(shù)是控制機器學習算法行為的參數(shù),在深度學習中主要包括了學習率、批量大小和訓練周期、層數(shù)、每層神經元的數(shù)量和通道等。他們不僅僅是一個簡單的數(shù)值,同時控制著模型訓練的行為并在很大程度上影響著模型的性能。除了上述提到的數(shù)值外還包括了使用的優(yōu)化方法(SDG或Adam等)。調參是深度學習的一項重要技術,由于需要眾多的實踐經驗和對算法的理解,調參的過程常常被人們戲稱作煉丹。這也是初學者所面臨的最大困難。
對于機器學習算法來說,如果沒有超參數(shù)算法的設計和模型的訓練幾乎不可能進行。對于深度學習來說,超參數(shù)的數(shù)量很可能十分龐大,工程師們需要花費巨量的時間來調整超參數(shù)來獲取表現(xiàn)較好的模型。如何快速調整模型,甚至自動化搜索超參數(shù),已經成為一個廣泛的研究熱點。
下面讓我們來看看PFN提出的這一框架有什么特點。
Optuna
Optuna是一套能夠自動優(yōu)化超參數(shù)的的軟件框架,它可以通過不斷試錯的方法找到最好表現(xiàn)的最優(yōu)超參數(shù)值。值得注意的是,官方提供了Python接口,能夠方便的集成到代碼中使用。它主要基于運行的歷史數(shù)據(jù)來確定接下來需要測試的超參數(shù)值。基于這些數(shù)據(jù),它可以估計出超參數(shù)比較可能出現(xiàn)的區(qū)域并在這個區(qū)域中進行超參數(shù)搜索嘗試。隨著不斷獲取新的結果,它也將更新這一區(qū)域并繼續(xù)搜索。在不斷重復搜索、評價更新的過程中來獲取表現(xiàn)更好的超參數(shù)。具體來講,這一軟件框架的優(yōu)化方法屬于貝葉斯優(yōu)化算法中的樹形帕曾(Parzen)優(yōu)化器。
適用范圍
Optuna作為超參數(shù)優(yōu)化框架可以和PFN自己的深度學習框架Chainer充分結合使用。只需要在Chainer中寫接受來自Optuna的超參數(shù)的代碼即可。通過這一接口Optuna可以不斷調用了用戶編寫的模型代碼,神經網(wǎng)絡也可以在你不同的超參數(shù)下得以訓練并搜尋較好的結果。
目前在PFN的多個項目中都使用了Chainer深度學習架構和Optuna優(yōu)化框架的組合。但我們用戶來說這兩個框架是相互獨立的,同樣可以將Optuna與其他機器學習軟件結合起來使用。目前官方提供了使用scikit-learn、XGBoost和LightGBM等算法集成Optuna的實例代碼供用戶學習。事實上,除了機器學習問題外Optuna還廣泛適用于各種需要優(yōu)化的任務,比如計算加速就是一個典型的例子。只要可以編寫接收超參數(shù)的接口并返回算法的計算結果即可使用這一框架來自動化冗長的調參過程。
新框架的優(yōu)勢
如果熟悉PFN的小伙伴可能會問,為什么在擁有諸如Hyperopt、Spearmint、SMAC等超參數(shù)自動化框架后還需要建立新的框架Optuna呢?這是因為目前的框架在某些環(huán)境下無法工作或者不能保持穩(wěn)定的優(yōu)化,同時這些框架已經落后于目前最先進的超參數(shù)優(yōu)化機制。研究人員希望開發(fā)出一種可以在python中具體指定需要調優(yōu)的超參數(shù),而不是為優(yōu)化器編寫單獨的代碼。
新特點
和Chainer一樣,Optuna提供了動態(tài)圖模型(define-by-run)風格的接口,這使得用戶可以在代碼很復雜的情況下比其他框架更好地保持模塊化特性。同時Optuna還可以在復空間中優(yōu)化超參數(shù),這是先前的框架所不能完成的。
在深度學習中定義計算圖主要有兩種主要的風格:動態(tài)圖和靜態(tài)圖。在早期的深度學習框架中,Caffe和Tensorflow等靜態(tài)圖框架占據(jù)了主流;但隨著技術的發(fā)展,Chainer首次提出了動態(tài)圖框架,隨后PyTorch和Tensorflow2.0更新的eager也引入了動態(tài)圖模型,逐漸成為深度學習的主流方法。在超參數(shù)調優(yōu)領域,同樣存在著Define-and-Run和Define-by-Run兩種風格。Optuna和市面上絕大多數(shù)的框架不同,它是基于Define-by-Run的概念,API風格非常獨特。
這使得用于程序保持高度模塊化成為可能,同時也使得復雜超參數(shù)空間中的參數(shù)搜索成為可能。當使用如深度學習或梯度推舉算法等迭代算法時,對于訓練粗略的預測可以通過學習曲線來得到。利用這樣的方法,Optuna能根據(jù)這一預測終止可能性較小的超參數(shù)區(qū)域,把更多的算力用于可能性更高的區(qū)域以提高搜索效率。而上面提到已有的超參數(shù)學習框就缺乏這一功能。此外最近的研究表明在學習曲線上使用剪枝技術十分有效,下圖顯示了在一個簡單深度學習任務上表現(xiàn)出的有效性,當Optuna和Hyperopt優(yōu)化引擎使用相同TPE時,Optuna使用剪枝技術獲取了更高的效率。
深度學習是計算密集型技術,訓練也是耗時的過程。對于一個自動超參數(shù)優(yōu)化框架來說,高效和穩(wěn)定應當是其主要特征。Optuna支持異步分布式優(yōu)化,使得算法可以同時在多個節(jié)點上進行多次嘗試。并行計算的效果如下圖所示,研究人員通過修改計算機的數(shù)量來探索了分布式優(yōu)化的加速情況。
用戶可通過簡單的代碼配置,就可以并行地分布式地執(zhí)行包含分布式過程的目標函數(shù)。
可視化
面板可視化,基于http 優(yōu)化過程或導出pandas數(shù)據(jù)。
可視化方便我們形象的理解并優(yōu)化程序的運行。Optuna提供了可通過瀏覽器訪問的面板來觀察優(yōu)化過程。用戶可以通過這一方法從實驗過程和結果中獲取有效的信息來幫助分析。同時還提供了優(yōu)化過程詳細信息的導出,以便進行詳細的分析。
在Optuna的支持下FPN參加了OpenImageChallange2018,并取得了第二名的好成績。
PFN開源眾多算法的目的在于加速深度學習的研發(fā)活動,Optuna作為在自動化超參數(shù)調優(yōu)上的研究成果是十分重要的進步,讓機器學習的自動化加速過程又進了一步。除此之外研究人員還在繼續(xù)研究神經架構自動搜索和自動特征抽取等功能,十分期待PFN能夠開發(fā)更多優(yōu)秀的算法。
-
自動化
+關注
關注
29文章
5785瀏覽量
84896 -
機器學習
+關注
關注
66文章
8503瀏覽量
134630 -
深度學習
+關注
關注
73文章
5561瀏覽量
122798
原文標題:Perferred Networks提出自動化超參數(shù)優(yōu)化框架Optuna
文章出處:【微信號:thejiangmen,微信公眾號:將門創(chuàng)投】歡迎添加關注!文章轉載請注明出處。
發(fā)布評論請先 登錄
評論