Amazon Machine Learning を始める

まずは無料で始める

12 か月間の AWS 無料利用枠と、24 時間年中無休のカスタマーサービスやサポートフォーラムといった、AWS の基本的なサポート機能を利用できます。

Amazon Machine Learning は現在 AWS 無料利用枠でご利用できないことにご注意ください。

Q: Amazon Machine Learning とは何ですか?

Amazon Machine Learning とは、簡単に予測アプリケーションを構築できる機械サービスです。たとえば、不正の検出、需要予測、クリック予測が含まれます。Amazon Machine Learning では、強力なアルゴリズムが使われており、お客様の機械学習モデルの作成をサポートします。具体的には、既存データからパターンを発見し、こうしたパターンを使って利用可能になった新しいデータから予測を生成します。AWS マネジメントコンソールと API では、データとモデルの可視化ツールを利用できるほか、ウィザードに沿って機械学習モデルの作成、その品質の測定、アプリケーション要件を満たすための予測の微調整といったプロセスを進めることができます。モデルが作成されたら、お客様はシンプルな API を使うことでアプリケーションに対する予測を得ることができます。このとき、カスタム予測生成コードを実装したり、インフラストラクチャを管理したりする必要はありません。非常にスケーラブルな Amazon Machine Learning では、生成できる予測は数十億件にも上ります。また、こうした予測はリアルタイムかつ高スループットで提供されます。Amazon Machine Learning では、初期費用がかからず、従量制の料金体系であるため、小規模で開始して、アプリケーションの拡大に合わせてスケールすることができます。

Q: Amazon Machine Learning でできることは何ですか?

Amazon Machine Learning を利用することで、幅広い予測アプリケーションを作成できます。Amazon Machine Learning を利用すると、不審な取引にフラグを立てるアプリケーション、不正な注文を検出するアプリケーション、需要を予測するアプリケーション、コンテンツをパーソナライズするアプリケーション、ユーザーアクティビティを予測するアプリケーション、レビューをフィルタするアプリケーション、ソーシャルメディアを監視するアプリケーション、フリーテキストを分析するアプリケーション、商品をお勧めするアプリケーションなどを構築するのに役立ちます。

Q: 機械学習とは何ですか?

機械学習 (ML) とは、過去のデータを使って情報に基づいたビジネス決定ができるようにサポートするテクノロジーです。ML のアルゴリズムはデータからパターンを発見し、このパターンを使って数理モデルを作成します。お客様はこのモデルを使って未来のデータを予測することができます。たとえば、機械学習のアプリケーションとして考えられるものとしては、過去の購買の成功例と失敗例の両方に基づいて、不正な取引を検出するアプリケーションが挙げられます。

Q: Amazon Machine Learning の使用を開始するにはどのようにすればよいですか?

Amazon Machine Learning の使用を開始するには、Amazon Machine Learning Developer Guide の Tutorial をご覧ください。チュートリアルに沿って進むことで、サンプルデータセットから機械学習モデルを作成し、このモデルを評価し、これを使って予測を作成することができます。チュートリアルが終わったら、Amazon Machine Learning を使って、自分の ML モデルを作成することができます。詳細については、Amazon Machine Learning Developer GuideAmazon Machine Learning API Reference を参照してください。

Q: トレーニングデータとは何ですか?

トレーニングデータは、機械学習モデルの作成に使われます。これは、過去の既知のデータポイントで作られます。お客様は Amazon Machine Learning を使ってこのデータからパターンを抽出し、これを使って機械学習モデルを構築できます。

Q: 対象属性とは何ですか?

対象属性とはトレーニングデータの特殊な属性で、ここには Amazon Machine Learning が予測を試みる情報が含まれます。例として、取引に不正がないかどうかを予測するモデルを構築したい場合を考えてみます。お客様のトレーニングデータには過去の取引のメタデータが含まれており、その対象属性は、取引が最終的に銀行によって拒否された場合は「1」、それ以外は「0」になっています。お客様は Amazon Machine Learning を使って、対象属性と取引のメタデータ(その他すべての属性)を関連付けるパターンを発見します。お客様はこのパターンに基づいた ML モデルを使って、対象属性がない状態で予測を行います。つまりこの例では、銀行が拒否するかどうかがわかる前に、メタデータに基づいて取引が不正であるかどうかを予測します。

