Amazon Web Services ブログ

Category: SageMaker

Amazon Rekognition に関する最近の研究論文および関連記事についての考察

昨日発表された研究論文と関連記事は、Amazon Rekognition の精度について触れています。私たちはフィードバックを歓迎しており、実際に常に人々からフィードバックを得ていますが、この研究論文と記事は誤解を招きやすく、誤った結論に導いています。このブログ記事が、いくつかの誤解や不正確さを明確にするのに役立つことを願っています。 多くの場合、精度は絶対的な尺度と考えられます。たとえば、数学の試験のパーセンテージスコアでは、それぞれの答えは正しいか、間違っているかのどちらかです。 機械学習システムの精度を理解、解釈、比較するには、何が予測されているか、予測の信頼性、どのように予測を使うべきかを理解することが重要であり、これを単一の絶対数またはスコアから収集することは不可能です 。 何が予測されているか: Amazon Rekognition は、コンピュータービジョンと呼ばれる一種の機械学習を使用して、2 つの異なる顔機能を提供します。最初の機能は顔分析です。特定の画像やビデオについて、このサービスは顔がどこに表示されているか、および画像の特定の特性 (画像に笑顔、めがね、口ひげ、顔の性別が含まれているかなど) を知らせることができます。こうした属性は通常、写真のカタログを検索するのに役立ちます。Amazon Rekognition の 2 番目の機能は、一般に顔認識と呼ばれている機能です。これは、顔分析とは明確に異なる機能であり、似ているように見える顔を照合します。これは、一部の電話のロックの解除、建物に入る人の認証、または対象となる人物を識別するために法執行機関がフィールドを絞り込むために使用するのと同じアプローチです。後者は、昔の映画に登場する写真の本をめくる探偵に似ていますが、はるかに高速です。 顔分析と顔面認識は、基盤となるテクノロジとそれらをトレーニングするために使用されるデータの点でまったく異なります。そうした目的を意図したアルゴリズムではないので、顔認識の精度を測定するために顔分析を使用することは軽率です (説明は、ドキュメントをご覧ください)。 信頼性: 顔分析と顔認識の両方について、Amazon Rekognition は、特定の結果がどの程度の信頼性であるかについても説明します。すべての機械学習システムは本質的に確率論的なので、信頼スコアはシステムがその結果にどれだけ信頼を置いているかの尺度と考えることができます。信頼度が高いほど、結果を信頼できます。結果を解釈するために使用される信頼度閾値について透明かつ思慮深くなければ、顔分析または顔認識のいずれかの品質を解釈することは不可能です。この調査で使用されている閾値はまだ分かっていませんが、以下に示すように、推奨される信頼水準で実行した場合の結果は大きく異なります。 予測のユースケース: 信頼性と組み合わせることで、精度を適切な文脈でとらえるのに役立つので、機械学習による予測の使用の意図は重要です。たとえば、写真のカタログで「サングラス」を含む画像を検索するために顔分析を使用する場合、完全に一致しないものが含まれるとしても、検索結果に表示する画像の数を増やすことが望ましい場合があります。このユースケースにおける不完全な結果のコストは低いので、より多い結果とそれらの結果のより少ない手作業による検査と引き換えに、より低い信頼レベルが受け入れられることが多くなります。ただし、捜査で関心のある人物を識別するために顔認識を使用する場合は、法執行機関は推奨されている 99% の信頼度閾値 (文書化されているとおり) を使用し、あくまでも捜査の 1 つの要素としてのみ使用することが必要です。 Amazon Rekognition の「テスト」についてどのように考えるかについての上記の文脈で、私たちはこの最新のレポートとその誤った主張にたどり着きました。 この研究論文は「商業的な顔認識製品のパフォーマンスの脆弱性をさらす」ことを目指していますが、実際には代わりに顔分析を使用しています。 上述したように、顔分析と顔認識は 2 つの別々のツールです。顔認識の場合と同じ方法で顔を照合するために顔分析を使用することはできません。これは単に意味や定義の問題ではありません。2つの異なる目的を持つ 2 つの異なる機能なのです。顔分析では、主に画像のフィルタ処理や整理に役立つ一般的な特徴 (髪の毛、笑顔、眉をひそめる、性別など) しか見つけることができません。顔を一意に特定する知識は持ちません (これを画像からリバースエンジニアリングすることはできません)。対照的に、顔認識は、顔を照合するための顔の一意な特徴に焦点を合わせており、顧客が持ち込むデータセット内の顔と照合するために使用されます。顔認識を行うために顔分析を使用することは、一意の個人を識別するには不正確で推奨されない方法です。  これについてはドキュメントで説明していますが、この問題について混乱している顧客からの報告は受けていません。 その研究論文は、Amazon Rekognition が低品質の顔分析結果を提供していると述べています。しかし、これは、私たち自身の広範囲にわたるテストや、サービスを利用している顧客から聞いたことを反映していません。 まず、この研究者達は古いバージョンの Amazon Rekognition を使用しています。私たちは、11 月に大幅な改善を行っています。次に、AWS が Amazon Rekognition […]

