

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

# デバッガーの組み込みルールのリスト
<a name="debugger-built-in-rules"></a>

Amazon SageMaker Debugger が提供するデバッガーの組み込みルールを使用して、モデルのトレーニング中に収集されたメトリクスとテンソルを分析できます。以下のリストには、デバッガールールをまとめています。各組み込みルールの情報と、設定およびデプロイする方法の例が記載されています。

デバッガーの組み込みルールは、トレーニングジョブの成功に不可欠なさまざまな共通条件をモニタリングします。組み込みルールは、[Amazon SageMaker Python SDK](https://sagemaker.readthedocs.io/en/stable) または低レベルの SageMaker API オペレーションを使って呼び出せます。

組み込みルールの使用に追加料金はかかりません。請求の詳細については、「[Amazon SageMaker の料金](https://aws.amazon.com/sagemaker/pricing/)」のページを参照してください。

**注記**  
トレーニングジョブにアタッチできる組み込みルールの最大数は 20 です。SageMaker デバッガーは、組み込みルールを完全に管理し、トレーニングジョブを同期的に分析します。

**重要**  
新しいデバッガー機能を使うには、SageMaker Python SDK と SMDebug クライアントライブラリをアップグレードする必要があります。iPython カーネル、Jupyter ノートブック、または JupyterLab 環境で、次のコードを実行して最新バージョンのライブラリをインストールし、カーネルを再起動します。  

```
import sys
import IPython
!{sys.executable} -m pip install -U sagemaker smdebug
IPython.Application.instance().kernel.do_shutdown(True)
```

## デバッガールール
<a name="debugger-built-in-rules-Rule"></a>

次のルールは、`Rule.sagemaker` クラスメソッド使って呼び出せるデバッガーの組み込みルールです。

トレーニングレポートを生成するためのデバッガー組み込みルール


| 有効範囲 | 組み込みルール | 
| --- | --- | 
| SageMaker AI XGBoost トレーニングジョブのトレーニングレポート |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/debugger-built-in-rules.html)  | 

モデルトレーニングデータ (出力テンソル) をデバッグするためのデバッガー組み込みルール


| 有効範囲 | 組み込みルール | 
| --- | --- | 
| 深層学習フレームワーク (TensorFlow、MXNet、PyTorch) |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/debugger-built-in-rules.html)  | 
| ディープラーニングフレームワーク (TensorFlow、MXNet、および PyTorch) および XGBoost アルゴリズム  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/debugger-built-in-rules.html)  | 
| ディープラーニングアプリケーション |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/debugger-built-in-rules.html)  | 
| XGBoost アルゴリズム |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/debugger-built-in-rules.html)  | 

**デフォルトのパラメータ値で組み込みルールを使用するには** - 次の設定形式を使用します。

```
from sagemaker.debugger import Rule, ProfilerRule, rule_configs

rules = [
    Rule.sagemaker(rule_configs.built_in_rule_name_1()),
    Rule.sagemaker(rule_configs.built_in_rule_name_2()),
    ...
    Rule.sagemaker(rule_configs.built_in_rule_name_n())
]
```

**パラメータ値をカスタマイズして組み込みルールを使用するには** - 次の設定形式を使用します。

```
from sagemaker.debugger import Rule, ProfilerRule, rule_configs

rules = [
    Rule.sagemaker(
        base_config=rule_configs.built_in_rule_name(),
        rule_parameters={
                "key": "value"
        }
        collections_to_save=[ 
            CollectionConfig(
                name="tensor_collection_name", 
                parameters={
                    "key": "value"
                } 
            )
        ]
    )
]
```

`rule_parameters` パラメータで利用可能なキーを見つけるに、パラメータの説明テーブルを参照してください。

