Cortana Intelligenceが描くAIシステムのつくり方

Cortana Intelligenceが描くAIシステムのつくり方

第7回 JAZUG Nightで登壇しました

E44ca1508481e64c79ea237170b1a08d?s=128

garicchi

July 25, 2017
Tweet

Transcript

  1. Cortana Intelligenceが描く AIシステムのつくり方 @garicchi

  2. データと活用の流れ Copyright© 2015, JAZUG All Rights Reserved. 2 データ蓄積 分析&可視化

    意思決定
  3. 企業のデータは増え続ける Copyright© 2015, JAZUG All Rights Reserved. 3 http://www.soumu.go.jp/johotsusintokei/whitepaper/ja/h27/html/nc254310.html 企業が保有するデータは

    年々増え続けている そして 分析&プレゼン作成コスト増加 終わらない残業
  4. 定時で帰るには? Copyright© 2015, JAZUG All Rights Reserved. 4 データ蓄積 分析&可視化

    意思決定 この3つの流れを自動化できればOK
  5. Azureではそのためのメソッドを提供 Copyright© 2015, JAZUG All Rights Reserved. 5 データ蓄積 分析&可視化

    意思決定 Cortana Intelligence
  6. 今日の目的 きたるデータ膨張時代に向けて分析と意思決定の自動化 の方法を知る Copyright© 2015, JAZUG All Rights Reserved. 6

    Cortana IntelligenceというAzureサービスの利用形態 を学ぶ エンタープライズの仕事領域に少しでもAIシステムを
  7. 自己紹介 栂井 良太(Togai Ryota) 静岡県の大学院生 専門は音声対話システム Microsoft MVP for Windows

    Development Azure Machine Learning @garicchi Copyright© 2015, JAZUG All Rights Reserved. 7
  8. ビール300本を獲得しました Copyright© 2015, JAZUG All Rights Reserved. 8

  9. Cortana Intelligence Copyright© 2015, JAZUG All Rights Reserved. 9 つまりどういうこと?

    Cortana?
  10. Cortana Intelligence ポータルからデプロイできる1つのAzureサービスではない AIシステムを作るための複数のAzureサービスの組み合わせ方法 Copyright© 2015, JAZUG All Rights Reserved.

    10
  11. なぜCortana Intelligenceが サービスの組み合わせなのか Microsoft Azureが描いているAIシステムは機械学習だけで終わ らない Copyright© 2015, JAZUG All

    Rights Reserved. 11 機械学習 データ エンドポイント デバイス ビジュアライズ
  12. AIシステムはサービスの組み合わせ 例 小売店の売り上げ予測 Copyright© 2015, JAZUG All Rights Reserved. 12

    データ管理 分析 可視化 意思決定 AIシステムにはおおよそこの4要素が必要
  13. Cortana Intelligenceの構成要素 Copyright© 2015, JAZUG All Rights Reserved. 13 データ管理

    分析 可視化 意思決定 各種デバイスからさまざまなデー タを収集。データベースに保存 収集したデータをリアルタイムま たはバッチ処理で分析し、意味の あるデータを見つける 分析したデータを意思決定しやす いように可視化 KPI改善のために次のアクションを 決定 EventHub IoTHub Storage SQL DB StreamAnalytics Machine Learning HD Insight Power BI Bot Framework Cognitive Service Cortana
  14. AIシステムはサービスの組み合わせ 例 小売店の売り上げ予測 Copyright© 2015, JAZUG All Rights Reserved. 14

    データ管理 分析 可視化 意思決定 Cortana Intelligenceの考え方 Azure Data Service Azure ML Power BI Bot Framework
  15. AIシステムはサービスの組み合わせ 例 小売店の売り上げ予測 Copyright© 2015, JAZUG All Rights Reserved. 15

    データ管理 分析 可視化 意思決定 Cortana Intelligenceの考え方
  16. データ管理に必要なもの Copyright© 2015, JAZUG All Rights Reserved. 16 センサーやデバイスなど データの発信元

    データの窓口 デバイスが接続するエン ドポイント エンドポイントからの データを保存、蓄積 データベース • 各種クライアントプラットフォーム • IoTデバイスなど Event Hub Storage SQL Database データをリアルタイムに 分析、意味のある情報の 抽出 ストリーム分析 StreamAnalytics
  17. データの窓口の役割 Copyright© 2015, JAZUG All Rights Reserved. 17 • 様々なデバイスから接続可能

    • スケール可能 • 短い待機時間 イベント イベント
  18. Azure EventHub 大量のイベントデータを取り込んで次のサービスに渡すこ とができるイベント処理サービス 様々な発行元からのイベントを受信 HTTPかAMQPのプロトコルを受信 AMQPは接続確立時の待機時間が長いが永続的双方向ソケット 受信したイベントは保持期間以内なら何度でも受信可能 スケール可能 スループットユニット

    入力:1MB/s or 1000イベント 出力:2MB/s を簡単に操作可能 Copyright© 2015, JAZUG All Rights Reserved. 18
  19. Azure EventHub イベント送信 .Netクライアントライブラリを利用したイベント送信 Nugetからライブラリをインストール Copyright© 2015, JAZUG All Rights

    Reserved. 19 EventHubに.Netからイベントを投げる – garicchi.com http://garicchi.com/?p=20504 Http通信を利用したイベント送信 Http通信ができればクライアントを選ばない SASトークンを事前に発行する必要がある Azure EventHubにHttpでイベントを投げる – garicchi.com http://garicchi.com/?p=20391
  20. EventHubの動作を確認するには ServiceBus Explorer https://github.com/paolosalva tori/ServiceBusExplorer リアルタイムに流れてくるデー タとその内容を監視可能 EventHubの通信内容はポータ ルから確認できないので便利 Copyright©

    2015, JAZUG All Rights Reserved. 20
  21. データ管理に必要なもの Copyright© 2015, JAZUG All Rights Reserved. 21 センサーやデバイスなど データの発信元

    データの窓口 デバイスが接続するエン ドポイント エンドポイントからの データを保存、蓄積 データベース • 各種クライアントプラットフォーム • IoTデバイスなど Event Hub Storage SQL Database データをリアルタイムに 分析、意味のある情報の 抽出 ストリーム分析 StreamAnalytics
  22. ストリームデータ分析 一定の時間間隔内に意味のあるデータがある場合 Copyright© 2015, JAZUG All Rights Reserved. 22 時間

    売り上げ 売上データ 分析 売り上げの最大値は? 売り上げの変化量は? これらのデータを取得するためには 時系列に多くのデータが来た時に分析 しなければならない 1時間あたりの売り上げの合計値は? 最大値 変化量 分析窓
  23. Stream Analytics ストリームデータのリアルタイム分析サービス ポータルから数クリックで入出力を接続可能 入力: EventHub、IoTHub、Blob Storage 出力: SQLDB、Blob、Table、ServiceBus、 DocumentDB、PowerBI、DataLake、EventHub

    多様な分析関数と分析窓 SQLライク言語で分析プログラムを書ける 1時間ごとにデータをグルーピングなどができる JavaScriptで処理関数も書ける Azure Machine Learningの実験を関数として使える Copyright© 2015, JAZUG All Rights Reserved. 23
  24. Stream Analytics SQLライクな言語で分析 SQLでやるような計算処理が可能 FROM→SELECT→INTOの流れを 複数記述、出力可能 ThumblingWindowで時間方向に グルーピング Copyright© 2015,

    JAZUG All Rights Reserved. 24 最大値 60分ごとにGroupBy 平均値 データの出力先 データの入力元 リアルタイムデータ 1時間ごとのデータ
  25. データ管理に必要なもの Copyright© 2015, JAZUG All Rights Reserved. 25 センサーやデバイスなど データの発信元

    データの窓口 デバイスが接続するエン ドポイント エンドポイントからの データを保存、蓄積 データベース • 各種クライアントプラットフォーム • IoTデバイスなど Event Hub Storage SQL Database データをリアルタイムに 分析、意味のある情報の 抽出 ストリーム分析 StreamAnalytics
  26. AIシステムはサービスの組み合わせ 例 小売店の売り上げ予測 Copyright© 2015, JAZUG All Rights Reserved. 26

    データ管理 分析 可視化 意思決定 Cortana Intelligenceの考え方
  27. データ分析に必要なもの Copyright© 2015, JAZUG All Rights Reserved. 27 リアルタイムデータ 1時間ごとのデータ

    加工 普通は 人間が分かりやすいように グラフ等に抽出 この感じだと来月の売り 上げはコレくらいかな 人間が経験から データを予測 機械学習の出番
  28. 機械学習でできること Copyright© 2015, JAZUG All Rights Reserved. 28 回帰(Regression) 識別(Classification)

    開店時間 スタッフの人数 広告費 10 売り上げ 12 200 5000 7 5 100 1000 13 3 500 2300 4 8 180 ??? と の関係性を学習 のとき はどれぐらいになるかを予測 開店時間 スタッフの人数 広告費 10 赤字か 12 200 赤字 7 5 100 黒字 13 3 500 赤字 4 8 180 ??? と の関係性を学習 のとき は赤字か黒字かを判定
  29. 機械学習でできること Copyright© 2015, JAZUG All Rights Reserved. 29 回帰(Regression) 識別(Classification)

    明日は7人ぐらいのスタッフなんだ けど売り上げどれぐらいかな 明日の開店時間は6時間ですので 売り上げ予測はおおよそ1000円と なります 体調良い 体調悪い 録音 & 音声特徴量抽出
  30. 機械学習の流れ Copyright© 2015, JAZUG All Rights Reserved. 30 データ整形 特徴量選定

    学習データと テストデータ分割 モデル学習 モデル評価 大体の機械学習はこの5フェーズ
  31. 機械学習の流れ Copyright© 2015, JAZUG All Rights Reserved. 31 データ整形 特徴量選定

    学習データと テストデータ分割 モデル学習 モデル評価 開店時間 スタッフの人数 広告費 10 売り上げ 12 200 5000 7 5 100 1000 13 null 500 2300 15 3 680 1700 欠損データ 複数のデータソース のマージ 目的 データソースからのデータを統合し 使いやすい形に整形、1つの表データにする 気温 32 30 29 27
  32. 機械学習の流れ Copyright© 2015, JAZUG All Rights Reserved. 32 特徴量選定 学習データと

    テストデータ分割 モデル学習 モデル評価 開店時間 スタッフの人数 広告費 10 売り上げ 12 200 5000 7 5 100 1000 15 3 680 1700 予測データ 目的 予測したいデータと相関がありそうなカラム を選定し、それ以外のカラムを削除する 気温 32 30 27 データ整形 売り上げと 関係がありそうなので残す 売り上げと 関係がなさそうなので消す 特徴量
  33. 機械学習の流れ Copyright© 2015, JAZUG All Rights Reserved. 33 学習データと テストデータ分割

    モデル学習 モデル評価 開店時間 スタッフの人数 広告費 10 売り上げ 12 200 5000 7 5 100 1000 15 3 680 1700 目的 学習モデルがどれぐらい未知のデータに適用 できるかを評価するためにテスト用データを 分割する データ整形 特徴量選定 4 33 370 1300 8 13 430 4300 このデータを学習に使う このデータを評価に使う
  34. 機械学習の流れ Copyright© 2015, JAZUG All Rights Reserved. 34 学習データと テストデータ分割

    モデル学習 モデル評価 開店時間 スタッフの人数 広告費 10 売り上げ 12 200 5000 7 5 100 1000 15 3 680 1700 目的 学習データを使って特徴量と予測データの関 係性を学習させる データ整形 特徴量選定 学習に使うアルゴリズムにはこれと言って絶対的なもの はないが私はよくニューラルネットワークを使う 予測データ 特徴量 学習モデル
  35. 機械学習の流れ Copyright© 2015, JAZUG All Rights Reserved. 35 学習データと テストデータ分割

    モデル評価 開店時間 スタッフの人数 広告費 売り上げ 目的 学習したモデルに評価用データの特徴量を入 れてみて出力と予測データを比較し評価する データ整形 特徴量選定 比較し、学習モデルの 良さを評価する 予測データ 特徴量 学習モデル モデル学習 4 33 370 1300 8 13 430 4300 先ほど分割した 予測データ 売り上げ予測データ 1239 3900
  36. 機械学習の流れ Copyright© 2015, JAZUG All Rights Reserved. 36 学習データと テストデータ分割

    モデル評価 評価にはさまざまな指標が存在 わかりやすい指標がいくつかある データ整形 特徴量選定 モデル学習 回帰 (Regression) 識別 (Classification) MeanAbsoluteError 学習モデルは予測データに対し、 平均的にこれぐらい間違えると いう指標(小さいほどいい) MAE=5.3 気温予測 ←気温を平均 的に5.3℃間違 える F-Measure 学習モデルは大体これぐらいの 確率で正しく識別を行うという 指標(0.0~1.0)(大きいほどいい) 赤字識別 F値=0.8 ←大体8割ぐら い正しく赤字 を判定できる
  37. Azure Machine Learning ブラウザ上でデータ整形からモデル評価までできる機 械学習サービス ブラウザ上のGUIで機械学習ができる Azureのデータサービスから用意にデータを入出力できる ノンコーディング機械学習 豊富なデータ整形、学習アルゴリズム PythonとRのコードを組み込むことができる

    学習済みモデルはWebAPIとして提供 学習したモデルはWebAPIとして提供され、Http POSTで 機械学習の力を利用できる Copyright© 2015, JAZUG All Rights Reserved. 37 a tutorial about Azure Machine Learning https://github.com/garicchi/azureml-tutorial
  38. Azure Machine Learning Copyright© 2015, JAZUG All Rights Reserved. 38

    Azureの多くのデータサービス からデータを取り込める 取り込んだデータに対しSQLクエリでの操作 テスト用と学習用にデータを分割 モデルを学習するモジュール 学習アルゴリズムはNeuralNetwork 学習したモデルに評価用データを適 用するモジュール 適用した評価用モジュールから評価 値を計算するモジュール
  39. Azure MLのサービス運用 通常、機械学習をWebAPIとして使う場合 Copyright© 2015, JAZUG All Rights Reserved. 39

    Python等APIサーバー 学習済み モデル Http Azure MLなら Http AzureML
  40. Azure MLのStreamAnalyticsでの利用 StreamAnalyticsで使える関数とし てAzure MLのWebAPIを利用可能 ストリームにデータが来るたびに AzureMLから予測結果を取得可能 Copyright© 2015, JAZUG

    All Rights Reserved. 40 Azure ML WebAPI Azure Stream Analytics と Machine Learning の統合 | Microsoft Docs https://docs.microsoft.com/ja-jp/azure/stream-analytics/stream-analytics-machine-learning-integration-tutorial
  41. AIシステムはサービスの組み合わせ 例 小売店の売り上げ予測 Copyright© 2015, JAZUG All Rights Reserved. 41

    データ管理 分析 可視化 意思決定 Cortana Intelligenceの考え方
  42. レポート作成と意思決定補助 Copyright© 2015, JAZUG All Rights Reserved. 42 EventHubに投げ込まれた リアルタイムデータ

    StreamAnalyticsによる 分析結果 AzureMLによる予測結果 ここまでで得られたデータ これらを活用してビジネス を成功に導きたい そのためには データのビジュアライズ 対話型AI 人間の意思決定の補助
  43. レポート作成の自動化 Copyright© 2015, JAZUG All Rights Reserved. 43 DBからデータを取り出し、 レポート用のグラフを作る作業

    EventHubに投げ込まれた リアルタイムデータ EventHubに投げ込まれた データを一定時間ごとに グループ化したもの AzureMLによる予測結果 ここまでで得られたデータ グラフを生成 意思決定補助のためビジュアライズ データが更新されるたびに レポートを作成しなおさなければ ならない レポート作成の自動化の必要性
  44. Power BI Microsoftの高機能BIツール Azureの多くのデータサービスと接続し、レポー トへのデータ取り込みを自動化できる StreamAnalyticsからの直接出力も可能 Copyright© 2015, JAZUG All

    Rights Reserved. 44
  45. Stream Analytics出力 Copyright© 2015, JAZUG All Rights Reserved. 45

  46. Azureからのデータの取り込み Copyright© 2015, JAZUG All Rights Reserved. 46

  47. レポートの再作成 Copyright© 2015, JAZUG All Rights Reserved. 47

  48. 対話型意思決定補助ツール ビジネス意思決定において困ったときに質問 したらアドバイスをしてくれるAIがいればな んかSFっぽい AIっぽさはAIシステムにおいて重要 利点:高度に自然言語を認識してくれること で取扱説明書がいらなくなる Copyright© 2015, JAZUG

    All Rights Reserved. 48 対話型AI 人間の意思決定の補助
  49. Bot Framework Webサーバーに乗せて対話マネジメントがで きるフレームワーク(C#,Node.js) 何ターン目にユーザーが何を話したときに◦◦ のAPIにアクセスして情報を返す →対話マネジメント Bot Channelによる多サービスへの接続 Skype

    Slack Messenger Cortana(日本語未対応) Copyright© 2015, JAZUG All Rights Reserved. 49
  50. BotFramework Channel Copyright© 2015, JAZUG All Rights Reserved. 50

  51. 自然言語を認識させるには? チケットを発行してほしいとき 「チケットを発行してください」というルールを設定 Copyright© 2015, JAZUG All Rights Reserved. 51

    チケットを発行して ください チケットを発行しま す チケットがほしい なぁ 認識デキマセンデシ タ 人間の発話はブレる この「ブレ」に対処する何かがないと使いやすいシステムとは言えない
  52. LUIS Language Understanding Intelligent Service Cognitive Serviceの1つ。機械学習による自然言 語認識の学習、テストをWebブラウザから可能 実行時はAPIを通して利用可能 BotFrameworkと接続も可能

    Copyright© 2015, JAZUG All Rights Reserved. 52 • チケット発行して • チケットほしい →チケット発行に分類 してね 学習後 チケットを発行して ください 「チケット発行」デ スネ
  53. LUISのBotFrameworkからの利用 Copyright© 2015, JAZUG All Rights Reserved. 53 luis.aiでWebブラウザから発話を学習 AppIdとKeyを指定するだけで

    BotFrameworkから利用可能
  54. AIシステムはサービスの組み合わせ 例 小売店の売り上げ予測 Copyright© 2015, JAZUG All Rights Reserved. 54

    データ管理 分析 可視化 意思決定 Cortana Intelligenceの考え方
  55. デモ CortanaIntelligenceの考え方にのっとり、デモを作成 小売店の売り上げ予測システム Copyright© 2015, JAZUG All Rights Reserved. 55

    EventHub POSシステム リアルタイム データ StreamAnalytics Machine Learning Power BI POSシステム 1時間ごとの 分析データ MLによる 予測データ BotFramework
  56. Cortana Intelligence Gallery Copyright© 2015, JAZUG All Rights Reserved. 56

  57. Cortana Intelligence Gallery Copyright© 2015, JAZUG All Rights Reserved. 57

    https://gallery.cortanaintelligence.com/
  58. Cortana Intelligenceなテンプレートをその ままデプロイ可能 Copyright© 2015, JAZUG All Rights Reserved. 58

  59. まとめ Cortana IntelligenceはAzureのサービスではなく、 サービスの組み合わせ、使い方 Cortana Intelligenceの構成要素は「データ管理」「分 析」「可視化」「意思決定」からなる Cortana Intelligence Galleryから構築済みテンプレー

    トをデプロイ可能 Copyright© 2015, JAZUG All Rights Reserved. 59