Read More
keras-logo

Amazon SageMaker で簡単に Keras を使う方法

Amazon SageMaker は、すべての開発者とデータサイエンティストに機械学習モデルの構築、トレーニング、デプロイの手段を提供する AWS のマネージドサービスです。SageMaker は深層学習の主要なフレームワークをサポートしており、TensorFlow、Apache MXNet、PyTorch、Chainer などを用いてモデルを記述することができます。また、TensorFlow や MXNet をバックエンドとした Keras の高レベルな API を用いることで、モデルを簡単にすばやく作成することもできます。 これまで、Keras で書いたコードを SageMaker 上で動かす方法について、多くのお客様からご質問を頂いておりました。2018年12月に、SageMaker の TensorFlow ならびに MXNet のコンテナに、それぞれのフレームワークをバックエンドとする Keras がデフォルトでインストールされました。また両コンテナでは Script Mode をサポートしているため、SageMaker 外で開発した Keras のコードに、わずかな修正を加えるだけで動かすことができるようになりました。ここでは Keras 公式サンプルコードの mnist_cnn.py をなるべくそのまま利用して、SageMakerのTensorFlowとMXNetコンテナで実行する方法をご説明します。   TensorFlow Backend での Keras の使い方 トレーニングスクリプトの修正 AWS のマネージドコンソールから SageMaker ノートブックインスタンス (Jupyter/JupyterLab) を開き、Keras のリポジトリをクローンします (このブログのようにノートブックインスタンスの作成時に関連付けることも可能です)。keras/examples/mnist_cnn.py の中で以下の3点を修正します: 学習からモデルの保存までを train(args) 関数として定義します。ここでは次の手順で読み込む args […]

Read More

