Amazon Web Services ブログ

Category: SageMaker

AWS PrivateLink を使用した Amazon SageMaker で、セキュアな予測呼び出し

Amazon SageMaker が AWS PrivateLink を使用した Amazon Virtual Private Cloud (VPC) エンドポイントをサポートすることになりました。これで、インターネットに頼ることなく、ユーザーの VPC 内の Amazon SageMaker にホスティングされた機械学習モデルの予測呼び出しを開始できます。 Amazon SageMaker は、開発者やデータサイエンティストが、機械学習モデルをあらゆる規模で、迅速かつ簡単に構築、トレーニング、デプロイできるようにする完全マネージド型プラットフォームです。機械学習モデルは Amazon SageMaker を使用して実稼働状態にデプロイされると、ユーザーのアプリケーションにセキュアな HTTPS エンドポイントを設定します。予測の低いレイテンシーおよび高いスループットを達成するために、アプリケーションに求められるのは SageMaker Runtime API を使用することのみとなりました。AWS PrivateLink をサポートすることで、SageMaker Runtime API はインターネットで接続するのではなく、VPC 内のインターフェイスエンドポイントから呼び出しが可能になります。クライアントアプリケーションと SageMaker Runtime API の間での通信は VPC 内で行われるので、インターネットゲートウェイ、NAT デバイス、VPN 接続、AWS Direct Connect は必要ありません。 AWS コマンドラインインターフェイス (AWS CLI) のコマンドまたは AWS マネジメントコンソールを使用して、SageMaker Runtime に接続するための […]

Read More

Amazon SageMaker で主成分分析を実行する

主成分分析 (PCA) は、主に株式市場の予測から医用画像分類に至るまで数多くのアプリケーションの次元削減のために、データ科学者が使用する非常に一般的な手法です。PCA のその他の用途としては、ノイズ除去および特徴抽出があります。また、PCA は、探索的データ解析ツールとしても使用されます。 PCA をよりよく理解するために、トラックのプロパティで構成されるデータセットの例を考えてみましょう。これらのプロパティは、色、サイズ、コンパクトさ、座席数、ドア数、トランクのサイズなどによってそれぞれのトラックを記述します。測定されるこれらの特徴の多くは重複しているため、こうした重複を取り除き、より少ないプロパティでそれぞれのトラックを説明する必要があります。これが、まさに PCA が目指すものです。 このブログ記事では、カリフォルニア大学アーバイン校のアイリス (あやめ) 標準データセットで実行されている PCA を使用して、Jupyter ノートブックのコードの簡単な例で PCA の基本を紹介し、次に Amazon SageMaker 環境で動作する PCA を紹介します。Amazon SageMaker を使用するメリットのいくつかを指摘します。 PCA とは? PCA は、できるだけ多くの情報を保持しながら、d 個の特徴を p << d 個の特徴に圧縮する技術です。PCA のための古典的なデモンストレーションは、画像で行われます。白黒画像は、各ピクセルのグレースケールを決定する整数の n X d の行列として表すことができます。PCA は、圧縮された画像が元の画像とほぼ同じに見えるように、nd 個ではなく、(n+d) p 個で保存できるマトリックスによる低ランクの表現を提供します。機械学習 (ML) の文脈では、PCA は次元削減技術ということになります。特徴の数が多い場合、ML アルゴリズムには過剰適合のリスクがあるか、トレーニングに時間がかかりすぎることになります。そのために、PCA は入力の次元を減らすことができます。PCA が次元を減らす方法は、相関関係に基づいています。2 つの特徴が相関していて、一方の値が与えられると、もう一方の値について知識を使って推測することができます。p をターゲットの次元とする PCA は、これらの線形関数が元の d 個の特徴を最も正確に予測するような p […]

Read More

Amazon SageMaker が PyTorch と TensorFlow 1.8 のサポートを開始

