線形学習アルゴリズム - Amazon SageMaker

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

線形学習アルゴリズム

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

Amazon SageMaker 線形学習アルゴリズムは、分類問題と回帰問題の両方に対するソリューションを提供します。 SageMaker アルゴリズムを使用すると、さまざまなトレーニング目標を同時に探索し、検証セットから最適なソリューションを選択できます。また、多数のモデルを探索して最適なものを選択することもできます。最善のモデルは、以下を最適化します。

  • 平均二乗誤差、交差エントロピー損失、絶対誤差などの連続的な目標

  • F1 尺度、適合率と再現率、または精度など、分類に適した個別の目標。

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

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

マネージドスポットトレーニングを使用している場合、線形学習アルゴリズムはモデルの状態のスナップショットを撮影するチェックポイントの使用をサポートしています。

線形学習アルゴリズムの入出力インターフェイス

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

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

推論については、線形学習者アルゴリズムは、application/jsonapplication/x-recordio-protobuf、および text/csv の各形式をサポートします。新しいデータを予測する場合、レスポンスの形式はモデルの種類によって異なります。回帰 (predictor_type='regressor') の場合、score はモデルによって生成される予測です。分類 (predictor_type='binary_classifier' または predictor_type='multiclass_classifier') の場合、モデルは score に加えて predicted_label も返します。predicted_label はモデルによって予測されるクラスで、score はその予測の強度を測定します。

  • バイナリ分類の場合predicted_label0 または 1 であり、score は、アルゴリズムがラベルを 1 にする必要があると確信している程度を示す単一の浮動小数点数です。

  • 複数クラスの分類の場合predicted_class0 から num_classes-1 の整数になり、score はクラスごとに 1 つの浮動小数点数のリストになります。

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

入出力ファイル形式の詳細については、線形学習のレスポンス形式 を参照してください。推論形式の詳細については、線形学習サンプルノートブック を参照してください。

線形学習アルゴリズムの EC2 インスタンスに関する推奨事項

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

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

線形学習サンプルノートブック

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

ノートブックのタイトル 説明

MNIST データセットの概要

MNIST データセットを使用して 1 桁の数字を予測するように二項分類子をトレーニングします。

複数クラス分類子を構築する方法

UCI の Covertype データセットを使用して、複数クラス分類子をトレーニングする方法を説明します。

推論向け機械学習 (ML) パイプラインを構築する方法

Scikit-learn コンテナを使用して、 end-to-end ML パイプラインを構築する方法を示します。

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