アルゴリズムの選択 - アマゾン SageMaker

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

アルゴリズムの選択

機械学習は何らかの帰納的推論を必要とする経験的タスクの実行に役立ちます。このタスクでは、データを使用してアルゴリズムをトレーニングし、一般化可能な推論を行う帰納が伴います。つまり、アルゴリズムは統計的に信頼できる予測や決定を行うことも、トレーニングに使用されなかった新しいデータに適用された場合に他のタスクを行うこともできます。

タスクに対して最適なアルゴリズムを選択できるように、これらのタスクをさまざまな抽象レベルで分類します。最高レベルの抽象化において、機械学習は、特徴間または構造化されていない項目 (データセット内のテキストなど) 間のパターンや関係性を見つけようとします。パターン認識技術は、個別の機械学習パラダイムに分類でき、それぞれが特定の問題タイプに対処します。現在、機械学習は次の 3 つの基本的なパラダイムを使用して、さまざまな問題タイプに対処しています。

各学習パラダイムが対処できる問題のタイプは、所有しているデータのタイプまたは収集できるデータのタイプから行う推論 (または予測、決定、その他のタスク) を考慮することによって識別されます。機械学習パラダイムは、アルゴリズム手法を使用してさまざまな問題タイプに対処します。アルゴリズムにより、これらの問題を解決するレシピが提供されます。

ただし、ニューラルネットワークなどの多くのアルゴリズムは異なる学習パラダイムを使用してさまざまな問題タイプにデプロイできます。複数のアルゴリズムで特定の問題タイプに対処することもできます。アルゴリズムによっては、より一般的に適用できる場合も、特定の目的やデータに対して特に固有である特場合もあります。したがって、機械学習アルゴリズムと問題タイプのマッピングは次のとおりです。 many-to-many。また、アルゴリズムにはさまざまな実装オプションがあります。

次のセクションでは、実装オプション、機械学習パラダイム、さまざまな問題タイプに適したアルゴリズムに関するガイダンスについて説明します。

アルゴリズムの実装を選択する

アルゴリズムを選択したら、使用するアルゴリズムの実装を決定する必要があります。アマゾン SageMaker は、労力レベルの増加が要求される 3 つの実装オプションをサポートしています。

  • トレーニング済みモデル最小限の労力でモデルを展開する準備ができているか、またはを使用して微調整して展開する準備ができているか SageMaker JumpStart。

  • 組み込みアルゴリズムデータセットが大きく、モデルのトレーニングとデプロイに大量のリソースが必要な場合に労力とスケールが要求されます。

  • 機能する組み込みソリューションがない場合は、以下を使用するソリューションを開発してみてください機械学習およびディープラーニングフレームワーク用の既成画像Scikit-Learnなどのサポートされているフレームワークについては、 TensorFlow, PyTorch、MXNet、またはチェイナー。

  • カスタムパッケージを実行したり、サポートされているフレームワークの一部ではない、または PyPi、次にビルドする必要があります独自のカスタム Docker イメージ必要なパッケージまたはソフトウェアをインストールするように設定されている。カスタムイメージは、Amazon Elastic Container Registry などのオンラインリポジトリにもプッシュする必要があります。

アルゴリズムの実装ガイダンス
実装 コードが必要 事前にコード化されたアルゴリズム サードパーティーパッケージのサポート カスタムコードのサポート 労力レベル
組み込み いいえ はい いいえ いいえ
Scikit-learn はい はい PyPi のみ はい
Spark ML はい はい PyPi のみ はい
XGBoost (オープンソース) はい はい PyPi のみ はい
TensorFlow はい いいえ PyPi のみ はい やや高い
PyTorch はい いいえ PyPi のみ はい やや高い
MXNet はい いいえ PyPi のみ はい やや高い
Chainer はい いいえ PyPi のみ はい やや高い
カスタムイメージ はい いいえ はい (任意のソースから) はい

組み込みのアルゴリズムを使用するする

