Amazon Web Services ブログ

Category: Artificial Intelligence

Amazon Lex と Amazon Elasticsearch Service を使用してドキュメントサーチボットを構築する

私たちはドキュメントの検索に多大な時間を費やしています。ドキュメントストアにまずアクセスし、関連するドキュメントを検索します。ドキュメント内のテキストを検索するには、別の検索を行う必要があります。 このブログ記事では、音声やテキストを使用してドキュメントを検索する方法について説明します。  検索結果は、検索するドキュメントの中で一致する段落の最初のいくつかの文字も表示します。最後に、ボットをウェブアプリケーションと統合します。実践的な状況において、この検索機能は利用できます。例えば、顧客のビジネスで技術者が不完全なマシンで作業している場合、チャットボットを使用して必要なドキュメントを検索できます。チャットボットについては、QnA ボットブログで説明していますが、このブログ記事では、インテント抽出とインポート / エクスポート機能を使った対話管理を解説します。 さらに、Amazon S3 を使用してドキュメントストアを作成し、Amazon Elasticsearch Service (Amazon ES) でドキュメントをインデックスし、プロセス全体を自動化する方法についても説明します。 最終的なボットは、次のスクリーンショットのようになります。: アーキテクチャ アーキテクチャには、Amazon S3 を使って開発したドキュメントストアがあり、ドキュメントは Amazon ES を使用してインデックスを作成しています。インデックスは、Amazon S3 オブジェクト作成イベントに登録済みの AWS Lambda 関数を使って作成します。もう一つの AWS Lambda 関数は、Amazon Lex インテントを実行するのに使用します。最後に、ウェブアプリケーションと Amazon Lex を統合します。Amazon Cognito サービスは、ウェブアプリケーションから Amazon Lex サービスへの呼び出しを認証し、認可します。 使用するコンポーネント Amazon Lex – サーチボットのための対話型インターフェースを構築します。 AWS Lambda – Amazon Lex サービスが提供するインテントを実行するのに、この関数を使用します。 Amazon Elasticsearch Service – 製品の FAQ、およびインストールのためのドキュメントのインデックスを作成します。 Amazon […]

Read More

【開催報告】Digital Advertising Japan Seminar 2018 – Machine Learning 事例祭り –

こんにちは。AWS ソリューションアーキテクトの八木達也 ( @ygtxxxx ) です。 7月23日に、「Digital Advertising Japan Seminar 2018 – Machine Learning 事例祭り –」を開催いたしました。 AWSジャパン主催でデジタル広告業界の方向けのイベントを開催するのは2年ぶりでしたが、定員60人のところ55名の方にお集まりいただき、盛況となりました。             このイベントは「Digital Advertising、AdTech 領域における Machine Learningの実践知」を「互いに学び合う」ことができる場を作ることを目標としていたため、AWSメンバーによるプレゼンテーションだけではなく、お客様プレゼンテーションを中心としたAGENDAを構成しました。機会学習という領域における、テクノロジー視点でのお取組み、組織育成視点でのお取組み、それぞれの視点で最先端な活動をなさる方々よりご登壇を頂きました。 まずは主催者の唐木/八木よりオープニングセッションを行いました。 唐木より全体の説明を行い、八木より「Machine Learning for Digital Advertising」というタイトルでプレゼンテーションを行いました。 Machine Learning for Digital Advertising from Amazon Web Services Japan 次に、アナリティクス スペシャリスト ソリューションアーキテクトの志村より「AWS ML Services Update」というタイトルでプレゼンテーションを行いました。 AWS ML Update from Amazon […]

Read More

AWS 深層学習 AMI に ONNX が含まれ、深層学習フレームワーク間でのモデルの移植性が向上

