Machine Learning の概要 - Amazon Redshift

Machine Learning の概要

Amazon Redshift ML を使用すると、SQL ステートメントを使用して機械学習モデルをトレーニングし、予測のために SQL クエリでそれらを呼び出すことができます。

Amazon Redshift ML の使用方法については、以下の動画をご覧ください。

Redshift クラスターをセットアップするための前提条件、アクセス許可、Amazon Redshift ML を使用するための所有権については、以下のセクションを参照してください。これらのセクションでは、Amazon Redshift ML での簡単なトレーニングと予測の仕組みについても説明します。

機械学習による問題解決のしくみ

機械学習モデルは、トレーニングデータでパターンを見つけ、これらのパターンを新しいデータに適用することで予測を生成します。機械学習では、データを最もよく説明するパターンを学習することで、これらのモデルをトレーニングします。その後、モデルを使用して新しいデータを予測します (推論とも呼ぶ)。機械学習は通常、パラメータを変更し、トレーニングデータを改善することによって予測の精度を継続的に向上させることができる反復的なプロセスです。データが変更されると、新しいデータセットを使用して新しいモデルを再トレーニングします。

さまざまなビジネス目標に対応するために、さまざまな基本的な機械学習アプローチがあります。

Amazon Redshift 機械学習での教師あり学習

Amazon Redshift は、高度なエンタープライズ分析への最も一般的なアプローチである教師あり学習をサポートしています。教師あり学習は、確立されたデータセットがあり、特定の入力データがさまざまなビジネス成果を予測する方法を理解している場合に、好ましい機械学習アプローチです。これらの結果は、ラベルと呼ばれることもあります。特に、データセットは、特徴 (入力) とターゲット (出力) で構成される属性を持つテーブルです。たとえば、過去と現在の顧客の年齢と郵便番号を記載したテーブルがあるとします。また、現在の顧客に対しては true、メンバーシップを停止した顧客に対しては false という「アクティブ」フィールドもあるとします。教師あり機械学習の目的は、ターゲットが「False」である顧客によって表される、カスタマーチャーンにつながる年齢と郵便番号のパターンを見つけることです。このモデルを使用して、メンバーシップの一時停止など、解約する可能性が高く、保持インセンティブを提供する可能性のある顧客を予測できます。

Amazon Redshift は、回帰、バイナリ分類、およびマルチクラス分類を含む教師あり学習をサポートします。回帰とは、顧客の総支出など、連続値を予測する問題を指します。バイナリ分類は、顧客が解約するかどうかを予測するなど、2 つの結果のうちの 1 つを予測する問題を指します。マルチクラス分類とは、顧客が関心を持つ可能性のある項目を予測するなど、多くの結果の 1 つを予測する問題を指します。データアナリストとデータサイエンティストは、これを使用して教師あり学習を実行し、予測、パーソナライゼーション、顧客解約の予測などの問題に取り組むことができます。また、締結しそうな売買の予測、収益予測、不正検出、顧客の生涯価値予測などの問題のためにも、教師あり学習を使用できます。

Amazon Redshift 機械学習での教師なし学習

教師なし学習では、機械学習アルゴリズムを使用して、ラベル付けされていないトレーニングデータの分析とグループ化を行います。このアルゴリズムでは、隠れたパターンやグループを検出します。教師なし学習の目標は、データの基礎となる構造や分布をモデル化して、データの詳細を明らかにすることです。

Amazon Redshift は、教師なし学習での問題に対応するために、K-Means によるクラスタリングアルゴリズムをサポートしています。このアルゴリズムは、データ内でグループを検出する際にクラスタリングで発生する問題を解決します。K-Means アルゴリズムは、データ内にある離散群の検出を試みます。未分類のデータについては、その類似点と相違点に基づいたグループ分けと分割が行われます。グループ化によって、K-Means アルゴリズムは最適な重心を反復的に決定し、各メンバーを最も近い重心に割り当てます。最も近い重心が同じである各メンバーは、同じグループに属します。1 つのグループには、可能な限り互いに類似した (かつ、他のグループのメンバーとは可能な限り相違する) メンバーが集められます。例えば、パンデミックの影響を受けた都市を分類したり、消費者製品の人気に基づいて都市を分類したりするために、K-Means クラスタリングアルゴリズムを使用できます。