今日からは、PyTorch の深層学習モデルのトレーニングとデプロイを Amazon SageMaker で簡単に行うことができます。PyTorch は、TensorFlow、Apache MXNet、Chainer に加え、Amazon SageMaker がサポートすることになった 4 番目の深層学習フレームワークです。  他のフレームワークとまったく同様、普段通りに PyTorch スクリプトを記述し、Amazon SageMaker のトレーニングに分散型トレーニングのクラスター設定、データ転送、さらにはハイパーパラメータのチューニングまで処理を任せることが可能になりました。推論の点では、Amazon SageMaker は、マネージド型で可用性が高く、また必要に応じて自動的にスケールアップ可能なオンラインのエンドポイントを提供します。 PyTorch に加え、最新の TensorFlow 安定版 (1.7 and 1.8) も追加しており、これらバージョンの新機能である tf.custom_gradient や、既成の BoostedTree 推定関数などを今日から活用していくことが可能です。Amazon SageMaker の TensorFlow 推定関数は、最新バージョンを使うようデフォルトで設定されているため、ユーザーはコードを更新する必要すらありません。 それぞれの深層学習フレームワークが得意とする分野は異なるため、開発者にとっては多くの深層学習フレームワークをサポートしていることが重要です。PyTorch は深層学習の研究者がよく使用するフレームワークですが、その柔軟性と使いやすさから開発者の間でも急速に普及してきています。TensorFlow は定評があり、リリースごとに素晴らしい機能を追加し続けています。私たちはこれらのエンジンのほか、MXNet や Chainer のような定評ある他のエンジンの開発も継続していきます。 Amazon SageMaker における PyTorch PyTorch フレームワークは独特です。Pytorch が TensorFlow、MXNet、Caffe など他のフレームワークと異なるのは、リバースモード自動微分という技術を使用しているためで、これにより動的にニューラルネットワークを構築できます。また、Python とも密に統合されており、一般的な Python の制御フローを自身のネットワーク内で使用することや、Cython、Numba、NumPy などを使用して新しいネットワーク層を作ることが可能です。そして最後に、PyTorch は高速であり、MKL、CuDNN、NCCL […]

Read More

Amazon SageMaker エンドポイント用のサーバーレスフロントエンドを構築する

Amazon SageMaker は、AWS の本番環境に機械学習モデルを構築、トレーニング、およびデプロイするための強力なプラットフォームです。この強力なプラットフォームを Amazon Simple Storage Service (S3)、Amazon API Gateway、および AWS Lambda のサーバレス機能と組み合わせることで、Amazon SageMaker エンドポイントを、様々なソースから新しい入力データを受け入れて、その推論の結果をエンドユーザに提示する Web アプリケーションへと変換できるようになりました。 このブログ記事では、有名な Iris データセットモデルを使って、簡単な SageMaker モデルを生成し、それを Amazon SageMaker エンドポイントとしてデプロイします。次に、Chalice パッケージを使用して、API Gateway エンドポイントを作成し、SageMaker エンドポイントを呼び出す Lambda 関数をトリガーし、独自の予測を行います。最後に、アプリケーションのユーザーインターフェイスとして機能させるために、Amazon S3 で静的 HTML フォームを生成します。最終的に製品は、新しいユーザーデータを受け入れ、そのデータに基づいてオンデマンド予測を生成し、ユーザーのブラウザに戻ることができるシンプルな Web アプリケーションとなります。 これは AWS Lambda アーキテクチャバージョンで、SageMaker のドキュメントが提案するアーキテクチャと類似していますが、全てのユースケースに対して最適なアーキテクチャではない可能性があります。レイテンシーが懸念される場合は、データ変換を SageMaker エンドポイントでホストした Docker コンテナに直接組み込むことが合理的です。けれども、API Gateway と Lambda の導入は、複数の潜在的なフロントエンドおよび / またはデータソースが 1 つのエンドポイントとやり取りしているような複雑なアプリケーションを使用している場合に最適なのです。このブログ記事を参考に、デモ、コンセプト検証 […]

Read More

Amazon SageMaker ニューラルトピックモデルのご紹介

