

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

# 線形学習アルゴリズム
<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 (コピーを作成)**] を選択します。