今天我們將會講到:
ML的模型是由參數和超參數所組成的數學函數,其中參數是在訓練過程中會隨著變化的數,而超參數卻是在訓練前就先決定好的數值,訓練過程中不會再跟著改變了。ML中,超參數包含了有如學習率、正規化率、批次大小、隱藏層數、每層的神經元數等等。
超參數雖然在訓練時不會改變,但卻會影響到損失函數的行為,如下圖,學習率的大小,會影響損失函數收斂的速度和位置,太小會收斂的很慢、太大會發散或收斂不到最低的位置。
既然超參數是在訓練前就要選定的,那麼我要怎麼知道我選的值是好的呢?答案是沒辦法直接知道的,你必須透過搜索的過程才能知道哪些是比較適合的。而說到搜索,大部分的人可以直接輕鬆地想到網格搜索的方式,然而這種方式卻很花費時間,但是不用擔心,做這種事情也可以交給 Google Cloud ML,他們有發表了這方面的研究論文,並且實作在 Cloud ML 上,讓你可以輕鬆的搜索超參數的值。
那麼要如何使用 Cloud ML 做超參數搜索呢?簡單來說可以分成下面3個步驟:
接著我們就來實作看看吧!
在這個實作中,我們將學會:
登入 GCP,並在 storage 創建一個 bucket。
開啟Notebooks後,複製課程 Github repo (如Day9的Part 1 & 2步驟)。
在左邊的資料夾結構,點進 training-data-analyst > courses > machine_learning > deepdive > 05_artandscience ,然後打開檔案 b_hyperparam.ipynb。
設定環境變數名稱如 PROJECT、BUCKET、REGION等等:
今天介紹了超參數的調整,明天我們將介紹 “正規化和邏輯迴歸”。