Q: Amazon Machine Learning ではモデルを生成するためにどんなアルゴリズムが使われますか?

現在、Amazon Machine Learning では業界標準のロジスティック回帰アルゴリズムを使ってモデルを生成しています。

Q: Amazon Machine Learning は、どの AWS リージョンで利用できますか?

サポートされる Amazon Machine Learning AWS リージョンのリストについては、すべての AWS グローバルインフラストラクチャの 製品およびサービス一覧 (リージョン別) を参照してください。詳細については、AWS の全般的なリファレンスリージョンとエンドポイントも参照してください。

Q: Amazon Machine Learning のサービスにはどの程度の可用性がありますか?

Amazon Machine Learning では、高可用性が実現されるように設計されています。メンテナンス時間や定期的なダウンタイムはありません。モデルトレーニング、評価、バッチ予測のための API は、Amazon の実績ある高可用性データセンターで実行されます。AWS リージョンごとにサービススタックレプリケーションが 3 施設にまたがって構成されており、サーバー障害やアベイラビリティーゾーンの機能停止が発生した場合に耐障害性を発揮します。

Q: Amazon Machine Learning では、どんなセキュリティ対策がなされていますか?

Amazon Machine Learning では、ML モデルと、他のシステムのアーティファクトが通信時も非通信時も暗号化されます。Amazon Machine Learning の API とコンソールに対するリクエストには、安全な SSL 接続が使われます。また、AWS Identity and Access Management (AWS IAM) を使うことで、Amazon Machine Learning の特定のアクションとリソースに対するアクセス権をどの IAM ユーザーに付与するかをコントロールできます。

先頭に戻る >>

Q: データはどこに保存しますか?

Amazon Machine Learning では、次の 3 つのデータストアからデータを読み込むことができます。(a)Amazon S3 の単一または複数のファイル、(b)Amazon Redshift のクエリ結果、または(c)MySQL エンジンで稼働しているデータベースに対して実行されたときの、Amazon Relational Database Service (RDS) のクエリ結果。その他の製品のデータの場合は、通常 Amazon S3 で CSV ファイルにエクスポートすることで、Amazon Machine Learning でアクセスできるようになります。サポートされたデータストアに Amazon Machine Learning がアクセスできるように権限を構成する場合の詳細な手順については、Amazon Machine Learning Developer Guide を参照してください。

Q: トレーニングで使えるデータセットのサイズに制限はありますか?

Amazon Machine Learning では、最大 100 GB のデータセットのモデルをトレーニングできます。

Q: データにエラーがあるときはどうすればわかりますか?

Amazon Machine Learning を使うと、データのフォーマットエラーを検出できます。Amazon Machine Learning サービスコンソールのデータ検出機能を利用することで、データに内在するエラーをより深く探ることができます。エラーには、フィールドが空だったり、フィールドに予期しない値が含まれていたりという場合が含まれます。Amazon Machine Learning では ML モデルをトレーニングすることで、両方の種類のデータエラーが少量存在する場合に正確な予測を生成できます。このため、一部のデータ観察が無効または不正であったとしても、リクエストを成功させることができます。

Q: データが不完全だったり、一部の情報が欠けていたりする場合はどうすればよいですか?

常に最も理想的なのは、データが可能な限り完全で正確なことです。Amazon Machine Learning の学習アルゴリズムは、不完全な情報や欠落した情報があっても少量であれば許容できます。この場合、モデルの品質に対する悪影響はありません。ただし、間違いが増えると、モデルの品質は落ちます。Amazon Machine Learning では、処理に失敗したレコード数が 10,000 件またはデータセットの全レコードの 10% のいずれかを超えた時点で、モデルトレーニングリクエストの処理が止まります。

不完全な情報や欠落した情報を修正するには、マスターデータソースに戻り、ソースのデータを修正するか、Amazon Machine Learning モデルのトレーニングに使われるデータセットから、不完全な情報や、欠落した情報の観察を除外する必要があります。たとえば、Amazon Redshift テーブルの一部の行に無効な値が含まれていることがわかった場合は、Amazon Machine Learning のデータを選択するために使われるクエリを変更してこの行を除外できます。

