Jack of all trades

master of none. 多芸は無芸を地で行く、自作自演何でも屋。

Microsoft Conference 2014 参加レポート Day2

Microsoft Conference 2014 参加レポート Day1 - Jack of all trades

前回のMSC2014 Day1レポートに引き続きDay2のレポートです。
前回の記事にも書きましたが、個人的にはDay2の方が盛りだくさんでした。
予てより詳細(というか具体的な使い方)を知りたかったAzureMachineLearningをはじめとして、IoT分野でのAzure連携、既存アプリケーションのリフォームに関するセッション(Webアプリとデスクトップアプリ両面!)など開発者向けセッションが比較的多かったように思います。

それでは前回と同じく、私が実際に参加したセッションについてのまとめです。

実践!! IoT (Internet of Things) ~Azure の最新機能を活用した IoT 構築方法紹介 ~

  • エバンジェリストの太田 寛さんと同じくエバンジェリストの井上 大輔さんによる寸劇のようなIoT関連セッション。基盤がいっぱい登場しました。
  • IoTとAzureの連携ということで、センサーデバイス搭載機からAzureにデータ連携。
  • セッション会場およびEXPO会場に乾湿計を設置してデータをAzureに飛ばす仕組み。
  • さらにExcelのPowerMapと連携してデータをビジュアライゼーション。
  • IoTの定義とは→Microsoftが考えるIoTの一つとしてInternet of "Your" Thingsという定義で、既存の資産を活用することを想定している。
  • 既存のインフラ、ID、データの塊を利用する(一からは作らずに済むように)
  • IoTの活用→機器+Azureによって、活用運用のライフサイクルと製品開発のライフサイクルを実現する。
  • NETMicroFrameworkを用いた開発→VisualStudioにSDKを入れるとGUIでコントロール配置して.NET開発的にコードを書いて実行できる(デバッグ実行も可)
  • AzureServiceHub(Event)
  • Azure Intelligent System Service(ISS)
  • Azure Machine Learning
  • 何時ぞやのイベントで取り上げられたエレベーター制御の事例。
  • カゴの昇降やドアの開閉をセンサーによりリアルタイムで取得して分析、予測。
  • 近々IoT開発の入門キットが発売されるらしい。

マシン ラーニングを使ったクラウド ベースのデータ分析/予測ソリューション

  • 毎度おなじみ、ジニアス平井こと平井 昌人さんによるAzureMachineLearningに関するセッション。
  • MachineLearningの適用分野→予測、レコメンデーション、ポイントカード不正データ検出など。
  • 分析のフロー→何が起こっているか(記述)→なぜそうなったか(診断)→これからどうなる(予測)→どうすべきなのか(規範)
  • データの可視化から→将来の予測につなげる
  • AzureMachineLearningの具体的な使い方について。ML STUDIOで編集する。
  • まずは学習データをアップロード(CSV、RDataなど)
  • プレビューなんで色々不備はあるが、そのうち直るといいな(日本語のデータは文字化けに注意)
  • MLのフロー→定義→学習データの準備→分析モデルの開発と学習→モデルの評価→モデルの配置・アプリの公開
  • DataSet選択→データの加工・クリーニングを実施。デモではProject Column(使用する列項目の取捨選択)を使用。
  • 次にSplitモジュールを連結。設定値0.75(75%の学習データと25%の検証データ)でデータを分割する。
  • Runすると課金開始(処理時間に応じた従量課金)
  • Splitで振り分けられた学習データにTrainModelを連結。
  • TrainModelにBoostedDecisionTreeを連結。
  • TrainModelの出力をScoreModelに連結。Splitで振り分けられた25%の検証データも連結して学習結果を評価する。
  • 評価結果が良好であればTrainModelに名前を付けて保存する。
  • 実際にサービスとして構成する場合は、保存したTrainedModelをScoreModelの左入力に連結するだけ。
  • ScoreModelの右Inputを入力、Outputを出力としてAPI公開する。
  • VisualStudio用のAzureML SDKもそのうち提供されるらしい。
  • デモでやった学習モデルを実際に運用すると月額でモデル作成学習に8000円弱、API運用に30000円弱(現在はプレビュー料金なので、後々変更される模様)
  • じゃんけんアプリ無双!→Kinectを使ったじゃんけんアプリで、数回分のプレーヤーの手を入力データとしてMLに飛ばす→学習して次の手を構成する。
  • 結果、学習後はアプリが全勝!恐るべしML!(全勝したのはまぐれだと思うけど、ちゃんと学習されているのは間違いない)