K-Means アルゴリズムを使用する場合は、入力として k を指定します。これにより、データ内で検索しようとするクラスターの数を指定します。このアルゴリズムは k 個の重心を出力します。各データポイントは、k 個のクラスターの内で最も近方の 1 つに属します。各クラスターは、その重心によって表現されます。1 つの重心は、クラスターの多次元平均と考えることができます。K-Means アルゴリズムは、クラスター間の距離を比較して、互いにどの程度異なっているかを評価します。一般に、距離が大きいほどクラスター間の相違が大きいことを意味します。

K-Means では、モデルの特徴が同じスケールにとどまることや、信頼性の高い結果が求められるため、データの前処理は重要です。Amazon Redshift では CREATE MODEL ステートメント用として、StandardScaler、MinMax、NumericPassthrough など、K-Means プリプロセッサをいくつかサポートしています。K-Means に前処理を適用しない場合は、トランスフォーマーとして明示的に NumericPassthrough を選択します。K-Means の詳細については、「K-MEANS パラメータによる CREATE MODEL」を参照してください。

K-Means クラスタリングを使用して教師なしトレーニングを実行する方法を学ぶには、以下の動画を視聴することができます。

Amazon Redshift 機械学習の用語と概念

以下の用語は、Amazon Redshift ML の概念の一部を説明するために使用されます。

  • Amazon Redshift の機械学習は、1 つの SQL コマンドでモデルをトレーニングします。Amazon Redshift ML と Amazon SageMaker は、すべてのデータ変換、アクセス許可、リソース使用量、および適切なモデルの検出を管理します。

  • トレーニングは、Amazon Redshift が指定されたデータのサブセットをモデルに実行することにより、機械学習モデルを作成するフェーズです。Amazon Redshift は、Amazon SageMaker でトレーニングジョブを自動的に起動し、モデルを生成します。

  • 予測 (推論とも言う) とは、Amazon Redshift SQL クエリでモデルを使用して結果を予測することです。推論時に、Amazon Redshift はより大きなクエリの一部としてモデルベースの予測関数を使用して予測を生成します。予測は Amazon Redshift クラスターでローカルに計算されるため、高いスループットと低レイテンシーを実現し、追加コストなしで利用できます。

  • 独自のモデルを持参 (BYOM) すると、Amazon Redshift の外部でトレーニングされたモデルを Amazon SageMaker で使用して、Amazon Redshift のローカルでデータベース内の推論を行うことができます。Amazon Redshift ML では、ローカル推論での BYOM の使用がサポートされています。

  • ローカル推論は、モデルが Amazon SageMaker で事前トレーニングされ、Amazon SageMaker Neo によってコンパイルされ、Amazon Redshift ML でローカライズされるときに使用します。ローカル推論でサポートされているモデルを Amazon Redshift にインポートするには、CREATE MODEL コマンドを使用します。Amazon Redshift は Amazon SageMaker Neo を呼び出して、事前にトレーニングされた SageMaker モデルをインポートします。そこでモデルをコンパイルし、コンパイルされたモデルを Amazon Redshift にインポートします。ローカル推論を使用して、高速化と低コストを実現します。

  • リモート推論は、Amazon Redshift が SageMaker にデプロイされたモデルエンドポイントを呼び出すときに使用されます。リモート推論では、すべてのタイプのカスタムモデルと深層学習モデル (Amazon SageMaker で構築およびデプロイした TensorFlow モデルなど) を呼び出すための柔軟性が提供されます。

また、次の点も重要です。

  • Amazon SageMaker は、フルマネージド型の機械学習サービスです。Amazon SageMaker では、データサイエンティストとデベロッパーが簡単にモデルの構築とトレーニングを行うことができ、稼働準備が整ったホスト環境に直接デプロイできます。Amazon SageMaker の詳細については、Amazon SageMaker デベロッパーガイドAmazon SageMaker とはを参照してください。

  • Amazon SageMaker Autopilot は、データに基づいて、分類または回帰に最適な機械学習モデルを自動的にトレーニングおよびチューニングする機能セットです。ユーザーは、このための完全な制御性と可視性を維持します。Amazon SageMaker Autopilot では、表形式の入力データがサポートされます。Amazon SageMaker Autopilot では、自動的なデータのクリーニングと前処理に加え、線形回帰、バイナリ分類、マルチクラス分類などからのアルゴリズムの自動選択機能が利用できます。また、ハイパーパラメータの自動最適化 (HPO)、ディストリビューショントレーニング、自動インスタンス、クラスターサイズの選択もサポートしています。Amazon SageMaker Autopilot の詳細については、Amazon SageMaker デベロッパーガイドから Amazon SageMaker Autopilot を使用したモデル開発の自動化を参照してください。