AWS がエッジデバイスの ML 展開を加速するオープンソースの Neo-AI プロジェクトをロンチング

 re:Invent 2018 で、Amazon SageMaker Neo が発表されました。機械学習モデルを一度トレーニングすると、クラウドおよびエッジ内ではどこでも実行できる新しい機械学習機能です。今日、私たちは Apache Software License の下でオープンソースの Neo-AI プロジェクトとしてコードを公開しています。このリリースでは、プロセッサベンダー、デバイスメーカー、および深層学習の開発者が、機械学習における新しい独自のイノベーションをさまざまなハードウェアプラットフォームにすばやく取り入れることができます。 通常、開発者は各プラットフォームのハードウェアおよびソフトウェア構成に合わせて、モデルを手動で調整する必要があるため、複数のハードウェアプラットフォームに対して機械学習モデルを最適化することは困難です。コンピューティング能力とストレージが制約される傾向があるエッジデバイスにとっては、特に困難です。これらの制約により、実行できるモデルのサイズと複雑さが制限されます。そのため、最高のパフォーマンスを得るために、開発者が手動でモデルを調整するのに数週間または数ヶ月かかります。調整プロセスには、最適化手法に関する稀な専門知識とハードウェアに関する深い知識が必要です。それでも、優れたツールをすぐに利用できないため、優れたパフォーマンスを得るには、通常、かなりの試行錯誤が必要となります。 ソフトウェアの違いにより、この作業はさらに複雑になります。デバイス上のソフトウェアがモデルと同じバージョンでない場合、モデルはデバイスと互換性がありません。これにより、開発者は自分のモデルのソフトウェア要件と完全に一致するデバイスのみに制限するようになります。 したがって、機械学習アプリケーションをすばやく構築、拡張、および維持することは非常に困難です。 Neo-AI は、TensorFlow、MXNet、PyTorch、ONNX、および XGBoost モデルを自動的に最適化して、最大元のモデルの 2 倍速で正確性を損なうことなく実行できます。これにより、複数プラットフォームへ展開する機械学習モデルの調整に必要な時間と労力を省きます。さらに、ソフトウェアの互換性の問題を排除するために、モデルを効率的な共通フォーマットに変換します。ターゲットプラットフォームでは、コンパクトなランタイムによって通常のフレームワークが消費するリソースのごく一部を使用します。最適化を簡素化にすることによって、Neo-AI は洗練されたモデルがリソースに制約のあるデバイス上で動作することを可能にします。また、そこで自律走行車、ホームセキュリティ、および異常検出などの分野におけるイノベーションを引き出します。Neo-AI は現在、Intel、NVIDIA、および ARM のプラットフォームをサポートしており、Xilinx、Cadence、および Qualcomm のサポートも近日中に開始する予定です。 Neo-AI は、主要な機械学習コンパイラであり、LLVM や Halide など従来のコンパイラテクノロジーに関する、数十年にわたる研究に基づいて構築されたランタイムです。Neo-AI コンパイラには、ワシントン大学で開始したオープンソース研究プロジェクトの TVM と Treelite に対する修正が含まれています。今日の Neo-AI プロジェクトを通じて AWS コードをオープンソースにリリースすることで、開発者はプロダクショングレードの Neo コンパイラとランタイムをイノベーションすることができます。Neo-AI プロジェクトは、AWS、ARM、Intel、Qualcomm、Xilinx、Cadence などを含め、複数の組織によって進められます。 Neo-AI プロジェクトと連携することで、モデルのパフォーマンス向上に最大の効果を発揮する時点で、プロセッサベンダーはカスタムコードをコンパイラにすばやく統合できます。このプロジェクトにより、デバイスメーカーは、デバイス特定のソフトウェアおよびハードウェアの構成に合わせて Neo-AI ランタイムをカスタマイズすることもできます。Neo-AI ランタイムは現在、ADLINK、Lenovo、Leopard Imaging、Panasonic などのデバイスに導入されています。Neo-AI プロジェクトは、さまざまなソースによるイノベーションを機械学習用の共通コンパイラおよびランタイムに吸収して、利用可能な最高のパフォーマンスをモデルに提供します。 Intel の […]

Read More

AWS Step Functions を使用した Amazon SageMaker モデルの自動的で連続的なデプロイ

Amazon SageMaker は、モデルの開発、トレーニング、およびデプロイ、ソリューション構築のコスト削減、データサイエンスチームの生産性向上のための完全な機械学習 (ML) ワークフローサービスです。Amazon SageMaker には、多くの事前定義済みアルゴリズムが付属しています。また、Docker イメージ、モデルをトレーニングするためのトレーニングイメージ、および REST エンドポイントにデプロイするための推論モデルを指定して、独自のアルゴリズムを作成することもできます。 機械学習モデルの構築とデプロイを自動化することは、本稼働の機械学習サービスを作成する上で重要なステップです。コードおよび/またはデータが更新されたときは、モデルを再トレーニングしてデプロイする必要があります。このブログ記事では、AWS Step Functions を使用した Amazon SageMaker の自動化の手法について説明します。新しいオープンソースプロジェクトである aws-sagemaker-build を通してそれを実証します。このプロジェクトは私たちのワークフローを完全に実装しています。Python と Amazon Alexa を使用してビルドの作成、起動、停止、進行状況の追跡を行う方法を示す Jupyterノ ートブックも含まれています。 aws-sagemaker-build の目的は、Amazon SageMaker と AWS Step Functions を使用する一般的で有用なパイプラインのリポジトリを提供することです。このリポジトリはコミュニティと共有され、コミュニティによって成長できます。 このコードはオープンソースであり、GitHub のここでホストされています。 カスタムモデル このブログ記事では、トレーニングや推論のために Dockerfile を作成および設計する方法の詳細については説明しません。詳細については、以下のドキュメントをご覧ください。 Example Project and Tutorial using aws-sagemaker-build (aws-sagemaker-build を使ったサンプルプロジェクトとチュートリアル) Training Image Documentation (トレーニングイメージのドキュメント) Inference Image Documentation (推論イメージのドキュメント) […]

