調整模型超參數

重要

Machine Learning 工作室 (傳統) 的支援將於 2024 年 8 月 31 日結束。 建議您在該日期之前轉換成 Azure Machine Learning

自 2021 年 12 月 1 日起,您將無法建立新的 Machine Learning 工作室 (傳統) 資源。 在 2024 年 8 月 31 日之前,您可以繼續使用現有的 Machine Learning 工作室 (傳統) 資源。

ML 工作室 (傳統) 文件即將淘汰,未來將不再更新。

在模型上執行參數掃掠以決定最佳參數設定

類別:機器學習/定型

注意

適用于僅限機器學習 Studio (傳統)

Azure Machine Learning 設計工具中提供類似的拖放模組。

模組概觀

本文說明如何在機器學習 Studio (傳統) 中使用微調模型超參數模組,以判斷指定機器學習模型的最佳超參數。 此模組會使用不同的設定組合來建立及測試多個模型,並比較所有模型的計量,以取得設定的組合。

字詞「參數」和「超參數」可能會造成混淆。 模型的參數是您在 [屬性] 窗格中設定的 參數 。 基本上,這個模組會對指定的參數設定執行 參數 清除,並學習一組最佳的 超參數,每個特定決策樹、資料集或回歸方法可能會有不同的集合。 尋找最佳設定的流程有時稱為「調整」。

此模組支援兩種方法來尋找模型的最佳設定:

  • 整合式定型和調整:您可以設定一組要使用的參數,然後讓模組逐一查看多個組合,測量精確度直到找到「最佳」模型為止。 使用大部分的學習模組模組時,您可以選擇在定型程式期間應變更的參數,而且應該保持固定。

    視您想要執行微調程式的時間長度而定,您可能會決定要徹底測試所有組合,也可以藉由建立參數組合的方格並測試參數方格的隨機子集,來縮短流程。

  • 交叉驗證與微調:使用此選項時,您可以將資料分割成一些折迭,然後在每個折迭上建立和測試模型。 此方法可提供最佳的精確度,並有助於找出資料集的問題;不過,定型需要較長的時間。

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

  • 如果您正在建立群集模型,請使用 清理 叢集來自動決定最佳的叢集數目和其他參數。

  • 在微調之前,套用特徵選取以判斷具有最高資訊值的資料行或變數。 如需詳細資訊,請參閱 Feature Selection

如何設定調整模型超參數

一般來說,學習特定機器學習模型的最佳超參數需要相當大量的實驗。 此模組支援初始調整程式,以及測試模型精確度的交叉驗證:

使用參數清理來定型模型

本節說明如何執行基本參數清除,這會使用 [ 微調模型超參數 ] 模組來訓練模型。

  1. 微調模型超參數 模組新增至您在 Studio (傳統) 中的實驗。

  2. 連線未定型的模型 (.ilearner格式的模型) 至最左邊的輸入。

  3. 將 [ 建立定型模式] 選項設定為 [ 參數範圍 ],然後使用 範圍 產生器指定要在參數清除中使用的值範圍。

    幾乎所有的 分類回歸 模組都支援整合式參數的掃描。 對於不支援設定參數範圍的學習工具,只能測試可用的參數值。

    您可以手動設定一或多個參數的值,然後清除其餘的參數。 這可能會節省一些時間。

  4. 新增您想要用於定型的資料集,並將其連接至 [ 微調模型超參數] 的中間輸入。

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

  5. 在 [微調模型超參數] 的 [屬性] 窗格中,選擇 [參數清除模式] 的值。 此選項會控制參數的選取方式。

    • 整個方格:當您選取此選項時,模組會在系統所預先定義的方格上進行迴圈,以嘗試不同的組合,並找出最佳的學習模組。 如果您不知道最佳參數設定,而且想要嘗試所有可能的值組合,此選項就很有用。

    您也可以減少方格的大小並執行 隨機方格 整理。 研究顯示,這個方法會產生相同的結果,但更有效率的計算方式。

    • 隨機清除:當您選取此選項時,模組將會隨機選取系統定義範圍的參數值。 您必須指定要讓模組執行的執行數目上限。 如果您想要使用您所選擇的計量來提高模型效能,但仍節省運算資源,此選項會很有用。
  6. 針對 [ 標籤資料行],啟動資料行選取器來選擇單一標籤資料行。

  7. 選擇要在對模型進行 排名 時使用的單一度量。

    當您執行參數清除時,會計算模型類型所有適用的計量,並在 [清除 結果 ] 報表中傳回。 不同的度量會用於回歸和分類模型。

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

  8. 針對 [ 隨機種子],輸入初始化參數清除時要使用的數位。

    如果您要將支援整合式參數清除的模型定型,您也可以設定要使用的種子值範圍,以及逐一查看隨機的種子。 這有助於避免植入選取所引進的偏差。

  9. 執行實驗。