ビジネス環境の変化に伴うアプリケーションのリフォーム方法と技術選択

  • エバンジェリストの田中 達彦さんによる既存アプリケーションのリフォームに関する概要的セッション。各プラットフォームにおける詳細はその他のセッションにて、という感じ。
  • アプリには寿命がある、という前提を押さえておく必要がある。
  • アプリの寿命→既知のもの、環境の変化によるもの、開発者のコードに起因するものが存在する。

Webアプリのリフォーム ~ モバイルとクラウド活用に向けた技術選択 ~

  • チャックさんことエバンジェリストの井上 章さんによる"Webアプリ"のリフォームに関するセッション。
  • レスポンシブWebデザインについて。
  • CSS3メディアクエリ(@mediaからはじまる記法)
  • ディスプレイモード モバイルモード(.mobile.)のビューファイル
  • ディスプレイモードでは.mobileがついた専用のビューを用意すると自動的に判別して同じURLのままモバイルページを表示できる。
  • 処理自体はサーバーサイド、ASP.NETのサーバー側で処理される。
  • ASP.NET vNextをmacbook上で動かすデモ。
  • kpm restoreで必要なパッケージがダウンロードされる(Ruby on Railsでいうところのbundle install的なもの)

デスクトップ アプリのリフォーム ~ 最新デバイスとクラウド、開発ツールの活用 ~

  • エバンジェリストの大西 彰さんによる"デスクトップアプリ"のリフォームに関するセッション。
  • セッションリストには大西さんのお名前のみでしたが、実際には同じくエバンジェリストの荒井 省三さんが途中で解説を入れてくださっていました。
  • SketchFlowによるプロトタイピング。
  • Blendを使ったデザインの作成やデモデータの作成。忍さんのセッションでも思ったけど、Blendすごい。
  • 現在DBに詰め込んでいる企業データのAPI化。
  • DBサーバー→RESTサービス→サービス(アプリケーション)の構成。
  • ASP.NET WebAPIとAzure Mobile Service
  • Azure Mobile Serviceの方が軽量。とりあえず試してみるならこちらが良いかも。
  • 既存アプリリフォームが必要な場合、全体をいっぺんにリフォームしてしまうということではなく、部分的に置き換えていくのが賢明。

AzureMLってなんだろう?

  • シニアテクノロジースペシャリストの中川 一馬さんによるAzureMachineLearningに関するセッション。
  • 安納さんの認証基盤セッションを見送ってまでこちらを見に行った甲斐はありました。
  • BussinessInteligence(BI)とBussinessAnalystics(BA)
  • BAの領域に対してMLが力を発揮できる。
  • 平井さんのセッションと同じくML Studioを使ったデモ。
  • 2種類の.tsvファイルを読み込む→join→列項目の選択→Metadataで列項目のフォーマットの変更など
  • Splitで学習データと評価用データに分ける(デモでは50:50に設定)
  • Splitで振り分けられた学習データをTrainModelに渡し、評価用データをScoreModelに渡す。
  • このデモでは2つのTrainModelを用意して、2つとも評価。それぞれのTrainModelのOutputをEvaluationモジュールのInputに連結する。
  • 収束曲線が1に近づけば近づくほど精度が高いTrainModelと言える。
  • 精度の高い方のモデルを保存して本番採用→アプリとしてデプロイする。
  • セーブしたTrainModel(左)と新たなデータの塊(右)をScoreModelに繋ぐ→ScoreModelの右InputとOutputをAPIのIn/Outとして定義し、Runする。
  • Runが終わったらサービスとして発行できる。

IoTのセッションもかなり興味深かったですが、やはりMLですね。ようやく使い方が分かってきた。
Rのスクリプト実行を使う場合はさておき(スクリプトが書けるか否かだけなので)GUIでモジュールを配置してモデルを構成するやり方については、まだまだ情報が少ないので、わかる範囲で本ブログに載せていきたいと思います。今のところ書く書く詐欺になりがちですが、MLについては本当に書きます。乞うご期待。

ということでMicrosoftConference2014 Day2のレポートでした。
Day1のレポートと同じく、内容について誤りがある場合はフルスイングのご指摘をいただければ幸いです。