Amazon Web Services ブログ

Category: SageMaker

Amazon SageMaker Ground Truth — 高い精度のデータセットを構築し、ラベル付けのコストを最大70%削減

1959年、アーサー・サミュエルは機械学習を「明示的にプログラムされなくても新しいことを学べる能力をコンピュータに与える学問分野」と定義しました。しかし、機械仕掛けの神 (deus ex machina) など存在せず、学習プロセスにはアルゴリズム (「どのように学ぶか」) と学習用データセット (「何から学ぶか」) が必要です。 今日では、ほとんどの機械学習タスクは教師あり学習という技術を用いており、アルゴリズムはラベル付けされたデータセットからパターンや行動を学習します。ラベル付けされたデータセットにはデータサンプルに加え、それぞれに対する正しい答え、すなわち “ground truth” が含まれています。手元の問題に合わせて、ラベル付きの画像 (「これは犬」「これは猫」) を使ったり、ラベル付きのテキスト (「これはスパム」「これは違う」) を使ったりします。

Read More

Amazon Elastic Inference — GPUを利用した深層学習推論の高速化

近年の AI や深層学習の発展には、Graphics Processing Units (GPU) の素晴らしい処理能力が重要な役割を果たしてきました。 10年程前、研究者は機械学習や High Performance Computing (HPC) に対して、大規模なハードウェア並列演算能力を活用する方法を編み出しました。興味のある方は、2009年にスタンフォード大から発表され大きな影響を与えた、この論文 (PDF) をご覧ください。 現在では、GPU のおかげで開発者やデータサイエンティストは複雑なモデルを医療画像分析や自動運転の大量のデータで学習できています。例えば、Amazon EC2 P3 ファミリーを利用すると1インスタンスあたり最大8枚の NVIDIA V100 GPU、つまり混合精度演算で最大 1PFLOPS を利用できます。これが10年前の最速のスーパーコンピューターと同じパフォーマンスだなんて信じられるでしょうか?

Read More

AWS DeepRacer – 強化学習のハンズオン at re:Invent

強化学習は、”エージェント”が、インタラクティブな環境下でトライアンドエラーベースで行動が可能なときに、行動からのフィードバックを利用して、事前に定義されたゴールに到達する、あるいは、有る種のスコアや報奨を最大化するよう学習を行う機械学習の形式の一つです。強化学習は、教師あり学習などの他の型式の機械学習とは対照的に、一連の事実(ground truth)を利用してモデルの学習を行い、推論を行います。 AWS re:inventでは、皆様に強化学習のハンズオンをご提供します。本日その全てをご紹介します。このハードウェアとソフトウェアの組み合わせは、(文字通り)物事を前進させるのに役に立ちます! AWS DeepRacer ハードウェアとソフトウェアについてまず最初にご紹介します。AWS DeepRacerは、1/18スケールの4輪ラジコンカーです: オンボードIntel Atom® プロセッサー、1080p解像度の4メガピクセルカメラ、高速WiFi(802.11ac)、複数のUSBポート、およそ2時間稼働できるバッテリーを搭載しています。Atom processor上で、Ubuntu 16.04 LTS、ROS(Robot Operating System)、および Intel OpenVino™ コンピュータービジョンツールキットが稼働します。

Read More

Amazon SageMakerの新機能: ワークフロー、アルゴリズム、認定