Q: モデルから提供される予測が正確であることをどうやって確認できますか?

Amazon Machine Learning には、強力なモデル評価機能が備わっています。Amazon Machine Learning では、お客様がモデルの評価品質を把握できるように、モデルに対して業界標準の評価メトリックをコンピューティングできます。また、Amazon Machine Learning ではモデル評価が公平なものになるように、評価目的のトレーニングデータの一部を保留にすることを選べます。これにより、モデルはこのトレーニング時のデータポイントではまったく評価されなくなります。Amazon Machine Learning サービスコンソールでは、強力で使いやすいツールを使ってモデル評価の結果を確認したり、把握したりすることができます。

Q: モデルの結果に満足できない場合は、どうやってモデルを調整できますか?

モデルの品質を向上させる最も理想的な方法は、トレーニングするために使うデータの量と質を上げることです。観察量を増やすこと、情報(特徴)の種類を増やすこと、およびデータを変換して学習プロセスを最適化すること(特徴の設計)はすべて、モデルの予測精度を改善する優れた手段になります。Amazon Machine Learning では、プロトタイプモデルを多数作成できます。また、Amazon Machine Learning の組み込みデータプロセッサを使うことで、組み込み「レシピ」言語のライン編集をするのと同じくらい簡単に、複数の一般的なタイプの特徴の設計をすることができます。さらに、Amazon Machine Learning では、お客様のデータをポイントする新しいデータソースオブジェクトを作成したときのデータに基づいて、提案型のデータ変換レシピを自動作成することができます。このレシピは、お客様のデータコンテンツに基づいて自動的に最適化されます。

また、Amazon Machine Learning では、学習プロセスを調整するために、次の複数のパラメータを利用できます。(a)モデルの対象サイズ、(b)データに対して作られるパスの数、(c)モデルに適用する規則化の種類と量です。Amazon Machine Learning は、実際の多くの ML タスクに対してデフォルト設定のままで問題ありませんが、必要に応じてサービスコンソールまたは API を使って調整できます。

最後に、ビジネス目標と合致させるためにモデル調整で考慮すべき重要な点は、ML モデルで生成された予測がお客様のアプリケーションでどのように解釈されるかということです。Amazon Machine Learning を利用することで、お客様はバイナリ分類モデルに対する解釈のカットオフスコアを調整できます。これにより、トレーニングを受けたモデルが犯すさまざまな間違いの間で、情報に基づいてトレードオフを判断できます。たとえば、アプリケーションによっては誤検出エラーに対する許容性は高いが、検出漏れエラーには非常に厳しく対応する場合があります。Amazon Machine Learning サービスコンソールを利用することで、お客様はスコアのカットオフを調整して、この要件に合わせることができます。詳細については、Amazon Machine Learning Developer GuideEvaluating ML Modelsを参照してください。

Q: モデルを Amazon Machine Learning からエクスポートできますか?

いいえ。

Q: 既存のモデルを Amazon Machine Learning にインポートできますか?

いいえ。

Q: Amazon Machine Learning では、機械学習モデルを作成するためにデータの永続的なコピーを作る必要がありますか?

いいえ。Amazon Machine Learning では、データに対する読み取りアクセスさえあれば、データ内のパターンを発見、または抽出し、それを ML モデル内に保存できます。ML モデルはお客様のデータのコピーではありません。Amazon Redshift、または Amazon RDS に保存されているデータにアクセスするとき、Amazon Machine Learning はクエリ結果を任意の S3 ロケーションにエクスポートし、その後この結果を S3 から読み取ります。ユーザーは、この一時データのコピーに対して完全な所有権を持ち、Amazon Machine Learning のオペレーションが終わったら削除できます。

先頭に戻る >>

Q: モデルの用意ができた後、どうすればアプリケーションの予測を取得できますか?

