微調模型超參數

本文說明如何在 Azure 機器學習 設計工具中使用微調模型超參數位元件。 目標是判斷機器學習模型的最佳超參數。 此元件會使用不同的設定組合來建置和測試多個模型。 其會比較所有模型的計量,以取得設定的組合。

字詞 參數超參數 可能會造成混淆。 模型 的參數 是您在元件右窗格中設定的參數。 基本上,此元件會對 指定的參數設定執行參數掃掠 。 它會瞭解一組 最佳的超參數,每個特定判定樹、數據集或回歸方法可能不同。 尋找最佳設定的程式有時稱為 微調

元件支援下列方法來尋找模型的最佳設定: 整合式定型和微調。 在此方法中,您會設定要使用的一組參數。 然後,您可以讓元件逐一查看多個組合。 元件會測量精確度,直到找到「最佳」模型為止。 透過大部分的學習模組元件,您可以選擇定型程式期間應該變更哪些參數,以及哪些參數應維持固定狀態。

根據您希望微調程式執行的時間長度,您可能會決定完整測試所有組合。 或者,您可以藉由建立參數組合的網格線,並測試參數方格的隨機子集來縮短程式。

這個方法會產生定型的模型,您可以儲存以供重複使用。

提示

您可以執行相關工作。 開始微調之前,請先套用特徵選取專案,以判斷具有最高資訊值的數據行或變數。

如何設定微調模型超參數

學習機器學習模型的最佳超參數需要大量使用管線。

使用參數掃掠來定型模型

本節說明如何執行基本參數掃掠,以使用 Tune 模型超參數位件來定型模型。

  1. 將微調模型超參數位件新增至設計工具中的管線。

  2. 將未定型的模型連接到最左邊的輸入。

    注意

    微調模型超參數 只能連線到內建的機器學習演算法元件,而且不支援在建立 Python 模型內建的 自定義模型

  3. 新增您要用於定型的數據集,並將它連接到微調模型超參數的中間輸入。

    或者,如果您有標記的數據集,您可以將它連接到最右邊的輸入埠(選擇性驗證數據集)。 這可讓您在定型和微調時測量精確度。

  4. 在微調模型超參數的右側面板中,選擇 參數掃掠模式的值。 此選項會控制如何選取參數。

    • 整個方格:當您選取此選項時,元件會在系統預先定義的方格上迴圈,以嘗試不同的組合並識別最佳的學習者。 當您不知道最佳參數設定可能是什麼,而且想要嘗試所有可能的值組合時,這個選項很有用。

    • 隨機掃掠:當您選取此選項時,元件會隨機選取系統定義範圍內的參數值。 您必須指定您希望元件執行的最大執行次數。 當您想要使用您選擇的計量來增加模型效能,但仍會節省運算資源時,這個選項很有用。

  5. 針對 [ 卷標] 數據行,開啟數據行選取器以選擇單一卷標數據行。

  6. 選擇執行次數:

    • 隨機掃掠時執行次數上限:如果您選擇隨機掃掠,您可以使用隨機參數值組合來指定模型應該定型的次數。
  7. 針對 [ 排名],選擇用於對模型進行排名的單一計量。

    當您執行參數掃掠時,元件會計算模型類型的所有適用計量,並在掃掠結果報告中傳回它們。 元件會針對回歸和分類模型使用不同的計量。

    不過,您選擇的計量會決定模型的排名方式。 只有依所選計量排名的最上層模型會輸出為定型的模型,以供評分。

  8. 針對 [隨機種子],輸入整數做為虛擬隨機數產生器狀態,用於在預先定義的範圍內隨機選取參數值。 只有在參數掃掠模式隨機掃掠,此參數才有效。

  9. 提交管線。

超參數微調的結果

完成定型時:

  • 若要檢視掃掠結果,您可以以滑鼠右鍵單擊元件,然後選取 [可視化],或以滑鼠右鍵單擊元件的左輸出埠以可視化。

    掃掠結果包含套用至模型類型的所有參數掃掠和精確度計量,而您選取的排名計量會決定哪一個模型視為「最佳」。

  • 若要儲存已定型模型的快照集,請選取 [定型模型] 元件右面板中的 [輸出+記錄] 索引卷標。 選取 [ 註冊數據集] 圖示,將模型儲存為可重複使用的元件。

技術注意事項

本節包含實作詳細數據和秘訣。

參數掃掠的運作方式

當您設定參數掃掠時,您可以定義搜尋的範圍。 搜尋可能會使用隨機選取的有限參數數目。 或者,可能是您定義之參數空間的詳盡搜尋。

  • 隨機掃掠:此選項會使用一組反覆專案來定型模型。

    您可以指定要逐一查看的值範圍,而元件會使用這些值的隨機選擇子集。 值是選擇取代值,這表示先前隨機選擇的數位不會從可用數位的集區中移除。 因此,所有傳遞中選取的任何值機率都會維持不變。

  • 整個方格:使用整個方格的選項表示會測試每個組合。 此選項最徹底,但需要最多時間。

控制定型的長度和複雜度

逐一查看許多設定組合可能很耗時,因此元件提供數種方式來限制程式:

  • 限制用來測試模型的反覆項目數目。
  • 限制參數空間。
  • 同時限制反覆項目數目和參數空間。

建議您使用設定來管線,以判斷特定數據集和模型上定型最有效率的方法。

選擇評估計量

在測試結束時,模型會呈現報告,其中包含每個模型的精確度,以便檢閱計量結果:

  • 所有二元分類模型都會使用一組統一的計量。
  • 精確度適用於所有多類別分類模型。
  • 不同的計量集合用於回歸模型。

不過,在定型期間,您必須選擇單計量,以在微調程序期間產生的模型排名。 您可能會發現最佳計量會根據您的商務問題以及誤判和誤判的成本而有所不同。

用於二元分類的計量

  • 精確度 是真實結果與總案例的比例。

  • 精確度 是真結果與正結果的比例。

  • 回想 是所有結果中所有正確結果的分數。

  • F 分數 是平衡精確度和召回率的量值。

  • AUC 是一個值,表示在 X 軸上繪製誤判為真時曲線下的區域,而 Y 軸上繪製真判為真。

  • 平均對數損失 是兩個機率分佈之間的差異:true 1 和模型中的機率分佈。

用於回歸的計量

  • 平均絕對誤差 會平均模型中的所有錯誤,其中 error 表示預測值與 true 值的距離。 通常縮寫為 MAE

  • 平均平方誤差 的根值會測量錯誤的平方平均值,然後取得該值的根。 通常縮寫為 RMSE

  • 相對絕對誤差 會以 true 值的百分比表示錯誤。

  • 相對平方誤差 會除以預測值的總平方誤差,將總平方誤差正規化。

  • 判斷 係數是單一數位,表示數據如何符合模型。 一個值表示模型完全符合數據。 值為零表示數據是隨機的,否則無法符合模型。 它通常稱為 r2R2r 平方

不支持參數掃掠的元件

Azure 中幾乎所有的學習者 機器學習 都支援使用整合式參數掃掠進行交叉驗證,讓您選擇要搭配管線的參數。 如果學習者不支援設定值範圍,您仍然可以在交叉驗證中使用。 在此情況下,會針對掃掠選取一系列允許的值。

下一步

請參閱 Azure 機器學習 可用的元件集。