Azure Machine Learning に対する よくある質問の補足

Azure Machine Learning (ML) の話をする際に、よく聞かれる基本的な質問への回答 (FAQ) が以下ページに纏まっています。
https://azure.microsoft.com/ja-jp/documentation/articles/machine-learning-faq/

これを補足する形で実際に聞かれる(た) よくある基本的な質問を纏めてみたいと思います。順不同です。

画像イメージで添付している資料の元ネタ (一部) は以下参照ください。
https://docs.com/sasaki-koichiro/f6962e1f-d492-4e5f-8134-924af26b6b78/azuremachinelearning


質問 1: どの機械学習アルゴリズムを使えばいいの?

 

回答 1: 機械学習アルゴリズム チートシートで選択して頂くと、多くの場合 1 ~ 3 つぐらいのアルゴリズムにたどり着きます。

Microsoft Azure Machine Learning Studio の機械学習アルゴリズム チート シート
https://azure.microsoft.com/ja-jp/documentation/articles/machine-learning-algorithm-cheat-sheet/

また、アルゴリズムごとに精度や学習時間の違い (基本的にはトレードオフの関係) 及びその他幾つかの特徴があります。以下サイトの「アルゴリズム選択時の考慮事項」の欄に記載していますので参考にしてください。

Microsoft Azure Machine Learning のアルゴリズムの選択方法
https://azure.microsoft.com/ja-jp/documentation/articles/machine-learning-algorithm-choice/#-8

 

PPT 形式で纏めた資料は以下を参照ください。
https://docs.com/sasaki-koichiro/f6962e1f-d492-4e5f-8134-924af26b6b78/azuremachinelearning AML_6

 

質問 2: 機械学習のモデルを作るにあたって参考になるものないの?

 

回答 2: 機械学習の Experiment の実装例を「Cortana Intelligence Gallery」に登録されている Experiment を基に作って頂くのが良いと思います。

CortanaIntelligenceGallery_1

Cortana Intelligence Gallery
https://gallery.cortanaintelligence.com

予防保守のようなシナリオであれば、「predictive maintenante」、レコメンデーション シナリオであれば、そのまま「recommendation」、
予測系モデルであれば「prediction」や「regression」といったキーワードで検索すると近しい Experiment が表示されます。
また、"Browse all" を選択した後に出てくる左メニューから "利用しているアルゴリズム" や "タグ"、"言語" で絞り込みもできます。("タグ" は整理されずに多くなっています・・・)

また、Tutorials にある Experiment などで一連の流れのあるものを作って頂くのも良いかもしれません。

 

質問 3: Azure ML のワークスペースって何単位で作ればよいの?

 

回答 3: 機能を試してみたり、試用する範囲では、基本的には開発者 1 人につき 1 つの Azure ML ワークスペースを作られる場合が多いです。
実際のシステム向けに開発を行う場合は、複数人(5 人 とか) で 1 つのワークスペースを共有して目的の業務アプリごとにワークスペースを用意する場合が多いようです。Azure ML のワークスペースは Azure ポータル(クラシック) で作成、削除できます。

 

質問 4: Azure ML ワークスペースは誰でもアクセスできるの?

 

質問 4: Azure ML ワークスペースごとに所有者が決められます。基本的には Azure ポータルでワークスペースを作成したアカウントが所有者になり、そのアカウントでのみ対象のワークスペースにアクセスできます。他の人にもアクセス権限を付与する場合は、Azure ML Studio にサインインして [Setting] - [USERS] 画面でアカウントを追加して招待します。詳細は以下ページを参照ください。

Azure Machine Learning ワークスペースの管理
https://azure.microsoft.com/ja-jp/documentation/articles/machine-learning-manage-workspace/

 

質問 5: Azure ML って何にいくらかかるの?

 

回答 5: 「Azure ML Studio のワークスペース」「Azure ML Studio での処理時間」「API の呼び出し回数」「API の処理時間」の 4 つに課金体系が分かれています。2016/4/8 時点の課金体系と金額は以下の通りです。正確な課金体系は以下リンク先ページを参照ください。
細かいことは書けませんが、実際のところ、殆どのユーザーが月額 数千円以内で収まっています。本番システム環境で ML API を常時利用頂いているユーザーも多数いらっしゃいますが、それでも現時点では月額数万円程度の例が多いです。

Machine Learning の価格
https://azure.microsoft.com/ja-jp/pricing/details/machine-learning/ AML_price_1

 

質問 6: Azure ML にはどのようなアルゴリズムが用意されているの?

 

回答 6: クラス分類 (Classification)、回帰 (Regression)、クラスタリング (Clustering)、異常検知 (Anomaly Detection) の 4 つのグループで合計 25 個のアルゴリズムを用意しています。

AML_1

 

質問 7: 各アルゴリズムの実装は公開されているの?

 

回答7: 各アルゴリズムの実装(ソースコード)は公開していません。但し、アルゴリズムの実装に関する情報及び Microsoft Research で作成した論文などを公開しています。各アルゴリズムの実装に関する情報は各アルゴリズムのページの "Implementation" 部分を参照ください。

Machine Learning / Initialize Model
https://msdn.microsoft.com/en-us/library/azure/dn905812.aspx

 

質問 8: どの項目がトレーニング結果に効いているかを簡単に把握する方法はないの?

回答 8: 「Permutation Feature Importance」モジュールを使う方法があります。Permutation Feature Importance に対して次図のようにトレーニング済モデルとデータを渡すことで、各属性の寄与度を出力できます。
AML_2 AML_3

また、各属性間の単純な相関を見たい場合は Statistical Functions の中にある「Compute Linear Correlation」を使う方法もあります。Compute Linear Correlation は数値データ間の相関を -1 ~ 1 で出力します。

AML_4

 

質問 9: 作成した Experiment を他のワークスペースに持っていきたい場合はどうすればいいの?

回答 9: Experiment 一覧の画面で「COPY TO WORKSPACE」を選択することで別ワークスペースにコピーできます。

AML_5

また、作成した Experiment のモジュール群を別ワークスペースにコピーアンドペーストすることも可能です。

 

質問 10: Azure ML の Experiment を ML Studio ではなくプログラマブルに実装できないの?

回答 10: データセット追加や R 関数の API 化など一部の操作は R の AzureML パッケージで行えます。また、Experiment を Web API かしてしまえば、各モジュールのパラメーターを REST API から渡してやることは可能です。

AzureML: Interface with Azure Machine Learning Datasets, Experiments and Web Services
https://cran.r-project.org/web/packages/AzureML/index.html

 

ただ、おそらく多くの方がやりたいと思われている、それ以外の操作 (Experiment の動的作成等) は現状プログラマブルには実装できません。この点 多くのリクエストがあることは認識しており、製品開発チームで検討をしていますので、今後のアップデートにご期待ください。

2016/4/22 時点では、まだ開発中の Beta 状態ですが、PowerShell から Azure ML に対する各種操作が行える PowerShell を公開しています。

azuremlps
https://github.com/hning86/azuremlps

 


まずは使い始めで聞かれる FAQ を纏めてみました。パフォーマンスに絡む問題、GUI の Look&Feel といった開発や改善が進んでいる部分に関する FAQ も Part 2 として別途纏められたらと思います。