過去12ヵ月間、MLを何万人もの開発者やデータ科学者の手に渡して、完全に管理されたサービスである、Amazon SageMaker を利用しているお客様が – 詐欺の発見、予測、エンジンのチューニングで machine learning に大進歩を遂げたのを見て参りました。昨年 re:Invent に SageMakerを導入して以来、その大半は顧客のフィードバックに基づいた、ほぼ100の新機能を追加しました。Amazon SageMakerの主な新機能の発表で、今日も同じドラムビートを継続しています。 SageMakerワークフローの紹介 今日では、machine learning のワークフローの構築、管理、共有を容易にするために、Amazon SageMakerの新しい自動化、統合化、それにコラボレーション機能を発表しています。 Machine learning は高度なコラボレーションプロセスです。ドメイン経験と技術スキルを組み合わせることは成功の基盤であり、さまざまなデータセットや機能を用いた複数の反復と実験が必要になることがよくあります。開発者が進捗状況を共有し、多くの共同作業者からフィードバックを収集する必要が頻繁にあります。成功モデルの訓練は、必ずしもホールインワンとはなるとは限らないので、重要な決定を追跡し、成功した部品を再生し、成功したものを再利用し、成功しなかったものに関する助けを得ることが重要になります。これらの反復の管理、繰り返し、共有を簡単にする新機能を導入しています。 SageMaker Search による実験管理 成功したMLモデルの開発には、継続的な実験、新しいアルゴリズムの試行、ハイパーパラメータのモデル化が必要です。その間には、潜在的に小さな変更が性能と正確さに及ぼす影響を観察しなければなりません。この反復運動は、データセット、アルゴリズム、パラメータのユニークな組み合わせで「勝利」モデルの醸成の追跡が難しいことを意味します。 データ科学者および開発者は、Amazon SageMaker Searchを使用して、machine learning モデルトレーニングの実験を整理、追跡、評価することができます。SageMaker Searchを使用すると、AWSコンソールから数千もの Amazon SageMaker モデルトレーニング実行の中から、最も関連性の高いモデルトレーニングの実行を即座に発見し評価することができます。 バージョン管理によるコラボレーション データ科学者、開発者、データエンジニア、アナリスト、ビジネスリーダーは、しばしばアイデアやタスクを共有し、協力してmachine learning を推進する必要があります。従来のソフトウェア開発とのこの種のコラボレーションの事実上の標準は、バージョン管理です。それはMLでも重要な役割を果たしており、Git の統合と視覚化をAmazon SageMaker に追加することで、簡単に作成しています。 顧客は、GitHub、AWS CodeCommit、または Git リポジトリとSageMaker ノートブックのリンク、公私のリポジトリの複製、IAM、LDAP、AWS Secrets Manager を用いた Amazon SageMaker でのリポジトリ情報の安全な保存を可能にしています。新しいオープンソースのノートブックアプリの使用で、SageMaker でのブランチ、マージ、バージョンを直接確認できます。 ステップ関数とApache Airflow によるオートメーション […]

Read More

Amazon SageMaker と Amazon Redshift を利用した、高速・柔軟・セキュアな機械学習基盤の構築

データウェアハウス環境として、 Amazon Redshift に販売データ・ログデータ・センシングデータ等を蓄積し、これらのデータを用いて機械学習の活用を検討されるケースは多いと思います。高速にクエリを実行できる Redshift と、Amazon SageMaker による Jupyter Notebook を用いた対話的なデータ分析と機械学習を活用し、需要予測・レコメンド・異常検知などを行うことが可能です。 本稿では、 Redshift から Amazon VPC 内でセキュアにデータを取得し、SageMaker を利用した分析・機械学習パイプラインを構築する方法をご紹介します。前半では、アーキテクチャの概要を説明します。後半では、そのアーキテクチャのサンプルを構築し 、SageMaker から SQL クエリを実行して、データを分析する方法について説明します。環境を簡単に構築できるよう、 AWS CloudFormation のテンプレートを用意しているので、実際に試しながら読み進めることができます。SageMaker や Redshift の概要については末尾に記載した参考記事をご覧下さい。 アーキテクチャ概要 大規模データに対し、高速・柔軟・セキュアにデータ分析を行うための、Redshift と SageMaker を組み合わせたアーキテクチャを以下に示します。     AWS を利用した分析・機械学習パイプラインとしては様々なアーキテクチャが考えられますが、ここでは Redshift に対して SageMaker の Jupyter Notebook 上から SQL クエリを実行し、必要なデータのみを取得して分析・可視化・機械学習を行うことを想定します。Redshift のサンプルデータが Amazon S3 にあるため事前にそれを読み込んでいます。 それでは、具体的にアーキテクチャの詳細を確認していきましょう。 速度と分析の柔軟さの両立 データの分析・可視化・機械学習を行う場合、ブラウザ上で動作する対話型データ分析ツールである Jupyter Notebook […]

Read More

Amazon Kinesis Video Streams および Amazon SageMaker を使用したリアルタイムでのライブビデオの分析

