翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
アルゴリズムのタイプ
機械学習は何らかの帰納的推論を必要とする経験的タスクの実行に役立ちます。このタスクでは、データを使用してアルゴリズムをトレーニングし、一般化可能な推論を行う帰納が伴います。つまり、アルゴリズムは統計的に信頼できる予測や決定を行うことも、トレーニングに使用されなかった新しいデータに適用された場合に他のタスクを行うこともできます。
タスクに対して最適なアルゴリズムを選択できるように、これらのタスクをさまざまな抽象レベルで分類します。最高レベルの抽象化において、機械学習は、特徴間または構造化されていない項目 (データセット内のテキストなど) 間のパターンや関係性を見つけようとします。パターン認識技術は、個別の機械学習パラダイムに分類でき、それぞれが特定の問題タイプに対処します。現在、機械学習は次の 3 つの基本的なパラダイムを使用して、さまざまな問題タイプに対処しています。
各学習パラダイムが対処できる問題のタイプは、所有しているデータのタイプまたは収集できるデータのタイプから行う推論 (または予測、決定、その他のタスク) を考慮することによって識別されます。機械学習パラダイムは、アルゴリズム手法を使用してさまざまな問題タイプに対処します。アルゴリズムにより、これらの問題を解決するレシピが提供されます。
ただし、ニューラルネットワークなどの多くのアルゴリズムは異なる学習パラダイムを使用してさまざまな問題タイプにデプロイできます。複数のアルゴリズムで特定の問題タイプに対処することもできます。アルゴリズムによっては、より一般的に適用できる場合も、特定の目的やデータに対して特に固有である特場合もあります。したがって、機械学習アルゴリズムと問題タイプのマッピングは です many-to-many。また、アルゴリズムにはさまざまな実装オプションがあります。
次のセクションでは、実装オプション、機械学習パラダイム、さまざまな問題タイプに適したアルゴリズムに関するガイダンスについて説明します。
トピック
アルゴリズムの実装を選択する
アルゴリズムを選択したら、使用するアルゴリズムの実装を決定する必要があります。Amazon SageMaker AI は、作業レベルを上げる必要がある 3 つの実装オプションをサポートしています。
-
事前トレーニング済みのモデルは、最小限の労力でデプロイでき、 を使用して微調整およびデプロイする準備ができています SageMaker JumpStart。
-
組み込みアルゴリズムは、データセットが大きく、モデルのトレーニングとデプロイに大量のリソースが必要な場合に、より多くの労力とスケールを必要とします。
-
機能する組み込みソリューションがない場合は、Scikit-Learn、、 TensorFlow PyTorch、MXNet、Chainer などのサポートされているフレームワークの機械学習フレームワークと深層学習フレームワーク用に事前に作成されたイメージを使用するソリューションを開発してみてください。
-
カスタムパッケージを実行したり、サポートされているフレームワークの一部ではないコードや 経由で利用可能なコードを使用する必要がある場合は PyPi、必要なパッケージやソフトウェアをインストールするように設定された独自のカスタム Docker イメージを構築する必要があります。カスタムイメージは、Amazon Elastic Container Registry などのオンラインリポジトリにもプッシュする必要があります。
アルゴリズムの実装ガイダンス
実装 | コードが必要 | 事前にコード化されたアルゴリズム | サードパーティーパッケージのサポート | カスタムコードのサポート | 労力レベル |
---|---|---|---|---|---|
組み込み | いいえ | あり | いいえ | いいえ | 低 |
Scikit-learn | はい | あり | PyPi のみ | あり | Medium |
Spark ML | はい | あり | PyPi のみ | あり | Medium |
XGBoost (オープンソース) | はい | あり | PyPi のみ | あり | Medium |
TensorFlow | あり | 不可 | PyPi のみ | あり | やや高い |
PyTorch | あり | 不可 | PyPi のみ | あり | やや高い |
MXNet | あり | 不可 | PyPi のみ | あり | やや高い |
Chainer | あり | 不可 | PyPi のみ | あり | やや高い |
カスタムイメージ | あり | いいえ | はい (任意のソースから) | あり | 高 |
組み込みのアルゴリズムを使用するする
問題やデータのタイプに合わせてアルゴリズムを選択する場合、最も簡単なオプションは Amazon SageMaker AI の組み込みアルゴリズムのいずれかを使用することです。これらの組み込みアルゴリズムには大きな利点が 2 つあります。
-
組み込みアルゴリズムでは、実験開始に必要なコードはありません。必要な入力は、データ、ハイパーパラメータ、コンピューティングリソースのみです。これにより、結果やコードの変更を追跡するオーバーヘッドを削減しながら、実験をより迅速に実行できます。
-
組み込みアルゴリズムには、複数のコンピューティングインスタンス間で並列化が備わっており、適用可能なすべてのアルゴリズムをすぐにGPUサポートします (固有の制限により、一部のアルゴリズムは含まれない場合があります)。モデルのトレーニングに使うデータが多い場合、ほとんどの組み込みアルゴリズムは需要に合わせて簡単にスケーリングできます。すでにトレーニング済みのモデルがある場合でも、 SageMaker AI でそのコロラリを使用し、サポートされているフレームワークでスクリプトモードを使用して、移植するよりも、すでに知っているハイパーパラメータを入力する方が簡単な場合があります。
SageMaker AI が提供する組み込みアルゴリズムの詳細については、「」を参照してくださいAmazon の組み込みアルゴリズムと事前トレーニング済みモデル SageMaker。
Docker レジストリパス、データ形式、推奨されるEC2インスタンスタイプ、AI が提供するすべての組み込みアルゴリズムに共通の CloudWatch ログに関する重要な情報については SageMaker 、「」を参照してください組み込みアルゴリズムのパラメータ。
サポートされているフレームワークでスクリプトモードを使用する
モデルに使用するアルゴリズムが組み込みの選択でサポートされておらず、独自のソリューションのコーディングに慣れている場合は、Amazon SageMaker AI がサポートするフレームワークの使用を検討してください。これは、カスタムコード (スクリプト) を .py
拡張子を使ったテキストファイルに書き込むため、「スクリプトモード」と呼ばれます。上記の表が示すように、 SageMaker AI は一般的な機械学習フレームワークのほとんどをサポートしています。これらのフレームワークには、対応するフレームワークと Pandas や などの追加の Python パッケージがプリロードされているため NumPy、アルゴリズムをトレーニングするための独自のコードを記述できます。これらのフレームワークでは、トレーニングコードに requirements.txt ファイルを含めるか、独自のコードディレクトリを含める PyPi ことで、 でホストされている Python パッケージをインストールすることもできます。R は SageMaker ノートブックカーネルでもネイティブにサポートされています。scikit-learn や Spark ML などの一部のフレームワークには、簡単に使用できる事前コードされたアルゴリズムがありますが、 TensorFlow や PyTorch などの他のフレームワークでは、アルゴリズムを自分で実装する必要がある場合があります。サポートされているフレームワークイメージを使用する場合の唯一の制限は、 でホストされていない、 PyPi またはフレームワークのイメージにまだ含まれていないソフトウェアパッケージをインポートできないことです。
SageMaker AI でサポートされているフレームワークの詳細については、「」を参照してください機械学習フレームワークと言語。
カスタム Docker イメージを使用する
Amazon SageMaker AI の組み込みアルゴリズムとサポートされているフレームワークは、ほとんどのユースケースをカバーする必要がありますが、サポートされているフレームワークに含まれていないパッケージのアルゴリズムを使用する必要がある場合があります。また、事前トレーニング済みのモデルがデプロイが必要な場所に選択または保持されている場合もあります。 SageMaker AI は Docker イメージを使用してすべてのモデルのトレーニングと提供をホストするため、必要なパッケージまたはソフトウェアがサポートされているフレームワークに含まれていない場合は、独自のカスタム Docker イメージを提供できます。これは、独自の Python パッケージの場合も、Stan や Julia のような言語でコード化されたアルゴリズムの場合もあります。これらのイメージについては、Dockerfile でアルゴリズムのトレーニングとモデルの提供を適切に設定する必要もあります。これには Docker に関する中程度の知識が必要であり、独自の機械学習アルゴリズムの記述に慣れていない限り、お勧めできません。モデルを適切にトレーニングして提供する前に、Docker イメージを Amazon Elastic Container Registry (ECR) などのオンラインリポジトリにアップロードする必要があります。
SageMaker AI のカスタム Docker イメージの詳細については、「」を参照してくださいモデルのトレーニングとデプロイのための Docker コンテナ。
基本的な機械学習パラダイムの問題タイプ
次の 3 つのセクションでは、機械学習の 3 つの基本的なパラダイムで対処する主な問題タイプについて説明します。これらの問題タイプに対応するために SageMaker AI が提供する組み込みアルゴリズムのリストについては、「」を参照してくださいAmazon の組み込みアルゴリズムと事前トレーニング済みモデル SageMaker。
教師あり学習
データセットがターゲット値 (出力) を含む特徴または属性 (入力) で構成されている場合、教師あり学習の問題があります。ターゲット値がカテゴリ (数学的に離散的) である場合、分類問題があります。これは二項分類と複数クラス分類を区別する標準的な方法です。
-
二項分類は、教師あり学習の一種で、個人の属性に基づいて、事前に定義された相互に排他的な 2 つのクラスのいずれかに個人を割り当てます。属性が正しくラベル付けされたオブジェクトを提供する例を使用してモデルがトレーニングされるため、教師ありです。診断検査の結果に基づいて、個人が疾患を有するか否かの医学的診断が二値分類の一例です。
-
複数クラス分類は、教師あり学習の一種で、個人の属性に基づいて複数のクラスのいずれかに個人を割り当てる分類です。属性が正しくラベル付けされたオブジェクトを提供する例を使用してモデルがトレーニングされるため、教師ありです。一例として、テキストドキュメントに最も関連性の高いトピックの予測があります。ドキュメントは、宗教、政治、金融、または他のいくつかの事前定義されたトピッククラスのいずれかに関するものとして分類できます。
予測しようとしているターゲット値が数学的に連続している場合、回帰問題があります。リグレッションでは、従属ターゲット変数の値は、それと相関する 1 つ以上の他の変数または属性に基づいて推定されます。一例として、バスルームと寝室の数、家と庭の平方フィートなどの特徴を使用した住宅価格の予測があります。回帰分析では、これらの特徴量の 1 つ以上を入力として受け取り、家の価格を予測するモデルを作成できます。
SageMaker AI が提供する組み込みの教師あり学習アルゴリズムの詳細については、「」を参照してください教師あり学習。
教師なし学習
データセットがラベルやターゲット値 (出力) を含まない特徴または属性 (入力) で構成されている場合、教師なし学習の問題があります。このタイプの問題では、入力データで検出されたパターンに基づいて出力を予測する必要があります。教師なし学習問題の目標は、データ内のグループ化などのパターンを検出することです。教師なし学習を適用できるタスクや問題のタイプは多種多様です。主成分分析とクラスター分析は、データの前処理に一般的にデプロイされる主な 2 つの方法です。教師なし学習で対処できる問題タイプの短いリストを次に示します。
-
次元削減は通常、モデル構築に使う最も関連性の高い特徴を決定するために使用されるデータ探索ステップの一部です。これを行うには、格納データの少ない高次元空間から、元のデータの最も重要な特性を保持する低次元空間にデータを変換します。これにより、統計分析が問題となる、格納データの少ない高次元データで発生する可能性のある次元の呪いの打開策が得られます。また、データを理解し、高次元データを可視化できる低次元まで削減する場合にも役立ちます。
-
クラスター分析は、オブジェクトやケースをクラスターと呼ばれるグループへの分類に使用される技術クラスです。これは、1 つのグループのメンバーができるだけ類似し、他のグループのメンバーとできるだけ異なる離散グループをデータ内に見つけようとします。アルゴリズムで類似性の判定に使う特徴または属性を定義し、類似度を測定する距離関数を選択して、解析で使うクラスターの数を指定します。
-
異常検出は、残りのデータとは大きく異なるために疑わしいと思われるデータセット内の希少項目、イベント、または観測値の識別です。異常な項目の識別は、銀行の不正や医療ミスの検出などに使用できます。異常は、外れ値、ノベルティ、ノイズ、偏差、例外とも呼ばれます。
-
密度推定は、観測データに基づいて観測不可能な基礎となる確率密度関数の推定値の構造です。密度推定の自然な使用はデータ探索です。密度推定では、データ内の歪みやマルチモダリティなどの特徴を検出できます。密度推定の最も基本的な形式は、拡大縮小し直されたヒストグラムです。
SageMaker AI には、これらの教師なし学習タスクに使用できる組み込みの機械学習アルゴリズムがいくつか用意されています。 SageMaker AI が提供する組み込みの教師なしアルゴリズムの詳細については、「」を参照してください教師なし学習。
強化学習
強化学習は、環境との相互作用に基づく学習の一種です。このタイプの学習は、エージェントがアクションの結果として受け取る長期的な報酬を最大化することを目標とする動的環境 trial-and-errorとのやり取りを通じて動作を学習する必要があるエージェントによって使用されます。報酬は、報酬が不確かな探索アクションを報酬が既知の活用アクションとトレードオフすることで最大化されます。
SageMaker AI のフレームワーク、ツールキット、強化学習環境の詳細については、「」を参照してくださいAmazon SageMaker AI で強化学習を使用する。