Read More

Amazon SageMaker のトレーニングと推論の間でデータ処理コードの一貫性を確保する

このブログ記事では、推論パイプラインを紹介します。これは、推論リクエストごとに実行される一連の手順を指定できる、Amazon SageMaker の新機能です。この機能を使用すると、同じコードの 2 つの別のコピーを保持する必要なしで、推論中のトレーニングで適用されたデータ処理手順を再利用できます。これにより、予測が正確になり、開発のオーバーヘッドを削減できます。ここでの例では、Apache Spark MLlib で変換器を使用してトレーニングと推論の入力データを前処理し、Amazon SageMaker の XGBoost アルゴリズムを使用して自動車の状態を予測する機械学習モデルをトレーニングします。 概要 データサイエンティストや開発者は、機械学習 (ML) モデルをトレーニングする前に、データのクリーニングと準備に多くの時間を費やしています。これは、現実のデータを直接使用することができないためです。値が欠落していたり、情報が重複していたり、標準化する必要がある同じ情報の複数のバリエーションがあったりするからです。さらに多くの場合、機械学習アルゴリズムで使用できるために、データをある形式から別の形式に変換する必要があります。たとえば、XGBoost アルゴリズムは数値データしか受け入れないため、入力データが文字列またはカテゴリ形式の場合は、使用する前に数値形式に変換する必要があります。他には、複数の入力の特徴を単一の特徴に組み合わせることで、より正確な機械学習モデルとなります。たとえば、気温と湿度を組み合わせて飛行遅延を予測すると、より正確なモデルが作成されます。 機械学習モデルを本稼働にデプロイして新しいデータを予測する場合 (推論と呼ばれるプロセス)、トレーニングで使用されたのと同じデータ処理手順がそれぞれの推論リクエストにも適用されるようにする必要があります。そうしないと、誤った予測結果となる可能性があります。今までは、トレーニングと推論に使用するために同じデータ処理手順の 2 つのコピーを維持し、それらが常に同期していることを確認する必要がありました。また、データ処理手順を、機械学習モデルへのリクエストを行うアプリケーションコードと組み合わせるか、推論ロジックに組み込む必要がありました。その結果、開発のオーバーヘッドと複雑さが必要以上に高くなり、迅速に繰り返す能力が制限されていました。 現在は、Amazon SageMaker に推論パイプラインを作成することで、推論中のトレーニングと同じデータ処理手順を再利用できます。推論パイプラインを使用すると、最大 5 つのデータ処理および推論の手順を指定できます。これらの手順は、全ての予測リクエストに対して実行されます。トレーニングのデータ処理手順を再利用できるので、データ処理コードのコピーを 1 つだけ管理し、クライアントアプリケーションや推論ロジックを更新することなくデータ処理手順を個別に更新することができます。 Amazon SageMaker は、推論パイプラインの作成方法に柔軟性をもたらします。データ処理手順では、Scikit-Learn および Apache SparkMLlib で利用可能な組み込みのデータ変換器を使用して、一般的なユースケースのためにデータをある形式から別の形式に処理および変換するか、カスタムの変換器を作成することができます。推論では、Amazon SageMaker で利用可能な組み込みの機械学習アルゴリズムとフレームワークを使用することもできますし、カスタムのトレーニングモデルを使用することもできます。リアルタイム推論とバッチ推論で同じ推論パイプラインを使用できます。推論パイプラインのすべての手順が同じインスタンスで実行されるため、レイテンシーによる影響は最小限になります。 例 この例では、AWS Glue を使用するデータ処理に Apache Spark MLLib を使用し、推論中にデータ処理コードを再利用します。UCI の Machine Learning Repository の Car Evaluation データセットを使用します。目標は、unacc、acc、good、vgoodの値の中から、特定の車の容認可能性を予測することです。根本的には分類問題であり、Amazon SageMaker の組み込みの […]

Read More

Amazon SageMaker で、Scikit-Learn のサポートを追加