Amazon Machine Learning で予測を取得するには、バッチ API またはリアルタイム API を使います。バッチ API は、大量の入力データレコードに対する予測をリクエストする場合に使います。これはオフラインで機能し、一度にすべての予測を返します。リアルタイム API は、個々の入力データレコードに対する予測をリクエストする場合に使います。予測は即座に返ってきます。リアルタイム API は高スループットで利用できます。並列リクエストに対して複数の予測が同時に生成されます。

Amazon Machine Learning で構築された ML モデルは、バッチ API とリアルタイム API のどちらでも使えます。アプリケーションの要件に応じてお選びください。通常は、大量のデータレコード上で運用するアプリケーションの場合はバッチ API を使用し、インタラクティブ型のウェブ、モバイル、デスクトップアプリケーションの場合はリアルタイム API を使用します。

Q: Amazon Machine Learning のリアルタイム API が予測を生成する速さはどの程度ですか?

大半のリアルタイム予測リクエストでは 100 MS 以内に応答が返ってきます。インタラクティブ型のウェブ、モバイル、デスクトップアプリケーションには十分な速さです。リアルタイム API が予測を生成するのに要する正確な時間は、入力データレコードのサイズに加え、予測を生成する ML モデルと関連するデータ処理「レシピ」の複雑さによって異なります。

Q: Amazon Machine Learning で同時に送信できるリアルタイム API リクエストは何件ですか?

リアルタイム予測が有効になっている各 ML モデルには、エンドポイント URL が割り当てられます。デフォルトで、リアルタイム予測エンドポイントから 200 TPS(1 秒あたりのトランザクション数)までをリクエストできます。この上限がお客様のアプリケーションの要件を満たしていない場合は、カスタマーサポートまでご連絡ください

Q: Amazon Machine Learning でバッチ予測が返ってくるまでにどのくらいの時間がかかりますか?

バッチ予測 API は高速かつ高効率です。バッチ予測の結果が返ってくるまでにかかる時間は、いくつかの要因によります。たとえば(a)入力データのサイズ、(b)予測を生成する ML モデルと関連するデータ処理「レシピ」の複雑さ、(c)お客様のアカウントで同時に実行しているその他のバッチジョブ(データ処理、モデルトレーニング、評価、その他のバッチ処理リクエスト)の数などです。デフォルトで、Amazon Machine Learning は 5 件までのバッチジョブを同時に実行します。この上限がお客様のアプリケーションの要件を満たしていない場合は、カスタマーサポートまでご連絡ください。

Q: 予測のパフォーマンスはどのようにしてモニタリングできますか?

予測パフォーマンスのモニタリングは(a)バッチ予測とリアルタイム予測のトラフィック量のモニタリングと、(b)予測モデルの品質のモニタリングという 2 つの形式に大別されます。

予測トラフィック量は、Amazon Machine Learning から CloudWatch アカウント内に発行される、Amazon CloudWatch メトリックを参照することでモニタリングできます。モニタリング期間中に、バッチ予測またはリアルタイム予測を受信した各 ML モデル ID に対して、Amazon Machine Learning は予測の生成に成功したデータレコード数と、解析に失敗し、その結果予測が生成されなかった ML レコード数を発行します。

時間経過に対する ML モデルの品質をモニタリングするための業界のベストプラクティスは、予測対象のアプリケーションから送信されたデータレコードのランダムなサンプルを定期的に取得し、真の回答(「対象」とも呼ばれます)を取得し、その後 Amazon Machine Learning を使って結果のデータセットの評価を作成することです。Amazon Machine Learning では、対象を生成される予測と比較することで、モデルの品質メトリックをコンピューティングします。時間経過に対してメトリックの品質が落ちていることがわかった場合、これまでモデルのトレーニングに使われていたデータは、もはや実際の環境に一致していないため、新しいデータポイントで、新しいモデルをトレーニングする必要があると判断できます。たとえば、ML モデルを使って不正な取引を検出する場合、モデルトレーニングの時点では知られていなかった不正取引の新しい方法が出現することで、当初よりも品質が落ちる場合があります。最新の不正取引の例を使って、新しい ML モデルをトレーニングすることで、Amazon Machine Learning が、この取引を特定するパターンを発見できるようになるため、この傾向への対策ができます。

先頭に戻る >>