構造化データおよび非構造化データは前例のないペースで生成されているため、膨大な量の情報を整理し、検索し、理解するための適切なツールが必要です。こういったデータの有効活用は難しいことです。これは特に非構造化データの場合に当てはまります。企業が持つデータの 80% 以上が構造化されていないと推定されています。 テキスト分析とは、非構造化テキストを意味のあるデータに変換することで事実に基づく意思決定をサポートすることを目的とした分析プロセスです。トピックモデリング、エンティティとキーフレーズの抽出、センチメント分析、および共参照関係の解決など、テキスト分析にはさまざまな技術が使用されています。 それでは、トピックモデリングとは一体何なのでしょうか? トピックモデリングとは、ドキュメントのコーパスを「トピック」に編成するために使用されます。これは、ドキュメント内の単語の統計的分布に基づくグループ化のことを指します。完全マネージド型のテキストアナリティクスサービスである Amazon Comprehend は、顧客からのフィードバックの整理、インシデントやワークグループ文書のサポートなど一般的なユースケースに最も適した、事前設定済みのトピックモデリング API を提供します。Amazon Comprehend は、トークン化やモデルのトレーニング、パラメータの調整などのトピックモデリングに関連する多くの一般的な手順を取り除くために提案されたトピックモデリングの選択肢です。Amazon SageMaker のニューラルトピックモデル (NTM) は、特定の文体やドメインのテキストコーパス上でのモデルのトレーニングやトピックモデルの Web アプリケーションの一部としてのホスティングなど、細かく制御されたトレーニングや最適化、そしてトピックモデルのホスティングが必要なユースケースに対応しています。Amazon SageMaker NTM は最先端のトピックモデリングの出発点を提供し、それにより顧客はネットワークアーキテクチャやデータセットの特異性に対応するためのハイパーパラメーターの変更、そしてそれらのアプリケーションに基づいた文書モデリングの精度、人間の解釈可能性、および学習されたトピックの粒度などののような多数のメトリックとの間のトレードオフの調整といった柔軟性を手に入れることができます。さらに、Amazon SageMaker NTM は簡単に構成可能なトレーニングおよびホスティングインフラストラクチャ、自動的なハイパーパラメータの最適化、Auto Scaling による完全マネージド型のホスティングなど、Amazon SageMaker プラットフォームのフルパワーを活用しています。 トピックモデリングの技術的定義は、各トピックは単語の分布であり、各文書は一連の文書 (コーパスとも呼ばれる) にわたるトピックの混合物であるということです。たとえば「自転車」、「車」、「マイル」、「ブレーキ」などの単語が頻繁に出現するドキュメントのコレクションは、「輸送」に関するトピックを共有する可能性があります。もしも別のコレクションが「SCSI」、「ポート」、「フロッピー」、「シリアル」などの単語を共有する場合、「コンピュータ」に関するトピックについて議論している可能性があります。トピックモデリングのプロセスとは、すべてのトピックへの単語の分布やトピックの混合分布などの隠れた変数を文書全体のコレクションを観察することにより推測することなのです。次の図は、単語、トピック、およびドキュメントの間の関係性を示しています。 トピックモデリングには、検出されたトピックに基づくドキュメントの分類、トピックにマップされたタグを使用したコンテンツの自動タグ付け、ドキュメント内のトピックを使用したドキュメントの要約、トピックを使用した情報検索、トピックの類似性に基づくコンテンツの推奨などの多くの実践的なユースケースが存在します。トピックモデリングは、ダウンストリームのテキストに関連した機械学習タスクのための機能エンジニアリングステップとしても使用できます。また、トピックモデリングは根底にあるテーマとの一連の観測を記述しようと試みる一般的なアルゴリズムでもあるのです。ここではテキストドキュメントに焦点を当てていますが、この観測は他のタイプのデータにも適用可能です。例えば、トピックモデルはインターネットサービスプロバイダや企業ネットワークのネットワーク上のピアツーピアアプリケーションの発見など、他の離散データユースケースのモデリングにも使用されます。 Amazon SageMaker ニューラルトピックモデル (NTM) Amazon SageMaker は、Jupyter ノートブックホスティングサービス、拡張性の高い機械学習トレーニングサービス、Web スケールの組み込みアルゴリズム、モデルホスティングサービスを提供するエンドツーエンドの機械学習プラットフォームです。Amazon SageMaker Neural Topic Model (NTM) と Amazon SageMaker Latent Dirichlet Allocation (LDA) の 2 […]

Read More

XGBoost と Amazon SageMaker を使った機械学習の簡素化

