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

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

線形学習アルゴリズム

線形モデルは、分類や回帰の問題を解決するために使用される、教師あり学習アルゴリズムです。入力として、examples (x, y) というラベルのモデルを提供します。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_labelpredicted_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 コンピュータがシングル GPU コンピュータより高速である実質的な証拠は見つかりませんでした。結果はユースケースに応じて異なります。

リニア学習者のサンプルノートブック

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

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

MNISTデータセットの概要

MNISTデータセットを使用して、我々は1桁を予測するバイナリ分類子を訓練します。

乳がんの予測

UCIの乳がんデータセットを使用して、乳がんを予測するモデルをトレーニングします。

マルチクラス分類子を構築するには?

UCI の Covertype データセットを使用して、マルチクラス分類子をトレーニングする方法を示します。

推論のためのMachine Learning(ML)パイプラインを構築するには?

Scikit-learn コンテナを使用して、エンドツーエンドの ML パイプラインを構築する方法を示します。

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