翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
トレーニングジョブを早期停止する
目標メトリクスで測定して、ハイパーパラメータ調整ジョブが大幅に改善されていない場合は、ハイパーパラメータ調整ジョブが開始したトレーニングジョブを早期に停止します。トレーニングジョブを早期停止すると、計算時間が短縮され、モデルの過剰な作成を防ぐことができます。トレーニングパラメータを早期に停止するようにハイパーパラメータ調整ジョブを構成するには、次のいずれかを実行します。
-
AWSSDK for Python (Boto3) を使用している場合は、
TrainingJobEarlyStoppingType
HyperParameterTuningJobConfig
チューニングジョブの設定に使用するオブジェクトのフィールドをに設定しますAUTO
。 -
Amazon SageMaker Python SDK
を使用している場合は、 early_stopping_type
HyperParameterTunerオブジェクトのパラメータをに設定します Auto
。 -
Amazon SageMaker コンソールの [ハイパーパラメータチューニングジョブの作成] ワークフローの [早期停止] で、[自動] を選択します。
早期停止の使用方法を示すサンプルノートブックについては、https://github.com/awslabs/amazon-sagemaker-examples /bloearly_classification.classification.classificationping.ipping.ippinging/earlyyperparameter Tuning (Suning) の [earlyyperparameter Tuning] (Suning) の [earlylyyperparameter Tuninghpo_image_classification_early_stopping.ipynb
でノートブックを開きます。「SageMaker ノートブックインスタンスの例」のセクション。ノートブックインスタンスでのサンプルノートブックの使用方法については、「サンプルノートブック」を参照してください。
早期停止の仕組み
ハイパーパラメータチューニングジョブの早期停止を有効にすると、 SageMaker ハイパーパラメータチューニングジョブが開始した各トレーニングジョブを次のように評価します。
-
トレーニングの各エポックの後で、目標メトリクスの値を取得します。
-
同じエポックまでの過去のすべてのトレーニングジョブについて目標メトリクスの移動平均を計算してから、すべての移動平均の中央値を計算します。
-
現在のトレーニングジョブにおける目標メトリクスの値が、同じエポックまでの過去のトレーニングジョブにおける目標メトリクスの値が、同じエポックまでの過去のトレーニングジョブにおける目標メトリクスの値よりも悪い (目標メトリクスが最小化されると最大化されると最大化されると最大化されると最大化されると最大化されます) 場合、 SageMaker 現在のトレーニングジョブを停止します。
早期停止をサポートするアルゴリズム
早期停止をサポートするために、アルゴリズムは各エポックについて目標メトリクスを発行する必要があります。 SageMaker 以下の組み込みアルゴリズムは、早期停止をサポートします。
-
線形学習アルゴリズム - 目標メトリクスとして
objective_loss
を使っている場合にのみサポートされます。
早期停止をサポートするこの組み込みアルゴリズムのリストは、2018 年 12 月 13 日現在のものです。他の組み込みアルゴリズムは、今後、早期停止をサポートする可能性があります。アルゴリズムが、ハイパーパラメータ調整ジョブの目標メトリクスとして使用できるメトリクス (可能であれば検証メトリクス) を発行する場合は、早期停止をサポートします。
独自のアルゴリズムで早期停止を使用するには、各エポックの後に目標メトリクスの値を発行するようにアルゴリズムを記述する必要があります。次のリストは、さまざまなフレームワークでこれを実行する方法を示しています。
- TensorFlow
-
tf.keras.callbacks.ProgbarLogger
クラスを使用します。詳細については、tf.keras.コールバックを参照してください。 ProgbarLoggerAPI。 - MXNet
-
mxnet.callback.LogValidationMetricsCallback
を使用します。詳細については、「mxnet.callback API」を参照してください。 - Chainer
-
extensions.Evaluator
クラスを使用して Chainer を拡張します。詳細については、「chainer.training.extensions.Evaluator API」を参照してください。 - PyTorch とスパーク
-
高レベルのサポートはありません。目標メトリクスを計算し、各エポックの後でそれらをログに書き込むように、明示的にトレーニングコードを記述する必要があります。