当前位置: 首页 > 資訊 >

什麼是AutoML

什麼是AutoML

根據 Microsoft的說法節錄如下:
自動化機器學習 (亦稱為自動化 ML 或 AutoML) 是使機器學習模型開發中耗時的反覆工作自動化的流程。 其可讓資料科學家、分析師和開發人員以高擴充性、效率和生產力來建置 ML 模型,同時維持模型品質。

來自 https://docs.microsoft.com/zh-tw/azure/machine-learning/concept-automated-ml

<<白話文>>
以MNIST為例(判斷手寫數字)。首先,我們拿到一堆資料。經過前處理後,先直覺的選個神經網路模型(CNN)來判斷數字。Pytorch MNIST要設定一些參數,先用預設值,然後丟到兩個網站試跑一次。(因為local機器設備簡陋,而且要省電吹冷氣!)

Google CoLab:耗時 10 min 14 sec。
DeepNote:耗時 26.2 min。(雖然這裡編寫程式很舒服,但免費資源限制多,只好說再見!)

僅預設值就得耗掉 CoLab 10 min 14 sec!也就是說,調一次參數再去炸CoLab(一次experiment) ,又得再花10 min 14 sec!而且,重點是自己還得純手工,無聊地改參數,再回炸。這些參數,NNI(Neural Network Intelligence)稱作Hyper-parameters(超參 = Model參數+環境參數),放參數的地方叫做search space。讓我們隨便找幾個參數來組合看看。

searchSpace:
  batch_size:
    _type: choice
    _value: [16, 32, 64, 128]
  hidden_size:
    _type: choice
    _value: [128, 256, 512, 1024]
  lr:
    _type: choice
    _value: [0.0001, 0.001, 0.01, 0.1]
  momentum:
    _type: uniform
    _value: [0, 1]

這裡有幾個參數(先別管是甚麼用途):batch_size,hidden_size,lr(learn rate),momentum。依照裡面的數字之個數來做組合,4x4x4x2,純手工要改這麼多次,而且每次要苦等11 mins,這未免太無聊了!所以,丟給NNI(Neural Network Intelligence)去處理吧!!

AutoML能得到的好處

傳統機器學習模型的開發會耗用大量資源,需要大量的領域知識和時間來產生和比較數十種模型。 透過自動化機器學習,您將可以更輕鬆、更高效率地縮短取得生產就緒 ML 模型所需的時間。

來自 https://docs.microsoft.com/zh-tw/azure/machine-learning/concept-automated-ml

那NNI(Neural Network Intelligence)好處及特性為何呢?請看下次分解。

<<註>>NNI是目前開源軟體裡面,排名第一的AutoML工具。