Ubuntu および Amazon Linux 用の AWS 深層学習 AMI (DLAMI) に完全に設定済みの Open Neural Network Exchange (ONNX) がプリインストールされることになり、深層学習フレームワーク間でのモデルの移植性が向上しました。このブログ記事では、ONNX を紹介し、DLAMI で ONNX を使用してフレームワーク間でモデルを移植する方法を示します。 ONNX とは ONNX は、オープンソースライブラリであり、シリアライゼーションフォーマットを使って深層学習モデルをエンコードおよびデコードします。ONNX は、ニューラルネットワークの計算グラフのフォーマットと、ニューラルネットワークアーキテクチャで使用される演算子の広範なリストを定義します。ONNX は、Apache MXNet、PyTorch、Chainer、Cognitive Toolkit、TensorRT などの一般的な深層学習フレームワークですでにサポートされています。普及しているツールで ONNX のサポートが拡大することにより、機械学習の開発者は、ツールの違いを超えてモデルを移動し、必要な作業に最適なツールを選択することができるようになります。 Chainer モデルを ONNX にエクスポートする それでは、Chainer モデルを ONNX ファイルにエクスポートする手順を見てみましょう。 まず、Ubuntu または Amazon Linux で DLAMI のインスタンスを起動します。以前に起動したことがない場合は、DLAMI を使い始める方法を説明しているこの素晴らしいチュートリアルをご覧ください。 SSH 経由で DLAMI に接続したら、DLAMI に設定済みでプリインストールされている Chainer Python 3.6 […]

Read More

機械学習の正確性に関する考察