Amazon SageMaker は、Docker コンテナの Scikit-Learn Machine Learning ライブラリで事前に構成されています。Scikit-Learn は、一貫性のある Python インターフェイスと文書で十分に立証された API を使用して、データ分析や一般的な Machine Learning アルゴリズムを高品質で実装できる効率的なツールを提供するため、データサイエンティストや開発者にとって人気があります。Scikit-Learn はすばやく実行でき、ほとんどのデータセットや問題に対応できるため、Machine Learning 問題をすばやく繰り返さなくてはならない場合に最適です。TensorFlow や MxNet などの深層学習フレームワークとは異なり、Scikit-Learn は Machine Learning やデータ分析に使用されます。クラスタリング、回帰、分類、次元削減、機能の前処理、およびモデル選択に関して、指導付き学習アルゴリズムと指導無し学習アルゴリズムの範囲から選択できます。 新しく追加された Scikit-Learn ライブラリは、Amazon SageMaker Python SDK で利用可能です。Scikit-Learn スクリプトを作成し、自動モデルチューニングを含む Amazon SageMaker のトレーニング機能を使用することができます。モデルのトレーニングを終えたら、Scikit-Learn モデルを高い可用性のエンドポイントにデプロイして、Auto Scaling して、低レイテンシーでリアルタイムでの予測を行うことができます。また、大規模なバッチ変換ジョブで同じモデルを使用することもできます。 このブログ記事では、Amazon SageMaker で事前に構築された Scikit-Learn ライブラリを使用して、マルチクラス分類モデルを構築、トレーニング、およびデプロイする方法を説明します。 Scikit-Learn モデルのトレーニングとデプロイ この例では、IRIS データセットの決定木分類子をトレーニングします。この例は Scikit-Learn 決定木分類子の例に基づいています。完全な Amazon SageMaker ノートブックをお試しいただけます。ここでは最も重要な部分を強調します。このデータセットは、異なる 3 […]

Read More

Amazon SageMaker Ground Truth でラベル付けしたデータセットを使用して、モデルを簡単にトレーニングする

 データサイエンティストや開発者は、Amazon SageMaker Ground Truth でラベル付けされたデータセットによって機械学習モデルを簡単にトレーニングすることができます。Amazon SageMaker のトレーニングは、AWS マネジメントコンソールと Amazon SageMaker Python SDK API の両方を通じた入力として拡張マニフェスト形式で作成されたラベル付きデータセットを受け入れるようになりました。 先月の AWS re:Invent の期間中に、人間のラベル付け作業者のパブリックワークフォースならびにプライベートワークフォースを支援する機械学習を使用して、ラベル作成コストを最大 70% 節約し、正確なトレーニングデータセットを構築できる Amazon SageMaker Ground Truth を開始しました。ラベル付きデータセットは、それぞれの入力データセットオブジェクトを、ラベルなどの追加のメタデータを使用してファイル内でインライン展開する拡張マニフェストファイル形式で作成されます。以前は、拡張されたデータセットでモデルをトレーニングするために、低レベルの AWS SDK API しか使用できませんでした。本日から、Amazon SageMaker コンソールですばやく簡単に数回クリックするか、ハイレベルの Amazon SageMaker Python SDK を使用して 1 行の API をコールすることで、そうしたトレーニングをすばやく簡単に実行できるようになります。 さらに、 モデルを Amazon SageMaker のパイプモードを使用してトレーニングすることができます。このモードは、Amazon Simple Storage Service (S3) から Amazon SageMaker にデータがストリーミングされる速度を大幅に高速化するので、トレーニングジョブが早く始まり、素早く完了し、 Amazon […]

Read More

Amazon SageMaker の自動モデルチューニングで、トレーニングジョブの早期停止がサポートされるようになりました