超參數調整的結果

定型完成時:

  • 若要針對最佳模型查看一組精確度度量,請以滑鼠右鍵按一下模組,選取 [ 清理結果],然後選取 [ 視覺化]。

    所有適用于模型類型的精確度度量都是輸出,但您針對排名選取的計量會決定哪一個模型被視為「最佳」。 計量只會針對排名最高的模型產生。

  • 若要查看針對「最佳」模型所衍生的設定,請以滑鼠右鍵按一下模組,選取 [ 定型的最佳模型],然後按一下 [ 視覺化]。 報表包含輸入資料行的參數設定和功能加權。

  • 若要在其他實驗中使用模型來進行評分,而不需要重複調整程式,請以滑鼠右鍵按一下模型輸出,然後選取 [ 另存為定型的模型]。

使用參數掃描執行交叉驗證

本節說明如何結合參數清除與交叉驗證。 此程式需要較長的時間,但您可以指定折迭數目,也可以取得資料集和可能模型的最大數量資訊。

  1. 將資料 分割和範例 模組新增至您的實驗,並連接定型資料。

  2. 選擇 [ 指派給 折迭] 選項,並指定一些要分割資料的折迭數目。 如果您未指定數位,則預設會使用10個折迭。 資料列會隨機分配至這些折迭,而不會取代。

  3. 若要在某個資料行上平衡取樣,請將 分層分割 設為 TRUE,然後選取 [分層] 資料 。 例如,如果您有不平衡資料集,您可能會想要將資料集分割,讓每個折迭都取得相同數量的少數案例。

  4. 微調模型超參數 模組新增至您的實驗。

  5. 連線此類別中的其中一個機器學習模組,移至 [微調模型超參數] 的左側輸入。

  6. 在學習模組的 [ 屬性 ] 窗格中,將 [ 建立定型模式] 選項設為 [ 參數範圍 ],然後使用 [ 範圍 產生器] 來指定要在參數清除中使用的值範圍。

    您不需要指定所有值的範圍。 您可以手動設定某些參數的值,然後清除其餘的參數。 這可能會節省一些時間。

    如需不支援此選項的學習工具清單,請參閱 技術 提示一節。

  7. 連線資料分割和取樣的輸出至 [微調模型超參數] 加上標籤的訓練資料集輸入。

  8. (選擇性)您可以將驗證資料集連接到 [ 微調模型超參數] 的最右邊輸入。 針對交叉驗證,您只需要訓練資料集。

  9. 在 [微調模型超參數] 的 [屬性] 窗格中,指出您是否想要執行隨機清除或格線整理。 方格整理已詳盡,但是更耗時。 隨機參數搜尋可以得到良好的結果,而不需要花費太多時間。

    隨機清除的執行數目上限:如果您選擇隨機清除,您可以使用隨機的參數值組合,指定要定型模型的次數。

    隨機方格上的執行數目上限:此選項也會控制隨機取樣參數值的反覆運算次數,但不會從指定的範圍隨機產生值;相反地,會建立所有可能的參數值組合的矩陣,並在矩陣上採用隨機取樣。 這種方法更有效率,且較不容易發生區域超取樣或 undersampling。

    提示

    如需這些選項的更深入討論,請參閱 技術 提示一節。

  10. 選擇單一標籤資料行。

  11. 選擇要用於排名模型的 單一 度量。 系統會計算許多計量,因此請選取用來排序結果的最重要資料。

  12. 針對 [ 隨機種子],輸入初始化參數清除時要使用的數位。

    如果您要將支援整合式參數清除的模型定型,您也可以設定要使用的種子值範圍,以及逐一查看隨機的種子。 這是選擇性的,但可能有助於避免植入選取所引進的偏差。

  13. 加入 交叉驗證模型 模組。 連線資料分割和取樣的輸出至資料集輸入,並將微調模型超參數的輸出連接到未定型的模型輸入。

  14. 執行實驗。

交叉驗證的結果