問題とデータのタイプに対してアルゴリズムを選択する場合、最も簡単なオプションはいずれかの Amazon の SageMakerの組み込みアルゴリズム。これらの組み込みアルゴリズムには大きな利点が 2 つあります。

  • 組み込みアルゴリズムでは、実験開始に必要なコードはありません。必要な入力は、データ、ハイパーパラメータ、コンピューティングリソースのみです。これにより、結果やコードの変更を追跡するオーバーヘッドを削減しながら、実験をより迅速に実行できます。

  • 組み込みアルゴリズムは複数のコンピューティングインスタンス間で並列化され、適用可能なすべてのアルゴリズムに対して設定なしで GPU 対応となります (固有の制限により、一部のアルゴリズムが含まれないことがあります)。モデルのトレーニングに使うデータが多い場合、ほとんどの組み込みアルゴリズムは需要に合わせて簡単にスケーリングできます。事前トレーニング済みのモデルがある場合でも、その推論を SageMaker サポートされているフレームワークでスクリプトモードを使用し、既知のハイパーパラメータを入力します。

が提供する組み込みアルゴリズムの詳細については SageMaker参照, 参照,Amazon を使用する SageMaker ビルトインアルゴリズムまたは事前トレーニング済みモデル

docker レジストリパス、データ形式、推奨される EC2 インスタンスタイプ、および CloudWatch が提供するすべての組み込みアルゴリズムに共通するログ SageMaker参照, 参照,組み込みアルゴリズムに関する共通情報

サポートされているフレームワークでスクリプトモードを使用する

モデルに使うアルゴリズムが組み込みの選択肢でサポートされていなくても、独自のソリューションを問題なくコーディングできる場合、Amazonの使用を検討する必要があります。 SageMakerサポートされているフレームワーク。これは、カスタムコード (スクリプト) を .py 拡張子を使ったテキストファイルに書き込むため、「スクリプトモード」と呼ばれます。上の表が示すように、 SageMaker は、一般的なほとんどの機械学習フレームワークをサポートしています。これらのフレームワークには、対応するフレームワークと追加の Python パッケージ (Pandas や Pandas など) がプリロードされています。 NumPyアルゴリズムをトレーニングする独自のコードを記述できます。これらのフレームワークでは、でホストされている任意の Python パッケージをインストールすることもできます。 PyPi requirements.txt ファイルをトレーニングコードに含めたり、独自のコードディレクトリを含めたりすることで。R は SageMaker ノートブックカーネル。簡単に使用できる事前コード化されたアルゴリズムがある scikit-learn や Spark ML のようなフレームワークもあります。 TensorFlow そして PyTorchアルゴリズムを自分で実装する必要があるかもしれません。サポートされているフレームワークイメージを使う場合の唯一の制限は、でホストされていないソフトウェアパッケージをインポートできないことです。 PyPi または、フレームワークのイメージにまだ含まれていない。

でサポートされているフレームワークの詳細については SageMaker参照, 参照,Amazon SageMaker で機械学習フレームワーク、Python、R を使用する

カスタム Docker イメージを使用する

アマゾン SageMakerの組み込みアルゴリズムとサポートされているフレームワークはほとんどのユースケースに対応していますが、サポートされているフレームワークに含まれていないパッケージのアルゴリズムを使用しなければならない場合もあります。また、デプロイが必要な場所に、事前トレーニング済みのモデルが選択または永続化されていることがあります。 SageMaker は Docker イメージを使用してすべてのモデルのトレーニングと提供をホストするため、必要なパッケージまたはソフトウェアがサポートされているフレームワークに含まれていない場合に独自のカスタム Docker イメージを提供できます。これは、独自の Python パッケージの場合も、Stan や Julia のような言語でコード化されたアルゴリズムの場合もあります。これらのイメージについては、Dockerfile でアルゴリズムのトレーニングとモデルの提供を適切に設定する必要もあります。これには Docker に関する中程度の知識が必要であり、独自の機械学習アルゴリズムの記述に慣れていない限り、お勧めできません。モデルを適切にトレーニングして提供するには、Docker イメージを Amazon Elastic Container Registry (ECR) などのオンラインリポジトリにアップロードする必要があります。

カスタム Docker イメージの詳細については、「」を参照してください。 SageMaker参照, 参照,SageMaker で Docker コンテナを使用する

基本的な機械学習パラダイムの問題タイプ

次の 3 つのセクションでは、機械学習の 3 つの基本的なパラダイムで対処する主な問題タイプについて説明します。組み込みアルゴリズムのリストについては SageMaker は、これらの問題タイプに対処するために提供します。Amazon を使用する SageMaker ビルトインアルゴリズムまたは事前トレーニング済みモデル

教師あり学習