2018 年 6 月、Amazon SageMaker 自動モデルチューニングを開始しました。このモデルは、Machine Learning モデルをトレーニングする高性能ハイパーパラメータを自動的に検出する機能です。トレーニング中に学習されたモデルパラメータとは異なり、学習プロセスが開始される前にハイパーパラメータが設定されます。ハイパーパラメータの典型的な使用例としては、確率勾配法の確率を学習する場合があります。デフォルトのハイパーパラメータを使用しても、必ずしも最良のモデルパフォーマンスが得られるわけではなく、高性能ハイパーパラメータを見つける作業は、些細で時間がかかります。自動モデルチューニングを使用すると、Amazon SageMaker は自動的に高性能ハイパーパラメータを見つけ、モデルをトレーニングして、目標メトリクスを最大化します。 構成できるハイパーパラメータの数は、探索中のハイパーパラメータ数の指数関数にあたります。この検索スペースを単純に探索するには、多数のトレーニングジョブが必要となるため、コストが高くなります。この問題を克服するために、Amazon SageMaker はベイズ最適化を使用します。これは、少数のトレーニングジョブに基づいて、異なるハイパーパラメータのパフォーマンスを効率的にモデル化する戦略です。しかし、このアルゴリズムは、トレーニングの終わりには、以前の構成よりも著しく悪化することが判明したハイパーパラメータ構成を探索することがあります。 今日では、早期停止機能を自動モデルチューニングに追加しています。チューニングジョブを起動したときに早期停止することで、Amazon SageMaker は各候補モデルのトレーニング反復(「エポック」)ごとに目標メトリクスを追跡します。Amazon SageMaker は、これまでチューニングジョブで評価されていた以前の最良モデルより、各候補がどれだけ優れているかを評価します。早期停止により、価値のないモデルはすべての反復を完了する前に終了するため、時間を節約し、コストを最大 28 %削減します(アルゴリズムとデータセットによって異なります)。例えば、このブログ記事では Amazon SageMaker を使用した画像分類アルゴリズムによる早期停止を使用して、時間とコストを 23 %まで削減する方法を示します。 エポックごとに目標メトリクスを発信する場合、サポートされている Amazon SageMaker アルゴリズムの組み込みと独自のアルゴリズムを使用して、早期停止することができます。 早期停止を使用する画像分類モデルのチューニング 早期停止の活用方法を示すために、画像分類アルゴリズムの組み込みを使用して画像分類器を構築し、Caltech-256 データセットに対してモデルを調整します。2 つのハイパーパラメータチューニングジョブを実行します。片方は自動早期停止を使わず、もう一方は早期停止を有効にして、他の構成はすべて同じままです。次に、2 つのハイパーパラメータチューニングジョブの結果を終わり頃に比較します。完全なサンプルノートブックはこちらから参照できます。 早期停止なしで、ハイパーパラメータチューニングジョブを開始し起動する ノートブックインスタンスを作成し、データセットを準備し、Amazon S3 にプッシュする手順は省略します。サンプルノートブックがこれらのプロセスを含んでいるため、ここでは説明しません。代わりに、ハイパーパラメータチューニングジョブを開始するところから始めます。 チューニングジョブを作成するには、最初に組み込み画像分類アルゴリズム用のトレーニング推定器 (Estimator) を作成し、チューニングする予定のものを除いて、このアルゴリズムのすべてのハイパーパラメータの値を指定する必要があります。組み込み画像分類アルゴリズムのハイパーパラメータについての詳細は、こちらの文書 を参照してください。 s3_train_data = ‘s3://{}/{}/’.format(bucket, s3_train_key) s3_validation_data = ‘s3://{}/{}/’.format(bucket, s3_validation_key) s3_input_train = sagemaker.s3_input(s3_data=s3_train_data, content_type=’application/x-recordio’) s3_input_validation […]

Read More

Amazon SageMaker ランダムカットフォレストアルゴリズムを使用した Amazon DynamoDB ストリームでの異常検出

