Skip to content

tottok-ug/azure-ml-mnist-test-web-ui

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

43 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Azure Machine Learning - ハンズオン MNISTで手書き文字認識

機械学習とは

MNISTデータセットとは

国立標準技術研究所の混合データ セット (MNIST データ セット) は、さまざまな IR アルゴリズムを比較する際のベンチマークとして機能させるように、IR の研究者によって作成されました。基本的な考え方としては、テストする IR アルゴリズムまたはソフトウェア システムがある場合、MNIST データ セットに対してアルゴリズムまたはシステムを実行し、他のシステムについて以前発行された結果と比較します。

データ セットには計 70,000 枚の画像が含まれており、そのうち 60,000 枚は学習用画像 (IR モデルの作成に使用) で 10,000 枚は判別用画像 (モデルの精度の評価に使用) です。各 MNIST 画像は、1 つの手書き数字をデジタル化したものです。サイズはそれぞれ 28 x 28 ピクセルです。各ピクセル値は 0 (白) ~ 255 (黒) の値で、中間のピクセル値は灰色の網かけを表します。図 2 に示すのは、学習用セットの最初の画像 8 枚です。各画像に対応した実際の数値を識別するのは、人間には簡単ですが、コンピューターにとっては至難の業です。  

Azure Machine Learningとは

Microsoftが提供するクラウドサービスAzureの機能の一つで、ブラウザのみで機械学習のモデル作成、検証、デプロイまでが完結するサービスです。

使い方

Azure Machine Learningの使い方

Microsoft Azure Machine Learning Studio にサインイン

https://studio.azureml.net にアクセスすると Microsoft Azure Machine Learning StudioのHome画面が表示されます。 home

水色の[Sign In]のボタンを押すとログインフォームが表示されます。

loginform

ログインフォームにはAzureアカウントのメールアドレスを入力します。

password 入力したアカウントのパスワードを入力します。

WORKSPACEの作成

ログインが完了すると、以下のような画面になり、 my experimentsというボタンが現れます。

login後

はじめて、�Microsoft Azure Machine Learning Portalにログインすると、自動的に{アカウント名}-Free-Workspaceというワークスペースが�作成されます。

ワークスペースと言うのは、Azure Machine Learningの中で色々なモデル、データ・セットをまとめたプロジェクトのようなものと思って下さい。

ここに、Experimentsというものを作り機械学習のモデルを作って行きます。

Experimentsの作成

Experimentsとは、������機械学習のモデルを作る場所になります。 Experiments1つにつき、1つのAPIにすることが出来ます。

左下の「NEW」から「Blank Experiment」を選択することで、空のExperimentsが作成されます。 � blank

blank

機械学習のモデルを作成する。

Saved Datasets / MNIST Train 60k 28x28 dense をドラッグ&ドロップ

60000

Machine Learning / Train / Train Model をドラッグ&ドロップ

train

MNIST Train 60k 28x28 denseの下の点とTrain Modelの右上を線でつなげます

60k-train

Machine Learning / Initialize Model / Classification / の

  • Multiclass Decision Forest
  • Multiclass Decision Jungle
  • Multiclass Logistic Regression
  • Multiclass Neural Network

上記4つの中から好きな物を選んでドラッグ&ドロップ Multiclass〜の下の点とTrain Modelの左上を線でつなげます。

60k-train

Train Modelをクリックし、右に出た「Launch column selector」を選択

launch

空欄のところをクリックすると一番上に「Label」があるのでこれを選択
>をクリックしてSELECTED COLUMNSに移動

label

Machine Learning / Initialize Model / Score / Score Model をドラッグ&ドロップ Train Modelの下の点とScore Modelの左上を線でつなげる

score

Saved Datasets / MNIST Test 10k 28x28 dense をドラッグ&ドロップ MNIST Test 10k 28x28 denseの下の点とScore Modelの右上を線でつなげる

10k

Machine Learning / Evaluate / Evaluate Model をドラッグ&ドロップ Score Modelの下の点とEvaluate Modelの上の点どちらかを線でつなげる

eva

下の「RUN」ボタンをクリック RUNが終了したら(Evaluate Modelまでチェックマークがついたら)Evaluate Modelの下の点をクリックし、Visualizeを選択すると結果が表示されます。

visual

このVisualizeで精度の検証を行っていきます。 � evaluate このようなマトリックスが出て来ます。 このマトリックスを見ながら予測結果と正解を比較し、あっているあっていないというところを見ています。

Web APIとして公開する準備

webservice 下のメニューより、�[SET UP WEB SERVICE]をクリックすると、Predictive Web Service [Recommended]を選択すると自動的にWebサービス化する準備が出来ます。 Experimentsが2つに別れ、�学習用のExperimentsと予測するためのExperimentsが作成されます(Training experimentとPredictive experiment) 完了すると表示がタブに分かれ、ScoreModelの上下にWeb Service用のInput Outputのモジュールが繋がった状態になります。

experiment-tab

この状態で再度RUNを�クリックすると、Webサービスとしてデプロイ出来るようになります。 webservice Deploy Web Service[Classic]をクリックすることで、Webサービスとしてデプロイされます。 �

Web API

しばらくすると、下のような画面が開きます。 Webservice Dashboard

この画面では、今作成したWeb APIの仕様を確認したり、テストしたりすることができます。

APIの仕様を確認すると、どのようなエンドポイントにアクセスし、 どのようなパラメータがあり、どのようなレスポンスが帰ってくるのかを確認する事ができます。

もし自分のアプリケーションに機械学習の機能を取り込むのであれば、このドキュメントを見ることになります。

ドキュメントの最後には、R, Python, C#でのサンプルコードも載っているので、参考にすることができます。

Web APIのテスト

WebAPIのテストもブラウザから簡単に行う事ができます。

Default EndpointTESTボタンをクリックする事で、テスト用のフォームが開きます。 テストダイアログ

入力として必要な項目を入力し、チェックマークをクリックすると、APIに問い合わせをします。

MNIST 確認用フォームの使い方

AzureMLの情報を入力する

AzureML MNIST 確認フォーム このようなページが開きます。

AzureMLのWeb Serviceから、POST先のURLととAPI KEYを入手します。

  • API Key API Key
  • エンドポイント エンドポイント

上記二つの情報を確認フォームの0.Azure MLのAPI情報に入力 Azure ML Web API の情報入力

手書きの文字を認識する。

  • ペイント等で文字を書きます。
  • 書いた文字をアップロードします。

画像をアップロード

  • アップロードされた画像はリサイズされます。 画像のリサイズ

  • 文字認識完了 画像の認識


MNIST 確認フォームのインストール

インストール

VM

新しく仮想マシンを立ち上げ、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

Requirements

docker

To Use
./docker_run.sh
open http://localhost

さいごに

この資料はAzure Machine Learningを使用して、�機械学習を体験するためのハンズオン資料になります。

今日このハンズオンを受け、どこかでこのハンズオンを実施したいと思ったら、 資料および、確認用フォームのソースコードはgithubで公開されているので、使用してください。

https://github.com/tottok-ug/azure-ml-mnist-test-web-ui

使用の条件

この資料を使うための条件は一つです。

  1. 資料の鮮度を保つ事。 � 2017年11月現在 Azure Machine Learningはアップデートが頻繁にされており、資料と現状で操作や諸々の文言等差異が発生している可能性があります。

こちらについては、使用する前には必ず一度はご自身でお試しいただき、現状と資料との�差異を確認してください。 もし、資料との差異が存在した場合には、修正しPullRequestを送ってください。

Version. 2017�-11-24

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Contributors 4

  •  
  •  
  •  
  •