Amazon SageMaker の Amazon Kinesis Video Streams Inference Template (KIT) の発売を発表できることを嬉しく思っています。この機能により、顧客はほんの数分で Amazon SageMaker エンドポイントに Kinesis Video streams をアタッチすることが可能です。これにより、他のライブラリを使用したり、カスタムソフトウェアを作成してサービスを統合することなく、リアルタイムの推論が可能になります。KIT は、Docker コンテナとしてパッケージ化された Kinesis Video Client Library ソフトウェアと、すべての必要な AWS リソースのデプロイを自動化する AWS CloudFormation テンプレートとで構成されています。 Amazon Kinesis Video Streams を使用すると、アナリティクス、機械学習 (ML) 、再生、その他の処理のために、接続したデバイスからオーディオ、ビデオ、関連メタデータを AWS に確実にストリームすることができます。Amazon SageMaker は、開発者やデータサイエンティストが ML モデルを迅速かつ容易に構築、トレーニング、および展開するための管理プラットフォームです。 ホームセキュリティカメラ、エンタープライズ IP カメラ、トラフィックカメラ、AWS DeepLens 、携帯電話などのソースからオーディオおよびビデオフィードを Kinesis Video Streams へと取り込みます。スマートホームのざまな業界からスマートシティへ、インテリジェント製造から小売業に渡るさまざまな業界のデベロッパーとデータサイエンティストが、AWS クラウドでこれらの動画フィードを分析するために、独自の 機械学習アルゴリズムを導入したいと考えています。これらの顧客が Kinesis Video […]

Read More

Amazon SageMaker IP Insights アルゴリズムを使用して、不審な IP アドレスを検出する

本日、Amazon SageMaker の新しい IP Insights アルゴリズムが公開されました。IP Insights は、IP アドレスの異常な動作や使用パターンを検出する教師なし学習アルゴリズムです。このブログ記事では、IP アドレスを使用した不正行為の特定、Amazon SageMaker IP Insights アルゴリズムの説明、実際のアプリケーションでの使用方法のデモンストレーション、およびその結果を社内で共有する方法について解説します。 悪意ある行為と戦う 悪意のある行為には、たいていの場合、オンラインバンキングアカウント、管理コンソール、ソーシャルネットワーキングまたはウェブメールアカウントへのアクセスなどのオンラインリソースへの不正なアクセス、いわゆるアカウントの乗っ取りが含まれます。乗っ取りは通常、盗まれたり、紛失またはリークされた認証情報を使用して行われ、不正なアクセスが、アカウントのいつもとは異なる IP アドレス (例えば、ユーザーからではなくハッカーのコンピュータ) から発信されることがほとんどです。 アカウントの乗っ取りを防ぐための一般的な防御策は、オンラインリソースに以前にはなかった IP アドレスでアクセスする際にフラグを立てることです。フラグ設定された対話はブロックすることができます。もしくは、ユーザーが追加の認証形式 (SMS への応答など) を利用して、乗っ取りに挑むこともできます。しかし、ほとんどのユーザーは、これまで使用していなかった IP アドレスから定期的にオンラインリソースにアクセスします。したがって、「新しい IP をフラグする」方法は、不適当に高い偽陽性率を生み、残念な顧客エクスペリエンスをもたらします。 ユーザーは定期的に新しい IP アドレスからオンラインリソースにアクセスしますが、新しい IP アドレスは完全な無作為での選択ではありません。ユーザーの移動習慣やインターネットサービスプロバイダーの IP 割り当て戦略など、いくつかの潜在的な要因が割り当てに影響します。これらの潜在的な要因すべてを明確に列挙することは、普通では困難です。しかし、オンラインリソースのアクセスパターンを見ることで、新しい IP アドレスが予期されたイベントなのか異常なのかを予測することは可能です。Amazon SageMaker IP Insights アルゴリズムは、これを行うために厳密に設計されています。 Amazon SageMaker IP Insights アルゴリズム Amazon SageMaker IP Insights アルゴリズムは、統計的モデリングとニューラルネットワークを使用して、オンラインリソース (オンライン銀行口座など) と […]

Read More

ハイパーパラメータチューニングジョブのウォームスタートを使って、Amazon SageMaker 自動モデルチューニングの効率をさらに向上

