ROMANCE DAWN for the new world

Microsoft Azure を中心とした技術情報を書いています。

//build/ 2016 振り返り勉強会で Azure Functions の話をしてきました

csugjp.doorkeeper.jp

先週の土曜日、//build/ 2016 振り返り勉強会に参加して、Azure Functions の話をしてきました

speakerdeck.com

最後にデモした Azure Storage Account Replication の補足です。
https://blogs.msdn.microsoft.com/cloud_solution_architect/2016/05/09/azure-storage-account-backup-azure-automation-runbook-azure-functions/blogs.msdn.microsoft.com

上記のブログが元ネタですが、Blob Trigger を利用して、別ストレージアカウントの Cool Storage にコピーするシナリオでした。
f:id:TonyTonyKun:20160522225248p:plain

Azure Portal から Output Binding に Cool Storage を指定できなかったので、一旦コピー元のストレージアカウントに設定した後、Cool Storage に変更し忘れたことがデモに失敗した原因でした。

また、Blob Trigger を利用する際には、Container 内の Blob が 10,000 を超えた場合の注意事項として、リアルタイムに Trigger されなかったり、Trigger が欠落する可能性を考慮する必要があります。これを回避するには、Queue Trigger を使うことを推奨しています。詳しくは、こちらの公式ドキュメントに記載されています。
azure.microsoft.com

Azure Functions にとって、Trigger のリアルタイム性と信頼性は重要なので、正式リリースするまでには改善してほしい部分です。

planned
How can we improve Microsoft Azure Functions?
  • 47 votes
  • 3 comments

Should be support real-time Storage blob triggers

Azure Functions is awesome! I'd like to propose for more convenience.
Currently, Storage blob triggers do NOT support real-time. Because write at
"https://azure.microsoft.com/en-us/documentation/articles/functions-reference/"

"The Functions runtime scans log files to watch for new or change...

feedback.azure.com

Azure Machine Learning で玉手箱の例題を解いてみる

Global Azure Boot Camp 2016 in Japan で LT した内容を記事にまとめておきます。
gooner.hateblo.jp

Azure Machine Learning を使って、玉手箱の例題を解いてみました。
玉手箱は、就職活動でお馴染みの WEB テストです。その中でも、計数理解テストにある「表の空欄予測」の問題を使います。表中の他の数値から規則性を見て、空欄の数値を答えさせる問題です。
機械学習の手法としては、線形回帰(Linear Regression)を使います。教師あり学習に属し、予測できるもの(関数)を作成する手法の1つです。

例題

こちらのサイトに掲載されている例題を使います。

f:id:TonyTonyKun:20160413182324p:plain

正解は、「A:210」となります。
ML Studio で ソリューション(Experiment)を作成し、この例題を解いていきます。

データのアップロード

例題の表をもとに CSV ファイルを作成します。

f:id:TonyTonyKun:20160413182500p:plain

DATASET - FROM LOCAL FILE メニューから、作成した CSV ファイルをアップロードして、画面中央のスペースにドラッグ&ドロップします。

f:id:TonyTonyKun:20160413182517p:plain

データの分割

必要なデータだけをアップロードしたので、データの正規化は必要ありません。
データを学習用とモデル評価用に分割します。Sprit Data モジュールを追加し、Fractionof rows in the first の値を 0.7 に設定します。

f:id:TonyTonyKun:20160413182637p:plain

この結果、学習用に70% のデータが割り振られることになります。

モデルの作成

線形回帰を使うので、Linear Regression と Train Model の2つのモジュールを追加します。

f:id:TonyTonyKun:20160413182725p:plain

販売量を求めたいので、Train Model の LaunchColumnSelector をクリックして「Sales」を設定します。

f:id:TonyTonyKun:20160413183133p:plain

モデルの評価

予想の販売量を出すために、Score Model モジュールを追加します。

f:id:TonyTonyKun:20160413183248p:plain

Score Model には、入力口が2つあります。左側は学習用、右側は評価用のデータの入り口となります。
次に、予想と実際の比較をするために、Evaluate Model モジュールを追加します。

f:id:TonyTonyKun:20160413183259p:plain

ここまでの操作で学習アルゴリズムの訓練が終わり、モデルを構築できました。

Web API の公開

SET UP WEB SERVICE の Predictive Web Service[Recommended] を実行すると、Web service input と Web service output のモジュールが上下に追加されます。

f:id:TonyTonyKun:20160413183401p:plain

RUN → DEPLOY WEB SERVICE の順序で実行します。Web API の公開が完了すると、テストページに遷移しますので、Test ボタンを押します。

f:id:TonyTonyKun:20160413183417p:plain

4月5日の降水確率と平均気温を入力して、実行します。

f:id:TonyTonyKun:20160413183431p:plain

「209.997288616848」という結果が返ってきましたので、正解の「A:210」にかなり近い結果を取得できたことが分かります。

まとめ

Azure Machine Learning は、機械学習の知識がなくても、ブラウザで簡単に学習アルゴリズムを作ることができます。Web API も公開することができ、テスト機能もあるのですぐに検証できる面白いサービスです。いざ試してみようとすると、データを用意するのが大変なので、身近なデータを使ってみると分かりやすいです。機械学習を本格的に取り組むと敷居が高そうなので、まずは Azure Machine Learning で遊んでみるところから始めてみようと思います。

Global Azure Boot Camp 2016 in Japan に参加して LT してきました

jazug.doorkeeper.jp

昨日、Global Azure Boot Camp 2016 in Japan に参加して LT してきました。

speakerdeck.com

Azure Machine Learning の入門的なネタで話しました。回帰分析、クラスタリング、レコメンドあたりのシナリオが分かりやすいです。身近なデータで試してみると面白いので、ぜひ触ってみてください。他の方々の LT も個性的な内容が多く、楽しめました。ついに、VR の世界からデプロイできる時代になりました(笑)

本編としては、Servce Fabric のセッションが、さすが近江さんという内容でした。60 分で理解できるボリュームではないので、第3の Paas として使いこなせるように、しっかりと勉強していきたいです。数回に分けて勉強会を開催する予定があるそうなので、ぜひ参加してみたいです。

まだプレビューですが、Data Lake もいろいろと試したいです。現状、ログ系のデータは Table や Blob に入れっぱなしなので、分析とかに活用できればいいなと期待しています。

追記

LT の内容を別の記事にまとめました。
gooner.hateblo.jp