パラメータの説明テーブルの下に、各組み込みルールのサンプル設定コードが記載されています。
+ デバッガーの組み込みルールの詳細な説明と使用例については、「[Debugger の組み込みルールのサンプルコード](debugger-built-in-rules-example.md#debugger-deploy-built-in-rules)」を参照してください。
+ 組み込みルールを低レベルの SageMaker API オペレーションで使用する方法の詳細な説明については、「[SageMaker API を使って Debugger を設定する](debugger-createtrainingjob-api.md)」を参照してください。

## CreateXGBoostReport
<a name="create-xgboost-report"></a>

CreateXgboostReport ルールは、XGBoost トレーニングジョブから出力テンソルを収集し、包括的なトレーニングレポートを自動生成します。トレーニングジョブの実行中またはトレーニングジョブの完了後に包括的なプロファイリングレポートをダウンロードし、トレーニングの進行状況またはトレーニングジョブの最終結果をチェックできます。CreateXgboostReport ルールは、デフォルトで次の出力テンソルを収集します。
+ `hyperparameters` - 最初のステップで保存します
+ `metrics` - 5 ステップごとに損失と精度を保存します
+ `feature_importance` - 5 ステップごとに保存します
+ `predictions` - 5 ステップごとに保存します
+ `labels` - 5 ステップごとに保存します

CreateXgboostReport ルールのパラメータの説明


| Parameter Name | 説明 | 
| --- | --- | 
| base\$1trial | 基本トライアルトレーニングジョブ名。このパラメータは、Amazon SageMaker デバッガーによって現在のトレーニングジョブに自動的に設定されます。 **必須** 有効な値: 文字列  | 

```
rules=[
    Rule.sagemaker(
        rule_configs.create_xgboost_report()
    )  
]
```

## DeadRelu
<a name="dead-relu"></a>

このルールは、トライアルにおける正規化線形ユニット (ReLU) 活性化関数の割合が、活性化アクティビティがしきい値を下回ったために死状態と見なされるかどうかを検出します。レイヤ内の非アクティブな ReLU の割合が非アクティブな ReLU `threshold_layer` の値より大きい場合、ルールは `True` を返します。

DeadRelu ルールのパラメータの説明


| Parameter Name | 説明 | 
| --- | --- | 
| base\$1trial |  基本トライアルトレーニングジョブ名。このパラメータは、Amazon SageMaker デバッガーによって現在のトレーニングジョブに自動的に設定されます。 **必須** 有効な値: 文字列  | 
| tensor\$1regex |  この比較を特定のスカラー値テンソルに限定するために使用する正規表現パターンのリスト。このルールは、リストで指定された正規表現パターンに一致するテンソルのみを検査します。パターンが渡されない場合、デフォルト設定により、トライアルで収集されたすべてのテンソルが比較されます。スカラー値テンソルのみを照合できます。 **オプション** 有効な値: 文字列のリストまたはカンマ区切りの文字列  デフォルト値: `".*relu_output"`  | 
| threshold\$1inactivity |  ReLU が死状態と見なされるアクティビティのレベルを定義します。ReLU は、トライアルの開始時にアクティブになり、その後、トレーニングプロセス中にゆっくりと死状態になる場合があります。ReLU が `threshold_inactivity` よりもアクティブでない場合、死状態とみなされます。 **オプション** 有効な値: 浮動小数点数 デフォルト値: `1.0` (パーセント)  | 
| threshold\$1layer |  レイヤ内の非アクティブな ReLU の割合が `threshold_layer` より大きい場合、`True` を返します。 レイヤ内の非アクティブな ReLU の割合が `threshold_layer` より小さい場合、`False` を返します。 **オプション** 有効な値: 浮動小数点数 デフォルト値: `50.0` (パーセント)  | 

```
built_in_rules = [
    Rule.sagemaker(
        base_config=rule_configs.dead_relu(),
        rule_parameters={
                "tensor_regex": ".*relu_output|.*ReLU_output",
                "threshold_inactivity": "1.0",
                "threshold_layer": "50.0"
        },
        collections_to_save=[ 
            CollectionConfig(
                name="custom_relu_collection", 
                parameters={
                    "include_regex: ".*relu_output|.*ReLU_output",
                    "save_interval": "500"
                } 
            )
        ]
    )
]
```

組み込みルールを設定およびデプロイする例については、「[Debugger の組み込みルールの設定方法](use-debugger-built-in-rules.md)」を参照してください。

**注記**  
このルールは、XGBoost アルゴリズムには使用できません。

## ExplodingTensor
<a name="exploding-tensor"></a>

このルールは、トレーニング中に放出されたテンソルが無限または NaN (非数) のいずれかの非有限値を持つかどうかを検出します。非有限値が検出された場合、ルールは `True` を返します。

ExplodingTensor ルールのパラメータの説明


| Parameter Name | 説明 | 
| --- | --- | 
| base\$1trial |  基本トライアルトレーニングジョブ名。このパラメータは、Amazon SageMaker デバッガーによって現在のトレーニングジョブに自動的に設定されます。 **必須** 有効な値: 文字列  | 
| collection\$1names |  ルールが検査するテンソルのコレクション名のリスト。 **オプション** 有効な値: 文字列 デフォルト値: `None`  | 
| tensor\$1regex |  この比較を特定のスカラー値テンソルに限定するために使用する正規表現パターンのリスト。このルールは、リストで指定された正規表現パターンに一致するテンソルのみを検査します。パターンが渡されない場合、デフォルト設定により、トライアルで収集されたすべてのテンソルが比較されます。スカラー値テンソルのみを照合できます。 **オプション** 有効な値: 文字列  デフォルト値: `None`  | 
| only\$1nan |   `True` の場合、`NaN` に対してのみ`base_trial` テンソル値を監視し、無限については監視しません。 `False` の場合、`NaN` と無限の両方を分解値として扱い、両方を監視します。 **オプション** デフォルト値: `False`  | 

```
built_in_rules = [
    Rule.sagemaker(
        base_config=rule_configs.exploding_tensor(),
        rule_parameters={
                "tensor_regex": ".*gradient",
                "only_nan": "False"
        },
        collections_to_save=[ 
            CollectionConfig(
                name="gradients", 
                parameters={
                    "save_interval": "500"
                }
            )
        ]
    )
]
```

組み込みルールを設定およびデプロイする例については、「[Debugger の組み込みルールの設定方法](use-debugger-built-in-rules.md)」を参照してください。

**注記**  
このルールは、XGBoost アルゴリズムには使用できません。

## PoorWeightInitialization
<a name="poor-weight-initialization"></a>

 このルールは、モデルパラメータの初期化が不十分であるかどうかを検出します。

適切な初期化を行うことで、ニューラルネットワークの重みと勾配の対称性が崩れ、レイヤー間で相応の活性化分散が維持されます。さもなければ、ニューラルネットワークは効果的に学習しません。Xavier のようなイニシャライザは、アクティベーション間で分散を一定に保つことを目的としています。これは、非常に深いニューラルネットのトレーニングに特に関連しています。初期化が小さすぎると、勾配が消失する可能性があります。初期化が大きすぎると、勾配が爆発する可能性があります。このルールは、レイヤー間のアクティベーション入力の分散、勾配の分布、および初期ステップの損失収束をチェックし、ニューラルネットワークの初期化が不十分であるかどうかを判断します。

PoorWeightInitialization ルールのパラメータの説明


| Parameter Name | 説明 | 
| --- | --- | 
| base\$1trial |  基本トライアルトレーニングジョブ名。このパラメータは、Amazon SageMaker デバッガーによって現在のトレーニングジョブに自動的に設定されます。 **必須** 有効な値: 文字列  | 
| activation\$1inputs\$1regex |  この比較を特定のスカラー値テンソルに限定するために使用する正規表現パターンのリスト。このルールは、リストで指定された正規表現パターンに一致するテンソルのみを検査します。パターンが渡されない場合、デフォルト設定により、トライアルで収集されたすべてのテンソルが比較されます。スカラー値テンソルのみを照合できます。 **オプション** 有効な値: 文字列 デフォルト値: `".*relu_input"`  | 
| threshold |  レイヤごとの重みの最小分散と最大分散の比率が、あるステップで `threshold` を超えた場合、ルールは `True` を返します。 **オプション** 有効な値: 浮動小数点数 デフォルト値: `10.0`  | 
| distribution\$1range |  勾配分布の 5 パーセンタイルと 95 パーセンタイルの最小差が`distribution_range` より小さい場合、ルールは `True` を返します。 **オプション** 有効な値: 浮動小数点数 デフォルト値: `0.001`  | 
| patience |  損失が減少しなくなったと見なされるまで待機するステップの数。 **オプション** 有効な値: 整数 デフォルト値: `5`  | 
| steps |  このルールが分析するステップの数。通常は、最初の数回のイテレーションのみをチェックする必要があります。 **オプション** 有効な値: 浮動小数点数 デフォルト値: `10`  | 

```
built_in_rules = [
    Rule.sagemaker(
        base_config=rule_configs.poor_weight_initialization(),
        rule_parameters={
                "activation_inputs_regex": ".*relu_input|.*ReLU_input",
                "threshold": "10.0",
                "distribution_range": "0.001",
                "patience": "5",
                "steps": "10"
        },
        collections_to_save=[ 
            CollectionConfig(
                name="custom_relu_collection", 
                parameters={
                    "include_regex": ".*relu_input|.*ReLU_input",
                    "save_interval": "500"
                } 
            )
        ]
    )
]
```

組み込みルールを設定およびデプロイする例については、「[Debugger の組み込みルールの設定方法](use-debugger-built-in-rules.md)」を参照してください。

**注記**  
このルールは、XGBoost アルゴリズムには使用できません。

## SaturatedActivation
<a name="saturated-activation"></a>

このルールは、タンとシグモイド活性化層が飽和状態になっているかどうかを検出します。活性化層は、レイヤの入力が活性化関数の最大値または最小値に近づくと飽和します。タンおよびシグモイド活性化関数の最小値と最大値は、それぞれの `min_threshold` および `max_thresholds` 値によって定義されます。ノードのアクティビティが `threshold_inactivity` の割合を下回ると、そのノードは飽和していると見なされます。ノードの `threshold_layer` パーセント以上が飽和している場合、ルールは `True` を返します。

SaturatedActivation ルールのパラメータの説明


| Parameter Name | 説明 | 
| --- | --- | 
| base\$1trial |  基本トライアルトレーニングジョブ名。このパラメータは、Amazon SageMaker デバッガーによって現在のトレーニングジョブに自動的に設定されます。 **必須** 有効な値: 文字列  | 
| collection\$1names |  ルールが検査するテンソルのコレクション名のリスト。 **オプション** 有効な値: 文字列のリストまたはカンマ区切りの文字列 デフォルト値: なし  | 
| tensor\$1regex |  この比較を特定のスカラー値テンソルに限定するために使用する正規表現パターンのリスト。このルールは、リストで指定された正規表現パターンに一致するテンソルのみを検査します。パターンが渡されない場合、デフォルト設定により、トライアルで収集されたすべてのテンソルが比較されます。スカラー値テンソルのみを照合できます。 **オプション** 有効な値: 文字列  デフォルト値: `".*tanh_input\|.*sigmoid_input".`  | 
| threshold\$1tanh\$1min |  タン活性化関数の入力の極値を定義する最小しきい値と最大しきい値は、`(min_threshold, max_threshold)` のように定義されます。デフォルト値は、消失する勾配しきい値 0.0000001 に基づいて決定されます。 **オプション** 有効な値: 浮動小数点数 デフォルト値: `-9.4999`  | 
| threshold\$1tanh\$1max |  タン活性化関数の入力の極値を定義する最小しきい値と最大しきい値は、`(min_threshold, max_threshold)` のように定義されます。デフォルト値は、消失する勾配しきい値 0.0000001 に基づいて決定されます。 **オプション** 有効な値: 浮動小数点数 デフォルト値: `9.4999`  | 
| threshold\$1sigmoid\$1min |  シグモイド活性化関数の入力の極値を定義する最小しきい値と最大しきい値は、`(min_threshold, max_threshold)` のように定義されます。デフォルト値は、消失する勾配しきい値 0.0000001 に基づいて決定されます。 **オプション** 有効な値: 浮動小数点数 デフォルト値: `-23`  | 
| threshold\$1sigmoid\$1max |  シグモイド活性化関数の入力の極値を定義する最小しきい値と最大しきい値は、`(min_threshold, max_threshold)` のように定義されます。デフォルト値は、消失する勾配しきい値 0.0000001 に基づいて決定されます。 **オプション** 有効な値: 浮動小数点数 デフォルト値: `16.99999`  | 
| threshold\$1inactivity |  活性化層が飽和していると見なされる非アクティブの割合。活性化は、トライアルの開始時にアクティブになり、その後、トレーニングプロセス中に徐々にアクティブでなくなる場合があります。 **オプション** 有効な値: 浮動小数点数 デフォルト値: `1.0`  | 
| threshold\$1layer |  レイヤー内の飽和活性化の数が、`threshold_layer` の割合より大きい場合に `True` を返します。 レイヤー内の飽和活性化の数が、`threshold_layer` の割合より少ない場合に `False` を返します。 **オプション** 有効な値: 浮動小数点数 デフォルト値: `50.0`  | 

```
built_in_rules = [
    Rule.sagemaker(
        base_config=rule_configs.saturated_activation(),
        rule_parameters={
                "tensor_regex": ".*tanh_input|.*sigmoid_input",
                "threshold_tanh_min": "-9.4999",
                "threshold_tanh_max": "9.4999",
                "threshold_sigmoid_min": "-23",
                "threshold_sigmoid_max": "16.99999",
                "threshold_inactivity": "1.0",
                "threshold_layer": "50.0"
        },
        collections_to_save=[ 
            CollectionConfig(
                name="custom_activations_collection",
                parameters={
                    "include_regex": ".*tanh_input|.*sigmoid_input"
                    "save_interval": "500"
                } 
            )
        ]
    )
]
```

組み込みルールを設定およびデプロイする例については、「[Debugger の組み込みルールの設定方法](use-debugger-built-in-rules.md)」を参照してください。

**注記**  
このルールは、XGBoost アルゴリズムには使用できません。

## VanishingGradient
<a name="vanishing-gradient"></a>

このルールは、トライアルの勾配が極端に小さくなるか、またはゼロになっていないかどうかを検出します。勾配の絶対値の平均が指定された `threshold` を下回ると、ルールは `True` を返します。

VanishingGradient ルールのパラメータの説明


| Parameter Name | 説明 | 
| --- | --- | 
| base\$1trial |  基本トライアルトレーニングジョブ名。このパラメータは、Amazon SageMaker デバッガーによって現在のトレーニングジョブに自動的に設定されます。 **必須** 有効な値: 文字列  | 
| threshold | 勾配が消失していると判断される値。**オプション**有効な値: 浮動小数点数デフォルト値: `0.0000001`。 | 

```
built_in_rules = [
    Rule.sagemaker(
        base_config=rule_configs.vanishing_gradient(),
        rule_parameters={
                "threshold": "0.0000001"
        },
        collections_to_save=[ 
            CollectionConfig(
                name="gradients", 
                parameters={
                    "save_interval": "500"
                } 
            )
        ]
    )
]
```

組み込みルールを設定およびデプロイする例については、「[Debugger の組み込みルールの設定方法](use-debugger-built-in-rules.md)」を参照してください。

**注記**  
このルールは、XGBoost アルゴリズムには使用できません。

## WeightUpdateRatio
<a name="weight-update-ratio"></a>

このルールは、トレーニング中に重みに対する更新の比率を追跡し、その比率が大きくなりすぎたり小さくなりすぎたりしていないかどうかを検出します。重みに対する更新の比率が `large_threshold value` より大きい場合、またはこの比率が `small_threshold` より小さい場合、ルールは `True` を返します。

トレーニングの条件は、更新が勾配に比例している場合に最適です。更新が大きすぎると、重みが最適値から遠ざかり、更新が小さすぎると収束が非常に遅くなります。このルールでは、2 つのトレーニングステップで重みを使用できるようにする必要があるため、`train.save_interval` を `num_steps` と等しくなるように設定する必要があります。

WeightUpdateRatio ルールのパラメータの説明


| パラメータ名 | 説明 | 
| --- | --- | 
| base\$1trial |  基本トライアルトレーニングジョブ名。このパラメータは、Amazon SageMaker デバッガーによって現在のトレーニングジョブに自動的に設定されます。 **必須** 有効な値: 文字列  | 
| num\$1steps |  テンソルが変更されたかどうかを判断するためにルールがチェックするステップの数。 重量比を比較するステップの数。値を渡さない場合、ルールはデフォルトで現在のステップと直前に保存したステップに対して実行されます。このパラメータの値を渡してデフォルトをオーバーライドすると、ステップ `s` とステップ `>= s - num_steps` での重みの比較が行われます。 **オプション** 有効な値: 整数 デフォルト値: `None`  | 
| large\$1threshold |  ルールが `True` を返す前に、重みに対する更新の比率が取ることのできる最大値。 **オプション** 有効な値: 浮動小数点数 デフォルト値: `10.0`  | 
| small\$1threshold |  重みに対する更新の比率が取ることのできる最小値。この値を下回ると、ルールは `True` を返します。 **オプション** 有効な値: 浮動小数点数 デフォルト値: `0.00000001`  | 
| epsilon |  重みの更新比率を計算する際、デバッガーがゼロで除算しないようにするために使用される小さな定数。 **オプション** 有効な値: 浮動小数点数 デフォルト値: `0.000000001`  | 

```
built_in_rules = [
    Rule.sagemaker(
        base_config=rule_configs.weight_update_ratio(),
        rule_parameters={
                "num_steps": "100",
                "large_threshold": "10.0",
                "small_threshold": "0.00000001",
                "epsilon": "0.000000001"
        },
        collections_to_save=[ 
            CollectionConfig(
                name="weights", 
                parameters={
                    "train.save_interval": "100"
                } 
            )
        ]
    )
]
```

組み込みルールを設定およびデプロイする例については、「[Debugger の組み込みルールの設定方法](use-debugger-built-in-rules.md)」を参照してください。

**注記**  
このルールは、XGBoost アルゴリズムには使用できません。

## AllZero
<a name="all-zero"></a>

このルールは、テンソル値のすべてまたは指定された割合がゼロかどうかを検出します。

このルールは、サポートされているディープラーニングフレームワーク (TensorFlow、MXNet、PyTorch) のいずれか、または XGBoost アルゴリズムに適用できます。`collection_names` または `tensor_regex` パラメータを指定する必要があります。両方のパラメータが指定されている場合、ルールは両方のセットのテンソルの和集合を検査します。

組み込みルールを設定およびデプロイする例については、「[Debugger の組み込みルールの設定方法](use-debugger-built-in-rules.md)」を参照してください。

AllZero ルールのパラメータの説明


| Parameter Name | 説明 | 
| --- | --- | 
| base\$1trial |  基本トライアルトレーニングジョブ名。このパラメータは、Amazon SageMaker デバッガーによって現在のトレーニングジョブに自動的に設定されます。 **必須** 有効な値: 文字列  | 
| collection\$1names |  ルールが検査するテンソルのコレクション名のリスト。 **オプション** 有効な値: 文字列のリストまたはカンマ区切りの文字列 デフォルト値: `None`  | 
| tensor\$1regex |  この比較を特定のスカラー値テンソルに限定するために使用する正規表現パターンのリスト。このルールは、リストで指定された正規表現パターンに一致するテンソルのみを検査します。パターンが渡されない場合、デフォルト設定により、トライアルで収集されたすべてのテンソルが比較されます。スカラー値テンソルのみを照合できます。 **オプション** 有効な値: 文字列のリストまたはカンマ区切りの文字列 デフォルト値: `None`  | 
| threshold |  このルールが呼び出されるためにゼロにする必要があるテンソル内の値の割合を指定します。 **オプション** 有効な値: 浮動小数点数 デフォルト値: 100 (パーセント)  | 

```
built_in_rules = [
    Rule.sagemaker(
        base_config=rule_configs.all_zero(),
        rule_parameters={
                "tensor_regex": ".*",
                "threshold": "100"
        },
        collections_to_save=[ 
            CollectionConfig(
                name="all", 
                parameters={
                    "save_interval": "500"
                } 
            )
        ]
    )
]
```

## ClassImbalance
<a name="class-imbalance"></a>

このルールは、クラス間のサンプリングの不均衡を測定し、不均衡がしきい値を超えた場合、または不均衡の結果として過度に多くの誤予測が発生した場合にエラーをスローします。

分類モデルには、トレーニングデータセット内のバランスの取れたクラスや、トレーニング中の適切な重み付けやサンプリングが必要です。ルールは次のチェックを実行します。
+  これは、クラスごとの発生をカウントします。最小クラスと最大クラスの間のサンプル数の比率が `threshold_imbalance` より大きい場合、エラーがスローされます。
+  クラスごとの予測精度をチェックします。リサンプリングまたは重み付けが正しく適用されていない場合、トレーニングサンプルが多いクラスの精度は高くなりますが、トレーニングサンプルが少ないクラスの精度は低くなります。特定のクラスの誤予測の一部が `threshold_misprediction` を超える場合は、エラーがスローされます。

このルールは、サポートされているディープラーニングフレームワーク (TensorFlow、MXNet、PyTorch) のいずれか、または XGBoost アルゴリズムに適用できます。

組み込みルールを設定およびデプロイする例については、「[Debugger の組み込みルールの設定方法](use-debugger-built-in-rules.md)」を参照してください。

ClassImbalance ルールのパラメータの説明


| Parameter Name | 説明 | 
| --- | --- | 
| base\$1trial |  基本トライアルトレーニングジョブ名。このパラメータは、Amazon SageMaker デバッガーによって現在のトレーニングジョブに自動的に設定されます。 **必須** 有効な値: 文字列  | 
| threshold\$1imbalance |  最小クラスと最大クラスのサンプル数の間の許容可能な不均衡。このしきい値を超えると、エラーがスローされます。 **オプション** 有効な値: 浮動小数点数 デフォルト値: `10`  | 
| threshold\$1misprediction |  各クラスに許容される誤予測の割合の制限。このしきいを超えると、エラーがスローされます。過小評価されているクラスは、このしきい値を超えるリスクが最も高くなります。 **オプション** 有効な値: 浮動小数点数 デフォルト値: `0.7`  | 
| samples |  不均衡が評価される前に処理する必要があるラベルの数。ルールは、いくつかのステップの十分なサンプルが確認されるまで、トリガーされないことがあります。データセットに含まれるクラスの数が多いほど、この `sample` 数は大きくなります。 **オプション** 有効な値: 整数 デフォルト値: `500` (10 クラスを持つ MNIST のようなデータセットを仮定)  | 
| argmax |  `True` の場合、[np.argmax](https://docs.scipy.org/doc/numpy-1.9.3/reference/generated/numpy.argmax.html) は予測テンソルに適用されます。各クラスの確率ベクトルがある場合に必要です。最も高い確率を持っているクラスを決定するために使用されます。 **条件付き** 有効な値: ブール値 デフォルト値: `False`  | 
| labels\$1regex |  ラベルを含むテンソルの名前。 **オプション** 有効な値: 文字列 デフォルト値: `".*labels"`  | 
| predictions\$1regex |  予測を含むテンソルの名前。 **オプション** 有効な値: 文字列 デフォルト値: `".*predictions"`  | 

```
built_in_rules = [
    Rule.sagemaker(
        base_config=rule_configs.class_imbalance(),
        rule_parameters={
                "threshold_imbalance": "10",
                "threshold_misprediction": "0.7",
                "samples": "500",
                "argmax": "False",
                "labels_regex": ".*labels",
                "predictions_regex": ".*predictions"
        },
        collections_to_save=[ 
            CollectionConfig(
                name="custom_output_collection",
                parameters={
                    "include_regex": ".*labels|.*predictions",
                    "save_interval": "500"
                } 
            )
        ]
    )
]
```

## LossNotDecreasing
<a name="loss-not-decreasing"></a>

このルールは、損失の値が適切な割合で減少していないことを検出します。これらの損失はスカラーでなければなりません。

このルールは、サポートされているディープラーニングフレームワーク (TensorFlow、MXNet、PyTorch) のいずれか、または XGBoost アルゴリズムに適用できます。`collection_names` または `tensor_regex` パラメータを指定する必要があります。両方のパラメータが指定されている場合、ルールは両方のセットのテンソルの和集合を検査します。

組み込みルールを設定およびデプロイする例については、「[Debugger の組み込みルールの設定方法](use-debugger-built-in-rules.md)」を参照してください。

LossNotDecreasing ルールのパラメータの説明


| Parameter Name | 説明 | 
| --- | --- | 
| base\$1trial |  基本トライアルトレーニングジョブ名。このパラメータは、Amazon SageMaker デバッガーによって現在のトレーニングジョブに自動的に設定されます。 **必須** 有効な値: 文字列  | 
| collection\$1names |  ルールが検査するテンソルのコレクション名のリスト。 **オプション** 有効な値: 文字列のリストまたはカンマ区切りの文字列 デフォルト値: `None`  | 
| tensor\$1regex |  この比較を特定のスカラー値テンソルに限定するために使用される正規表現パターンのリスト。このルールは、リストで指定された正規表現パターンに一致するテンソルのみを検査します。パターンが渡されない場合、デフォルト設定により、トライアルで収集されたすべてのテンソルが比較されます。スカラー値テンソルのみを照合できます。 **オプション** 有効な値: 文字列のリストまたはカンマ区切りの文字列  デフォルト値: `None`  | 
| use\$1losses\$1collection |  `True` に設定すると、コレクションが存在する場合に「losses」という名前のコレクションの損失が検索されます。 **オプション** 有効な値: ブール値 デフォルト値: `True`  | 
| num\$1steps |  損失が減少しているかどうかをルールがチェックするまでの最小ステップ数。ルールの評価は `num_steps` ごとに行われます。ルールは、このステップの損失と、現在のステップの少なくとも `num_steps` つ後にあるステップの損失を比較します。例えば、損失を 3 ステップごとに保存し、`num_steps` を 10 に設定するとします。ステップ 21 では、ステップ 21 の損失がステップ 9 の損失と比較されます。損失がチェックされる次のステップはステップ 33 です。これは、ステップ 21 の 10 ステップ後はステップ 31 であり、ステップ 31 とステップ 32 では損失が保存されないためです。 **オプション** 有効な値: 整数 デフォルト値: `10`  | 
| diff\$1percent |  `num_steps` の間で損失が減少する最小パーセント差。 **オプション** 有効な値: `0.0` < 浮動小数点数 < `100` デフォルト値: `0.1` (パーセント)  | 
| increase\$1threshold\$1percent |  損失が増加してきている場合に、損失の増加が許容される最大しきい値の割合 **オプション** 有効な値: `0` < 浮動小数点数 < `100` デフォルト値: `5` (パーセント)  | 
| mode |  ルールチェックのためにテンソル値を照会するデバッガーモードの名前。このパラメータを渡さない場合、ルールはデフォルトで `mode.EVAL`、`mode.TRAIN`、`mode.GLOBAL` の順にチェックします。 **オプション** 有効な値: 文字列 (`EVAL`、`TRAIN`、または `GLOBAL`) デフォルト値: `GLOBAL`  | 

```
built_in_rules = [
    Rule.sagemaker(
        base_config=rule_configs.loss_not_decreasing(),
        rule_parameters={
                "tensor_regex": ".*",
                "use_losses_collection": "True",
                "num_steps": "10",
                "diff_percent": "0.1",
                "increase_threshold_percent": "5",
                "mode": "GLOBAL"
        },
        collections_to_save=[ 
            CollectionConfig(
                name="losses", 
                parameters={
                    "save_interval": "500"
                } 
            )
        ]
    )
]
```

## Overfit
<a name="overfit"></a>

このルールは、検証とトレーニングの損失を比較することにより、モデルがトレーニングデータにオーバーフィットしているかどうかを検出します。

このルールは、サポートされているディープラーニングフレームワーク (TensorFlow、MXNet、PyTorch) のいずれか、または XGBoost アルゴリズムに適用できます。

組み込みルールを設定およびデプロイする例については、「[Debugger の組み込みルールの設定方法](use-debugger-built-in-rules.md)」を参照してください。

**注記**  
オーバーフィットを防ぐ標準的な方法は、モデルを正規化することです。

Overfit ルールのパラメータの説明


| Parameter Name | 説明 | 
| --- | --- | 
| base\$1trial |  基本トライアルトレーニングジョブ名。このパラメータは、Amazon SageMaker デバッガーによって現在のトレーニングジョブに自動的に設定されます。 **必須** 有効な値: 文字列  | 
| tensor\$1regex |  この比較を特定のスカラー値テンソルに限定するために使用する正規表現パターンのリスト。このルールは、リストで指定された正規表現パターンに一致するテンソルのみを検査します。パターンが渡されない場合、デフォルト設定により、トライアルで収集されたすべてのテンソルが比較されます。スカラー値テンソルのみを照合できます。 **オプション** 有効な値: 文字列のリストまたはカンマ区切りの文字列  デフォルト値: なし  | 
| start\$1step |  検証とトレーニング損失の比較を開始するステップ。 **オプション** 有効な値: 整数 デフォルト値: `0`  | 
| patience |  モデルが過適合であるとみなされる前に、`ratio_threshold` が設定された値を超えることを許可されるステップの数。 **オプション** 有効な値: 整数 デフォルト値: `1`  | 
| ratio\$1threshold |  平均検証損失と平均トレーニング損失の間の差と平均トレーニング損失の最大比。`patience` 数のステップでこのしきい値を超えた場合、モデルはオーバーフィットし、ルールは `True` を返します。 **オプション** 有効な値: 浮動小数点数 デフォルト値: `0.1`  | 

```
built_in_rules = [
    Rule.sagemaker(
        base_config=rule_configs.overfit(),
        rule_parameters={
                "tensor_regex": ".*",
                "start_step": "0",
                "patience": "1",
                "ratio_threshold": "0.1"
        },
        collections_to_save=[
            CollectionConfig(
                name="losses", 
                parameters={
                    "train.save_interval": "100",
                    "eval.save_interval": "10"
                } 
            )
        ]
    )
]
```

## Overtraining
<a name="overtraining"></a>

このルールは、モデルがオーバートレーニングされているかどうかを検出します。正常に動作するモデルでトレーニングを何度も繰り返すと (トレーニングと検証の両方の損失が減少)、モデルは損失関数の最小値に近づき、それ以上改善されなくなります。モデルがトレーニングを続けると、オーバーフィットし始めるため、検証損失が増加し始める可能性があります。このルールでは、モデルが改善されていないか判断するしきい値と条件を設定し、オーバートレーニングによるオーバーフィットの問題を防止します。

このルールは、サポートされているディープラーニングフレームワーク (TensorFlow、MXNet、PyTorch) のいずれか、または XGBoost アルゴリズムに適用できます。

組み込みルールを設定およびデプロイする例については、「[Debugger の組み込みルールの設定方法](use-debugger-built-in-rules.md)」を参照してください。

**注記**  
Overtraining は、早期停止によって回避することができます。早期停止の詳細については、「[トレーニングジョブを早期停止する](automatic-model-tuning-early-stopping.md)」を参照してください。デバッガーでスポットトレーニングを使う方法を示す例については、「[Amazon SageMaker デバッガーでスポットトレーニングを有効にする](https://sagemaker-examples.readthedocs.io/en/latest/sagemaker-debugger/mxnet_spot_training/mxnet-spot-training-with-sagemakerdebugger.html)」を参照してください。

Overtraining ルールのパラメータの説明


| Parameter Name | 説明 | 
| --- | --- | 
| base\$1trial |  基本トライアルトレーニングジョブ名。このパラメータは、Amazon SageMaker デバッガーによって現在のトレーニングジョブに自動的に設定されます。 **必須** 有効な値: 文字列  | 
| patience\$1train |  トレーニング損失が改善していないとみなされる前に待機するステップ数。 **オプション** 有効な値: 整数 デフォルト値: `5`  | 
| patience\$1validation | 検証の損失が改善していないとみなされる前に待機するステップ数。**オプション**有効な値: 整数デフォルト値: `10` | 
| delta |  エラーが新しい最適要件として見なされる前にどの程度改善すべきかを示す最小しきい値。 **オプション** 有効な値: 浮動小数点数 デフォルト値: `0.01`  | 

```
built_in_rules = [
    Rule.sagemaker(
        base_config=rule_configs.overtraining(),
        rule_parameters={
                "patience_train": "5",
                "patience_validation": "10",
                "delta": "0.01"
        },
        collections_to_save=[ 
            CollectionConfig(
                name="losses", 
                parameters={
                    "save_interval": "500"
                } 
            )
        ]
    )
]
```

## SimilarAcrossRuns
<a name="similar-across-runs"></a>

このルールは、基本トライアルから収集されたテンソルと、別のトライアルからのテンソルを比較します。

このルールは、サポートされているディープラーニングフレームワーク (TensorFlow、MXNet、PyTorch) のいずれか、または XGBoost アルゴリズムに適用できます。

組み込みルールを設定およびデプロイする例については、「[Debugger の組み込みルールの設定方法](use-debugger-built-in-rules.md)」を参照してください。

SimilarAcrossRuns ルールのパラメータの説明


| Parameter Name | 説明 | 
| --- | --- | 
| base\$1trial |  基本トライアルトレーニングジョブ名。このパラメータは、Amazon SageMaker デバッガーによって現在のトレーニングジョブに自動的に設定されます。 **必須** 有効な値: 文字列  | 
| other\$1trials |  現在の `base_trial` から収集したテンソルと比較するテンソルの出力元の完了トレーニングジョブ名。 **必須** 有効な値: 文字列  | 
| collection\$1names |  ルールが検査するテンソルのコレクション名のリスト。 **オプション** 有効な値: 文字列のリストまたはカンマ区切りの文字列 デフォルト値: なし  | 
| tensor\$1regex |  この比較を特定のスカラー値テンソルに限定するために使用する正規表現パターンのリスト。このルールは、リストで指定された正規表現パターンに一致するテンソルのみを検査します。パターンが渡されない場合、デフォルト設定により、トライアルで収集されたすべてのテンソルが比較されます。スカラー値テンソルのみを照合できます。 **オプション** 有効な値: 文字列のリストまたはカンマ区切りの文字列  デフォルト値: なし  | 

```
built_in_rules = [
    Rule.sagemaker(
        base_config=rule_configs.similar_across_runs(),
        rule_parameters={
                "other_trials": "<specify-another-job-name>",
                "collection_names": "losses",
                "tensor_regex": ".*"
        },
        collections_to_save=[ 
            CollectionConfig(
                name="losses", 
                parameters={
                    "save_interval": "500"
                } 
            )
        ]
    )
]
```

## StalledTrainingRule
<a name="stalled-training"></a>

StalledTrainingRule は、トレーニングジョブが進行していないことを検出し、ルールが発動するとトレーニングジョブを停止させます。このルールは、`threshold` パラメータで定義された時間間隔で、定期的にテンソルが保存されていることを必要とします。このルールは新しいテンソルをモニタリングし続け、新しいテンソルがしきい値間隔で出力されなかった場合、ルールを発動します。

StalledTrainingRule ルールのパラメータの説明


| Parameter Name | 説明 | 
| --- | --- | 
| base\$1trial |  基本トライアルトレーニングジョブ名。このパラメータは、Amazon SageMaker デバッガーによって現在のトレーニングジョブに自動的に設定されます。 **必須** 有効な値: 文字列  | 
| threshold |  テンソル出力が停滞したトレーニングの問題を起こすまで、ルールがテンソル出力を待つ時間を秒単位で定義するしきい値。デフォルト値は 1800 秒です。 **オプション** 有効な値: 整数 デフォルト値: `1800`  | 
| stop\$1training\$1on\$1fire |  `True` に設定されている場合、基本トレーニングジョブが「`threshold`」秒でテンソルを出力するかモニタリングします。 **オプション** 有効な値: ブール値 デフォルト値: `False`  | 
| training\$1job\$1name\$1prefix |  基本トレーニングジョブ名のプレフィックス。`stop_training_on_fire` が true の場合、ルールは同じアカウント内でこのプレフィックスを持つ SageMaker トレーニングジョブを検索します。不活動状態が検出された場合、ルールは `StopTrainingJob` アクションを実行します。同じプレフィックスを持つジョブが複数見つかった場合、ルールは終了をスキップすることに注意してください。プレフィックスは、トレーニングジョブごとに一意に設定することが重要です。 **オプション** 有効な値: 文字列  | 

```
built_in_rules = [
    Rule.sagemaker(
        base_config=rule_configs.stalled_training_rule(),
        rule_parameters={
                "threshold": "1800",
                "stop_training_on_fire": "True",
                "training_job_name_prefix": "<specify-training-base-job-name>"
        },
        collections_to_save=[ 
            CollectionConfig(
                name="losses", 
                parameters={
                    "save_interval": "500"
                } 
            )
        ]
    )
]
```

## TensorVariance
<a name="tensor-variance"></a>

このルールは、テンソルの非常に高いまたは低い分散を検出します。テンソルの非常に高いまたは低い分散は、ニューロンの飽和につながり、ニューラルネットワークの学習能力を低下させる可能性があります。テンソルの分散が非常に高いと、最終的にテンソルの爆発につながる可能性があります。このルールを使用すると、このような問題を早期に検出できます。

このルールは、サポートされているディープラーニングフレームワーク (TensorFlow、MXNet、PyTorch) のいずれか、または XGBoost アルゴリズムに適用できます。`collection_names` または `tensor_regex` パラメータを指定する必要があります。両方のパラメータが指定されている場合、ルールは両方のセットのテンソルの和集合を検査します。

組み込みルールを設定およびデプロイする例については、「[Debugger の組み込みルールの設定方法](use-debugger-built-in-rules.md)」を参照してください。

TensorVariance ルールのパラメータの説明


| Parameter Name | 説明 | 
| --- | --- | 
| base\$1trial |  基本トライアルトレーニングジョブ名。このパラメータは、Amazon SageMaker デバッガーによって現在のトレーニングジョブに自動的に設定されます。 **必須** 有効な値: 文字列  | 
| collection\$1names |  ルールが検査するテンソルのコレクション名のリスト。 **オプション** 有効な値: 文字列のリストまたはカンマ区切りの文字列 デフォルト値: なし  | 
| tensor\$1regex |  この比較を特定のスカラー値テンソルに限定するために使用する正規表現パターンのリスト。このルールは、リストで指定された正規表現パターンに一致するテンソルのみを検査します。パターンが渡されない場合、デフォルト設定により、トライアルで収集されたすべてのテンソルが比較されます。スカラー値テンソルのみを照合できます。 **オプション** 有効な値: 文字列のリストまたはカンマ区切りの文字列  デフォルト値: なし  | 
| max\$1threshold |  テンソル分散の上限のしきい値。 **オプション** 有効な値: 浮動小数点数 デフォルト値: なし  | 
| min\$1threshold |  テンソル分散の下限のしきい値。 **オプション** 有効な値: 浮動小数点数 デフォルト値: なし  | 

```
built_in_rules = [
    Rule.sagemaker(
        base_config=rule_configs.tensor_variance(),
        rule_parameters={
                "collection_names": "weights",
                "max_threshold": "10",
                "min_threshold": "0.00001",
        },
        collections_to_save=[ 
            CollectionConfig(
                name="weights", 
                parameters={
                    "save_interval": "500"
                } 
            )
        ]
    )
]
```

## UnchangedTensor
<a name="unchanged-tensor"></a>

このルールは、テンソルがステップ間で変化していないことを検出します。

このルールは、[numpy.allclose](https://docs.scipy.org/doc/numpy/reference/generated/numpy.allclose.html) メソッドを実行し、テンソルが変わっていないかどうかをチェックします。

このルールは、サポートされているディープラーニングフレームワーク (TensorFlow、MXNet、PyTorch) のいずれか、または XGBoost アルゴリズムに適用できます。`collection_names` または `tensor_regex` パラメータを指定する必要があります。両方のパラメータが指定されている場合、ルールは両方のセットのテンソルの和集合を検査します。

組み込みルールを設定およびデプロイする例については、「[Debugger の組み込みルールの設定方法](use-debugger-built-in-rules.md)」を参照してください。

UnchangedTensor ルールのパラメータの説明


| Parameter Name | 説明 | 
| --- | --- | 
| base\$1trial |  基本トライアルトレーニングジョブ名。このパラメータは、Amazon SageMaker デバッガーによって現在のトレーニングジョブに自動的に設定されます。 **必須** 有効な値: 文字列  | 
| collection\$1names |  ルールが検査するテンソルのコレクション名のリスト。 **オプション** 有効な値: 文字列のリストまたはカンマ区切りの文字列 デフォルト値: なし  | 
| tensor\$1regex |  この比較を特定のスカラー値テンソルに限定するために使用する正規表現パターンのリスト。このルールは、リストで指定された正規表現パターンに一致するテンソルのみを検査します。パターンが渡されない場合、デフォルト設定により、トライアルで収集されたすべてのテンソルが比較されます。スカラー値テンソルのみを照合できます。 **オプション** 有効な値: 文字列のリストまたはカンマ区切りの文字列  デフォルト値: なし  | 
| num\$1steps |  テンソルが変更されたかどうかを判断するためにルールがチェックするステップの数。 これにより、使用可能な最後の `num_steps` がチェックされます。ステップの数は連続している必要はありません。`num_steps` が 2 の場合、ステップ s では必ずしも s-1 と s をチェックするとは限りません。s-1 がない場合は、最後の使用可能なステップが s とともにチェックされます。この場合、使用可能な最後のステップが現在のステップでチェックされます。 **オプション** 有効な値: 整数 デフォルト値: `3`  | 
| rtol |  `[numpy.allclose](https://docs.scipy.org/doc/numpy/reference/generated/numpy.allclose.html)` メソッドに渡される相対許容誤差のパラメータ。 **オプション** 有効な値: 浮動小数点数 デフォルト値: `1e-05`  | 
| atol |  `[numpy.allclose](https://docs.scipy.org/doc/numpy/reference/generated/numpy.allclose.html)` メソッドに渡される絶対許容誤差のパラメータ。 **オプション** 有効な値: 浮動小数点数 デフォルト値: `1e-08`  | 
| equal\$1nan |  NaN を等しいものとして比較するかどうかについて。`True` の場合、入力配列 a 内の NaN は、出力配列の入力配列 b の NaN に等しいと見なされます。このパラメータは、`[numpy.allclose](https://docs.scipy.org/doc/numpy/reference/generated/numpy.allclose.html)` メソッドに渡されます。 **オプション** 有効な値: ブール値 デフォルト値: `False`  | 

```
built_in_rules = [
    Rule.sagemaker(
        base_config=rule_configs.unchanged_tensor(),
        rule_parameters={
                "collection_names": "losses",
                "tensor_regex": "",
                "num_steps": "3",
                "rtol": "1e-05",
                "atol": "1e-08",
                "equal_nan": "False"
        },
        collections_to_save=[ 
            CollectionConfig(
                name="losses", 
                parameters={
                    "save_interval": "500"
                } 
            )
        ]
    )
]
```

## CheckInputImages
<a name="checkinput-mages"></a>

このルールは、入力イメージが正しく正規化されているかどうかをチェックします。具体的には、サンプルデータの平均がゼロからのしきい値よりも大きく異なるかどうかを検出します。多くのコンピュータビジョンモデルでは、入力データの平均と単位分散がゼロである必要があります。

このルールは、ディープラーニングアプリケーションに適用できます。

組み込みルールを設定およびデプロイする例については、「[Debugger の組み込みルールの設定方法](use-debugger-built-in-rules.md)」を参照してください。

CheckInputImages ルールのパラメータの説明


| Parameter Name | 説明 | 
| --- | --- | 
| base\$1trial |  基本トライアルトレーニングジョブ名。このパラメータは、Amazon SageMaker デバッガーによって現在のトレーニングジョブに自動的に設定されます。 **必須** 有効な値: 文字列  | 
| threshold\$1mean |  入力データの平均値が 0 からどれだけ異なるかを定義するしきい値。 **オプション** 有効な値: 浮動小数点数 デフォルト値: `0.2`  | 
| threshold\$1samples |  エラーがスローされる前にサンプリングする必要があるイメージの数。値が低すぎると、データセット平均の推定値が不正確になります。 **オプション** 有効な値: 整数 デフォルト値: `500`  | 
| regex |  入力データテンソルの名前。 **オプション** 有効な値: 文字列 デフォルト値: `".*hybridsequential0_input_0"` (HybridSequential を使用した Apache MXNet モデルの入力テンソルの名前)  | 
| channel |  入力テンソル形状配列におけるカラーチャネルの位置。 **オプション** 有効な値: 整数 デフォルト値: `1` (たとえば、MXNet は (batch\$1size, channel, height, width) 形式の入力データを想定しています)  | 

```
built_in_rules = [
    Rule.sagemaker(
        base_config=rule_configs.check_input_images(),
        rule_parameters={
                "threshold_mean": "0.2",
                "threshold_samples": "500",
                "regex": ".*hybridsequential0_input_0",
                "channel": "1"
        },
        collections_to_save=[ 
            CollectionConfig(
                name="custom_inputs_collection", 
                parameters={
                    "include_regex": ".*hybridsequential0_input_0",
                    "save_interval": "500"
                } 
            )
        ]
    )
]
```

## NLPSequenceRatio
<a name="nlp-sequence-ratio"></a>

このルールは、パフォーマンスの最適化に役立つ入力シーケンスの残りの部分を考慮して、特定のトークンの比率を計算します。たとえば、入力シーケンスの文末 (EOS) トークンのパディングの割合を計算できます。EOS トークンの数が多すぎる場合は、代替バケット方針を実行する必要があります。また、入力シーケンス内の未知のトークンの割合を計算することもできます。未知語の数が多すぎる場合は、代替語彙を使用することができます。

このルールは、ディープラーニングアプリケーションに適用できます。

組み込みルールを設定およびデプロイする例については、「[Debugger の組み込みルールの設定方法](use-debugger-built-in-rules.md)」を参照してください。

NLPSequenceRatio ルールのパラメータの説明


| Parameter Name | 説明 | 
| --- | --- | 
| base\$1trial |  基本トライアルトレーニングジョブ名。このパラメータは、Amazon SageMaker デバッガーによって現在のトレーニングジョブに自動的に設定されます。 **必須** 有効な値: 文字列  | 
| tensor\$1regex |  この比較を特定のスカラー値テンソルに限定するために使用する正規表現パターンのリスト。このルールは、リストで指定された正規表現パターンに一致するテンソルのみを検査します。パターンが渡されない場合、デフォルト設定により、トライアルで収集されたすべてのテンソルが比較されます。スカラー値テンソルのみを照合できます。 **オプション** 有効な値: 文字列のリストまたはカンマ区切りの文字列  デフォルト値: `".*embedding0_input_0"` (埋め込みをネットワークの初期レイヤと仮定)  | 
| token\$1values |  トークンの数値のリストの文字列。たとえば、「3、0」のように指定します。 **オプション** 有効な値: カンマ区切りの数値文字列 デフォルト値: `0`  | 
| token\$1thresholds\$1percent |  各 `token_values` に対応するしきい値のリスト (パーセンテージ) の文字列。たとえば、「50.0、50.0」のように指定します。 **オプション** 有効な値: カンマ区切りの浮動小数点数の文字列。 デフォルト値: `"50"`  | 

```
built_in_rules = [
    Rule.sagemaker(
        base_config=rule_configs.nlp_sequence_ratio(),
        rule_parameters={
                "tensor_regex": ".*embedding0_input_0",
                "token_values": "0",
                "token_thresholds_percent": "50"
        },
        collections_to_save=[ 
            CollectionConfig(
                name="custom_inputs_collection", 
                parameters={
                    "include_regex": ".*embedding0_input_0"
                } 
            )
        ]
    )
]
```

## Confusion
<a name="confusion"></a>

このルールは、分類問題に対する混同行列の良さを評価します。

これは、サイズ `category_no*category_no` のマトリックスを作成し、(`labels`、`predictions`) ペアから来るデータを入力します。(`labels`、`predictions`) ペアごとに、`confusion[labels][predictions]` のカウント は 1 ずつ増加します。マトリックスが完全に入力されると、対角値と非対角値の比率は次のように評価されます。
+ 対角線上の要素の場合: `confusion[i][i]/sum_j(confusion[j][j])>=min_diag`
+ 非対角線上の要素の場合: `confusion[j][i])/sum_j(confusion[j][i])<=max_off_diag`

このルールは、XGBoost アルゴリズムに適用できます。

組み込みルールを設定およびデプロイする例については、「[Debugger の組み込みルールの設定方法](use-debugger-built-in-rules.md)」を参照してください。

Confusion ルールのパラメータの説明


| Parameter Name | 説明 | 
| --- | --- | 
| base\$1trial |  基本トライアルトレーニングジョブ名。このパラメータは、Amazon SageMaker デバッガーによって現在のトレーニングジョブに自動的に設定されます。 **必須** 有効な値: 文字列  | 
| category\$1no |  カテゴリの数。 **オプション** 有効な値: 2 以上の整数 デフォルト値: `"None"`  | 
| labels |  `labels` テンソルコレクションまたは正解ラベルの 1 次元ベクトル。 **オプション** 有効な値: 文字列 デフォルト値: `"labels"`  | 
| predictions |  `predictions` テンソルコレクションまたは推定ラベルの 1 次元ベクトル。 **オプション** 有効な値: 文字列 デフォルト値: `"predictions"`  | 
| labels\$1collection |  ルールは、`labels` についてこのコレクションのテンソルを検査します。 **オプション** 有効な値: 文字列 デフォルト値: `"labels"`  | 
| predictions\$1collection |  ルールは、`predictions` についてこのコレクションのテンソルを検査します。 **オプション** 有効な値: 文字列 デフォルト値: `"predictions"`  | 
| min\$1diag |  対角線上のデータの比率の最小しきい値。 **オプション** 有効な値: `0`≤ 浮動小数点数 ≤`1` デフォルト値: `0.9`  | 
| max\$1off\$1diag |  非対角線上のデータの比率の最大しきい値。 **オプション** 有効な値: `0`≤ 浮動小数点数 ≤`1` デフォルト値: `0.1`  | 

```
built_in_rules = [
    Rule.sagemaker(
        base_config=rule_configs.confusion(),
        rule_parameters={
                "category_no": "10",
                "labels": "labels",
                "predictions": "predictions",
                "labels_collection": "labels",
                "predictions_collection": "predictions",
                "min_diag": "0.9",
                "max_off_diag": "0.1"
        },
        collections_to_save=[ 
            CollectionConfig(
                name="labels",
                parameters={
                    "save_interval": "500"
                } 
            ),
            CollectionConfig(
                name="predictions",
                parameters={
                    "include_regex": "500"
                } 
            )
        ]
    )
]
```

**注記**  
このルールでは、オプションのパラメータ値が指定されていない場合、デフォルト値が推測されます。

## FeatureImportanceOverweight
<a name="feature_importance_overweight"></a>

このルールは、ステップごとに上位 n 個の特徴重要度値の重みを累積し、それがしきい値を超えないようにします。例えば、上位 3 つの特徴に対してしきい値を設定して、モデルの総重みの 80% を超えないように設定できます。

このルールは、XGBoost アルゴリズムに対してのみ有効です。

組み込みルールを設定およびデプロイする例については、「[Debugger の組み込みルールの設定方法](use-debugger-built-in-rules.md)」を参照してください。

FeatureImportanceOverweight ルールのパラメータの説明


| Parameter Name | 説明 | 
| --- | --- | 
| base\$1trial |  基本トライアルトレーニングジョブ名。このパラメータは、Amazon SageMaker デバッガーによって現在のトレーニングジョブに自動的に設定されます。 **必須** 有効な値: 文字列  | 
| threshold |  上位 `n` 個の特徴の累積合計の割合についてしきい値を定義します。数値 `n` は、`nfeatures` パラメータで定義されます。 **オプション** 有効な値: 浮動小数点数 デフォルト値: `0.8`  | 
| nfeatures |  上位の特徴の数。 **オプション** 有効な値: 整数 デフォルト値: `3`  | 
| tensor\$1regex |  ルールが分析するテンソル名の正規表現 (regex)。 **オプション** 有効な値: 文字列 デフォルト値: `".*feature_importance/weight"`  | 

```
built_in_rules = [
    Rule.sagemaker(
        base_config=rule_configs.feature_importance_overweight(),
        rule_parameters={
                "threshold": "0.8",
                "nfeatures": "3",
                "tensor_regex": ".*feature_importance/weight"
        },
        collections_to_save=[ 
            CollectionConfig(
                name="feature_importance", 
                parameters={
                    "save_interval": "500"
                } 
            )
        ]
    )
]
```

## TreeDepth
<a name="tree-depth"></a>

このルールは、XGBoost モデルのツリーの深さを測定します。XGBoost は、分割が損失を改善しない場合に分割を拒否します。これにより、トレーニングが正規化されます。その結果、ツリーは `depth` パラメータで定義されているほど深く成長しない可能性があります。

このルールは、XGBoost アルゴリズムに対してのみ有効です。

組み込みルールを設定およびデプロイする例については、「[Debugger の組み込みルールの設定方法](use-debugger-built-in-rules.md)」を参照してください。

TreeDepth ルールのパラメータの説明


| Parameter Name | 説明 | 
| --- | --- | 
| base\$1trial |  基本トライアルトレーニングジョブ名。このパラメータは、Amazon SageMaker デバッガーによって現在のトレーニングジョブに自動的に設定されます。 **必須** 有効な値: 文字列  | 
| depth |  ツリーの深さ。ツリーの深さは、最大のノード ID の 2 対数を計算することによって得られます。 **オプション** 有効な値: 浮動小数点数 デフォルト値: `4`  | 

```
built_in_rules = [
    Rule.sagemaker(
        base_config=rule_configs.tree_depth(),
        rule_parameters={
                "depth": "4"
        },
        collections_to_save=[ 
            CollectionConfig(
                name="tree", 
                parameters={
                    "save_interval": "500"
                } 
            )
        ]
    )
]
```