Category: Amazon AI


In the Research Spotlight: Zornitsa Kozareva

これは、ドイツのポツダム市にある Hasso-Plattner-Institut の Haojin Yang、Martin Fritzsche、Christian Bartz、Christoph Meinel 各氏によるゲスト投稿です。低パワーデバイスでのディープラーニングの実際の実装に関する研究を見るのはわくわくします。この作業は、強力で知的な機能を毎日の生活に拡大するうえで重要な役割を果たします。

近年、ディープラーニングテクノロジは非常に優れたパフォーマンスと多くのブレークスルーを学会と業界の両方で達成しています。しかし、最新鋭のディープモデルは計算コストが高く、大きなストレージ容量を消費します。ディープラーニングは、モバイルプラットフォーム、ウェアラブルデバイス、自律ロボット、IoT デバイスなどの領域で多数のアプリケーションによって強く要求されています。このような低パワーデバイスにおいてディープモデルをどのように効率的に適用するかが課題となります。

最近提案されたバイナリニューラルネットワーク (BNN) は、標準の算術演算ではなくビット単位演算を提供することで、メモリサイズとアクセスを大幅に減らします。最新鋭のディープラーニングモデルは、実行時に効率を大幅に向上させ、エネルギー消費を低くすることで、低パワーデバイスで実装することができます。この手法を開発者フレンドリーな OpenCL と組み合わせることで (VHDL/Verilog と比較した場合)、FPGA がディープラーニング用の実行可能なオプションとなります。

この投稿では、BMXNet についてご紹介します。これは Apache MXNet に基づくオープンソースの BNN (バイナリニューラルネットワーク) です。開発された BNN レイヤーは他の標準ライブラリコンポーネントにシームレスに適用でき、GPU および CPU モードの両方で機能します。BMXNet は Hasso Plattner Institute のマルチメディア研究グループによって管理、開発され、Apache ライセンスに基づいてリリースされています。このライブラリ、いくつかのサンプルプロジェクト、およびトレーニング済みバイナリモデルのコレクションは、https://github.com/hpi-xnor からダウンロードして入手可能です。

フレームワーク

BMXNet は、入力データと重みのバイナリ化をサポートするアクティベーション、畳み込み、および完全に接続されたレイヤーを提供します。これらのレイヤーは、対応する MXNet バリアントに対するドロップインリプレースメントとして設計されていて、QActivationQConvolution、および QFullyConnected と呼ばれます。さらに、レイヤーによって計算されるビット幅を制御する追加のパラメータ act_bit を提供します。MXNet と比較した、提案のバイナリレイヤーの Python での使用例をリスト 1 およびリスト 2 に示します。当社は、ネットワークの最初のレイヤーおよび最後のレイヤーにバイナリレイヤーは使用しません。使用すると正確性が大幅に低下する可能性があるためです。BMXNet での BNN の標準ブロック構造は、次のリストに示すように、QActivation-QConvolution または QFullyConnected-BatchNorm-Pooling として実行されます。

従来のディープラーニングモデルでは、完全に接続された畳み込みレイヤーはマトリックスのドット製品に大きく依存していて、それにより膨大な浮動小数点演算が必要になります。一方、バイナリ化された重みと入力データの操作では、CPU 命令 xnor および popcount を利用することで、高パフォーマンスのマトリックス乗算が可能になります。最新のほとんどの CPU は、これらのタイプの演算に最適化されています。2 つのバイナリマトリックス A◦B のドット積を計算するために、乗算演算は不要になります。A の各行と B の各列との要素単位の乗算と要約は、最初にそれらを xnor 演算で組み合わせ、次に結果でビット数を 1 (母集団の数) に設定してカウントすることで概算されます。この方法により、こうしたビット単位演算のハードウェアサポートを活用できます。この概算カウント命令は SSE4.2 をサポートする x86 および x64 CPU で利用でき、ARM アーキテクチャでは NEON 命令セットに含まれています。これらの命令を利用した、最適化されていない GEMM (General Matrix Multiplication) 実装をリスト 3 に示します。

(more…)

Build an Autonomous Vehicle on AWS and Race It at the re:Invent Robocar Rally

