ハイパーパラメータ調整の仕組み - Amazon SageMaker

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

ハイパーパラメータ調整の仕組み

深層学習ニューラルネットワークのような複雑な機械学習システムを構築するとき、可能なすべての組み合わせを探索することは実用的ではありません。ハイパーパラメータ調整を行うことで、モデルのさまざまなバリエーションを試して生産性を高めることができます。指定した範囲内で最も有望なハイパーパラメータ値の組み合わせに注目して、最適なモデルを自動的に探します。良い結果を得るためには、探索する正しい範囲を選択する必要があります。

ハイパーパラメータ調整の操作方法を理解するには、API リファレンスガイドを使用します。このページの例は、 HyperParameterTuningJobConfigおよび HyperbandStrategyConfig APIsにあります。

注記

アルゴリズム自体は確率論的であるため、ハイパーパラメータ調整モデルは最善の結果に収束できない可能性があります。これは、最適な値の組み合わせが指定した範囲内であっても起こる可能性があります。

グリッド検索では、ハイパーパラメータの調整では、ジョブの作成時に指定したカテゴリ値の範囲から値の組み合わせを選択します。グリッド検索戦略を使用する場合、カテゴリパラメータのみがサポートされます。MaxNumberOfTrainingJobs を指定する必要はありません。調整ジョブによって作成されたトレーニングジョブの数は、異なるカテゴリの可能な組み合わせの総数になるように自動的に計算されます。MaxNumberOfTrainingJobs を指定した場合、この値は、異なるカテゴリの可能な組み合わせの合計数と等しくなる必要があります。

ランダム検索を使用する場合、ハイパーパラメータの調整では、起動するトレーニングジョブごとにハイパーパラメータに指定した範囲内から値のランダムな組み合わせを選択します。ハイパーパラメータ値の選択は以前のトレーニングジョブの結果には依存しないため、調整のパフォーマンスに影響を与えることなく、最大数の同時実行トレーニングジョブを実行できます。

ランダム検索を使用するノートブックの例については、「 SageMaker XGBoost および自動モデルチューニングノートブックによるランダム検索およびハイパーパラメータスケーリング」を参照してください。

ベイズ最適化

ベイズ最適化は、回帰問題などのハイパーパラメータの調整を扱います。入力機能 (ハイパーパラメータ) のセットがある場合、ハイパーパラメータの調整は、選択されたメトリクスについてモデルを最適化します。回帰問題を解決するために、ハイパーパラメータの調整では、どのハイパーパラメータの組み合わせが最善の結果をもたらす可能性があるかについて推測し、これらの値をテストするためにトレーニングジョブを実行します。ハイパーパラメータの調整では、ハイパーパラメータ値のセットをテストした後で、回帰を使用して、次にテストするハイパーパラメータ値のセットを選択します。

ハイパーパラメータチューニングでは、Amazon のベイズ最適化の SageMaker 実装を使用します。

ハイパーパラメータの調整では、次のトレーニングジョブに最適なハイパーパラメータを選択する際に、この問題について現時点までに判明しているすべての点を考慮します。選択されるハイパーパラメータ値の組み合わせは、以前にパフォーマンスの漸進的な改善に最適なトレーニングジョブをもたらした組み合わせに近いものになる場合があります。これにより、ハイパーパラメータのチューニングでは、既知の結果のうち最善のものをエクスプロイトできます。また、これまで試されたものとは大きく異なるハイパーパラメータ値のセットが選択される場合もあります。これにより、ハイパーパラメータ値の範囲を探索して、まだ十分に理解されていない新しい領域を見つけることができます。探索/エクスプロイトのトレードオフは、多くの機械学習で一般的な問題です。

ベイズ最適化の詳細については、以下を参照してください。

Hyperband

Hyperband は、リソースを動的に再割り当てする多重忠実度ベースの調整方法です。Hyperband では、トレーニングジョブの中間結果と最終結果の両方を使用して、使用率の高いハイパーパラメータ構成にエポックを再割り当てし、パフォーマンスの低いものは自動的に停止します。また、多数の並列トレーニングジョブを使用して、シームレスにスケールします。これらの機能により、ランダム検索やベイズ最適化戦略よりもハイパーパラメータ調整を大幅に高速化できます。

Hyperband は、異なるリソースレベルで結果を公開する反復アルゴリズムの調整のみに使用してください。たとえば、Hyperband は、エポックごとに精度メトリクスを公開する画像分類用のニューラルネットワークの調整に使用できます。

Hyperband のベストプラクティスの詳細については、次のリンクを参照してください。

早期停止機能を使用した Hyperband

ハイパーパラメータ調整ジョブの目標メトリクスが改善される可能性が低い場合、トレーニングジョブを早期に停止できます。これにより、計算時間を短縮し、モデルのオーバーフィットを防ぐことができます。Hyperband では高度な内部メカニズムを使用して早期停止を適用します。そのため、Hyperband 内部の早期停止機能を使用する場合、HyperParameterTuningJobConfig API のパラメータ TrainingJobEarlyStoppingTypeOFF に設定する必要があります。

注記

ハイパーパラメータ調整を行ってもモデルが改善されない場合もあります。これは、機械ソリューションを構築するための高度なツールです。このため、科学的開発プロセスの一部と見なす必要があります。