タグ別アーカイブ: Microsoft Azure

地味に便利なAzure DevTest Labs由来の自動シャットダウン

先日のMicrosoft Azureの機能拡張でDevTest Labs由来の自動シャットダウン機能が仮想マシンにつきました。この機能のリリース前はAzureの機能の一つであるAzure Automationを使って自動シャットダウンを実施する必要がありました。特に単価の高い、Hadoopなどのクラスターなどは確実にシャットダウンしないと金銭的に破滅しますので重要です。

この機能の設定はとても簡単です、管理支援機能であるAzure Automationの設定と比較しても簡単です。勿論、できることは限定されますが、自動シャットダウンというものを実現するには十分です。

インターフェイス上は仮想マシンのスケジュールのところにあります。

Screen shot of Azure Portal

Azure Machine LearningのNet#による深層学習と限界点

DeepLearning Advent Calendarの23日目と推定されます。LSTMとかは色々と間に合わなかったので、プランBにより別テーマで過去への巡礼をしてみます。

Microsoft Azureの機械学習のPaaSであるAzure Machine LearningにはNet#というDSLがありこれを使うことで深層学習をニューラルネットワークのモデルに盛り込むことができる。実際に、Cortana Inteligence Galleryには”Neural Network: Convolution and pooling deep net“というテンプレートが存在する。中身を見てみる。

Net#を使って、深層学習の実現ができるという話は早くは国内では2015年のde:codeで語られている。確か、セッション「実践Azure Machine Learning」だったかと思う。この中で録画分に含まれているかどうかは確認していないがちらりと語られていた。メモ的な記事としては2015年に「Azureでお手軽ディープラーニング」という記事がホクソエムのdichikaさんによって書かれている。

ただ、限界点もある。今となっては古典的な隠れ層1層くらいの誤差逆伝搬法で問題となった勾配の消失問題の解決として使われているいくつかの手法があるが。

  • Pre-training
  • Autoencoder
  • Dropout
  • Randomized weight

これらはNet#で記述するための仕様を欠いているため、隠れ層を深くすると問題が起きる可能性は否定できない。基本的には私が把握している限りではNet#の仕様で深層学習の実現に有用なのは活性化関数の一部と隠れ層のカスタマイズあたりであろうかと思われる。

とはいえ、データ加工のスキームをフローで書くことができるなど有用な点は数多くあり、活用可能な問題であればAzure Machine Learningで実現するのは悪いことではない。Power BIを組み合わせて可視化するのも面白いと思う。

参考文献

  1. MLP シリーズ “深層学習” 岡谷貴之著

分析者目線でF#なAzure Notebookにトライしてみる

この記事はF# Advent Calendarの19日目と推定されます。さてさて、F#の話です。

先日、Azure NotebooksがAzure Machine Learningから独立するような形でアップデートし、F#がAzure Notebooksで使えるようになりました。Azure NotebooksはJupyter Notebookベースの環境で現在、R、Python 2/3、F#が使えます。従って、F#環境をいろいろいじって色々確かめようと考えたわけです。主に、分析者目線で。

さて、この環境がどのような形でホストされているのか気になります。特に、分析者として使うならF# DataとかMath.NETとか使ってみたいですしね。環境の方は意外な形でわかりました。

#Rと参照を打った時に出た候補で環境に関してはもろばれと言ってよいかと思います。おそらく、.NET Coreとかで実現された.NET環境を何らかのLinux上に構築しているかと思います。

もともと、分析者目線でと始めたのですが、今のところ、F# Dataとか、Math.Net とかを参照設定するのに成功していないので、今のところはF#のテストコードを手軽に試すといったことしかできていません。

ただ、Azure Notebooks特にF#はまだ初期のプレビューにありますので、これからガンガンとリクエストを出していこうかと思います。

それでは。

追記

2017/01/13

Paket を使ってF#にライブラリを組み込むことが可能なようです。

 

Linear Modeling on Azure Machine Learning

Azure Machine Learningで線形モデリングをしてみました。今回は米国の犯罪統計を用いて人口と暴力犯罪の関係をモデリングしてみます。データとして用いたのは以下のようなものです。

bandicam 2015-02-23 02-07-37-285Azure Machine Learningでは以下のようなモデルになります。

bandicam 2015-02-23 02-07-23-978

データをProjection Columnで射影して必要な列を抽出し、Train ModelでLinear Regressionを学習させるというとても簡単な形です。

実行結果は以下のようになります。

bandicam 2015-02-23 02-08-29-064

見ての通り、とんでもなく簡単です。