自動運転車は近い将来に車道を埋め尽くすことが見込まれています。ディープラーニングと自動運転のアプリケーションの進歩がこの自動運転車を実現しました。このポストでは、Amazon AI サービスを活用したリモートコントロール (RC) 自動車を製作する方法のチュートリアルを紹介していきます。

通常、各自動運転車には高度なテレメトリを提供する多くのセンサーが搭載されています。このテレメトリは、個々の自動車の運転と共に、ユーザーエクスペリエンスを向上するために使用できます。こういった向上の例には、スマートドライブルーチングによる時間の短縮、車両航続可能距離と効率の向上や安全性とクラッシュリポートの増大などがあります。AWS では、TuSimple などのカスタマーが Apache MXNet を使用した繊細な自動化プラットフォームを構築しました。最近では、TuSimple が 200 マイルドライバーレス運転を成功しました。

ディープラーニング、AWS IoT と人工知能 (AI) の技術による運転の認知を目的として、AWS はワークショップ形式のハッカソンである Robocar Rally を re:Invent 2017 で開催します。このポストは、開発者を対象に自動化 AI 技術を学習し、ハッカソンに備えるためのブログポストと Twitch ビデオシリーズの第 1 弾となります。ハッカソンについての詳細は、Robocar Rally 2017 をご覧ください。

このチュートリアルでは、Donkey という名称のオープンソースプラットフォームを活用します。希望する場合には、お手持ちの 10 分の 1 スケールの電気自動車で体験することもできます。ただし、Donkey プロジェクトで使用される 16 分の 1 スケールの RC カーの使用がより推奨されます。

次の 2 本のビデオでは、これから説明するチュートリアルを使用して AWS で製作した 2 台の自動車を紹介しています。

自動車ビルドプロセス

自動運転車の組立てと設定のプロセスは、このレポで説明しています。このレポには、素材の完全リストと個々のコンポーネントの購入場所を示すリンクも含まれています。主なコンポーネントは、RC カー、Raspberry Pi、Pi カメラと Adafruit Servo HAT となり、この合計額は 250 ドル以下です。ステレオカメラ、LIDAR データコレクタや加速度計などのさまざまな追加センサーを購入することもできます。

基本的なレベルの性能と工程を確実にすることで、未分化状態の運用負荷を最小限に抑えるために、この Github レポ の手順に従うことが推奨されます。

(more…)

Amazon Lex と Amazon Alexa を使用した質疑応答ボットの作成

ユーザーの質問に対する回答を持っていますが、ユーザーが質問をして適切な回答を得る良い方法が必要です。多くの場合、ユーザーはヘルプデスクに電話するか、サポートフォーラムに投稿しますが、ストレスが高まり、組織にとってコストがかかります。チャットボットがあれば、顧客にとって便利でしょう。興味深いことに、最近の調査は、ユーザーの 44% が人間と話すよりもチャットボットと話すことを望んでいます。

この投稿では、QnABot (「キューアンドエーボット」と発音) と呼ばれるサンプルソリューションについて説明します。 QnABot は、Amazon LexAmazon Alexa を使用して、「質疑応答」のための便利なインターフェイスを提供します。これにより、ユーザーは質問をして関連する回答をすばやく得ることができるようになります。

Amazon Lex を使用すると、音声とテキストチャットアクセスの両方を既存のアプリケーションに統合できます。Amazon Alexa を使用すると、Amazon Echo または Alexa Voice Service 対応デバイスを自宅や職場で使用しているユーザーに、ハンズフリー音声インターフェイスを提供できます。QnABot は両方の長所を最大限に活用しています。

QnABot は、Amazon Elasticsearch Service (Amazon ES) を使用して質問と回答を検索可能にします。ユーザーが質問をすると、Amazon ES の強力な全文検索エンジンが背後で使用され、その質問に最も合った回答が検索されます。

以下のセクションでは、次のことを行う方法について説明します。

  • QnABot を AWS アカウントにデプロイする。このブログでは、お客様が既に AWS を利用していることを前提としています。アカウントをまだ作成していない場合は、AWS ホームページの [Create an AWS Account] を選択してください。
  • コンテンツデザイナー UI を使用して、質問と回答を QnABot に挿入する。
  • ウェブクライアント UI で音声またはチャットを使用して質問をする。
  • 最新の Amazon Echo デバイスを使用してハンズフリーで質問をする。
  • QnABot のコンテンツのトラブルシューティングと調整を行って、間違った回答が表示される可能性を最小限に抑える。
  • 画像やウェブリンクによって回答を強化する。

