翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
ハイパーパラメータの範囲を定義する
このガイドでは、 SageMaker API を使用してハイパーパラメータ範囲を定義する方法を示します。また、使用できるハイパーパラメータのスケーリングタイプのリストも表示されます。
ハイパーパラメータと範囲を選択すると、調整ジョブのパフォーマンスに大きく影響します。ハイパーパラメータチューニングでは、指定した値の範囲からチューニング可能なハイパーパラメータを検索して、モデルに最適なハイパーパラメータ値を見つけます。また、チューニングジョブの過程で変化しない静的ハイパーパラメータを最大 100 個指定できます。合計で最大 100 個のハイパーパラメーターを使用できます (静的 + 調整可能)。ハイパーパラメータと範囲の選択に関するガイダンスについては、ハイパーパラメータ調整のベストプラクティスを参照してください。
SageMaker 自動モデルチューニング (AMT) では、ハイパーパラメータの合計が 100 個に制限される原因となるハイパーパラメータが他にも追加される場合があります。現在は、目標とするメトリックをチューニングジョブに渡してトレーニング中に使用するために、 SageMaker _tuning_objective_metric
自動的に追加されます。
次のような場合は、静的ハイパーパラメータを使用します。 たとえば、AMT を使用して (調整可能なパラメーター) とparam1
param2
(静的パラメーター) を使用してモデルを調整できます。param1
その場合は、2 つの値の間にある検索スペースを使用し、param2
次のように静的ハイパーパラメータとして渡します。
param1: ["range_min","range_max"] param2: "static_value"
静的ハイパーパラメータは、次の構造を持っています。
"StaticHyperParameters": { "objective" : "reg:squarederror", "dropout_rate": "0.3" }
Amazon SageMaker API を使用して、StaticHyperParametersHyperParameterTrainingJobDefinition
CreateHyperParameterTuningJobオペレーションに渡すパラメータのフィールドにキーと値のペアを指定できます。
SageMaker API を使用してハイパーパラメータの範囲を定義できます。ParameterRanges
CreateHyperParameterTuningJob
操作に渡すパラメーターのフィールドに、HyperParameterTuningJobConfig
ハイパーパラメーターの名前と値の範囲を指定します。
ParameterRanges
このフィールドには、カテゴリ、整数、連続の 3 つのサブフィールドがあります。検索する調整可能なハイパーパラメータを合計30個まで (カテゴリ+整数+連続) 定義できます。
各カテゴリカルハイパーパラメータには、最大 30 個の異なる値を設定できます。
ハイパーパラメータの範囲は次のような構造を持っています。
"ParameterRanges": { "CategoricalParameterRanges": [ { "Name": "tree_method", "Values": ["auto", "exact", "approx", "hist"] } ], "ContinuousParameterRanges": [ { "Name": "eta", "MaxValue" : "0.5", "MinValue": "0", "ScalingType": "Auto" } ], "IntegerParameterRanges": [ { "Name": "max_depth", "MaxValue": "10", "MinValue": "1", "ScalingType": "Auto" } ] }
Grid
ストラテジーを使用してチューニングジョブを作成する場合、指定できるのはカテゴリ値だけです。を提供する必要はありませんMaxNumberofTrainingJobs
。この値は、カテゴリパラメータから生成できる構成の総数から推測されます。指定する場合、の値は、MaxNumberOfTrainingJobs
可能な異なるカテゴリの組み合わせの総数と等しくなければなりません。
ハイパーパラメータのスケーリングタイプ
ハイパーパラメータ範囲が整数および連続の場合、ハイパーパラメータチューニングに使用するスケールを選択できます。たとえば、値の範囲を検索するには、ScalingType
ハイパーパラメータ範囲のフィールドに値を指定できます。ハイパーパラメータスケーリングタイプは、以下のハイパーパラメータスケーリングタイプから選択できます。
- Auto
-
SageMaker ハイパーパラメータの調整は、ハイパーパラメータの最適なスケールを選択します。
- [Linear] (線形)
-
ハイパーパラメータの調整では、線形スケールを使用してハイパーパラメータ範囲内の値を検索します。通常、最小値から最大値までのすべての値の範囲が比較的小さい (1 桁以内) 場合にこれを選択します。範囲から値を一律に検索すると、範囲全体を合理的に探索できます。
- 対数
-
ハイパーパラメータの調整では、対数を使用してハイパーパラメータ範囲内の値を検索します。
対数スケールは、範囲内の値が 0 より大きい場合に使用できます。
数桁に及ぶ範囲を検索する場合は、対数スケーリングを選択します。
たとえば、線形学習モデルを調整するモデルを調整していて、
learning_rate
ハイパーパラメータに 0.0001 から 1.0 までの値の範囲を指定する場合、次の点を考慮してください。対数スケールで均一に検索すると、線形スケールで検索するよりも範囲全体のサンプルが正確になります。これは、直線的なスケールで検索すると、平均してトレーニング予算の 90% が.1から1.0の間の値のみに費やされるためです。その結果、0.0001 ~ 0.1 の間の値については、トレーニング予算の 10% しか残っていません。 ReverseLogarithmic
-
ハイパーパラメータの調整では、逆対数スケールを使用してハイパーパラメータ範囲内の値を検索します。逆対数スケーリングは、連続したハイパーパラメータ範囲でのみサポートされます。整数のハイパーパラメータ範囲ではサポートされていません。
小さい変更 (1 に非常に近い変更) に対して極めて敏感である範囲を検索する場合に、逆対数スケールを選択します。
逆対数スケールは、範囲全体が範囲 0<=x<1.0 内に収まる場合にのみ使用できます。
ハイパーパラメータスケーリングを使用するノートブックの例については、にある Amazon SageMaker ハイパーパラメータの例を参照してください GitHub