

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

# 線形学習アルゴリズム
<a name="linear-learner"></a>

*線形モデル*は、分類や回帰の問題を解決するために使用される、教師あり学習アルゴリズムです。入力として、examples (*x*、*y*) というラベルのモデルを提供します。*x* は高次元ベクトル、*y* は数値ラベルです。二項分類の問題の場合、ラベルは 0 または 1 である必要があります。複数クラス分類の問題の場合、ラベルは 0 ～ `num_classes` - 1 である必要があります。回帰の問題の場合、*y* は実数です。アルゴリズムは線形関数、または分類問題の場合は線形しきい値関数を学習し、ベクトル *x* をラベル *y* の近似値にマッピングします。

Amazon SageMaker AI の線形学習アルゴリズムは、分類と回帰の両方の問題についてソリューションを提供します。SageMaker AI アルゴリズムを使用すると、さまざまなトレーニング目標を同時に探索し、検証セットから最適なソリューションを選択できます。また、多数のモデルを探索して最適なものを選択することもできます。最善のモデルは、以下を最適化します。
+ 平均二乗誤差、交差エントロピー損失、絶対誤差などの連続的な目標
+ F1 尺度、適合率と再現率、または精度など、分類に適した個別の目標。

連続的な目標のみのソリューションを提供する方法と比較して、SageMaker AI 線形学習アルゴリズムは、単純なハイパーパラメータ最適化手法より大幅に高速化します。また、より便利でもあります。

線形学習者アルゴリズムは、観測値を表す行と特徴の次元を表す列を持つデータ行列を必要とします。また、データポイントと一致するラベルが含まれる追加の列を要求します。少なくとも、Amazon SageMaker AI の線形学習者では、データを入出力する場所と目標タイプ (分類または回帰) を引数として指定する必要があります。特徴の次元も指定する必要があります。詳細については、「[https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateTrainingJob.html)」を参照してください。リクエストボディの `HyperParameters` 文字列マップに追加のパラメータを指定できます。これらのパラメータは最適化の手順、またはトレーニングを行う目標関数の詳細を制御します。たとえば、エポックの数、正規化、損失タイプなどです。

