国立標準技術研究所の混合データ セット (MNIST データ セット) は、さまざまな IR アルゴリズムを比較する際のベンチマークとして機能させるように、IR の研究者によって作成されました。基本的な考え方としては、テストする IR アルゴリズムまたはソフトウェア システムがある場合、MNIST データ セットに対してアルゴリズムまたはシステムを実行し、他のシステムについて以前発行された結果と比較します。
データ セットには計 70,000 枚の画像が含まれており、そのうち 60,000 枚は学習用画像 (IR モデルの作成に使用) で 10,000 枚は判別用画像 (モデルの精度の評価に使用) です。各 MNIST 画像は、1 つの手書き数字をデジタル化したものです。サイズはそれぞれ 28 x 28 ピクセルです。各ピクセル値は 0 (白) ~ 255 (黒) の値で、中間のピクセル値は灰色の網かけを表します。図 2 に示すのは、学習用セットの最初の画像 8 枚です。各画像に対応した実際の数値を識別するのは、人間には簡単ですが、コンピューターにとっては至難の業です。
Microsoftが提供するクラウドサービスAzureの機能の一つで、ブラウザのみで機械学習のモデル作成、検証、デプロイまでが完結するサービスです。
https://studio.azureml.net にアクセスすると Microsoft Azure Machine Learning StudioのHome画面が表示されます。
水色の[Sign In]のボタンを押すとログインフォームが表示されます。
ログインフォームにはAzureアカウントのメールアドレスを入力します。
ログインが完了すると、以下のような画面になり、 my experimentsというボタンが現れます。
はじめて、�Microsoft Azure Machine Learning Portalにログインすると、自動的に{アカウント名}-Free-Workspaceというワークスペースが�作成されます。
ワークスペースと言うのは、Azure Machine Learningの中で色々なモデル、データ・セットをまとめたプロジェクトのようなものと思って下さい。
ここに、Experimentsというものを作り機械学習のモデルを作って行きます。
Experimentsとは、������機械学習のモデルを作る場所になります。 Experiments1つにつき、1つのAPIにすることが出来ます。
左下の「NEW」から「Blank Experiment」を選択することで、空のExperimentsが作成されます。 �
Saved Datasets / MNIST Train 60k 28x28 dense をドラッグ&ドロップ
Machine Learning / Train / Train Model をドラッグ&ドロップ
MNIST Train 60k 28x28 denseの下の点とTrain Modelの右上を線でつなげます
Machine Learning / Initialize Model / Classification / の
- Multiclass Decision Forest
- Multiclass Decision Jungle
- Multiclass Logistic Regression
- Multiclass Neural Network
上記4つの中から好きな物を選んでドラッグ&ドロップ Multiclass〜の下の点とTrain Modelの左上を線でつなげます。
Train Modelをクリックし、右に出た「Launch column selector」を選択
空欄のところをクリックすると一番上に「Label」があるのでこれを選択
>
をクリックしてSELECTED COLUMNS
に移動
Machine Learning / Initialize Model / Score / Score Model をドラッグ&ドロップ Train Modelの下の点とScore Modelの左上を線でつなげる
Saved Datasets / MNIST Test 10k 28x28 dense をドラッグ&ドロップ MNIST Test 10k 28x28 denseの下の点とScore Modelの右上を線でつなげる
Machine Learning / Evaluate / Evaluate Model をドラッグ&ドロップ Score Modelの下の点とEvaluate Modelの上の点どちらかを線でつなげる
下の「RUN」ボタンをクリック RUNが終了したら(Evaluate Modelまでチェックマークがついたら)Evaluate Modelの下の点をクリックし、Visualizeを選択すると結果が表示されます。
このVisualizeで精度の検証を行っていきます。 � このようなマトリックスが出て来ます。 このマトリックスを見ながら予測結果と正解を比較し、あっているあっていないというところを見ています。
下のメニューより、�[SET UP WEB SERVICE]をクリックすると、Predictive Web Service [Recommended]を選択すると自動的にWebサービス化する準備が出来ます。 Experimentsが2つに別れ、�学習用のExperimentsと予測するためのExperimentsが作成されます(Training experimentとPredictive experiment) 完了すると表示がタブに分かれ、ScoreModelの上下にWeb Service用のInput Outputのモジュールが繋がった状態になります。
この状態で再度RUNを�クリックすると、Webサービスとしてデプロイ出来るようになります。 Deploy Web Service[Classic]をクリックすることで、Webサービスとしてデプロイされます。 �
この画面では、今作成したWeb APIの仕様を確認したり、テストしたりすることができます。
APIの仕様を確認すると、どのようなエンドポイントにアクセスし、 どのようなパラメータがあり、どのようなレスポンスが帰ってくるのかを確認する事ができます。
もし自分のアプリケーションに機械学習の機能を取り込むのであれば、このドキュメントを見ることになります。
ドキュメントの最後には、R, Python, C#でのサンプルコードも載っているので、参考にすることができます。
WebAPIのテストもブラウザから簡単に行う事ができます。
Default Endpoint
のTEST
ボタンをクリックする事で、テスト用のフォームが開きます。
入力として必要な項目を入力し、チェックマークをクリックすると、APIに問い合わせをします。
AzureMLのWeb Serviceから、POST先のURLととAPI KEYを入手します。
上記二つの情報を確認フォームの0.Azure MLのAPI情報に入力
- ペイント等で文字を書きます。
- 書いた文字をアップロードします。
新しく仮想マシンを立ち上げ、SSHでログイン
$ sudo yum -y install httpd php php-mbstring php-gd git
$ git clone https://github.com/tottok-ug/azure-ml-mnist-test-web-ui.git
PHPの動くWebサーバのドキュメントルートに
public/配下の
- img/
- js/
- css/
- detect.php
- index.html
- upload.php
を入れておく。
./docker_run.sh
open http://localhost
この資料はAzure Machine Learningを使用して、�機械学習を体験するためのハンズオン資料になります。
今日このハンズオンを受け、どこかでこのハンズオンを実施したいと思ったら、 資料および、確認用フォームのソースコードはgithubで公開されているので、使用してください。
https://github.com/tottok-ug/azure-ml-mnist-test-web-ui
この資料を使うための条件は一つです。
- 資料の鮮度を保つ事。 � 2017年11月現在 Azure Machine Learningはアップデートが頻繁にされており、資料と現状で操作や諸々の文言等差異が発生している可能性があります。
こちらについては、使用する前には必ず一度はご自身でお試しいただき、現状と資料との�差異を確認してください。 もし、資料との差異が存在した場合には、修正しPullRequestを送ってください。
Version. 2017�-11-24