機械学習は、コンピュータビジョン、自動運転車、自然言語処理といった、これまでになかったユースケースを可能にした強力なツールです。機械学習は有望な技術ではありますが、実際に実装するとなると複雑です。このブログ記事では、XGBoost というシンプルかつパワフルで、いろんなユースケースに対応可能な機械学習ライブラリについてお話します。XGBoost を Amazon SageMaker のサンプルデータセットで実行するためのステップバイステップチュートリアルもあり、その中で、クレジットカード債務不履行になる可能性を予測するモデルの構築方法が紹介されています。 XGBoost とは ? XGBoost (extreme gradient boosting) は、勾配ブースティング木を使ったアルゴリズムを、広く普及する効率的なオープンソース使って実装するソフトウェアです。勾配ブースティングとは、より単純で弱いモデルセットの推定値を組み合わせることで、目標変数を正確に予測しようとする機械学習アルゴリズムです。決定木モデルに勾配ブースティングをスケーラブルに適用することで、XGBoost は機械学習競争の中でも非常によく機能させることができます。さらに、様々なデータタイプ、関係、および分散を確実に処理します。モデルのパフォーマンスを向上するためにチューニングできる変数であるハイパーパラメータを数多く提供できます。こうした柔軟性により、XGBoost は様々な機械学習の問題を解決できるのです。 XGBoost で扱われる問題とユースケース XGBoost が最もよく解決する問題は 3 つ、分類、回帰、そしてランク付けです。 分類分類は、入力値を取りそれを 2 つ以上のカテゴリに分類することが目標です。分類のユースケースの例として、不正検出が挙げられます。不正検出とは、トランザクションに関する情報を取得し、それが不正か否かを判断することです。XGBoost に過去のトランザクションのデータセットを与えると、不正であるか否かにかかわらず、入力トランザクションデータをそれが不正である可能性にマッピングする関数を学習します。 回帰 回帰では、入力をクラスの離散数にマッピングする代わりに、目標が数値として出力されます。回帰で使われる問題の一例は、家の売却価格の予測です。この場合、XGBoost に住宅や販売価格に関する履歴データを与えると、住宅に関するメタデータが与えられた場合に、その家の販売価格を予測する機能を習得するのです。 ランク付けクエリと一連のドキュメントが与えられたとします。ランク付けは、ドキュメントの相対的な重要性を見つけ出し、関連性に基づいて順序付けすることが目標です。ランク付けに関するユースケースの一例は、電子商取引用ウェブサイトでの商品検索です。検索結果、クリック、および購入成功例に関するデータを活用し、XGBoost をトレーニングに適用することができます。こうすることで、検索する製品の関連性スコアを示すモデルが生成されるのです。 Amazon SageMaker での XGBoost の利用 XGBoost はダウンロード可能なオープンソースライブラリで、ほとんどどこででも実行できるため、Amazon SageMaker でも使用可能です。Amazon SageMaker は、機械学習ワークフロー用のマネージド型トレーニングおよびホスティングプラットフォームです。開発者やデータサイエンティストは、Amazon SageMaker を使用して、どんなインフラストラクチャも管理することなく、機械学習モデルをトレーニングし、デプロイすることができます。Amazon SageMaker プラットフォームに、独自のトレーニングとホスティングコンテナをいつでも持ち込むことができますが、XGBoost を含む Amazon SageMaker に付属のアルゴリズムとライブラリを活用することも可能です。Amazon SageMaker で XGBoost を使う理由は、数多くあります。 すぐに使える分散型トレーニングXGBoost […]

Read More

AWS 機械学習ソリューションについて学べる新しいデジタルトレーニング

こんにちわ。 アマゾン ウェブ サービス ジャパン、プロダクトマーケティング エバンジェリストの亀田です。   今年の1月に、AWSがご提供している機械学習関連サービスの、無料のトレーニングコースについてご案内しました。このコースはクラウドのスキルを磨いたり Machine Learning (ML)を学びやすくするために提供しており、「ディープラーニングの概要 (Introduction to Deep Learning)」や「Amazon SageMaker の概要 (Introduction to Amazon SageMaker)」といった新しいコースが含まれています。   こちらの日本語版がリリースされましたので、みなさんにご案内いたします。 オンデマンドウェビナー一覧 以下のコースが日本語字幕付きで提供を開始しています。動画視聴がポップアップブロックで開始されない場合は、ブラウザのポップアップブロックを設定してください。 https://www.aws.training にて登録後、各トレーニングをご利用いただけます。 Introduction to AWS Machine Learning Services (Japanese) (日本語字幕版) Introduction to Deep Learning (Japanese) (日本語字幕版) Introduction to AWS Greengrass (Japanese) (日本語字幕版) Introduction to Artificial Intelligence (Japanese) (日本語字幕版) Introduction to […]

