Translate

2016年9月15日木曜日

書籍「さわってわかる機械学習 Azure Macine Learning 実践ガイド」を読む


Watson APIはREST APIさえ知ってれば、
機械学習の知識ゼロでも始められる
ド素人向け開発だ。
こんなのお客様に出したらすぐバレる。

とはいえ、イチからごりがきするTensorFlowは難しい..



ユーザであるお客様にも機械学習全く知りませんよってことがバレないで、
もっと薄くうすーく機械学習をなめ、
いかにもやった感じになるような開発はできないものか..

ということで見つけたのが
MicrosoftのAzure Machine Learning Studio。

Microsoft Azure Machine Learning Studio
https://studio.azureml.net/

Node-REDのようにWeb UIでフローを組み立てて
(TensorFlowのdockerコンテナで動くjupyterのように)手動実行の統合開発環境と、
さらに機械学習を使った REST APIをつくってしまおうという
夢のサービスだ。

Free版もあるのだが、登録には
メールアドレスと携帯電話によるショートメッセージ認証だけでなく
Azureサブスクリプションを要求される。

男気ある人は有料サブスクリプションをここで即購入できるが
私はもちろん無料枠のサブスクリプションを使った。

それでもクレジットカード情報を要求してくるのは
何故だろう..

この辺りの手順が怖いという超ビビリの方は表題の書籍のAppendixに一挙手一投足の手順が書かれているので、こちらで確認のこと。



つくったアカウントでサインインして、Studioにログインして、

Machine Learning のチュートリアル: Azure Machine Learning Studio で初めてのデータ サイエンス実験を作成する
https://azure.microsoft.com/ja-jp/documentation/articles/machine-learning-create-experiment/

に従ってチュートリアルを実行してみた。

ところどころノード(?)のありかがちがうのと
"Project Columns"というノードが現在のAzure ML Studioにはみあたらず
"Select Columns in Dataset"を代わりに使ったくらいで
すんなり終わる。

非常にわかりやすいし、関数名ではなくツリー上になったリストからノードを貼りつけてフローを組み立てるので視覚的にもわかりやすい。

これならゴリゴリの人工知能屋でなくても
お客様にいかにも人工知能知ってますよ的な顔して開発できそうだ..


アマゾンで検索すると以下の日本語書籍も出版されていたので
購入して読んでみた。





にしても、もう本が出てるとは..さすがマイクロソフト、商売上手だ..

 1章は概要なのでななめ読みで読み飛ばす。

2章は、TwitterAPIをVisual Studioで使ってデータを集めようというもの。
Visual Studio Community版は無料だからこの章の内容をやれるけど、
実はこの章の内容は他の章では使用しないので無視。

4~6章は、先ほど紹介したチュートリアルをぱくった^H^H オマージュした内容となっており、日本人向けにデータも日本語化して、ノードの個々の説明や使っているプロパティ、画面の説明をことこまかくおしえてくれるないようになっている。

一部の価格欄が空欄になっている自動車情報を、線形回帰の学習モデルをつかって予測価格情報をもとめ、その制度を上げるため線形回帰のパラメータをかえたりベイズ線形回帰にかえたりして精度を上げたり、学習済みモデルを保存してそれを使い回したりする流れだ。

7章は、Classificationの例で、個人情報の年収を2つの分類に分ける(機械学習ではないが)操作を学習する。

8章は、クラスタリングの例で、アイリス(あやめ)の分類をK-Mean法を使った機械学習で分類する。

ここまでの章は、一挙手一投足で書かれていて、Project ColumnsをSelect Columns in Datasetに読み替えることだけわかっていれば、ド素人でもできるようになっている。

のに、9章のWeb APIは前の章とのつながりもないし、一挙手一投足でなくなっている..

たぶん8章で力尽きたんだろうなあ..ということでそうぞうしながらやってみた。

まず5-3章で学習済みモデルを使ってCSV出力するExprerienseを編集してAPI化することとして、該当Experienseを三角ビーカアイコンを選択して選ぶ。

 次に、Data Transaction>Manipulation>Select Columns in Dataserをドラッグしてノード「クルマ情報予想したいデータ.csv」と「Score Model」の間にはさんで接続し、Lunch column selectorボタンを押す。

 BY NAMEを選択し「価格」以外のすべての項目をSELECTED COLUMNSへ移動し、vアイコンを押す。
 Runを実行する。
 Runが完了したら、ノード「Convert to CSV」下部のポートを右クリックして「Download」を選択。
ダウンロードしたファイルをExcelではなく、UTF-8を表示できるエディタで開き、 価格欄の代わりにScored Labelsに予測自動車価格(車価)がでていることを確認する。

ノード「Convert to CSV」を削除して代わりに Data Transaction>Manipulation>Select Columns in Dataserをドラッグしてノード「クルマ情報予想したいデータ.csv」と「Score Model」の間にはさんで接続する。
 Lunch column selectorボタンを押し、「Scored Labels」のみSELECTED COLUMNSに移動し、vマークを選択する。
 Web Service>Inputをドラッグして、ノード「Web service input」をノード「Select Columns in Dataset」の横に配置して、ノード「Score Model」の右上ポートと接続する。Web Service>Outputをドラッグして、一番下のノード「Select Columns in Dataset」の更に下に配置し接続する。
 この状態でRunする。Runが終わったら、DEPLOY WEB SERVICEを選択する。

REQUEST/RESPONSE行のTestボタンを押す。

 パラメータに予測したいクルマの情報を入力し、vマークを選択。
 結果が画面下の方にJSON形式で先頭だけ表示される。ので、DETAILSを選択。
 JSON形式データが全部見えていることを確認する。


..超簡単だ..

これはナンチャッテ機械学習アプリ量産できそうだなあ..

最後の10章やろうとしたら、Azure Blob Storageが必要になり、Azureサブスクリプションが結局必要になるのだけど、実は10章やるまでに無料版が切れてしまい、試すことができませんでした..

10章は、9章でやらなかったBATCH EXCUTIONのところだったのになあ..

でも、このためだけに従量課金サブスクリプションを契約するのも癪だ..

別のMicrosoftアカウントとったけど、無料サブスクリプションを有効化しようとするとエラーになる..
同じクレジットカードだと作れないのか、同じ携帯電話番号だとだめなのか..

ということでココで諦めてしまいました。



でも、機械学習いっちょかみのカッコけたがりには、Azure Machine Learning Studioはいいサービスだと思うなあ..

0 件のコメント:

既存アプリケーションをK8s上でコンテナ化して動かす場合の設計注意事項メモ

既存アプリをK8sなどのコンテナにして動かすには、どこを注意すればいいか..ちょっと調べたときの注意事項をメモにした。   1. The Twelve Factors (日本語訳からの転記) コードベース   バージョン管理されている1つのコードベースと複数のデプロイ 依存関係 ...