さらに、QnABot のしくみについても詳しく調べ、ニーズに合わせて強化するためのアイデアも示します。

(more…)

Apache MXNet と Apple Core ML を使用して iOS に Machine Learning を導入

Apple が Core MLWWDC 2017 でリリースしたことにより、iOS、macOS、watchOS、tvOS の開発者が Machine Learning とアプリを容易に統合できるようになりました。開発者は数行のコードでインテリジェントな新機能を取り入れることができます。Core ML により、モバイル開発者が Machine Learning を使いやすくなります。さらにラピッドプロトタイピングと別のセンサー (カメラ、GPS など) の使用も有効にし、今まで以上によりパワフルなアプリを構築することができます。

MXNet コミュニティのメンバーと Apple や Amazon ウェブ サービス (AWS) からの協力者により、MXNet を使用して構築した Machine Learning モデルを Core ML 形式に変換するツールが作成されました。このツールにより、開発者は Apple デバイス対象の Machine Learning を使用するアプリを構築しやすくなりました。この変換ツールを使うと、ディープラーニングを有効にしたアプリケーションで高速パイプラインを利用できます。Apple デバイスでの推測のランタイムを高速にするために MXNet を使用し、AWS クラウドで効率的な分散モデルトレーニングにスケーラブルから移動することができます。

このコンバーターツールのリリースをサポートするため、優れた iOS アプリを構築しました。イメージの場所を推定する LocationNet モデルを紹介した AWS AI ブログの記事「AWS EC2 で MXNet と Multimedia Commons データセットを使用してイメージの場所を推定する (Estimating the Location of Images Using MXNet and Multimedia Commons Dataset on AWS EC2)」に影響を受けました。

このブログ記事では、MXNet モデルを Core ML への変換や既存モデルの変換を行うための環境をセットアップする方法、Swift で作成したサンプル iOS アプリにインポートする方法について説明します。iOS アプリはモデルにイメージをフィードします。これはそのイメージが撮影された場所を推定し、インタラクティブなマップで表示します。パフォーマンスにおいては、iOS 11 ベータ版をインストールした実際の iOS デバイス (iPhone など) でアプリを実行することを推奨していますが、Xcode 9.0 ベータ版に搭載されている Simulator を使用することも可能です。

このブログ記事を書いている現在、Xcode 9、iOS 11、Core ML はまだベータ版の段階にあるため、Xcode と iOS をダウンロードするには Apple Developer Program のアカウントが必要になります。今年末に一般公開された後は、Mac の App Store や iOS デバイスのソフトウェアアップデートで取得することができます。

MXNet とコンバーターツールのインストール

ツールは macOS High Sierra 10.13 ベータ 8 でインストールされテスト済みです。Mac で Core ML モデルの推論を実行しない限り、macOS El Capitan (10.11) 以降のバージョンでコンバーターを実行することができます。

コンバーターツールを実行するには、Python 2.7 をインストールしている必要があります。

MXNet フレームワークと mxnet-to-coreml ツールをインストールするには次のコマンドを実行します。

pip install mxnet-to-coreml

MXNet モデルの変換

LocationNet モデルのトレーニングには、AWS Multimedia Commons データセットからのジオタグが付けられたイメージを使用する単一の p2.16xlarge Amazon EC2 インスタンスで MXNet が使用されています。これは MXNet Model Zoo で公的に共有されています。

他の MXNet モデルと同様に、LocationNet は 2 つのパートで構成されています。

  • モデル定義を含む JSON ファイル
  • パラメータを含むバイナリファイル

Amazon S3 に保存されている .json モデル定義.params モデルパラメータのファイルをダウンロードします。

そして、GitHub リポジトリからモデルのトレーニングで使用したジオグラフィックセルを含むクラスファイル、grids.txt をダウンロードする必要があります。これには Google の S2 Geometry Library を使用し、トレーニングデータでクラスを作成しました。このテキストファイルにある各ラインは S2 セルトークン、緯度、経度です (例: 8644b594 30.2835162512 -97.7271641272)。iOS アプリの Swift コードは S2 セルトークンの情報を排除し座標のみを使用します。