[マネージドスポットトレーニング](https://docs.aws.amazon.com/sagemaker/latest/dg/model-managed-spot-training.html)を使用している場合、線形学習アルゴリズムは[モデルの状態のスナップショットを撮影するチェックポイント](https://docs.aws.amazon.com/sagemaker/latest/dg/model-checkpoints.html)の使用をサポートしています。

**Topics**
+ [線形学習アルゴリズムの入出力インターフェイス](#ll-input_output)
+ [線形学習アルゴリズムの EC2 インスタンスに関する推奨事項](#ll-instances)
+ [線形学習サンプルノートブック](#ll-sample-notebooks)
+ [線形学習の仕組み](ll_how-it-works.md)
+ [線形学習のハイパーパラメータ](ll_hyperparameters.md)
+ [線形学習モデルを調整する](linear-learner-tuning.md)
+ [線形学習のレスポンス形式](LL-in-formats.md)

## 線形学習アルゴリズムの入出力インターフェイス
<a name="ll-input_output"></a>

Amazon SageMaker AI 線形学習アルゴリズムは、トレーニング、検証 (オプション)、テスト (オプション) の 3 つのデータチャネルに対応しています。検証データを指定する場合、`S3DataDistributionType` を `FullyReplicated` にする必要があります。アルゴリズムは、エポックごとに検証損失を記録し、検証データのサンプルを使用して最適なモデルを調整および選択します。検証データを指定しないと、アルゴリズムはトレーニングデータのサンプルを使用してモデルを調整および選択します。テストデータを指定すると、アルゴリズムログに最終モデルのテストスコアが含まれます。

**トレーニング**については、線形学習者アルゴリズムは、`recordIO-wrapped protobuf` と `CSV` の両方の形式をサポートします。`application/x-recordio-protobuf` 入力タイプの場合は、Float32 テンソルのみがサポートされます。`text/csv` 入力タイプの場合、最初の列はラベルと見なされ、これが予測のターゲット変数です。ファイルモードまたはパイプモードを使用すると、`recordIO-wrapped-protobuf` または `CSV` の形式のデータについて線形学習者モデルをトレーニングできます。

**推論**については、線形学習者アルゴリズムは、`application/json`、`application/x-recordio-protobuf`、および `text/csv` の各形式をサポートします。新しいデータを予測する場合、レスポンスの形式はモデルの種類によって異なります。**回帰** (`predictor_type='regressor'`) の場合、`score` はモデルによって生成される予測です。**分類** (`predictor_type='binary_classifier'` または `predictor_type='multiclass_classifier'`) の場合、モデルは `score` に加えて `predicted_label` も返します。`predicted_label` はモデルによって予測されるクラスで、`score` はその予測の強度を測定します。
+ **バイナリ分類の場合**、`predicted_label` は `0` または `1` であり、`score` は、アルゴリズムがラベルを 1 にする必要があると確信している程度を示す単一の浮動小数点数です。
+ **複数クラスの分類の場合**、`predicted_class` は `0` から `num_classes-1` の整数になり、`score` はクラスごとに 1 つの浮動小数点数のリストになります。

分類問題の `score` を解釈するには、使用する損失関数を考慮する必要があります。`loss` ハイパーパラメータ値が `logistic` (バイナリ分類用) または `softmax_loss` (マルチクラス分類用) の場合、`score` は対応するクラスの確率として解釈することができます。これらは、`loss` の値がデフォルト値 `auto` の場合に線形学習者によって使用される損失値です。ただし、損失が `hinge_loss` に設定されている場合は、スコアを確率として解釈することはできません。これは、ヒンジ損失で Support Vector Classifier に対応するためです。この場合、確率の推定値は生成されません。

入出力ファイル形式の詳細については、[線形学習のレスポンス形式](LL-in-formats.md) を参照してください。推論形式の詳細については、[線形学習サンプルノートブック](#ll-sample-notebooks) を参照してください。

## 線形学習アルゴリズムの EC2 インスタンスに関する推奨事項
<a name="ll-instances"></a>

線形学習アルゴリズムは、トレーニングと推論の CPU インスタンスと GPU インスタンスの両方をサポートしてを行います。GPU の場合、線形学習アルゴリズムは P2、P3、G4dn、G5 GPU ファミリーをサポートします。

テスト中に、マルチ GPU インスタンスがシングル GPU インスタンスより高速である実質的な証拠は見つかりませんでした。結果はユースケースに応じて異なります。

## 線形学習サンプルノートブック
<a name="ll-sample-notebooks"></a>

 次の表は、Amazon SageMaker AI 線形学習アルゴリズムのさまざまなユースケースに対応する各種サンプルノートブックの概要を示しています。


| **ノートブックのタイトル** | **説明** | 
| --- | --- | 
|  [MNIST データセットの概要](https://sagemaker-examples.readthedocs.io/en/latest/introduction_to_amazon_algorithms/linear_learner_mnist/linear_learner_mnist.html)  |   MNIST データセットを使用して 1 桁の数字を予測するように二項分類子をトレーニングします。  | 
|  [複数クラス分類子を構築する方法](https://sagemaker-examples.readthedocs.io/en/latest/scientific_details_of_algorithms/linear_learner_multiclass_classification/linear_learner_multiclass_classification.html)  |   UCI の Covertype データセットを使用して、複数クラス分類子をトレーニングする方法を説明します。  | 
|  [推論向け機械学習 (ML) パイプラインを構築する方法](https://sagemaker-examples.readthedocs.io/en/latest/sagemaker-python-sdk/scikit_learn_inference_pipeline/Inference%20Pipeline%20with%20Scikit-learn%20and%20Linear%20Learner.html)  |   Scikit-Learn コンテナを使用して、エンドツーエンドの ML パイプラインを構築する方法を説明します。  | 

 SageMaker AI でサンプルを実行するために使用できる Jupyter ノートブックインスタンスを作成してアクセスする方法の詳細については、「[Amazon SageMaker ノートブックインスタンス](nbi.md)」を参照してください。ノートブックインスタンスを作成して開いた後、**[SageMaker AI サンプル]** タブを選択して、すべての SageMaker AI サンプルのリストを表示します。線形学習者アルゴリズムを使用したトピックモデリングのサンプルノートブックは、[**Introduction to Amazon algorithm (Amazon アルゴリズムの概要)**] セクションにあります。ノートブックを開くには、その [**Use (使用)**] タブを選択し、[**Create copy (コピーを作成)**] を選択します。

# 線形学習の仕組み
<a name="ll_how-it-works"></a>

線形学習者アルゴリズムの実装には、事前処理、学習、検証という 3 つのステップがあります。

## ステップ 1: 事前処理する
<a name="step1-preprocessing"></a>

正規化 (特徴スケーリング) は、特定の損失関数の重要な前処理ステップであり、データセットでトレーニングされるモデルが単一特徴のウェイトで占有されないようにします。Amazon SageMaker AI 線形学習アルゴリズムには、この前処理ステップを支援する正規化オプションがあります。正規化がオンになっている場合、アルゴリズムはまず小さなサンプルデータを調べて、各特徴および各ラベルの平均値と標準偏差を学習します。次に、完全なデータセット内の各特徴は、平均が 0 になるようにシフトされ、単位標準偏差を持つようにスケーリングされます。

**注記**  
最良の結果を得るには、トレーニングの前にデータをシャッフルします。シャッフルされていないデータを使用したトレーニングでは、トレーニングが失敗する場合があります。

線形学習者アルゴリズムで、 `normalize_data` および `normalize_label` ハイパーパラメータをそれぞれ使用して、特徴データとラベルを正規化するかどうかを設定できます。正規化は、回帰の特徴とラベルの両方でデフォルトで有効になっています。バイナリ分類では正規化できるのは特徴のみであり、これがデフォルトの動作です。

## ステップ 2: トレーニングする
<a name="step2-training"></a>

線形学習者アルゴリズムでは、確率的勾配降下法 (SGD) の分散実装を使用してトレーニングを行います。最適化プロセスを制御するには、最適化アルゴリズムを選択します。たとえば、Adam、AdaGrad、確率的勾配降下法、またはその他の最適化アルゴリズムを使用するように選択できます。また、モーメンタム、学習レート、学習レートスケジュールなどのハイパーパラメータも指定します。どのアルゴリズムまたはハイパーパラメータの値を使用すればよいかわからない場合は、大部分のデータセットで機能するデフォルトを選択してください。

トレーニング中は、目標がそれぞれ異なる複数のモデルを同時に最適化します。たとえば、L1 または L2 の正規化を変化させて、さまざまなオプティマイザ設定を試します。

## ステップ 3: しきい値を検証および設定する
<a name="step3-validation"></a>

複数のモデルを並行してトレーニングする場合、モデルは検証セットに対して評価され、トレーニングが完了すると最適なモデルが選択されます。回帰では、検証セットで最善の損失を達成するモデルが最適なモデルです。分類では、検証セットのサンプルを使用して分類しきい値を調整します。選択されている最適なモデルは、検証セットで最良のバイナリ分類選択基準を達成するモデルです。そのような基準には、F1 の測定、精度、クロスエントロピー損失などがあります。

**注記**  
アルゴリズムで検証セットが指定されていない場合は、最適なモデルを評価して選択することはできません。並列トレーニングとモデル選択を利用するには、アルゴリズムに検証セットを指定する必要があります。

# 線形学習のハイパーパラメータ
<a name="ll_hyperparameters"></a>

線形学習者アルゴリズムのハイパーパラメータを以下の表に示します。これらは、データからモデルパラメータを推定しやすくするためにユーザが設定するパラメータです。設定の必要がある必須ハイパーパラメータは、アルファベット順に最初に一覧表示されています。設定可能なオプションのハイパーパラメータは、アルファベット順に次に一覧表示されています。ハイパーパラメータが `auto` に設定されている場合、Amazon SageMaker AI はそのハイパーパラメータの値を自動的に計算して設定します。


| Parameter Name | 説明 | 
| --- | --- | 
| num\$1classes |  レスポンス変数のクラス数。このアルゴリズムでは、クラスに `0`, ..., `num_classes - 1` のラベルが付けられていると想定します。 `predictor_type` が `multiclass_classifier` の場合、**必須**です。それ以外の場合、アルゴリズムはこれを無視します。 有効な値: 3 ～ 1,000,000 の整数  | 
| predictor\$1type |  ターゲット変数のタイプを、二項分類、複数クラス分類、または回帰として指定します。 **必須** 有効な値: `binary_classifier`、`multiclass_classifier`、または `regressor`  | 
| accuracy\$1top\$1k |  複数クラス分類のトップ k 精度メトリクスを計算するときには、*k* の値。モデルがトップ k のスコアの 1 つを実際のラベルに割り当てる場合、サンプルは正しいものとしてスコア付けされます。 **オプション** 有効な値: 正の整数 デフォルト値： 3   | 
| balance\$1multiclass\$1weights |  クラスの重みを使用するかどうかを指定します。これにより、損失関数で各クラスの重要度が等しくなります。`predictor_type` が `multiclass_classifier` である場合にのみ使用されます。 **オプション** 有効な値: `true`、`false` デフォルト値: `false`  | 
| beta\$11 |  最初のモーメントの見積もりの指数関数的減衰率。`optimizer` の値が `adam` のである場合にのみ適用されます。 **オプション** 有効な値 : `auto` または 0 ～ 1.0 の浮動小数点値 デフォルト値: `auto`  | 
| beta\$12 |  2 番目のモーメントの見積もりの指数関数的減衰率。`optimizer` の値が `adam` のである場合にのみ適用されます。 **オプション** 有効な値 : `auto` または 0 ～ 1.0 の浮動小数点整数  デフォルト値: `auto`  | 
| bias\$1lr\$1mult |  バイアス項に別の学習レートを許可します。バイアスの実際の学習レートは `learning_rate` \$1 `bias_lr_mult` です。 **オプション** 有効な値: `auto` または正の浮動小数点整数 デフォルト値: `auto`  | 
| bias\$1wd\$1mult |  バイアス項に別の正規化を許可します。バイアスの L2 正規化の実際の重みは、`wd` \$1 `bias_wd_mult` です。デフォルトでは、バイアス項に正規化はありません。 **オプション** 有効な値: `auto` または負でない浮動小数点整数 デフォルト値: `auto`  | 
| binary\$1classifier\$1model\$1selection\$1criteria |  `predictor_type` が `binary_classifier` に設定されている場合は、検証データセット (または検証データセットを指定していない場合はトレーニングデータセット) のモデル評価基準。基準は次のとおりです。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/ll_hyperparameters.html) **オプション** 有効な値: `accuracy`、`f_beta`、`precision_at_target_recall`、`recall_at_target_precision`、または `loss_function` デフォルト値: `accuracy`  | 
| early\$1stopping\$1patience | 関連するメトリクスが改善されない場合にトレーニングを終了するまでに待機するエポックの数。binary\$1classifier\$1model\$1selection\$1criteria に値を指定した場合、メトリクスはその値になります。それ以外の場合、メトリクスは loss ハイパーパラメータに指定された値と同じになります。メトリクスは検証データ上で評価されます。検証データを提供していない場合、メトリクスは常に `loss` ハイパーパラメータに指定された値と同じになり、トレーニングデータで評価されます。早期停止を無効にするには、`early_stopping_patience` を `epochs` に指定された値より大きい値に設定します。**オプション**有効な値: 正の整数デフォルト値： 3 | 
| early\$1stopping\$1tolerance |  損失の改善を計測する相対的な許容値。損失改善率から前の最善の損失を除算した値がこの値よりも小さい場合、早期停止は改善がゼロであると見なします。 **オプション** 有効な値: 正の浮動小数点整数 デフォルト値: 0.001  | 
| epochs |  トレーニングデータへのパスの最大数。 **オプション** 有効な値: 正の整数 デフォルト値: 15  | 
| f\$1beta |  二項分類または複数クラス分類の F スコアメトリクスを計算するときに使用するベータの値。`binary_classifier_model_selection_criteria` に指定された値が `f_beta` である場合にも使用されます。 **オプション** 有効な値: 正の浮動小数点整数 デフォルト値: 1.0   | 
| feature\$1dim |  入力データ内の特徴の数。 **オプション** 有効な値: `auto` または正の整数 デフォルト値: `auto`  | 
| huber\$1delta |  Huber 損失のパラメータ。トレーニングとメトリクスの評価中、デルタより小さいエラーについては L2 損失、デルタより大きいエラーについては L1 損失を計算します。 **オプション** 有効な値: 正の浮動小数点整数 デフォルト値: 1.0   | 
| init\$1bias |  バイアス項の初期重み。 **オプション** 有効な値: 浮動小数点整数 デフォルト値: 0  | 
| init\$1method |  モデルの重み付けに使用される初期分布関数を設定します。関数は以下のとおりです。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/ll_hyperparameters.html) **オプション** 有効な値: `uniform` または `normal` デフォルト値: `uniform`  | 
| init\$1scale |  モデルの重みに対して初期の uniform 分布をスケーリングします。`init_method` ハイパーパラメータが `uniform` に設定されている場合にのみ適用されます。 **オプション** 有効な値: 正の浮動小数点整数 デフォルト値: 0.07  | 
| init\$1sigma |  正規分布の初期標準偏差。`init_method` ハイパーパラメータが `normal` に設定されている場合にのみ適用されます。 **オプション** 有効な値: 正の浮動小数点整数 デフォルト値: 0.01  | 
| l1 |  L1 正則化パラメータ。L1 正則化を使用しないようにするには、値を 0 に設定します。 **オプション** 有効な値: `auto` または負以外の浮動小数点数 デフォルト値: `auto`  | 
| learning\$1rate |  パラメータ更新のためにオプティマイザによって使用されるステップサイズ。 **オプション** 有効な値: `auto` または正の浮動小数点整数 デフォルト値: `auto` (選択されているオプティマイザによって値が異なる)。  | 
| loss |  損失関数を指定します。 使用可能な損失関数とそのデフォルト値は、`predictor_type` の値によって異なります。 [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/ll_hyperparameters.html) 有効な値: `auto`、`logistic`、`squared_loss`、`absolute_loss`、`hinge_loss`、`eps_insensitive_squared_loss`、`eps_insensitive_absolute_loss`、`quantile_loss`、または `huber_loss`  **オプション** デフォルト値: `auto`  | 
| loss\$1insensitivity |  イプシロンを区別しない損失タイプのパラメータ。トレーニングとメトリクスの評価中、この値より小さいエラーはゼロであると見なされます。 **オプション** 有効な値: 正の浮動小数点整数 デフォルト値: 0.01   | 
| lr\$1scheduler\$1factor |  `lr_scheduler_step` ハイパーパラメータごとに、学習レートはこの数量減少します。`use_lr_scheduler` ハイパーパラメータが `true` に設定されている場合にのみ適用されます。 **オプション** 有効な値 : `auto` または 0 ～ 1 の正の浮動小数点整数 デフォルト値: `auto`  | 
| lr\$1scheduler\$1minimum\$1lr |  学習レートは `lr_scheduler_minimum_lr` に設定された値より低い値まで減少することはありません。`use_lr_scheduler` ハイパーパラメータが `true` に設定されている場合にのみ適用されます。 **オプション** 有効な値: `auto` または正の浮動小数点整数 デフォルト値: `auto`  | 
| lr\$1scheduler\$1step |  学習レートの減少の間のステップの数。`use_lr_scheduler` ハイパーパラメータが `true` に設定されている場合にのみ適用されます。 **オプション** 有効な値: `auto` または正の整数 デフォルト値: `auto`  | 
| margin |  `hinge_loss` 関数のマージン。 **オプション** 有効な値: 正の浮動小数点整数 デフォルト値: 1.0  | 
| mini\$1batch\$1size |  データイテレーターのミニバッチごとの観測数。 **オプション** 有効な値: 正の整数 デフォルト値: 1000  | 
| momentum |  `sgd` オプティマイザのモーメンタム。 **オプション** 有効な値 : `auto` または 0 ～ 1.0 の浮動小数点整数 デフォルト値: `auto`  | 
| normalize\$1data |  トレーニング前に特徴を正規化します。データ正規化では、0 の平均を持つように各特徴のデータをシフトし、単位標準偏差を持つようにスケーリングします。 **オプション** 有効な値: `auto`、`true`、または `false` デフォルト値: `true`  | 
| normalize\$1label |  ラベルを正規化します。ラベル正規化はゼロの平均を持つようにラベルをシフトし、単位標準偏差を持つようにスケーリングします。 デフォルト値 `auto` では、ラベルは回帰問題に対して正規化されますが、分類問題に対しては正規化されません。分類問題において `normalize_label` ハイパーパラメータを `true` に設定した場合、アルゴリズムはそれを無視します。 **オプション** 有効な値: `auto`、`true`、または `false` デフォルト値: `auto`  | 
| num\$1calibration\$1samples |  モデルのキャリブレーション (最適なしきい値を見つけるとき) のために使用する、検証データセットから取得した観測値の数。 **オプション** 有効な値: `auto` または正の整数 デフォルト値: `auto`  | 
| num\$1models |  並列でトレーニングするモデルの数。デフォルトの `auto` では、アルゴリズムが並列でトレーニングするモデルの数を決定します。1 つのモデルのトレーニングは指定されたトレーニングパラメータ (regularization、optimizer、loss) に従って行われ、その他はクローズパラメータによって行われます。 **オプション** 有効な値: `auto` または正の整数 デフォルト値: `auto`  | 
| num\$1point\$1for\$1scaler |  正規化の計算または項のバイアス解除に使用するデータポイントの数。 **オプション** 有効な値: 正の整数 デフォルト値: 10,000  | 
| optimizer |  使用する最適化アルゴリズム。 **オプション** 有効な値: [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ja_jp/sagemaker/latest/dg/ll_hyperparameters.html) デフォルト値: `auto`。`auto` のデフォルトの設定は `adam` です。  | 
| positive\$1example\$1weight\$1mult |  二項分類子をトレーニングするときに正のサンプルに割り当てられる重み。負の例の重みは 1 で固定されます。負の例*と*正の例を分類する際のエラーがトレーニング損失に等しい影響を与えるようにアルゴリズムに重みを選択させるには、`balanced` を指定します。アルゴリズムにパフォーマンスを最適化する重みを選択させるには、`auto` を指定します。 **オプション** 有効な値:`balanced`、`auto`、または正の浮動小数点整数 デフォルト値: 1.0  | 
| quantile |  分位損失の分位数。分位数 q については、モデルは `true_label` の値が確率 q の予測より大きくなるように予測を作成しようとします。 **オプション** 有効な値 : 0 ～ 1 の浮動小数点整数 デフォルト値: 0.5  | 
| target\$1precision |  目標適合率。`binary_classifier_model_selection_criteria` が `recall_at_target_precision` である場合、再現率は最大化される一方で、適合率はこの値で保持されます。 **オプション** 有効な値 : 0 ～ 1.0 の浮動小数点整数 デフォルト値: 0.8  | 
| target\$1recall |  目標再現率。`binary_classifier_model_selection_criteria` が `precision_at_target_recall` である場合、適合率は最大化される一方で、再現率はこの値で保持されます。 **オプション** 有効な値 : 0 ～ 1.0 の浮動小数点整数 デフォルト値: 0.8  | 
| unbias\$1data |  平均が 0 になるように、トレーニング前に特徴のバイアスを解除します。デフォルトでは、`use_bias` ハイパーパラメータが `true` に設定されると、データのバイアスは解除されます。 **オプション** 有効な値: `auto`、`true`、または `false` デフォルト値: `auto`  | 
| unbias\$1label |  平均が 0 になるように、トレーニング前にラベルのバイアスを解除します。`use_bias` ハイパーパラメータが `true` に設定されている場合にのみ、回帰に適用されます。 **オプション** 有効な値: `auto`、`true`、または `false` デフォルト値: `auto`  | 
| use\$1bias |  モデルにバイアス項 (線形方程式の切片項) を含めるかどうかを指定します。 **オプション** 有効な値: `true` または `false` デフォルト値: `true`  | 
| use\$1lr\$1scheduler |  学習レートにスケジューラを使用するかどうか。スケジューラを使用するには、`true` を指定します。 **オプション** 有効な値: `true` または `false` デフォルト値: `true`  | 
| wd |  重み付け減衰パラメータ。L2 正則化パラメータとも呼ばれます。L2 正則化を使用しないようにするには、値を 0 に設定します。 **オプション** 有効な値: `auto` または負でない浮動小数点整数 デフォルト値: `auto`  | 

# 線形学習モデルを調整する
<a name="linear-learner-tuning"></a>

*自動モデル調整*は、ハイパーパラメータ調整とも呼ばれ、データセットのさまざまなハイパーパラメータをテストする多数のジョブを実行して、モデルの最適なバージョンを見つけます。調整可能なハイパーパラメータ、それぞれの値の範囲、および目標メトリクスを選択します。アルゴリズムが計算するメトリクスから目標メトリクスを選択します。自動モデル調整は、選択されたハイパーパラメータを検索して、目標メトリクスを最適化するモデルになる値の組み合わせを見つけます。

線形学習者アルゴリズムには、ここで説明する自動モデル調整機能とは別に、ハイパーパラメータを調整するための内部メカニズムもあります。デフォルトでは、線形学習者アルゴリズムは複数のモデルを並行してトレーニングすることによってハイパーパラメータを調整します。自動モデル調整を使用すると、線形学習者の内部調整メカニズムは自動的にオフになります。これにより、並列モデルの数 `num_models` が 1 に設定されます。`num_models` に設定した値は、アルゴリズムによって無視されます。

モデル調整の詳細については、「[SageMaker AI の自動モデルチューニング](automatic-model-tuning.md)」を参照してください。

## 線形学習アルゴリズムによって計算されたメトリクス
<a name="linear-learner-metrics"></a>

線形学習者アルゴリズムは、次のテーブルのメトリクスをレポートします。このメトリクスは、トレーニング中に計算されます。それらの 1 つを目標メトリクスとして選択してください。過剰適合を回避するために、トレーニングメトリクスではなく検証メトリクスに対してモデルを調整することをお勧めします。


| メトリクス名 | 説明 | 最適化の方向 | 
| --- | --- | --- | 
| test:absolute\$1loss |  テストデータセットの最終モデルの絶対損失。この目標メトリクスは、回帰にのみ有効です。  |  最小化  | 
| test:binary\$1classification\$1accuracy |  テストデータセットの最終モデルの精度。この目標メトリクスは、二項分類にのみ有効です。  |  最大化  | 
| test:binary\$1f\$1beta |  テストデータセットの最終モデルの F-ベータスコア。デフォルトでは、これは F1 スコアであり、適合率と再現率の調和平均です。この目標メトリクスは、二項分類にのみ有効です。  |  最大化  | 
| test:dcg |  テストデータセットの最終モデルの減損累積利得。この目標メトリクスは、複数クラス分類にのみ有効です。  |  最大化  | 
| test:macro\$1f\$1beta |  テストデータセットの最終モデルの F-ベータスコア。この目標メトリクスは、複数クラス分類にのみ有効です。  |  最大化  | 
| test:macro\$1precision |  テストデータセットの最終モデルの適合スコア。この目標メトリクスは、複数クラス分類にのみ有効です。  |  最大化  | 
| test:macro\$1recall |  テストデータセットの最終モデルの再現率スコア。この目標メトリクスは、複数クラス分類にのみ有効です。  |  最大化  | 
| test:mse |  テストデータセットの最終モデルの平均二乗誤差。この目標メトリクスは、回帰にのみ有効です。  |  最小化  | 
| test:multiclass\$1accuracy |  テストデータセットの最終モデルの精度。この目標メトリクスは、複数クラス分類にのみ有効です。  |  最大化  | 
| test:multiclass\$1top\$1k\$1accuracy |  テストデータセットで予測された上位 k のラベルの精度。このメトリクスを目標として選択する場合は、`accuracy_top_k` ハイパーパラメータを使用して k の値を設定することをおすすめします。この目標メトリクスは、複数クラス分類にのみ有効です。  |  最大化  | 
| test:objective\$1loss |  モデルがトレーニングされた後のテストデータセットの目標損失関数の平均値。既定の設定では、損失は、二項分類ではロジスティック損失、回帰では二乗損失です。他のタイプの損失を設定するには、 `loss` ハイパーパラメータを使用します。  |  最小化  | 
| test:precision |  テストデータセットの最終モデルの適合率。このメトリクスを目標として選択した場合は、`binary_classifier_model_selection` ハイパーパラメータを `precision_at_target_recall` に設定し、`target_recall` ハイパーパラメータの値を設定して、目標再現率を設定することをお勧めします。この目標メトリクスは、二項分類にのみ有効です。  |  最大化  | 
| test:recall |  テストデータセットの最終モデルの再現率。このメトリクスを目標として選択した場合は、`binary_classifier_model_selection` ハイパーパラメータを `recall_at_target_precision` に設定し、`target_precision` ハイパーパラメータの値を設定して、目標適合率を設定することをお勧めします。この目標メトリクスは、二項分類にのみ有効です。  |  最大化  | 
| test:roc\$1auc\$1score |  テストデータセットにおける最終モデルの受信操作特性曲線 (ROC 曲線) の下面積。この目標メトリクスは、二項分類にのみ有効です。  |  最大化  | 
| validation:absolute\$1loss |  検証データセットの最終モデルの絶対損失。この目標メトリクスは、回帰にのみ有効です。  |  最小化  | 
| validation:binary\$1classification\$1accuracy |  検証データセットの最終モデルの精度。この目標メトリクスは、二項分類にのみ有効です。  |  最大化  | 
| validation:binary\$1f\$1beta |  検証データセットの最終モデルの F-ベータスコア。デフォルトでは、F-ベータスコアは F1 スコアであり、`validation:precision` および `validation:recall` メトリクスの調和平均です。この目標メトリクスは、二項分類にのみ有効です。  |  最大化  | 
| validation:dcg |  検証データセットにおける最終モデルの減損累積利得。この目標メトリクスは、複数クラス分類にのみ有効です。  |  最大化  | 
| validation:macro\$1f\$1beta |  検証データセットの最終モデルの F-ベータスコア。この目標メトリクスは、複数クラス分類にのみ有効です。  |  最大化  | 
| validation:macro\$1precision |  検証データセットの最終モデルの適合スコア。この目標メトリクスは、複数クラス分類にのみ有効です。  |  最大化  | 
| validation:macro\$1recall |  検証データセットの最終モデルの再現率スコア。この目標メトリクスは、複数クラス分類にのみ有効です。  |  最大化  | 
| validation:mse |  検証データセットの最終モデルの平均二乗誤差。この目標メトリクスは、回帰にのみ有効です。  |  最小化  | 
| validation:multiclass\$1accuracy |  検証データセットの最終モデルの精度。この目標メトリクスは、複数クラス分類にのみ有効です。  |  最大化  | 
| validation:multiclass\$1top\$1k\$1accuracy |  検証データセットで予測された上位 k 個のラベルの精度。このメトリクスを目的として選択する場合は、`accuracy_top_k` ハイパーパラメータを使用して k の値を設定することをおすすめします。この目標メトリクスは、複数クラス分類にのみ有効です。  |  最大化  | 
| validation:objective\$1loss |  各エポックにおける検証データセットに対する目標損失関数の平均値。既定の設定では、損失は、二項分類ではロジスティック損失、回帰では二乗損失です。他のタイプの損失を設定するには、`loss` ハイパーパラメータを使用します。  |  最小化  | 
| validation:precision |  検証データセットの最終モデルの精度。このメトリクスを目標として選択した場合は、`binary_classifier_model_selection` ハイパーパラメータを `precision_at_target_recall` に設定し、`target_recall` ハイパーパラメータの値を設定して、目標再現率を設定することをお勧めします。この目標メトリクスは、二項分類にのみ有効です。  |  最大化  | 
| validation:recall |  検証データセットの最終モデルのリコール。このメトリクスを目標として選択した場合は、`binary_classifier_model_selection` ハイパーパラメータを `recall_at_target_precision` に設定し、`target_precision` ハイパーパラメータの値を設定して、目標適合率を設定することをお勧めします。この目標メトリクスは、二項分類にのみ有効です。  |  最大化  | 
| validation:rmse |  検証データセットの最終モデルの二乗平均平方根誤差。この目標メトリクスは、回帰にのみ有効です。  |  最小化  | 
| validation:roc\$1auc\$1score |  検証データセットにおける最終モデルの受信操作特性曲線 (ROC 曲線) の下面積。この目標メトリクスは、二項分類にのみ有効です。  |  最大化  | 

## 線形学習ハイパーパラメータの調整
<a name="linear-learner-tunable-hyperparameters"></a>

以下のハイパーパラメータを使用して線形学習者モデルを調整できます。


| パラメータ名 | パラメータタイプ | 推奨範囲 | 
| --- | --- | --- | 
| wd |  `ContinuousParameterRanges`  |  `MinValue: ``1e-7`, `MaxValue`: `1`  | 
| l1 |  `ContinuousParameterRanges`  |  `MinValue`: `1e-7`, `MaxValue`: `1`  | 
| learning\$1rate |  `ContinuousParameterRanges`  |  `MinValue`: `1e-5`, `MaxValue`: `1`  | 
| mini\$1batch\$1size |  `IntegerParameterRanges`  |  `MinValue`: `100`, `MaxValue`: `5000`  | 
| use\$1bias |  `CategoricalParameterRanges`  |  `[True, False]`  | 
| positive\$1example\$1weight\$1mult |  `ContinuousParameterRanges`  |  `MinValue`: 1e-5、`MaxValue`: `1e5`  | 

# 線形学習のレスポンス形式
<a name="LL-in-formats"></a>

## JSON レスポンス形式
<a name="LL-json"></a>

Amazon SageMaker AI の組み込みアルゴリズムはすべて、「[Common Data Formats - Inference](https://docs.aws.amazon.com/sagemaker/latest/dg/cdf-inference.html)」で説明されている一般的な入力推論形式に従います。以下は、SageMaker AI 線形学習アルゴリズムで使用可能な出力形式です。

**バイナリの分類**

```
let response =   {
    "predictions":    [
        {
            "score": 0.4,
            "predicted_label": 0
        } 
    ]
}
```

**複数クラスの分類**

```
let response =   {
    "predictions":    [
        {
            "score": [0.1, 0.2, 0.4, 0.3],
            "predicted_label": 2
        } 
    ]
}
```

**回帰**

```
let response =   {
    "predictions":    [
        {
            "score": 0.4
        } 
    ]
}
```

## JSONLINES レスポンス形式
<a name="LL-jsonlines"></a>

**バイナリの分類**

```
{"score": 0.4, "predicted_label": 0}
```

**複数クラスの分類**

```
{"score": [0.1, 0.2, 0.4, 0.3], "predicted_label": 2}
```

**回帰**

```
{"score": 0.4}
```

## RECORDIO レスポンス形式
<a name="LL-recordio"></a>

**バイナリの分類**

```
[
    Record = {
        features = {},
        label = {
            'score': {
                keys: [],
                values: [0.4]  # float32
            },
            'predicted_label': {
                keys: [],
                values: [0.0]  # float32
            }
        }
    }
]
```

**複数クラスの分類**

```
[
    Record = {
    "features": [],
    "label":    {
            "score":  {
                    "values":   [0.1, 0.2, 0.3, 0.4]   
            },
            "predicted_label":  {
                    "values":   [3]
            }
       },
    "uid":  "abc123",
    "metadata": "{created_at: '2017-06-03'}"
   }
]
```

**回帰**

```
[
    Record = {
        features = {},
        label = {
            'score': {
                keys: [],
                values: [0.4]  # float32
            }   
        }
    }
]
```