Amazon Web Services ブログ

Category: Amazon SageMaker

Amazon SageMaker に機械学習実験を加速する新機能が登場

データサイエンティストおよび開発者は、Amazon SageMaker Search で機械学習 (ML) モデルトレーニングの実験を、素早く簡単に整理、追跡、評価できるようになりました。当社が導入する新しい Amazon SageMaker Search 機能を使用すると、Amazon SageMaker の数百から数千に及ぶモデルトレーニングジョブの中から、最も関連性の高いモデルトレーニング実行を発見して評価することができます。これにより、モデルの開発と実験のフェーズをスピードアップし、データサイエンティストと開発者の生産性を高め、機械学習ベースのソリューションを市場に投入するまでの全体的な時間を短縮できます。AWS マネジメントコンソールと AWS SDK API for Amazon SageMaker の両方で、新しい検索機能のベータ版を利用できます。新機能のベータ版は、現在 Amazon SageMaker の利用が可能な 13 の AWS リージョンで、追加料金なしで提供されています。 機械学習モデルを開発するには、継続的な実験と観察が必要です。たとえば、新しい学習アルゴリズムを試したり、モデルのハイパーパラメータをチューニングしたりする場合、そのような増分変更がモデルのパフォーマンスと精度に及ぼす影響を観察する必要があります。この反復型最適化の訓練は、数百のモデルトレーニング実験とモデルバージョンでデータ爆発を招くことがよくあります。それにより、「成功した」モデルの収束と発見が遅くなる可能性があります。また、情報の爆発が起こると、本番環境にデプロイされたモデルバージョンの先行モデルを遡って追跡するのにも手間がかかります。このようなモデル系統の追跡の難しさは、モデルの監査やコンプライアンスの検証、モデルのライブ予測パフォーマンスの低下原因のデバッグ、新しいモデルの再トレーニング実験の設定などを行う妨げとなります。 Amazon SageMaker Search を使用すれば、ビジネスユースケースに対応するうえで最も関連性の高いモデルトレーニング実行を迅速に特定できます。採用された学習アルゴリズム、ハイパーパラメータ設定、使用されているトレーニングデータセット、さらにはモデルトレーニングジョブに自分で追加しておいたタグなど、あらゆる定義属性を検索できます。タグを検索すると、特定のビジネスプロジェクト、研究ラボ、データサイエンスチームに関連付けられたモデルトレーニング実行をすばやく見つけられます。これは、モデルトレーニング実行をわかりやすく分類してカタログ化するのに役立ちます。関連するモデルトレーニング実行を 1 か所で集中的に追跡および整理できるだけでなく、トレーニングの損失や検証の精度などのパフォーマンス指標に基づいて、トレーニング実行をすばやく比較してランク付けできます。これにより、「成功した」モデルを選んで本番環境にデプロイするためのスコアボードを作成することができます。さらに、Amazon SageMaker Search では、ライブ環境にデプロイされたモデルの系統を迅速に追跡して、モデルのトレーニングや検証に使用されたデータセットまで遡ることができます。AWS マネジメントコンソールで 1 回クリックするか、または 1 行の簡単な API 呼び出しを実行するだけで、特定のトレーニング実行にアクセスして、最初のモデル作成時に組み込まれたすべての要素まで参照できるようになったのです。 次に、Amazon SageMaker Search を使用してモデルトレーニング実験を効率的に管理する方法を、手順に沿って紹介します。この新機能はベータ版で提供されているため、本番環境では注意してご使用ください。 Amazon SageMaker Search によるモデルトレーニング実験の整理、追跡、評価 以下の例では、Amazon SageMaker 線形学習アルゴリズムを使用して、MNIST […]

Read More

Amazon SageMaker RL – Amazon SageMakerを使ったマネージドな強化学習

この数年、機械学習はたくさんの興奮をもたらしました。実際、医療画像分析 から自動運転トラックまで、複雑なタスクを機械学習によって成功させ、成長を遂げてきました。それにしても、どうやってこれらの機械学習モデルは賢くなっているのでしょうか? 端的には、機械学習のモデルは、以下の3つのいずれかの方法で学習されています。 教師あり学習:ラベル付きのデータセット(サンプルと答えを含む)を使って学習を実行します。徐々にモデルは学習し、正しい解を予測をするようになります。回帰と分類などが、教師あり学習の例として挙げられます。 教師なし学習: ラベルのないデータセット(サンプルのみを含む)を使ってアルゴリズムを実行します。ここでは、モデルはデータ中のパターンを徐々に学習し、それに応じてサンプルを編集します。クラスタリングやトピックモデリングなどが、教師なし学習の例として挙げられます。 強化学習: これは上の二つとはとても異なっています。ここでは、コンピュータープログラム(エージェントを指す)は環境と相互作用し、ほとんどの場合、これはシミュレータの中で行われます。エージェントは行動に応じて正または負の報酬を得ますが、報酬は、その行動がどれぐらい良いのかを表す数値表現を出力するユーザー定義関数によって計算されます。生の報酬を最大化することで、エージェントは最適な意思決定の戦略を学ぶことができます。

Read More

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