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