今年初め、当社は Amazon SageMaker 自動モデルチューニング を発表しました。これは開発者とデータ科学者が、機械学習モデルのトレーニングとチューニングにかかる多くの時間と労力を削減することを可能にしてくれます。本日、自動モデルチューニングでハイパーパラメータチューニングジョブのウォームスタートを開始します。データ科学者と開発者は、選択された親ジョブに基づいて新しいハイパーパラメータチューニングジョブを作成できるようになり、親ジョブで実行されたトレーニングジョブを事前知識として再利用できます。ハイパーパラメータチューニングジョブのウォームスタートは、ハイパーパラメータチューニングプロセスを加速し、チューニングモデルのコストを削減します。 データ科学者と開発者は、すでに自動モデルチューニングを使用してモデルを効率的にチューニングすることができましたが、さらに多くの支援が必要な分野があります。例えば、小規模予算でハイパーパラメータチューニングジョブを開始し、結果を分析後に、より大きな予算でモデルのチューニングを続けることを決定します。潜在的に異なるハイパーパラメータ設定を使用することもあります (チューニングにより多くのハイパーパラメータを追加したり、一部のハイパーパラメータで異なる検索範囲を試すなど)。もう 1 つの例は、データ科学者または開発者が、以前のモデルチューニングの後に新しいデータを収集し、モデルを再チューニングする場合です。どちらの場合も、このモデルの以前のチューニングジョブから収集した事前知識を使用してハイパーパラメータチューニングジョブを開始すると、最高のモデルに素早くアクセスし、顧客のコストを節約することに役立ちます。しかし、以前に行ったすべてのチューニングジョブはゼロから開始になります。同様のチューニング構成で同じモデルがすでにチューニングされていても、情報は再利用されませんでした。 ハイパーパラメータチューニングジョブのウォームスタートはこれらのニーズに対応します。ここでは、ウォームスタートを活用してモデルを繰り返しチューニングする方法を紹介します。 ウォームスタートを活用した画像分類モデルのチューニング この例では、画像分類子を作成し、ウォームスタートを利用して複数のハイパーパラメータチューニングジョブを実行することによって、画像分類子を繰り返し調整します。Amazon SageMaker 組み込み画像分類アルゴリズム を使用して、モデルを Caltech-256 データセットでトレーニングします。完全なサンプルノートブックはこちらから参照できます。 ハイパーパラメータチューニングジョブの開始と起動 ノートブックインスタンスの作成、データセットの準備、Amazon S3 へのプッシュ、ハイパーパラメータチューニングジョブの起動から直接起動する手順は省略します。サンプルノートブックにはすべての詳細がありますので、ここではプロセスを検討はしません。 この最初のチューニングジョブを実行して、検索スペースについて学習し、画像分類でチューニング可能なパラメータをチューニングする影響を評価します。このジョブは、モデルのチューニングが有望であるかどうか、そして後続のチューニングジョブを作成してチューニングを続行するかどうかを評価します。 チューニングジョブを作成するには、最初に組み込み画像分類アルゴリズム用のトレーニング推定器 (Estimator) を作成し、チューニングする予定のものを除いて、このアルゴリズムのすべてのハイパーパラメータの値を指定する必要があります。組み込み画像分類アルゴリズムのハイパーパラメータについての詳細は、こちらの文書 を参照してください。 s3_output_location = ‘s3://{}/{}/output’.format(bucket, prefix) s3_input_train = sagemaker.s3_input(s3_data=’s3://{}/{}/train’.format(bucket, prefix), content_type=’application/x-recordio’) s3_input_validation = sagemaker.s3_input(s3_data=’s3://{}/{}/validation/’.format(bucket, prefix), content_type=’application/x-recordio’) sess = sagemaker.Session() imageclassification = sagemaker.estimator.Estimator(training_image, role, train_instance_count=1, train_instance_type=’ml.p3.8xlarge’, output_path=s3_output_location, sagemaker_session=sess) imageclassification.set_hyperparameters(num_layers=18, image_shape=’3,224,224′, num_classes=257, num_training_samples=15420, […]

Read More

Amazon SageMaker でモデルトレーニング中にメトリクスを簡単にモニタリングして視覚化する