データセットがターゲット値 (出力) を含む特徴または属性 (入力) で構成されている場合、教師あり学習の問題があります。ターゲット値がカテゴリ (数学的に離散的) である場合、分類問題があります。これは二項分類と複数クラス分類を区別する標準的な方法です。

  • 二項分類は、教師あり学習の一種で、個人の属性に基づいて、事前に定義された相互に排他的な 2 つのクラスのいずれかに個人を割り当てます。属性が正しくラベル付けされたオブジェクトを提供する例を使用してモデルがトレーニングされるため、教師ありです。診断検査の結果に基づいて、個人が疾患を有するか否かの医学的診断が二値分類の一例です。

  • 複数クラス分類は、教師あり学習の一種で、個人の属性に基づいて複数のクラスのいずれかに個人を割り当てる分類です。属性が正しくラベル付けされたオブジェクトを提供する例を使用してモデルがトレーニングされるため、教師ありです。一例として、テキストドキュメントに最も関連性の高いトピックの予測があります。ドキュメントは、宗教、政治、金融、または他のいくつかの事前定義されたトピッククラスのいずれかに関するものとして分類できます。

予測しようとしているターゲット値が数学的に連続している場合、回帰問題があります。回帰では、従属ターゲット変数の値は、それと相関する 1 つ以上の他の変数または属性に基づいて推定されます。一例として、バスルームと寝室の数、家と庭の平方フィートなどの特徴を使用した住宅価格の予測があります。回帰分析では、これらの特徴の 1 つ以上を入力として受け取り、家の価格を予測するモデルを作成できます。

が提供する組み込み教師あり学習アルゴリズムの詳細については SageMaker参照, 参照,教師あり学習

教師なし学習

データセットがラベルやターゲット値 (出力) を含まない特徴または属性 (入力) で構成されている場合、教師なし学習の問題があります。このタイプの問題では、入力データで検出されたパターンに基づいて出力を予測する必要があります。教師なし学習問題の目標は、データ内のグループ化などのパターンを検出することです。教師なし学習を適用できるタスクや問題のタイプは多種多様です。主成分分析とクラスター分析は、データの前処理に一般的にデプロイされる主な 2 つの方法です。教師なし学習で対処できる問題タイプの短いリストを次に示します。

  • 次元削減は通常、モデル構築に使う最も関連性の高い特徴を決定するために使用されるデータ探索ステップの一部です。これを行うには、格納データの少ない高次元空間から、元のデータの最も重要な特性を保持する低次元空間にデータを変換します。これにより、統計分析が問題となる、格納データの少ない高次元データで発生する可能性のある次元の呪いの打開策が得られます。また、データを理解し、高次元データを可視化できる低次元まで削減する場合にも役立ちます。

  • クラスター分析は、オブジェクトやケースをクラスターと呼ばれるグループへの分類に使用される技術クラスです。これは、1 つのグループのメンバーができるだけ類似し、他のグループのメンバーとできるだけ異なる離散グループをデータ内に見つけようとします。アルゴリズムで類似性の判定に使う特徴または属性を定義し、類似度を測定する距離関数を選択して、解析で使うクラスターの数を指定します。

  • 異常検出は、残りのデータとは大きく異なるために疑わしいと思われるデータセット内の希少項目、イベント、または観測値の識別です。異常な項目の識別は、銀行の不正や医療ミスの検出などに使用できます。異常は、外れ値、ノベルティ、ノイズ、偏差、例外とも呼ばれます。

  • 密度推定は、観測データに基づいて観測不可能な基礎となる確率密度関数の推定値の構造です。密度推定の自然な使用はデータ探索です。密度推定では、データ内の歪みやマルチモダリティなどの特徴を検出できます。密度推定の最も基本的な形式は、拡大縮小し直されたヒストグラムです。

SageMaker は、これらの教師なし学習タスクに使用可能な、いくつかの組み込み機械学習アルゴリズムを提供します。が提供する組み込み教師なしアルゴリズムの詳細については SageMaker参照, 参照,教師なし学習

強化学習

強化学習は、環境との相互作用に基づく学習の一種です。このタイプの学習は、次の方法で行動を学習する必要があるエージェントによって使用されます。 trial-and-error 動的な環境との相互作用。長期報酬を最大化することを目的とし、エージェントのアクションの結果として受け取ります。報酬は、報酬が不確かな探索アクションを報酬が既知の活用アクションとトレードオフすることで最大化されます。

の詳細については SageMakerの強化学習向けフレームワーク、ツールキット、環境を参照してください。Amazon SageMaker で強化学習を使用する