Azure Machine Learningが便利なことを布教したい

おはようございます。 スモールビジネスAIラボ 研究員のKenji Usuiです。

クラウド機械学習流行りですね。かく言う私も最近使い始めたらその便利さにハマってしまいました。
ここではメインで使っているAzure Machine Learning(以下Azure ML)の良さについて語っていきます。

Azure Machine Learningのここがよい

私がメインで使っているクラウド機械学習ツールはAzure MLです。なぜAzure MLを選んだかというとザックリ次の3点が大きな理由になります。

  1. GUIが使いやすい and わかりやすい
  2. 簡単にWebサービスとしてデプロイできる
  3. SQLやPythonも使える

それぞれ詳細を説明していきます。

1. GUIが使いやすい and わかりやすい

モデル構築は試行錯誤の繰り返しなのでサクサク変えていけると楽です。
その点ではGUIは非常に便利でAzure MLはGUI上でユニットを変えるだけで処理を変更することができます。後で見返してもわかりやすいのも良いですね。加えてテスト結果を可視化してくれます。これが見やすくてカッコイイのでそのままドキュメントに使えます。
便利ですね。 f:id:Grahamian:20170726145935p:plain

2. 簡単にWebサービスとしてデプロイできる

Azure MLは学習したモデルを5分でwebサービス化できます。しかもスケーラブル。
学習のために設計した状態からほぼ自動でwebサービスへ変換することができます。
f:id:Grahamian:20170726154043p:plain 学習器を使うためにコードを書く必要もありません。普通だとwebサービス化やその保守に手間がかかってしまいますが、これを圧倒的に短縮できます。
呼び出しもREST APIなので簡便でJSONを渡すかcsvを渡してバッチ処理できます。
便利ですね。

3. SQLやPythonも使える

前処理をちまちまと変更しながらテストしたいことは多々あると思うのですが、これもクラウドで完結できます。
Azure MLはデータをSQLで抽出したりPythonで簡単な処理を追加したりできます。またPythonのライブラリとしてAnacondaが用意されています。これを使って大概の処理はできるためローカルと変わらない処理をクラウド上で完結することができます。地味ですがこの機能のおかげて痒いとこに手が届きます。
便利ですね。

Azure Machine Learningのここが気になる

機械学習アルゴリズム自体を変更できない自由度の低さは悪い点かもしれません。
f:id:Grahamian:20170726151407p:plain
↑こんな感じにAzure ML上ではパラメータチューニングはできますがアルゴリズムの変更はできません。Neural Networkもhidden layerの数やnodeの数を変更することはできますが複雑な変更はできません。「既存のアルゴリズムを改修したい!」「新しい論文のアルゴリズムを実装したい!」というのはほぼ無理です。
これはAzure MLがコモディティ化した技術を簡単に扱えるようにするツールなので方向性が違うのだろうな、と思います。Deep Learningをガッツリ活用するならAzure MLではなくコードを書いてスクラッチするか、用途に合うものが有るならばGoogleの学習済みAPIを使うのが良いと思います。
加えてUIがモッサリすることがちょっと気になりました。そのため前処理のテストなど「処理は軽いけどトライ&エラーが多い」みたいなケースはローカルで処理するほうが早いことがあります。

Azure Machine Learningはいいぞ

Azure MLを用いることで多くのビジネス課題の解決やプロダクトへの応用が手軽かつ高速に行えます。
最先端の機械学習技術を用いたプロダクトには向きませんが、多くのビジネス課題やデータ分類にはAzure ML上のアルゴリズムで十分です。機械学習のコモディティ化がよく話題になりますがAzure MLはそれを具現化したツールだと感じます。
エンジニアリングで効率化のためにツールを活用しているように、AIラボでは機械学習の場面でも最新のツールをガンガン活用していきます!