Microsoft NNI 入門 —— Tunner算法分析調研

NNI中目前已經(jīng)實現(xiàn)的Tunner算法分類:
目前Tunner算法:

  1. 基于暴力搜索的方法:
  • GridSearch,定義參數(shù)空間,逐個搜索,浪費資源,但是可以搜索到所有的空間
  • Batch tuner,
  1. 基于序列模型優(yōu)化的方法:
  • TPE
  • SMAC
  1. 基于搜索空間的方法:
  • Random
  • Anneal:搜索空間,采用啟發(fā)式策略
  • Naive Evolution:樸素進化
  1. 基于貝葉斯優(yōu)化的方法:
  • Hyperband
  1. 其他的:
  • Network Morphism,可以選擇和設計網(wǎng)絡結構的,主要用于視覺任務,目前支持keras和pytorch
  • Metis Tuner ,可以根據(jù)精度選擇下一次配置

參考上一篇博客中統(tǒng)計的部分實驗數(shù)據(jù):

算法 最高分數(shù) 最低分數(shù) >0.80次數(shù) >0.90次數(shù) >0.95次數(shù) 總次數(shù)
TPE 0.9834 0.0958 7 5 3 10
Random 0.9823 0.0982 3 3 2 10
Anneal 0.9837 0.0892 2 2 2 10
Naive Evolution 0.9692 0.0958 2 1 1 10
Batch Tuner 0.9877 0.1135 3 3 2 6
Grid Search 0.988 0.0892 343 274 162 600
SMAC 0.9733 0.098 5 4 1 10
Hyperband 0.9831 0.0958 5 5 4 10

可以看到在Mnist數(shù)據(jù)集上做實驗的話,幾乎所有的Tunner算法都可以達到0.95+的分數(shù)。

  • 顯然基于暴力搜索的GridSearch和BatchTuner效率更低下,GridSearch會對所有的數(shù)據(jù)進行排列組合,顯然是最低效的,而且也并沒有明顯的性能指標的提升。BatchTuner只支持combine_params,類似人工調參的升級版,對于有經(jīng)驗的程序員是一個很不錯的工具。
  • 從以上的小數(shù)據(jù)量的實驗來看(如果條件允許,進行大數(shù)據(jù)量實驗的話會更可靠),TPE應該是首選,得分高,而且大于0.80的次數(shù)多。
  • SMAC使用nnictl package install安裝起來著實費勁,github的這個服務器是掛在了美國亞馬遜上,所以如果網(wǎng)速不是很理想的服務器基本在裝的時候每次都是timeout,如果可以直接用pip install smac安裝就好了。
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容