アルゴリズムの選択 - Amazon SageMaker

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

アルゴリズムの選択

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

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

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

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

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

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

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

  • 事前トレーニング済みモデルは最小限の労力で済み、 を使用してデプロイまたは微調整およびデプロイできるモデルです SageMaker JumpStart。

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

  • 機能する組み込みソリューションがない場合は、Scikit- Learn、、MXNet、Chainer など TensorFlow PyTorch、サポートされているフレームワークの機械学習フレームワークと深層学習フレームワーク用に事前に作成されたイメージを使用するソリューションを開発してみてください。

  • カスタムパッケージを実行する必要がある場合、またはサポートされているフレームワークの一部でないか、 経由で入手できないコードを使用する必要がある場合は 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 をサポートしています。これらのフレームワークには、対応するフレームワークと Pandas や などの追加の Python パッケージがプリロードされているため NumPy、アルゴリズムをトレーニングするための独自のコードを記述できます。これらのフレームワークでは、requirements.txt ファイルをトレーニングコードに含めたり、独自のコードディレクトリを含めたり PyPi することで、 でホストされている Python パッケージをインストールすることもできます。R は SageMaker ノートブックカーネルでもネイティブにサポートされています。scikit-learn や Spark ML などの一部のフレームワークには、簡単に使用できる事前コードされたアルゴリズムがありますが、 TensorFlow や PyTorch などの他のフレームワークには、アルゴリズムを自分で実装する必要がある場合があります。サポートされているフレームワークイメージを使用する場合の唯一の制限は、 でホストされていないソフトウェアパッケージ PyPi や、フレームワークのイメージにまだ含まれていないソフトウェアパッケージをインポートできないことです。

でサポートされているフレームワークの詳細については SageMaker、「」を参照してください機械学習フレームワークと言語

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

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

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

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

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

教師あり学習

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

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

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

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

が提供する組み込み教師あり学習アルゴリズムの詳細については SageMaker、「」を参照してください教師あり学習

教師なし学習

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

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

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

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

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

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

強化学習

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

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