変換ツールの GitHub リポジトリで説明したように、モデルを変換します。

すべて同じディレクトリにダウンロードしたら、次のコマンドを実行します。

mxnet_coreml_converter.py --model-prefix='RN101-5k500' --epoch=12 --input-shape='{"data":"3,224,224"}' --mode=classifier --pre-processing-arguments='{"image_input_names":"data"}' --class-labels grids.txt --output-file="RN1015k500.mlmodel"

内部的には、モデルは最初に MXNet によりロードされ、メモリでシンボリックグラフ全体を再作成します。コンバーターはこのシンボリックグラフをウォークスルーし、各オペレーターを Core ML に相当するように変換します。コンバーターに提供済みの引数にはグラフを生成するために MXNet が使用しているものもあります。その他は入力の事前処理 (ニューラルネットワークに渡す前) や特定の方法でニューラルネットワークの出力を処理するために Core ML により使用されます。

コンバーターツールがモデルの複数のレイヤーを処理しているのを確認してから、ファイル名が生成されていることを SUCCESS で確認します。後のステージで結果として生成されるファイル RN1015k500.mlmodel を Xcode プロジェクトにインポートします。

(more…)

Amazon Lex ボットのスキーマを Alexa Skills Kit にエクスポート

Alexa スキルの作成プロセスをシンプルにするため、Amazon Lex チャットボットのスキーマを Alexa Skills Kit にエクスポートできるようになりました。

Amazon Lex が Amazon Lex チャットボットの定義を Alexa Skills Kit (ASK) に追加できる JSON ファイルとしてエクスポートできるようになりました。ASK にボットのスキーマファイルを追加すると、Amazon Echo、Amazon Dot、Amazon Look、Amazon Tap、Amazon Echo Show、Alexa を有効にしたサードパーティ製のデバイスで使用する Alexa スキルを構築できます。JSON 設定ファイルには発話、スロット、プロンプト、スロットタイプを含む Amazon Lex チャットボットの構造が含まれています。エクスポート機能は Amazon Lex チャットボットで Alexa スキルの作成プロセスをシンプルにすることができます。

Alexa スキルを作成するには、次のステップを実行して ASK ポータルにある Amazon Lex ボットの定義ファイルを使用できます。手順については次をご覧ください。

Amazon Lex コンソールから

  1. ボットの作成、構築、発行が完了したら開発したボットリストを含むページに戻ります。
  2. ラジオボタンを使ってエクスポートしたいボットを選択します。ボットを選択するとページ上部の [Actions] タブが有効になります。
  3. [Actions] タブのドロップダウンメニューの項目から [Export] を選択し、モーダルダイアログに従い [Alexa Skills Kit] をプラットフォームとして選択しバージョンを選びます。
  4. [Create] をクリックします。ボットスキーマの JSON ファイルを含む Zip ファイルが生成されます。

これで、Amazon Alexa スキルで Amazon Lex ボットスキーマを使う準備ができました。

(more…)

AWS のディープラーニング

私のようなタイプの人であれば、人工知能 (AI) や機械学習 (ML)、ディープラーニングは実に興味深く胸を躍らせるトピックではないかと思います。AI、ML、ディープラーニングが今まで以上に幅広く利用されるようになるに連れ、Dr. Issac Asimov 氏がサイエンスフィクションで描いた「スター・ウォーズ」に出てくるようなロボット工学そして医学の進歩、さらには「スタートレック」のキャプテンカークやそのクルーに「誰も行ったことのない場所へ、勇敢に突き進もう (to boldly go where no man has gone before)」と言わせたテクノロジーが実際に可能になるのではないかと思わずにいられません。

 