Read More

Amazon SageMaker の因数分解機を使った、ムービーレコメンダーを構築する

レコメンドは機械学習 (ML) の中でも最も一般的なアプリケーションのひとつです。このブログ記事では、因数分解機に基づいた動画レコメンドモデルを構築する方法を紹介します。これは組み込みアルゴリズムのひとつで、Amazon SageMaker の中でもよく使われている MovieLens データセットです。 因数分解機について 因数分解機 (Factorization Machines, FM) は、2010 年に導入された教師あり機械学習技術です ( 研究論文、PDF ) 。FM は、行列因数分解を使うと問題次元数の削減が可能なことから名付けられました。。 FM は分類や回帰に使用でき、線形回帰などの従来のアルゴリズムよりも大規模な疎データセットにおいて、計算効率がより大幅に向上できます。そのため、FM がレコメンドに広く使用されているのです。実際のレコメンドの数は非常に少ないものの ( ユーザーは利用可能なアイテム全てを評価しません )、ユーザー数とアイテム数はとても多いのが普通です。 以下に簡単な例を示します。密なユーザー行列 ( 次元 4×2 ) と密なアイテム行列 (2×4) に、疎な評価行列 ( 次元 4×4) を組み込む場合です。ご覧のように、因数の数 (2) が評価行列 (4) の列数よりも小さいです。さらに、この乗算によって、評価行列の全てのブランク値を埋めることができます。これを利用して、新しいアイテムをどのユーザーにもレコメンドすることができるのです。 出典 : data-artisans.com この記事では、FM を使用して、ムービーレコメンダーを構築します。Companion Jupyter ノートブックは Amazon S3 または Github からダウンロードできます。 MovieLens データセット […]

Read More

Amazon SageMaker 自動モデルチューニング: 機械学習のために機械学習を使用する

今日は、Amazon SageMaker 自動モデルチューニングの一般向けリリースを発表します。自動モデルチューニングは、より正確なモデルのために、ハイパーパラメータースペースを検索するのに必要になる画一的な負荷を一掃します。開発者とデータ科学者はこの機能により、自身の機械学習モデルをトレーニングおよびチューニングするための膨大な時間と手間を省くことができます。ハイパーパラメーターチューニングジョブは、完了したトレーニングジョブの結果をもとに、様々なハイパーパラメーターの組み合わせで複数のトレーニングジョブを起動します。SageMaker はベイズ最適化に基づき、私たちのトレーニングジョブのハイパーパラメーターコンビネーションを推測するため、「メタ」機械学習モデルをトレーニングします。もう少し、掘り下げていきましょう。 機械学習プロセスにおけるモデルチューニング 開発者の典型的な機械学習プロセスには、探索的データ解析 (EDA)、モデル設計、モデルトレーニング、モデル評価の 4 つのステップがあります。SageMaker ではパワフルな Jupyter ノートブックインスタンス、内蔵型アルゴリズム、サービスを使用したモデルトレーニングなどを採用することで、すでにこれら各ステップの合理化が図られています。このプロセスのトレーニングの面に注目することで、私たちは通常、データを処理し、想定した結果に照らしてモデルの予測を評価したモデルへ、そのデータを移植します。私たちは全体的な入力データの一部、評価データを、モデルのトレーニングに使用したトレーニングデータとは離しておきます。そしてこの評価データを使用して、それまで見たことのないデータでモデルの動作を検証するのです。多くのケースではアルゴリズムを選択した、あと、またはカスタムモデルを構築したあとに、入力したデータに対する最高の結果を得るために、そのアルゴリズムのハイパーパラメーターで、最も可能性のあるスペースを検索するために必要になります。 ハイパーパラメーターは基礎となるアルゴリズムの操作とモデルのパフォーマンスに及ぶ影響を管理します。たとえば、トレーニングするエポックの数、ネットワークレイヤーの数、学習率、最適化アルゴリズム、その他などです。通常、ランダムな値、または他の問題と共通の値で開始し、変更の結果が見え始めるまで、調整を繰り返します。かつて、この作業は骨の折れる手作業でした。しかし、才能溢れる研究者たちの地道な努力のおかげで、SageMaker を使用してこうした手作業による手間をほとんどすべて排除できるようになりました。ユーザーに必要なのは、チューニングするハイパーパラメーター、探索するパラメーターの範囲、予算に応じたトレーニングジョブの合計数です。実際の動作を見てみましょう。 ハイパーパラメーターのチューニング この機能のデモをご覧に入れるため、作業には標準の MNIST データセット、Apache MXNet フレームワーク、SageMaker Python SDK を使用します。下記で選択するもののすべては SageMaker example notebooks で入手できます。 まず、ノートブックインスタンス上で SageMaker Python SDK を使用し、従来の MXNet エスティメーターを作ります。 import boto3 import sagemaker from sagemaker.mxnet import MXNet role = sagemaker.get_execution_role() region = boto3.Session().region_name train_data_location = ‘s3://sagemaker-sample-data-{}/mxnet/mnist/train’.format(region) test_data_location = ‘s3://sagemaker-sample-data-{}/mxnet/mnist/test’.format(region) estimator […]