交叉驗證完成時:

  • 若要查看評估結果,請以滑鼠右鍵按一下模組,選取 [ 依折迭評估結果],然後選取 [ 視覺化]。

    精確度度量是從交叉驗證行程計算而來,而且可能會根據您選取的折迭數目而稍有不同。

  • 若要查看資料集的分割方式,以及「最佳」模型如何針對資料集中的每個資料列評分,請以滑鼠右鍵按一下模組,選取 [ 評分的結果],然後選取 [ 視覺化]。

  • 如果您儲存此資料集以供稍後重複使用,則會保留折迭指派。 例如,儲存的 datsaet 可能如下所示:

    折迭指派 類別 Age (第1個特徵資料行)
    2 0 35
    1 1 17
    3 0 62
  • 若要取得「最佳」模型的參數設定,請以滑鼠右鍵按一下 [微調模型超參數]。

範例

如需如何使用此模組的範例,請參閱 Azure AI 資源庫

技術說明

本節包含實作詳細資料、提示和常見問題集的解答。

參數掃掠的運作方式

本節說明參數清除的一般運作方式,以及此課程模組中的選項如何互動。

當您設定參數清除時,會定義搜尋範圍,以隨機選取有限數量的參數,或對您所定義的參數空間進行徹底搜尋。

  • 隨機清除:此選項會使用設定的反復專案數來定型模型。

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

  • 格線清除:此選項會建立矩陣或方格,其中包含您指定之值範圍中參數的每個組合。 當您開始使用此模組進行微調時,會使用這些參數的組合來訓練多個模型。

  • 整個方格:使用整個方格的選項表示:每個和每個組合都經過測試。 此選項可視為最全面的,但需要最多的時間。

  • 隨機方格:如果您選取此選項,則會計算所有組合的矩陣,並在您指定的反覆運算次數上從矩陣取樣值。

    最近的研究顯示,隨機掃描的執行效能比格線分析更好。

控制定型的長度和複雜性

反復查看許多設定組合可能會很耗時,因此模組會提供數種方式來限制進程:

  • 限制用來測試模型的反覆運算次數
  • 限制參數空間
  • 限制反覆運算的推和參數空間

建議您試驗這些設定,以決定最有效率的方法來訓練特定的資料集和模型。

選擇評估計量

在結尾會顯示每個模型的精確度的報表,讓您可以檢查計量結果。 所有分類模型都會使用一組統一的計量,而回歸模型會使用一組不同的計量。 不過,在定型期間,您必須選擇「單一」計量,以用於對調整流程期間產生的模型進行排名。 您可能會發現,最佳的計量會根據您的商務問題以及誤報和誤否定的成本而有所不同。

如需詳細資訊,請參閱如何在機器學習中評估模型效能

用於分類的計量

  • 精度 True 結果占總案例的比例。

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

  • 記得 所有結果的所有正確結果的分數。

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

  • AUC 值,表示在 X 軸上繪製誤報時,曲線下的區域,而真肯定會繪製在 y 軸上。

  • 平均記錄遺失 兩個機率分佈之間的差異: true 個分佈和模型中的兩者之間的差異。

  • 定型記錄遺失 模型透過隨機預測提供的改進。

用於迴歸的計量

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

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

  • 相對絕對錯誤 以真正值的百分比表示錯誤。

  • 相對平方誤差 藉由將總平方誤差除以預測值的總平方誤差,加以標準化。

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

不支援參數清理的模組

機器學習中,幾乎所有的學習都支援透過整合式參數清除進行交叉驗證,讓您選擇要試驗的參數。 如果學習模組不支援設定值範圍,您仍然可以在交叉驗證中使用此學習模組。 在此情況下,會選取某些允許的值範圍來進行清理。

下列學習工具不支援設定要用於參數清理的值範圍:

預期的輸入

名稱 類型 描述
未定型的模型 ILearner 介面 參數掃掠的未定型模型
定型資料集 資料表 用於定型的輸入資料集
驗證資料集 資料表 用於驗證的輸入資料集 (適用於定型/測試驗證模式)。 這是選擇性的輸入。

模組參數

名稱 範圍 類型 預設 描述
指定參數掃掠模式 List 清理方法 隨機掃掠 在參數空間上掃掠整個方格,或使用有限的取樣次數來掃掠
隨機掃掠執行次數上限 [1; 10000] 整數 5 執行最多次的隨機掃掠
隨機種子 任意 整數 0 提供一個值做為亂數產生器的種子
標籤資料行 任意 ColumnSelection 標籤資料行
測量分類效能的度量 List 二元分類度量類型 精確度 選取用來評估分類模型的度量
測量迴歸效能的度量 List RegressionMetric 類型 平均絕對誤差 選取用來評估迴歸模型的度量

輸出

名稱 類型 說明
掃掠結果 資料表 參數掃掠執行的結果度量
定型的最佳模型 ILearner 介面 在定型資料集上獲得最佳效能的模型

另請參閱

A-Z 模組清單
訓練
交叉驗證模型