本ブログ記事は、機械学習の正確性とバイアスについての大まかな考えをいくつかまとめたものです。 まず、顔認識トライアルを実施した最近の ACLU ブログ記事に関する意見から始めましょう。ACLU は Rekognition を使って、公開されている 25,000 枚の逮捕写真を用いた顔データベースを構築してから、アメリカ連邦議会の現議員全員の公開写真でデータベースの顔の類似性検索を実行しました。この検索では 535 件中 28 件の誤一致 (信頼水準 80%) が見つかり、これは 5% の誤認 (「偽陽性」とも呼ばれます) 率、95% の 正解率となります。ACLU はデータセット、手法、または詳細な結果を公開していないので、ここでは ACLU が公表した事柄に基づいて判断することしかできませんが、ACLU の主張に関しては以下のように考えています。 Rekognition における顔認識 API のデフォルト信頼性しきい値は 80% です。これは、広範な一般的ユースケース (ソーシャルメディアで著名人を認識する、または写真アプリでよく似た家族を認識するなど) には適切ですが、公共安全のユースケースには適切ではありません。ACLU が使った 80% の信頼性しきい値は、個人の正確な認識を確実にするには低すぎる値です。このレベルの信頼性では、偽陽性は避けられません。 AWS では、公開されている AWS ドキュメントに記載されているとおり、精度の高い顔の類似性一致が重要となるユースケースには 99% を推奨しています。偽陽性に対する信頼性しきい値の影響を説明するために、AWS は、学究的環境で一般的に使用される 850,000 を超える顔のデータセットを使って顔コレクションを作成し、テストを実施しました。次に、アメリカ連邦議会 (上院および下院) の全議員の公開写真を使い、ACLU ブログと似た方法でこのコレクションの検索を行いました。 信頼性しきい値を 99% (AWS ドキュメントで推奨されている値) に設定した場合、より大きな顔のコーパス (ACLU のテストよりも […]

Read More

TensorFlow コンテナと Amazon SageMaker での「独自のアルゴリズムの導入」を活用する、カスタムラベルの転移学習

データ科学者および開発者は、Amazon SageMaker の完全マネージド型機械学習サービスを使用して機械学習 (ML) モデルを構築およびトレーニングし、実稼働対応可能なレベルでホストされている環境に直接デプロイすることができます。 このブログ記事では、Amazon SageMaker を使用して、トレーニングと推論のための独自のコードで TensorFlow コンテナによる転移学習を行う方法を説明します。 転移学習は、追加のカスタムラベルのために AlexNet や ResNet[1] などの既にトレーニングされたニューラルネットワークを再トレーニングするためにコンピュータビジョンの問題で使用されるよく知られているテクニックです。また、Amazon SageMaker は、組み込みの画像分類アルゴリズムによる画像分類のための転移学習もサポートしており、独自のラベル付き画像データを使用して ResNet[1] ネットワークを再トレーニングすることもできます。Amazon SageMaker についての詳細は、この画像分類のドキュメントを参照してください。転移学習および関連するガイドラインをいつ使用するかを理解するには、こちらをご覧ください。 Amazon SageMaker の組み込みの画像分類アルゴリズムは幅広い種類の用途に適していますが、事前にトレーニングされたネットワークとそれがトレーニングされた画像データの異なる組み合わせが必要となる場合があります。たとえば、念頭に置いておくべき基準のいくつかは、元のデータセットと新しいデータセットの類似性、新しいデータセットのサイズ、必要なラベルの数、モデルの精度、トレーニングしたモデルのサイズ、そして再トレーニングに必要なコンピューティング能力の量などです。仮に、トレーニングしたモデルをハンドヘルドデバイスにデプロイしようとしているなら、MobileNet などのフットプリントが小さいモデルを採用する方が良いかもしれません。あるいは、コンピューティング効率がより良いモデルが欲しいなら、Xception のほ方が VGG16 や Inception よりも優れています。 このブログ記事では、ImageNet データセットで事前にトレーニングした inception v3 ネットワークを採用し、Caltech-256 データセット (Griffin、G. Holub、AD. Perona、P. The Caltech 256. Caltech Technical Report) を使用して再トレーニングします。Amazon SageMaker を使用すると、独自のコンテナをバンドルして Amazon Elastic Container Registry (Amazon ECR) にインポートするのが非常に簡単になります。あるいは、Amazon […]

Read More

Amazon Comprehend が構文解析をサポート

Amazon Comprehend が、Syntax API をサポートするようになりました。 これにより、テキストを (たとえば、単語の境界を抽出するために) トークン化し、対応する品詞 (PoS) を単語毎にトークン化することができます。 本日、Amazon Comprehend は、顧客のコメントが否定的であるか肯定的であるかを知ることや、たとえば「Amazon」を「組織」として固有名詞を分類して特定することなど、ユースケースの分析を可能にします。この新しい Syntax API を使用すると、顧客は最も詳細なレベルのテキストとその単語自体の構文的な意味を分析できるため、より幅広いユースケースをカバーするテキスト文書をより細かく分析することができます。 たとえば、キッチンブレンダー製品を発売したばかりで、お客様のコメントを分析して、どの色が最も多く話題に挙げられているかを調べたいとします。 API に対して次の文字列を送信します。 「I love my new red kitchen blender」 応答は、それぞれの単語、トークン ID、単語自体、オフセット (テキスト内でのその単語の位置)、品詞タグ (形容詞、名詞、動詞など)、信頼度スコア (サービスが、正しい品詞タグであると確信できる度合) を返します。 以下は、応答の例です。 { “SyntaxTokens”: [ { “Text”: “It”, “EndOffset”: 2, “BeginOffset”: 0, “PartOfSpeech”: { “Tag”: “PRON”, “Score”: 0.8389829397201538 }, “TokenId”: 1 }, { “Text”: “is”, […]

Read More

Amazon SageMaker を使用して画像を分類する

イメージ分類と画像内の物体検出が最近注目されてきていますが、アルゴリズム、データセット、フレームワーク、およびハードウェアの機能の向上が組み合わさった結果です。こうした改良のおかげで技術が一般大衆化し、イメージ分類のためのソリューションが独自で作成できるようになったのです。 画像内の物体検出は、以下の画像が示すように、こうしたアクティビティを実行するアプリケーションの中でも最も重要な機能です。 人の進路と物体追跡 実際の店舗で、商品の再配置を警告する 視覚的な検索 (画像を入力して検索する) イメージ分類および物体検出に使う技術は、深層学習 (DL) に基づいているのが現状です。DL は、多層のニューラルネットワーク (NN) あるいはディープニューラルネットワークを処理するためのアルゴリズムに焦点を当てた機械学習 (ML) のサブ領域です。一方、ML は人工知能 (AI) のサブ領域で、コンピューターサイエンスの分野です。 誰でもこれらの技術にアクセスできますが、実際のビジネスプロセスをサポートするエンドツーエンドのソリューションとして、これらの要素をつなぎ合わせて使うことはまだ難しい状況です。Amazon Rekognition は、非常に正確な顔分析と画像や動画の顔認識ができるシンプルな API を装備しており、すぐに利用できるサービスなので、最初に選ぶならよい選択肢かもしれません。さらに、顔を検出、分析、比較することができるため、多岐にわたるユーザー検証、人数計算、公共の安全といったユースケースにも利用できます。Amazon Rekognition のドキュメントを読めば、シンプルな API 呼び出しでこれらの機能全てをアプリケーションに簡単に追加できることが分かります。 ただし、ビジネス上でカスタムでのイメージ分類が必要な場合は、機械学習モデルを作成するためのパイプライン全体をサポートするプラットフォームが必要です。Amazon SageMaker は、そのためのものです。Amazon SageMaker は、ML モデル開発の全ての手順、つまりデータ検索と構築、トレーニング、および ML モデルのデプロイをサポートする、完全マネージド型のサービスです。Amazon SageMaker を使用すると、どんなビルトインアルゴリズムでも選択でき使用することができるので、市場投入までの時間と開発コストを削減できます。詳細は、「Amazon SageMaker でビルトインアルゴリズムを使用する」をご参照ください。 カスタムの画像識別子を作成する このブログ記事は、服装品やアクセサリーを識別するための画像識別子の作成を目標としています。これらのアイテムの画像がいくつかあり、それらを見て、何の物体が各画像に含まれているかを言う (予測する) モデルが必要だとしましょう。Amazon SageMaker はすでにビルトインのイメージ分類アルゴリズムを装備しています。これで、データセット (画像コレクションと各オブジェクトのそれぞれのラベル) を準備し、モデルのトレーニングを開始するだけです。 公開データセットを使用します。これは Fashion-MNIST と呼ばれる ML アルゴリズムをベンチマークするための新しい画像データセットです。データセットは、6 万例のトレーニングセットと 1 万例のテストセットで構成されています。各例は、ラベルまたはクラスに関連付けられた、28×28 のグレースケール画像です。データセットには、T […]

Read More

AWS 深層学習 AMI が、最適化された TensorFlow 1.9 および Keras 2 サポートの Apache MXNet 1.2 で、Amazon EC2 インスタンスでの深層学習を高速化

Ubuntu および Amazon Linux 用の AWS Deep Learning AMI には、ソースから直接構築され、Amazon EC2 インスタンス全体で高性能のトレーニングが可能となるように微調整されている、最適化された TensorFlow 1.9 のカスタムビルドが付属しています。さらに、この AMI には、パフォーマンスとユーザビリティが何点か改善されている最新の Apache MXNet 1.2、高性能のマルチ GPU トレーニングをサポートする新しい Keras 2-MXNet バックエンド、MXNet モデルのトレーニング向けにデバッグと可視化が改善された新しい MXBoard ツールが搭載されています。 最適化された TensorFlow 1.9 と Horovod によるより高速なトレーニング Amazon Machine Images (AMI) には、ソースから直接構築され、インテル Xeon Platinum プロセッサ搭載の Amazon EC2 C5 インスタンスでのトレーニングを高速化できる、コンピューティングに最適化された TensorFlow 1.9 のカスタムビルドが付属しています。C5.18xlarge インスタンスタイプ上で、合成 ImageNet データセットに対し、当社の TensorFlow 1.9 カスタムビルドを使用して […]

Read More

Amazon SageMaker が、バッチ変換機能と TensorFlow コンテナ向けのパイプ入力モードを追加

数日前のニューヨーク Summit で、Amazon SageMaker の 2 つの新しい機能が始まりました。ペタバイトのデータに対して非リアルタイムシナリオで予測を行うことができるバッチ変換と呼ばれる新しいバッチ推論機能と、TensorFlow コンテナのためのパイプ入力モードのサポートです。SageMaker は大好きなサービスの 1 つであり、このブログや機械学習のブログで幅広く取り上げてきました。実際、SageMaker チームのインベーションの速いペースは、追いつくのが少し難しいです。SageMaker のハイパーパラメータ最適化による自動モデルチューニングに関する最後の記事以降に、このチームは 4 つの新しい組み込みアルゴリズムと多数の新機能を発表しています。それでは、新しいバッチ変換機能を見てみましょう。 バッチ変換 バッチ変換機能は、データを変換して推論を生成するための高性能かつ高スループットの方法です。これは、大量のバッチデータを扱う場合、1 秒未満のレイテンシーを必要としない場合、あるいはトレーニングデータを前処理して変換する必要がある場合に理想的です。何よりもよい点は?この機能を利用するために、わずか 1 行のコードを追加する必要さえありません。既存のモデルをすべて使用して、それらに基づいてバッチ変換ジョブを開始することができます。この機能は追加料金なしで利用でき、基盤となるリソースについてのみ支払うことになります。 物体検出アルゴリズムでこれをどうやって行うのかを見てみましょう。サンプルのノートブックに従って、物体検出モデルのトレーニングを行いました。それでは、SageMaker コンソールに移動し、バッチ変換サブコンソールを開きます。 そこから、新しいバッチ変換ジョブを開始することができます。 ここで、自分の変換ジョブに名前をつけ、使用するモデルを選択し、使用するインスタンスの数とタイプを選択することができます。さらに、同時に推論に送信するレコードの数とペイロードのサイズに関する詳細を設定することができます。これらを手動で指定しないと、SageMaker がいくつかの適切なデフォルトを選択します。 次に、入力の場所を指定する必要があります。マニフェストファイルを使用するか、S3 の場所にあるすべてのファイルをロードするだけです。ここでは画像を扱っているので、入力のコンテンツタイプを手動で指定しました。 最後に、出力の場所を設定してジョブを開始します! ジョブが実行されると、ジョブの詳細ページを開いて、Amazon CloudWatch のメトリクスとログへのリンクをたどることができます。 ジョブが実行中であることがわかります。S3 で結果を確認すると、それぞれの画像について予測されるラベルが表示されます。 変換は、検出した物体を含む入力ファイルごとに 1 つの出力 JSON ファイルを生成しました。 ここから、AWS Glue でバケットのテーブルを作成し、Amazon Athena で結果を照会するか、Amazon QuickSight で視覚化するのは簡単です。 もちろん、これらのジョブを SageMaker API からプログラムで開始することも可能です。 自分のコンテナでバッチ変換を使用する方法についての詳細は、ドキュメントに説明があります。 TensorFlow のためのパイプ入力モード パイプ入力モードでは、高度に最適化されたマルチスレッドバックグラウンドプロセスを使用して、Amazon Simple Storage […]

Read More

Amazon SageMaker を使用して、整形外科的病理を予測するためのモデルを作成する

人工知能 (AI) および機械学習 (ML) の分野は、ヘルスケア産業、特に医用画像化において、勢いを増しつつあります。ML に対する Amazon SageMaker のアプローチは、ヘルスケア分野において将来有望であると言えます。ML は、産業間全体のどの分野においても、適用可能であると考えられています。ヘルスケア分野の範囲で言えば、ML は最終診断を下すための重要な要素として、放射線検査または検査報告のような役割を果たすことが可能なのです。 このブログ投稿では、UCI ML Dataset を使用して、整形外科における ML の使用について説明し、脊椎の病状予測を自動化することを目指します。この技術は、診断時間を短縮し、ML を用いた拒絶選択肢技術を促すことによって、診察訪問数および / または処方数を最小限に抑える対策について考えるよい機会となるでしょう。 この技術により、難しい症例は整形外科医などの専門家に委ねられることになるでしょう。データセットの 2 つの診断である、椎間板ヘルニアおよび脊椎すべり症は、筋骨格疼痛障害を引き起こしうる脊髄病変の 1 つです。疼痛障害のためのオピオイド処方を最小限に抑えるため、リスクにさらされている患者を客観的かつ効果的に特定し治療を行うことのできる ML 技術を駆使することで、コンピュータ支援診断システムに可能性を見出すことができるのです。 このブログの記事では、これらのデータセットをダウンロードして、脊柱の特徴または特性に基づいて、正常または異常な整形外科的あるいは脊髄の病状 (ヘルニアまたは脊椎すべり症) を有するかどうかを予測するための例を提示しています。これらの病状の特性を考慮する予備診断ツールは、高い偽陽性率を有します。MRI は、腰椎椎間板ヘルニアの抑制を検出するのに使用しますが、この技法では ~ 33% の偽陽性率を有します。診断に用いる脊髄ブロック (注射) は、22% から 47% の偽陽性率があります。(注: これを ML モデルを評価する際のベースラインとして使用します)。 これらのデータセットは、マルチクラスおよびバイナリ分類問題の両方を提示します。 病理予測のための Amazon SageMaker での ML モデルの作成 この投稿では、マルチクラスのカテゴリ分類モデルとバイナリ分類モデルという 2 つのモデルを作成し、両方を評価します。マルチクラスのカテゴリ分類は、正常、椎間板ヘルニア、または脊椎すべり症の病状を有するかどうかを予測します。バイナリ分類はバイナリ応答を予測します。0 – 正常、または 1 – […]

Read More