データサイエンティストおよび開発者は、Amazon SageMaker で機械学習モデルをトレーニングしながら計算されたメトリクスにすばやく簡単にアクセスし、モニタリングし、可視化することができるようになりました。追跡するメトリクスは、Amazon SageMaker の AWS マネジメントコンソールを使用するか、Amazon SageMaker Python SDK API を使用して指定できます。モデルのトレーニングが開始されると、Amazon SageMaker は指定されたメトリクスを自動的にモニタリングして、リアルタイムで Amazon CloudWatch コンソールにストリームし、損失曲線や精度曲線などの時系列曲線を可視化します。また、Amazon SageMaker Python SDK API を使用して、プログラムでメトリクスにアクセスすることもできます。 モデルのトレーニングとは、トレーニングデータセットの例を提示することによって、モデルに予測を習得させる反復的なプロセスです。通常、トレーニングアルゴリズムでは、訓練誤差や予測精度など複数のメトリクスを計算します。これは、モデルがきちんと学習しているかの診断に役立ちます。また、十分に正則化することにより、未観測のデータに対する予測ができるようにもなります。この診断は、モデルのハイパーパラメータを調整するときや、モデルが本番環境にデプロイする可能性を備えているかどうかを評価するときに特に役立ちます。 それでは、いくつかの例を見て、Amazon SageMaker でこれらのメトリクスをモニタリングおよび可視化する方法について学びましょう。 Amazon SageMaker アルゴリズムによるメトリクスの組み込みサポートの提供 Amazon SageMaker の組み込みアルゴリズムはすべて、さまざまなモデルのトレーニング、評価、および検証メトリクスを自動で計算して発行します。たとえば、Amazon SageMaker Object2Vec アルゴリズムは、validation:cross_entropy メトリクスを発行します。Object2Vec は、単語、フレーズ、センテンスなど高次元オブジェクトの低次元高密度埋め込みを学習できる教師あり学習アルゴリズムです。類似した 2 つの埋め込みがベクトル空間上にどのように配置されるかについても学習します。これは、テキスト内の特定の文章のペアが類似しているかどうかを評価する応用性を持つ技術です。アルゴリズムによって発行された validation:cross_entropy メトリクスは、モデルによって行われた予測が検証データセットの実際のラベルと乖離している程度を測定します。モデルが十分に学習していれば、cross_entropy はモデルのトレーニングの進行に応じて減少するはずです。 次に、AWS マネジメントコンソールについて段階的に見ていきましょう。サンプルノートブックのコードスニペットを Amazon SageMaker Object2Vec モデルのトレーニングに使用する方法についても説明します。 ステップ 1: Amazon SageMaker でトレーニングジョブを開始する サンプルノートブックには、トレーニングジョブを作成するための手順が示されています。トレーニングアルゴリズムによって発行されたすべてのメトリクスは、AWS マネジメントコンソールで確認できます。コンソールで […]

Read More

リアルタイム予測のために Amazon SageMaker を使用して Amazon DynamoDB でデータを分析する

 世界で数多くの企業が、Amazon DynamoDB を使って、ユーザー対話履歴データを保存およびクエリしています。DynamoDB は、1 桁台のミリ秒の安定したレイテンシーを必要とするアプリケーションで使用されている、高速の NoSQL データベースです。 たいていは、顧客は Amazon S3 に格納されているテーブルのコピーを分析することで、DynamoDB 内の貴重なデータを詳細な情報に変換する必要があります。これにより、低いレイテンシーのクリティカルパスから分析クエリが分離します。このデータは、顧客の過去の行動を理解し、将来の行動を予測し、下流のビジネス価値を生み出す主要な情報源となり得るのです。スケーラビリティと可用性が高いという理由で、顧客は DynamoDB の使用へ切り替えるということがよくあります。立ち上げが上手くいった後、多くの顧客が DynamoDB のデータを使用して、今後の行動を予測したり、個別の推奨事項を提供したりしたいと考えます。 DynamoDB は、レイテンシーの低い読み書きに適していますが、DynamoDB データベース内のすべてのデータをスキャンし、モデルをトレーニングするのは現実的ではありません。この記事では、AWS Data Pipeline によって Amazon S3 にコピーされた DynamoDB テーブルデータを使って、顧客の行動を予測する方法を解説します。さらにこのデータを使用して、Amazon SageMaker で顧客に個別の推奨事項を提供する方法も説明します。Amazon Athena を使用して、データに対してアドホッククエリを実行することもできます。DynamoDB は最近、オンデマンドバックアップをリリースし、パフォーマンスに影響を与えずに完全なテーブルバックアップを作成しました。しかし、この記事には適していないので、代わりに AWS Data Pipeline が管理バックアップを作成し、他のサービスからアクセスできるようにする方法を紹介します。 これを行うため、Amazon Data Pipeline で DynamoDB バックアップファイル形式を読み取る方法について説明します。Amazon S3 のオブジェクトを Amazon SageMaker が読み取れる CSV 形式に変換する方法についてもお話しします。加えて、Amazon Data Pipeline を使用して、定期的なエクスポートと変換をスケジュールする方法も説明します。この記事で使用するサンプルデータは、「Bank Marketing Data […]

Read More