前述のトピックに興味がある人にとって、画像や動画を複数のカテゴリに区別する畳み込みニューラルネットワーク (Convolutional Neural Networks) や、音声認識、自然言語によるインターフェース、推奨エンジンなど、ディープラーニングにより可能となる AI や ML のソリューションには馴染みが深いのではないかと思います。けれども、データサイエンティスト、機械学習の利用者、リサーチサイエンティスト、ディープラーニングに興味を持つ熱心なユーザー達がこうしたテクノロジーに携わりインフラストラクチャや環境、ツールを設定する作業は必ずしも簡単ではありません。多くの開発者はディープラーニング技術を使用して、ディープラーニングをトレーニングモデルそしてソリューション開発に早く繋げていきたいと考えています。こうした理由から、経験豊富なデータサイエンティストであれ、今から始めたいと思っている興味津々の開発者まで、速くディープラーニングのソリューションを構築したいと思っている方々に向けて、いくつかのリソースをご提供したいと思います。

ディープラーニングのリソース
Apache MXNet は Amazon が選んだディープラーニングのフレームワークです。Apache MXNet フレームワークと NVIDIA GPU コンピューティングを組み合わせれば、スケーラブルなディープラーニングプロジェクトとソリューションを簡単に AWS クラウドで開始できます。MxNet のディープラーニングの旅を始める方々を対象に、様々なセルフサービス形式のチュートリアルやデータセットが今すぐ利用できるようになっています。

  • AWS ディープラーニング AMI の起動: このガイドでは、Ubuntu で AWS ディープラーニング AMI を起動する手順を説明しています。
  • MXNet – コンピュータビジョンのアプリケーションを作成: この実践的なチュートリアルは構築済みのノートブックを使用してニューラルネットワークの利用でコンピュータビジョンを構築し、手書きの数字を識別する方法を説明します。
  • AWS 機械学習のデータセット: AWS は AWS Marketplace で機械学習のデータセットを無料で提供しています。こうした大規模なデータセットはダウンロードまたは保存の必要がなく、データを分析したい誰もが使用できます。
  • 予測と抽出 – 予測に事前トレーニング済みのモデルを使用する方法: この実践的チュートリアルは Imagenet のフルデータセットを使用して、予測と機能抽出に事前トレーニング済みのモデルを利用する方法を説明します。

 

AWS ディープラーニング AMI
AWS はディープラーニングを始める上で必要なインフラストラクチャを素早くデプロイメントするため、Amazon EC2 で Amazon マシンイメージ (AMI) を提供しています。AWS ディープラーニング AMI には、AI を対象としたソリューションやモデルで起動できる Amazon Linux や Ubuntu で Amazon EC2 インスタンスを使用して構築された人気のディープラーニングフレームワークが事前設定されています。ディープラーニング AMI でサポートされ事前設定されているディープラーニングフレームワーク:

  • Apache MXNet
  • TensorFlow
  • Microsoft Cognitive Toolkit (CNTK)
  • Caffe
  • Caffe2
  • Theano
  • Torch
  • Keras

また、AWS ディープラーニング AMI のインストール事前設定ライブラリで Jupyter notebooks の Python 2.7/3.4、AWS SDK for Python、その他のデータサイエンス関連の python パッケージや依存関係を対象にしたものも含まれます。AMI には、NVIDIA CUDA と NVIDIA CUDA Deep Neural Network (cuDNN) ライブラリやサポートされているディープラーニングフレームワークすべても事前にインストールされています。Apache MXNet フレームワークには Intel Math Kernel ライブラリがインストールされています。いずれのディープラーニング AMI を開始するには「ディープラーニング AMI のリンク (Try the Deep Learning AMIs link)」を使用して AWS Marketplace にアクセスしてください。概要 ディープラーニングを始めるには今が絶好のタイミングです。AWS クラウドで実行する AWS ディープラーニングを使用することでディープラーニングの作業を早めることができます。そうすることで素早くディープラーニング環境をスタートさせたり「AWS セルフサービス形式のリソース (AWS self-service resources)」を使用して MXNet を使用する AWS でディープラーニングを学び始めることができます。もちろん、AWS でディープラーニング機械学習人工知能に関するより詳しい情報を学ぶこともできます。「AWS ディープラーニングのページ ( AWS Deep Learning page)」、「Amazon AI の製品ページ (Amazon AI product page)」、「AWS AI ブログ (AWS AI Blog)」をご覧ください。
goディープラーニングフォースの力が共にありますように (May the Deep Learning Force be with you all)。

Tara