異常検出技術の導入を検討したことがありますか? 異常検出とは、分析しているデータの大部分と大きく異なるため信憑性にかける、あまり見かけないアイテム、イベント、あるいは観察を特定するために使用する手法です。  異常検出のアプリケーションは幅広い分野で利用されており、例えば、異常購入や銀行へのサイバー侵入の検出、MRI スキャンでの悪性腫瘍の発見、不正な保険請求の特定、製造時の異常な機械動作の発見、侵入を知らせるネットワークトラフィックの異常なパターンの検出などがあります。 こうしたアプリケーションには多くの市販品がありますが、Amazon SageMaker、AWS Glue、AWS Lambda を使えば、異常検出システムを簡単に実装することができます。Amazon SageMaker は、機械学習モデルの構築、トレーニング、デプロイを、規模を問わず迅速に行う完全マネージド型プラットフォームです。AWS Glue は、完全マネージド型の ETL サービスで、分析のためのデータやモデルの準備が簡単にできます。AWS Lambda は、普及しているサーバーレスのリアルタイムプラットフォームです。これらのサービスを使用すれば、モデルを新しいデータで自動的に更新することができ、その新しいモデルを使って、リアルタイムに異常をより正確に知らせることができます。 このブログ記事では、AWS Glue でデータを準備し、Amazon SageMaker で異常検出モデルをトレーニングする方法について説明します。今回のエクササイズでは、Numenta Anomaly Benchmark (NAB) ニューヨーク市タクシーデータのサンプルを Amazon DynamoDB に保存し、AWS Lambda 関数を用いてリアルタイムでストリーミングしています。 ここで説明するソリューションは、以下のような利点があります。 既存のリソースを最大限に活用して、異常検出を行います。例えば、災害対策 (DR) やその他の目的で Amazon DynamoDB Streams を使用したことがある場合、そのストリームのデータを異常検出に使用できます。加えて、スタンバイストレージは通常、使用率が低いものです。認識しにくいデータは、トレーニングデータに使用できます。 ユーザーの介入なしに、定期的に新しいデータでモデルを自動的に再トレーニングすることができます。 ランダムカットフォレストを組み込んだ Amazon SageMaker アルゴリズムを使えば、簡単に再トレーニングできます。Amazon SageMaker は、安全でスケーラブルな環境で、特定のワークフローに適応できる、柔軟な分散トレーニングオプションを提供します。 ソリューションのアーキテクチャ 次の図は、ソリューションの全体的なアーキテクチャを示しています。 アーキテクチャーにおけるデータ処理の手順は、次のとおりです。 ソース DynamoDB は変更を取得し、それらを DynamoDB ストリームに格納します。 AWS […]

Read More

Amazon SageMaker で、セマンティックセグメンテーションアルゴリズムが利用可能になりました

 Amazon SageMaker は、マネージド型で、無限に拡張可能な機械学習 (ML) プラットフォームです。このプラットフォームを使用すると、機械学習モデルの構築、トレーニング、デプロイが簡単になります。Amazon SageMaker には、画像分類と物体検出のための 2 つの定評があるコンピュータビジョンアルゴリズムがすでに組み込まれています。Amazon SageMaker の画像分類アルゴリズムは、画像をあらかじめ定義されたカテゴリのセットに分類することを学習します。Amazon SageMaker の物体検出アルゴリズムは、境界ボックスを描画し、ボックス内の物体を識別することを学習します。本日、Amazon SageMaker セマンティックセグメンテーションアルゴリズムの開始により、コンピュータビジョンファミリーのアルゴリズムを強化することを発表いたします。 Amazon SageMaker セマンティックセグメンテーションアルゴリズムの一例。PEXELS の Pixabay による写真。 セマンティックセグメンテーション (SS) とは、既知のラベルセットからのクラスを使用して画像内のすべてのピクセルを分類するタスクです。セグメンテーション出力は通常、異なる RGB (クラス数が 255 未満の場合はグレースケール) の値として表現されます。したがって、出力は、入力画像と同じ形状のマトリックス (またはグレースケール画像) です。この出力画像は、セグメンテーションマスクとも呼ばれます。Amazon SageMaker セマンティックセグメンテーションアルゴリズムを使用すると、独自のデータセットでモデルをトレーニングできることに加えて、事前にトレーニングされたモデルを使用して希望通りに初期化を行うこともできます。このアルゴリズムは、MXNet Gluon フレームワークと Gluon CV ツールキットを使用して構築されています。セマンティックセグメンテーションモデルを学習することができる、次の 3 つの最先端の組み込みアルゴリズムの選択肢を提供します。 fully-convolutional network (FCN) pyramid-scene-parsing network (PSP) DeepLab-V3 すべてのアルゴリズムに、2 つの異なるコンポーネントがあります。 エンコーダまたはバックボーン。 デコーダ。 バックボーンは、画像の特徴の信頼できるアクティブ化マップを作成するネットワークです。デコーダは、エンコードされたアクティブ化マップからセグメンテーションマスクを構築するネットワークです。Amazon SageMaker セマンティックセグメンテーションは、バックボーンのオプションとして、事前にトレーニングされた、またはランダムに初期化された ResNet50 または ResNet101 の選択肢を提供します。バックボーンには、元は ImageNet 分類タスクでトレーニングされた、事前トレーニング済みのアーティファクトが付属しています。これらは、ユーザーがセグメンテーションのために FCN […]

Read More