調整模型超參數

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

字詞「參數」和「超參數」可能會造成混淆。 模型的「參數」是您在元件右窗格中設定的參數。 基本上,此元件會透過指定的參數設定來執行「參數掃掠」。 其會了解一組最佳的「超參數」,這對每個特定決策樹、資料集或迴歸方法可能會有所不同。 尋找最佳設定的流程有時稱為「調整」。

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

根據您想要調整流程執行的時間長度,您可能會決定要徹底測試所有組合。 或者,您可以建立參數組合的方格,並測試參數方格的隨機子集來縮短流程。

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

提示

您可以執行相關工作。 在開始調整之前,請先套用特徵選項,來判斷具有最高資訊值的資料行或變數。

如何設定調整模型超參數

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

使用參數掃掠來定型模型

本節描述如何執行基本參數掃掠,這會使用調整模型超參數元件來定型模型。

  1. 在設計工具中,將調整模型超參數元件新增至您的管線。

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

    注意

    調整模型超參數只能連線到內建的機器學習演算法元件,而且無法支援 [建立 Python 模型]中內建的自訂模型。

  3. 新增您想要用於定型的資料集,並將其連線到調整模型超參數的中間輸入。

    如果具有已標記的資料集,您可以選擇性地將其連線到最右邊的輸入連接埠 ([選用的驗證資料集])。 這可讓您在定型和調整時測量精確度。

  4. 在 [調整模型超參數] 的右窗格中,選擇 [參數掃掠模式] 的值。 此選項會控制參數的選取方式。

    • 整個方格:如果您選取此選項,元件會反覆檢查系統所預先定義的方格,以嘗試不同的組合來找出最佳的學習模組。 當您不知道最佳參數設定可能是什麼,而且想要嘗試所有可能的值組合時,這個選項很有用。

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

  5. 針對 [標籤資料行],開啟資料行選取器來選擇單一標籤資料行。

  6. 選擇執行次數:

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

    當您執行參數掃掠時,元件會計算模型類型的所有適用計量,並在 [掃掠結果] 報告中傳回它們。 此元件會將個別計量用於迴歸和分類模型。

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

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

  9. 提交管線。

超參數調整的結果

定型完成時:

  • 若要檢視掃掠結果,您可以在元件上按一下滑鼠右鍵,然後選取 [視覺化],或以滑鼠右鍵按一下要視覺化的元件的左方輸出連接埠。

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

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

技術說明

本節包含執行詳細資料和秘訣。

參數掃掠的運作方式

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

  • 隨機掃掠:此選項會使用一組逐一查看次數來定型模型。

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

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

控制定型的長度和複雜性

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

  • 限制用來測試模型的逐一查看次數。
  • 限制參數空間。
  • 同時限制逐一查看次數和參數空間。

建議您使用管線搭配設定來執行,以決定在特定資料集和模型上進行定型的最有效率方法。

選擇評估計量

在測試結束時,模型會呈現一份報告,其中包含每個模型的精確度,讓您可以檢視計量結果:

  • 一組統一的計量用於所有二進位分類模型。
  • 精確度用於所有多類別分類模型。
  • 一組不同的計量用於迴歸模型。

不過,在定型期間,您必須選擇「單一」計量,以用於對調整流程期間產生的模型進行排名。 您可能會發現最佳計量有所不同,取決於您的商務問題以及誤判為真和誤否定的成本。

用於二進位分類的計量

  • 正確性是真正結果占案例總數的比例。

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

  • 召回率是所有正確結果占所有結果的比例。

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

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

  • 平均記錄遺失是兩個機率分配的差值:真實的機率分配和模型中的機率分配。

用於迴歸的計量

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

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

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

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

  • 決定係數是單一數字,表示資料符合模型的程度。 值為 1 時,表示模型完全符合資料。 值為 0 時,表示資料是隨機的,否則無法符合模型。 其通常稱為 r2R2r 平方

不支援參數掃掠的元件

Azure Machine Learning 中幾乎所有的學習模組都支援透過整合式參數掃掠進行交叉驗證,這可讓您選擇要與管線搭配使用的參數。 如果學習模組不支援設定值範圍,您仍然可以在交叉驗證中使用此學習模組。 在此情況下,會選取允許的值範圍進行掃掠。

後續步驟

請參閱 Azure Machine Learning 可用的元件集