Azure Machine Learning #01

ML Studio Overview 1

ML Studioの画面を以下に示します。画面の左側に各種ビルディングブロックを格納したパレットがあり、中央部にビルディングブロックを並べるセクションがあります。ここにデータを提供するリーダーやモデリングを行うビルディングブロックなどを並べモデリングを行います。モデリングそのものの作法については次回以降に掲載します。ビルディングブロックはデータの加工からモデリングまで各種のツールが提供されており、Execute Python ScriptやExecute R Scriptといったスクリプト実行のビルディングブロックを使わなくてもコーディングレスでデータ加工を行ったり、モデリングを行うことが出来る環境にあります。特にClassificationはかなりのモデルが提供されています。また、著名なコンピュータヴィジョンのライブラリである、OpenCVの機能が一部提供され画像のロードを行うことも可能です。
ML Studio

Fig.1 ML Studio
Saved Datasets

Saved Datasetsにはサンプルとして、データセットが提供されています。データは需要、レビューから医療系まで色々とそろっており、各種モデルの検討に使ったり、トレーニングに用いることが出来ます。

Saved Datasets

Fig.2 Saved Datasets

ほかのビルディングブロックについては次のアーティクルで示します。

Azure Machine Learning #00

はじめに

Azure Machine LearningもGA (一般提供)を向かえ、注目を集めているようです。ここで、Azure Machine Learningとは何か、そして、どう使って行くかをまとめて行きたいと思います。Azure Machine Learningは洗練されたUIを持ち、ユーザインターフェイスとしてなら使用は容易です。しかし、機械学習の基本的なスキルなしに使うことは容易くはありません。この辺は機械学習の側面をかなり遮蔽しBAプラットフォームとしてレポーティングを含めまとめた、IBM Watson Analyticsとは根本的に異なるところです。

逆に言うと、IBM Watson Analyticsは機械学習の仕組みを遮蔽しているために、学習結果の理由を説明するのはかなり困難です。これは、同様に学習のアプローチを見せない、Google Predictive APIも同様です。その意味では説明可能であり、モデルの中身が見えるという面白い立ち位置にあります。これは、優劣というよりも考え方の違いかと思います。当たれば良い、そしてモデルの開発に時間をかけたくないというニーズもあれば、説明可能性が重要なこともあります。ただ、技術の使い分けを考えるときには重要なファクターです。

Azure Machine Learningとは

Azure Machine LearningはMicrosoft Azureの上に構築された機械学習のPaaSプラットフォームです。基本的にはアドホックに学習モデルを作成するためのML StudioとWeb APIとして学習や予測を動かすためのAPI群からなります。使用可能なモデルはMicrosoftが用意したプロプライエタリなモデルとR及びPythonが使用可能です。

ML Studioでのモデリングは有効グラフでビルディングブロックのデータフローを結線していく、SPSS Modelerや各種ETLツールで見かける形式を採用しています。この方式はデータフローが確認しやすくモデリングの仕組みを把握しやすい優れた方法です。PythonやRはビルディングブロックにスクリプトを記載する方法です。これは、R Analytics Flowと同様でスキルセットを活用しやすいと思います。

データは現時点においてはAzureのBLOB StorageもしくはSQL ServerのDBaaSであるSQL Databaseが利用できます。BLOB Storageにアウトプットすることで同じAzureのData Factoryをデータ加工プラットフォームとして活用できます。また、Machine LearningのアウトプットをBLOB Storageにして、ExcelやPower BIといったBIプラットフォームを活用し世間的な言い方ではBAプラットフォームの一部として活用できます。また、Web APIとして展開することで多くのツールからアクセス可能であると思います。

今回、GAを迎え、料金体系もプレビューのときとは一新しています。特徴は無料とStandardの2つに料金体系が分かれたことです。無料の側はWeb APIの利用に制限があり、また、モデリングの連続実行時間に時間制約があることデータサイズに上限があること、またSLAが保障されず、スケジューリングの優先順位が高くないこと、などの制約がありますがデータサイズは10GBとゆるく無料でもかなりのことができます。また、使用可能なモデルにも制約はありません。(2015/02/20 現在)

Azure Machine Learning GA

Microsoft Azure上の機械学習プラットフォームである Azure Machine LearningのGA (一般提供)が発表されました。

料金体系はプレビュー時とは異なり、無料とStandardの2体系からなっています。無料側はデータサイズとパフォーマンスに制約があります。また、機械学習のエンジンを連続して動作させられる時間に制約があります。また、無料側ではAzureのサブスクリプションが不要になっています。