Read More

Amazon SageMaker を使用して、人口区分のために米国の国勢調査データを分析する

米国では 2018 年の中間選挙に向けて、人々は投票プロセスについてより多くの情報を求めています。このブログ記事では、有権者を理解するタスクに科学を有効に統合するために、機械学習 (ML) を適用する方法を探っています。 通常、機械学習アプリケーションでは、ラベルの付いたデータから明確なユースケースが得られます。例えば、古さや型番などデバイスの属性に基づいて、障害の可能性を予測できます。特定の結果を予測する際に監督またはガイドがあるため、これは教師あり学習と呼ばれます。 しかし、現実世界では、きれいなラベルを定義するのが難しい場合、予測する特定の結果が存在しない大規模なデータセットがしばしば存在します。適切な結果が予測するものを、正確に特定することは困難です。この種類のユースケースはしばしば探索的です。これはデータセットの作成と、どのような自然パターンが存在するかを理解することが目的です。この種類のユースケースは、教師なし学習です。この一例は、属性セットに基づいて類似の個人をグループ化する試みです。 このブログ記事で紹介するユースケースは、人口区分です。私たちは次のサイトから一般公開されている、米国の国勢調査から得られた米国の郡ごと匿名化された人口統計データを入手できます。https://factfinder.census.gov/faces/nav/jsf/pages/index.xhtml(この製品は Census Bureau Data API を使用していますが、国勢調査局による保証または認定は行われていません)。この分析結果は、変換された特徴空間における類似した郡の自然なグループ化です。例えば、ある集団に共鳴するメッセージをハイライトすることで、類似する郡のグループに到達する方法を理解するなど、郡が所属するクラスターを活用して選挙運動を計画することが可能です。より一般的には、この技術は企業が対象を定めたマーケティングキャンペーンを作成するために、顧客やユーザー区分に対して適用できます。この種類の分析には、CA-Fresno 郡と AZ-Yuma 郡という同じグループにされた、表向きは分からない類似点を明らかにする能力があります。直感的には人口サイズや人種構成など一般的に調べられる属性が異なりますが、雇用タイプの組み合わせなど、軸に沿って調べたときには類似しています。 ブログ記事に従って、サンプルノートブックを使用してコードを実行し、データをやり取りすることができます。 この演習には 2 つの目標があります。 1) PCA と Kmeans モデリング技術を使用して教師なし学習のための Amazon SageMaker を使用したデータ科学ワークフローを説明する。 2) 有用なモデル属性を抽出するために、Amazon SageMaker 内に構築された基礎モデルにユーザーがどのようにアクセスできるかを説明する。教師なし学習から結論を引き出すことが難しい場合が往々にしてあり、PCA と Kmeans のモデルにアクセスできることが単にモデルを使用して予測を生成する以上に重要になります。 データ科学ワークフローには 4 つのメインステップがあります。 Amazon S3 からのデータの読み込み 探索的データ分析 (EDA) – データのクリーニングと探索 データのクリーニング データの可視化 特徴エンジニアリング データモデリング 次元縮退 PCA モデル属性へのアクセス PCA モデルのデプロイ 教師なしクラスタリングを使用した人口区分 […]

Read More