本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
了解 Amazon 中可用的超參數調校策略 SageMaker
當您建構複雜的機器學習系統 (如深度學習神經網路) 時,想要探索所有可能的組合是不切實際的。超參數調校可以透過嘗試模型的多種變化來加速生產力。此功能會將重點擺在指定範圍內最出色的超參數值組合,以自動尋找最佳模型。若要取得良好的結果,必須選擇正確的範圍來探索。此頁面提供您可以與 Amazon 搭配使用的不同超參數調校策略的簡短說明 SageMaker。
使用API參考指南了解如何與超參數調校互動。您可以搭配 HyperParameterTuningJobConfig和 HyperbandStrategyConfig 使用此頁面所述的調校策略APIs。
注意
由於演算法本身是隨機的,超參數調校模型可能無法收斂最佳答案。即使在您選擇的範圍內或許是最佳的值組合,也可能發生這種情況。
網格搜尋
使用網格搜尋時,超參數調校會從建立任務時指定的分類值範圍中選擇值的組合。使用網格搜尋策略時,系統僅支援分類參數。您不需要指定 MaxNumberOfTrainingJobs
。調整任務建立的訓練任務數目會自動計算為不同的類別組合總數。如果指定,MaxNumberOfTrainingJobs
的值應等於可能的不同分類組合的總數。
隨機搜尋
使用隨機搜尋時,超參數調校會隨機選擇超參數值的組合,其範圍是您針對其啟動的每個訓練任務指定的範圍。超參數值的選擇不取決於先前訓練任務的結果。因此,您可以執行並行訓練任務的數目上限,而不會變更調校的效能。
如需使用隨機搜尋的範例筆記本,請參閱使用 SageMaker XGBoost 和 Automatic Model Tuning 筆記本進行隨機搜尋和超參數擴展
貝氏最佳化
貝葉斯最佳化會將超參數調校視為迴歸問題。只要提供一組輸入功能 (超參數),超參數調校即可針對您選擇的指標來最佳化模型。為了解決迴歸問題,超參數調校會猜測哪些超參數組合可能會獲得最佳結果。然後,它會執行訓練任務來測試這些值。在測試一組超參數值之後,超參數調校會使用迴歸來選擇要測試的下一組超參數值。
超參數調校使用 Amazon SageMaker 實作 Bayesian 最佳化。
在選擇下一個訓練任務的最佳超參數時,超參數調校會將目前針對這個問題所知的一切納入考慮。有時候選擇與先前最佳訓練任務組合相近的超參數值組合,來逐漸改善效能。這可讓超參數調校使用已知的最佳結果。有時候,它也會選擇一組已嘗試過但早已移除的超參數值。這可讓超參數調校探索超參數值的範圍,嘗試找到尚未充分了解的新區域。探索/開採取捨在許多機器學習問題中相當常見。
如需貝葉斯最佳化的詳細資訊,請參閱以下項目:
有關貝葉斯最佳化的基本主題
進階模型建立和轉移學習
Hyperband
Hyperband 是一種以多擬真度為基礎的調校策略,可動態地重新配置資源。Hyperband 會同時使用訓練任務的中間和最終結果,將 epoch 重新分配給充分利用的超參數組態,並自動停止執行不佳的設定。它還可以無縫擴展到使用許多平行訓練任務。這些功能可顯著加快隨機搜尋和貝葉斯最佳化策略的超參數調校。
Hyperband 只能用來調校在不同資源層級發布結果的反覆式演算法。例如,Hyperband 可用於調校圖像分類的神經網路,該類神經網路會在每個 epoch 之後發布準確度指標。
如需 Hyperband 最佳實務的詳細資訊,請參閱下列連結:
提早停止的 Hyperband
當訓練任務不太可能改善超參數調校任務的最佳目標指標時,提早停止可停止訓練任務。這有助於減少運算時間並避免模型過度擬合。Hyperband 會使用先進的內部機制來套用提早停止。使用 Hyperband 內部提前停止功能OFF
時,HyperParameterTuningJobConfig
API必須將 TrainingJobEarlyStoppingType
中的 參數設定為 。
注意
超參數調校可能不會改善模型。它是建置機器解決方案的進階版工具。因此,這應視為科學發展過程的一部分。