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

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

アルゴリズムの選択

機械学習は、ある種の帰納的推論を必要とする経験的なタスクを達成するのに役立ちます。それは一般化可能な推論を行うためにアルゴリズムを訓練するためにデータを使用するように、このタスクは、誘導を伴います。つまり、アルゴリズムは統計的に信頼できる予測や決定を行い、トレーニングに使用されなかった新しいデータに適用されたときに他のタスクを完了できます。

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

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

しかし、ニューラルネットワークなどの多くのアルゴリズムは、異なる学習パラダイムと異なるタイプの問題で展開することができます。複数のアルゴリズムは、特定の問題のタイプに対処することもできます。いくつかのアルゴリズムは、より一般的に適用可能であり、他のアルゴリズムは、特定の種類の目標とデータのために非常に固有です。したがって、機械学習アルゴリズムと問題の型との間のマッピングは、多対多です。また、アルゴリズムにはさまざまな実装オプションがあります。

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

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

アルゴリズムを選択したら、それのどの実装を使用するかを決定する必要があります。Amazon SageMaker では、3 つの実装オプションがサポートされており、作業レベルを増やす必要があります。

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

  • 動作する組み込みのソリューションがない場合は、機械およびディープラーニングフレームワーク用の既製イメージは、Scikit-Learn、TensorFlow、PyTorch、MXNet、Chainerなどのサポートされているフレームワークに対応しています。

  • カスタムパッケージを実行したり、サポートされているフレームワークの一部ではないコードを使用したり、PyPi 経由で利用可能なコードを使用する必要がある場合は、独自のカスタムDockerイメージで、必要なパッケージまたはソフトウェアをインストールするように構成されています。カスタムイメージは、Amazon Elastic コンテナレジストリなどのオンラインリポジトリにもプッシュする必要があります。

アルゴリズム実装のガイダンス
実装 コードが必要です コーディング済みのアルゴリズム サードパーティ製パッケージのSupport カスタムコードのSupport 労力のレベル
組み込み型 いいえ はい いいえ いいえ
Scikit-learn はい はい PYPI のみ はい ミディアム
Spark ML はい はい PyPi のみ はい ミディアム
XGBoost (オープンソース) はい はい PyPi のみ はい ミディアム
TensorFlow はい いいえ PyPI のみ はい 中高
PyTorch はい いいえ PyPI のみ はい 中高
MXNet はい いいえ PyPI のみ はい 中高
Chainer はい いいえ PyPi のみ はい 中高
カスタムイメージ はい いいえ はい、どのソースからもサポートします。 はい

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

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

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

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

SageMaker が提供する組み込みアルゴリズムの詳細については、Use Amazon SageMaker Built-in Algorithms

SageMaker が提供するすべての組み込みアルゴリズムに共通する、ドッカーのレジストリパス、データ形式、推奨される EC2 インスタンスタイプ、CloudWatch ログに関する重要な情報については、組み込みアルゴリズムに関する共通情報

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

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

SageMaker でサポートされているフレームワークの詳細については、Amazon SageMaker でMachine Learning フレームワーク、Python、R を使用する

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

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

SageMaker のカスタム Docker イメージの詳細については、SageMaker erでDockerコンテナを使用する

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

次の 3 つのセクションでは、機械学習の 3 つの基本的なパラダイムによって対処される主な問題のタイプについて説明します。これらの問題のタイプに対処するために SageMaker が提供する組み込みアルゴリズムのリストについては、Use Amazon SageMaker Built-in Algorithms

教師あり学習

データセットがターゲット値(出力)を含むフィーチャまたは属性(入力)で構成されている場合は、教師あり学習の問題が発生します。目標値がカテゴリ(数学的に離散的)である場合、分類問題。バイナリとマルチクラス分類を区別することは、標準的な方法です。

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

  • Multiclass classification is a type of supervised learning that assigns an individual to one of several classes based on the individual's attributes. It is supervised because the models are trained using examples in which the attributes are provided with correctly labeled objects. 一例として、テキストドキュメントに最も関連性の高いトピックの予測があります。A document may be classified as being about religion, politics, or finance, or as about one of several other predefined topic classes.

If the target values you are trying to predict are mathematically continuous, then you have a regression problem. 回帰では、従属ターゲット変数の値は、それと相関する 1 つ以上の他の変数または属性に基づいて推定されます。An example is the prediction of house prices using features like the number of bathrooms and bedrooms and the square footage of the house and garden. 回帰分析では、これらの特徴の 1 つ以上を入力として受け取り、家の価格を予測するモデルを作成できます。

For more information on the built-in supervised learning algorithms provided by SageMaker, see 教師あり学習.

Unsupervised learning

If your data set consists of features or attributes (inputs) that do not contain labels or target values (outputs), then you have an unsupervised learning problem. In this type of problem, the output must be predicted based on the pattern discovered in the input data. The goal in unsupervised learning problems is to discover patterns such groupings within the data. There are a large variety of tasks or problem types to which unsupervised learning can be applied. Principal component and cluster analyses are two of the main methods commonly deployed for preprocessing data. Here is a short list of problem types that can be addressed by unsupervised learning:

  • Dimension reduction is typically part of a data exploration step used to determine the most relevant features to use for model construction. The idea is to transform data from a high-dimensional, sparsely populated space into a low-dimensional space that retains most significant properties of the original data. This provides relief for the curse of dimensionality that can arise with sparsely populated, high-dimensional data on which statistical analysis becomes problematic. It can also be used to help understand data, reducing high-dimensional data to a lower dimensionality that can be visualized.

  • Cluster analysis is a class of techniques that are used to classify objects or cases into groups called clusters. これは、1 つのグループのメンバーができるだけ類似し、他のグループのメンバーとできるだけ異なる離散グループをデータ内に見つけようとします。You define the features or attributes that you want the algorithm to use to determine similarity, select a distance function to measure similarity, and specify the number of clusters to use in the analysis.

  • Anomaly detection is the identification of rare items, events, or observations in a data set which raise suspicions because they differ significantly from the rest of the data. The identification of anomalous items can be used, for example, to detect bank fraud or medical errors. Anomalies are also referred to as outliers, novelties, noise, deviations, and exceptions.

  • Density estimation is the construction of estimates of unobservable underlying probability density functions based on observed data. A natural use of density estimates is for data exploration. Density estimates can discover features such as skewness and multimodality in the data. The most basic form of density estimation is a rescaled histogram.

SageMaker provides several built-in machine learning algorithms that you can use for these unsupervised learning tasks. For more information on the built-in unsupervised algorithms provided by SageMaker, see 教師なし学習.

強化学習

Reinforcement learning is a type of learning that is based on interaction with the environment. This type of learning is used by an agent that must learn behavior through trial-and-error interactions with a dynamic environment in which the goal is to maximize the long-term rewards that the agent receives as a result of its actions. Rewards are maximized by trading off exploring actions that have uncertain rewards with exploiting actions that have known rewards.

For more information on SageMaker's frameworks, toolkits, and environments for reinforcement learning, see Amazon SageMaker での強化学習の使用.