azure machine learning getting started

Post on 16-Jul-2015

3.246 Views

Category:

Data & Analytics

4 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Azure Machine Learninggetting started

日本マイクロソフト

テクニカル エバンジェリスト

大田 昌幸

Twitter : @masota0517

Blog : http://nt-d.hatenablog.com/

江田 周平

Twitter : @shumach5

1

事前学習資料

2

機械学習について

3

機械学習とは何か

アルゴリズムとして明示的に解法が与えられないタスクに対して、

そのタスクを遂行するための「進化するモデル」を、

学習データから構築すること

タスク : 対象とする問題

モデル : 人間の知的活動をパターン化したもの

学習データ : コンピューターが学習するために使用する実験データ

<出展 : フリーソフトで始める機械学習入門>

4

機械学習の要素 (学習時)データ

学習用データ/評価用データを分割する (例: 60% : 40%)

モデルの訓練(学習アルゴリズムの訓練)

モデル

学習データを使用して、最適な結果を出すモデルを作成する

データの正規化(不要・不正なデータの削除)

アウトプット/評価

実世界のデータ

5

機械学習の要素 (使用時)データ

学習用データ/評価用データを分割する (例: 60% : 40%)

モデルの訓練(学習アルゴリズムの訓練)

モデル

データの正規化(不要・不正なデータの削除)

アウトプット/評価

実世界のデータ

6

機械学習の分類 (手法別)

機械学習

教師あり学習(正解データがある場合)

中間的手法教師なし学習

(正解データがない場合)

識別(カテゴリ分類)

回帰(数値推測)

モデル推定(クラスタリング)

パターンマイニング

データが正解つき/なしの組み合わせ 手法が正解つき/なしの組み合わせ

購買パターン発見音声/文字認識文章のP/N 判定

売り上げ予測 顧客の分類

ハンズオンの内容

7

線形回帰 (Linear Regression)ハンズオン・セッションで使用します

• 要素データからの距離が最小となる直線を生成します

• ある変数の変化を元に別の変数の変化を予測する際に使用されます• 例 : 車の性能・パーツから価格を予測

8

学習アルゴリズムは複数ありますので、下記を参考に選定してください (英語)http://azure.microsoft.com/en-us/documentation/articles/machine-learning-algorithm-choice/

用語集今後学習を進めるうえで理解しておくと便利な用語解説

まず下記のような数式のことを、あるデータ群の性質を表す”モデル” と呼びます

y = ax1 + ax2 + ax3 …

y の部分を目的変数・結果変数・ラベルなどと呼びます

x の部分を予測変数・説明変数・特徴などと呼びます

複数の x を入力し、y の値が最適な値となるように適切な a を決定していくことをモデルの訓練(調整)と呼びます

9

Azure Machine Learning (Azure ML) について

10

11

ネットワーク

仮想ネットワーク

トラフィックマネージャー

コンピューティング

仮想マシン

クラウドサービス

Webサイト

モバイルサービス

開発言語

キャッシュ メディア CDN データ分析HPC Machine LearningID サービスバス

アプリケーション

バックアップ

データ管理

SQLデータベース ビックデータ テーブル BLOB

世界規模のクラウド基盤データセンター:

北米 4 か所、ヨーロッパ 2 か所、

アジア 2 か所、日本 2 か所

豪州 2 か所、中国(中国国内から利用)

CDN: 全世界に 24 か所

Azure Machine Learning

• Azure 上の機械学習サービス

• 高度な分析ソリューションを GUI で開発

• R, Python によるカスタム コードもサポート

• 数分で Web API として公開

12

ハンズオンで学べること

• 機械学習の概要

• 機械学習を活用したソリューションの開発方法

13

ハンズオンの全体像車のパーツから売上金額を予想するソリューションを開発します

14

Microsoft Azure

Azure Machine Learning

1. 機械学習のソリューションを開発するAzure Machine Lerningの環境構成

2. ソリューションの開発と検証

今回は車のパーツから売上金額を予想するソリューションを開発します

3. Web API の公開※Web API を操作するプログラムの開発は本ハンズオンには含まれていません

ハンズオン完了時のアウトプット

15

車のパーツの性能を API へ POST する

JSON 形式のデータを受け取る

Microsoft Azure

Azure Machine Learning

ハンズオンの全体像車のパーツから売上金額を予想するソリューションを開発します

16

Microsoft Azure

Azure Machine Learning

1. 機械学習のソリューションを開発するAzure Machine Lerningの環境構成

2. ソリューションの開発と検証

今回は車のパーツから売上金額を予想するソリューションを開発します

3. Web API の公開※Web API を操作するプログラムの開発は本ハンズオンには含まれていません

ワークスペースの作成

17

ワークスペースの作成

このセクションでは Azure ML を使用するためのインスタンスである “ワークスペース” を作成していきます。

18

ワークスペースの作成

1. ブラウザで以下のページへアクセスしますhttps://manage.windowsazure.com

3. [+新規]をクリックします

19

2. 左のような画面が表示されます

ワークスペースの作成

2.ワークスペース名を入力します。(ユニークな名前となる必要があります。)

1. [データサービス]-[MACHINE LEARNING]-[簡易作成]

の順にクリックします。

3.データ保存領域であるストレージに任意のアカウント名を設定します。

(ユニークな名前となる必要があります。)

20

ワークスペースの作成

しばらくすると、ワークスペースの作成が完了します

21

このセクションの手順は完了です

ワークスペースの作成が完了し、Azure ML を使用する準備が整いました。

2. ML Studio へサインイン

22

ML Studio へサインイン

このセクションでは実際の作業スペースである ML Studio へサインインします

23

ML Studio へサインイン

先ほど作成したワークスペースの名前の横にある [→]をクリックします。

24

ML Studio へサインイン

[ML Studio にサインイン]をクリックします。

25

ML Studio へサインイン

しばらくすると、ML Studioの画面が表示されます。

26

このセクションの手順は完了です

ML Studio へのサインインが完了し、ソリューションを開発する準備が整いました。

ハンズオンの全体像車のパーツから売上金額を予想するソリューションを開発します

27

Microsoft Azure

Azure Machine Learning

1. 機械学習のソリューションを開発するAzure Machine Lerningの環境構成

2. ソリューションの開発と検証

今回は車のパーツから売上金額を予想するソリューションを開発します

3. Web API の公開※Web API を操作するプログラムの開発は本ハンズオンには含まれていません

Experiment の作成

28

Experiment の作成

このセクションではML Studioでソリューション(Experiment) を作成します

29

Experiment の作成

ML Studio 上で、[+ New]をクリックします。

30

Experiment の作成

今回は 1 からソリューションを作成するため、[Blank Experiment]を選択します。

31

Experiment の作成

ソリューションの開発画面が表示されますこの画面上で各種モジュールを追加して、

ソリューションを開発していきます

32

このセクションの手順は完了ですソリューションを開発する準備が整いました。

モジュールの追加

33

最終的な完成イメージ各モジュール (パーツ) の詳細な説明は各スライドで行います

34

データ

学習用データ/評価用データを分割する (例: 60% : 40%)

モデルの訓練(学習アルゴリズムの訓練)

モデル

データの正規化(不要・不正なデータの削除)

アウトプット/評価

データの追加このセクションでは、学習用のデータを追加する方法を学びます

35

データ

学習用データ/評価用データを分割する (例: 60% : 40%)

モデルの訓練(学習アルゴリズムの訓練)

モデル

データの正規化(不要・不正なデータの削除)

アウトプット/評価

データの追加

1. 検索ボックスに “Automobile” と入力します。対象のデータが検索結果として表示されます。

2. [Automobile price date (Raw)] を画面中央のスペースにドラッグ & ドロップします。

36

ML Studio 上には練習用のサンプルデータがあります。今回は車の売り上げデータを使用します。

データの追加

[Automobile price date (Raw)]のモジュールが追加されます。

37

データの追加

1.[Automobile price date (Raw)]のモデルの出力先(赤丸で指定した部分)をクリックします。

2. [Visualize] をクリックし、データを確認します。

38

データの追加

左図のようにデータを確認できます。[Normalized-loss] の列でデータが多く欠けている

こと、その他の列でも欠けている箇所が存在することを確認します。

39

このセクションの手順は完了ですML Studio でデータを追加する方法や

追加したデータの中身を見る方法を学びました。

データの正規化このセクションでは、学習用のデータを正規化する方法を学びます

40

データ

学習用データ/評価用データを分割する (例: 60% : 40%)

モデルの訓練(学習アルゴリズムの訓練)

モデル

データの正規化(不要・不正なデータの削除)

アウトプット/評価

データの正規化

1.検索ボックスに “Project Columns” と入力します。

2.[Project Columns] を画面中央のスペースにドラッグ & ドロップします。

このパーツは、データの中で使用する列の選択・不要な列の削除をする際に使用します。

41

このセクションでは不正・不要なデータを削除する方法を学びます。データを変更することでモデルの予測精度が変わります。

データの正規化

[Automobile price date (Raw)] の出力から、 [ProjectColumns] の入力へドラッグ & ドロップします。矢印により、

モジュールを結合することができます。

これにより、データをデータ変更用のパーツへ渡すことができます。

42

データの正規化

それでは、実際に不要な列を削除しましょう。[Launch Column Selector]をクリックします。

43

データの正規化

1.左図の通り設定し、[normalized-losses] の列を削除します。

2.設定が完了したら、チェックボタンをクリックします。

44

データの正規化

45

処理したデータを見ていきましょう

処理を行うために [RUN]をクリックします

データの正規化

46

処理が終わると、[✅] が表示されます

データの正規化

47

処理されたデータを見るために [Visualize] をクリックします

データの正規化

48

実際に [normalized-losses]が削除されていることを確認できます。このようにML Stduioは簡単にデータの編集・表示が行えます。処理結果を都度確認することは通常大変な作業ですが、

ML Studio では簡単に確認できるのでソリューションの開発が効率化されます。

本セクションのこの後の手順でも適宜 [RUN] と [Visualize]をご活用いただき、都度処理結果をご確認ください

データの正規化

空白を含む行を削除するために、[Missing Values Scrubber]を追加します。

[Project Columns] と結合します。

49

データの正規化

必要な列のみを選択するために、再度 [Project Columns]を追加します。

その後、[Missing Values Scrubber] と結合します。

このプロジェクトでは、[Project Columns] を 2 つ使用しています。[Project Columns]を一つにまとめてしまっても同じ結果となりますが、下記 2 つの処理ができる

ことを説明するためにあえて追加しました。• 特定列のみの選択• 特定列のみの削除

なお、 2つに分けた方が適切な場合もありますので、適宜データの処理結果を見ながらご判断ください。

50

データの正規化

1.[Launch Column Selector]をクリックします。

2.画面の通り設定を追加します。なお、追加している Columnは、以下となります。[make], [body-style], [wheel-base], [engine-size], [horsepower], [peak rpm], [highway-mpg], [price]

51

このセクションの手順は完了です。

データの正規化方法・現時点でのデータの様子を確認する方法を学びました。

学習用データ/評価用データの分割このセクションでは、データを学習用・評価用へ分割する方法を学びます

52

データ

学習用データ/評価用データを分割する (例: 70% : 30%)

モデルの訓練(学習アルゴリズムの訓練)

モデル

データの正規化(不要・不正なデータの削除)

アウトプット/評価

データの分割

1. [Split] モジュールを追加しますデータを分割する性質のモジュールのため、接続用のノードが下に 2 つついています。

2. [Fraction of rows in the first]の値を 0.7とします。この結果、学習用に 70% のデータが割り振られる

ことになります

このセッションはここで終了です。

53

データを、学習用とモデル評価用に分割するための手順を学びます

モデルの作成このセクションでは、学習結果からモデルを作成します

54

データ

学習用データ/評価用データを分割する (例: 70% : 30%)

モデルの訓練(学習アルゴリズムの訓練)

モデル

データの正規化(不要・不正なデータの削除)

アウトプット/評価

モデルの作成

モデルを作成するために、[Train Model]を追加します。

Train Model 内で学習データを使用して a を決めていきます。

[Split] と結合します。

55

モデル作成とは最適な処理を行う関数を生成することとご理解ください。

例えば、 y = ax1 + ax2 + ax3 …などの数式をベースと

するとします。その際に、学習データを用いることで最適な a を決めるフェーズとなります。

モデルの作成

56

Train Model を設定するために、[Launch Column Selector]をクリックします。

モデルの作成

左図の通り設定を追加します。ここでは、 [price] を選択しています。

この設定は、y = ax1 + ax2 + ax3 …のような関数の y を [price] とする設定をしています。

57

モデルの作成

[Linear Regression]を追加し、[Train Model] と結合します。

この操作は y = ax1 + ax2 + ax3 …のような、ベースとなる関数を決定しています。今回は線形回帰を選択しています。なお、他のモデルの選択も可能です。

58

このセクションの手順は完了ですML Studio でデータを追加する方法や

追加したデータの中身を見る方法を学びました。

Train Model はベースとなる関数と変数 (x) を入力する必要があるので、入力が 2 つあります。

モデルの評価このセクションでは、モデルの評価方法を学びます

59

データ

学習用データ/評価用データを分割する (例: 70% : 30%)

モデルの訓練(学習アルゴリズムの訓練)

モデル

データの正規化(不要・不正なデータの削除)

アウトプット/評価

モデルの評価

予想の値段を出すためには Score Modelを使います。[Score Model]を追加し、

[Split]、[Train Model] と [Score Model] を結合させます。

Score Model はモデル・データを入力する必要があるので、入力口が 2 つあります。

左側の入力が “モデルの入り口” 、右側の入力が “モデルで使うデータの入り口” となるため、今回はここに評価用のデータを入力します。

60

評価用のデータをモデルに入力し、モデルに予想の値段を出力させます。

y = ax1 + ax2 + ax3 …の x に評価用のデータを入れるというイメージをしてください。

モデルの評価

61

Score Model を接続後、[Run] と [Visualize]を実施しましょう。左図のように、実際の価格 (price) と予想した価格 (Scored Labels)

が確認できます。

モデルの評価

予想と実際の比較をするために、[Evaluate Model] を追加します。

追加後、[Score Model] と結合します。

62

モデルの評価

[Run] をクリックします。

63

モデルの評価

1.[Finish Running] が表示されるのを待ちます。

2.[Evaluate Model]の出力先から [Visualize] をクリックします。

64

モデルの評価

予想した値段・実際の値段を比較して、今回作成したモデルの評価が表示されるので確認してください

このセクションの手順は完了です。作成したモデルを評価する方法を学びました。

65

上記定義の詳細は下記 URL の Step5 をご参照ください。http://azure.microsoft.com/en-us/documentation/articles/machine-learning-create-experiment/

予想と実際の値の差異を表すエラーの値小さな値になるとモデルの性能が高い

モデルとデータの相性を表す値1.0に近づくほど性能が高い

ハンズオンの全体像

66

Microsoft Azure

Azure Machine Learning

1. 機械学習のソリューションを開発するAzure Machine Lerningの環境構成

2. ソリューションの開発と検証

今回は車のパーツから売上金額を予想するソリューションを開発します

3. Web API の公開※Web API を操作するプログラムの開発は本ハンズオンには含まれていません

API の公開

67

1. Web サービスとして公開する準備のためにここをクリックします

API の公開

68

はじめて操作する際にはこのような画面が表示されるので、すべて [NEXT]をクリックします。

API の公開

69

操作が完了すると、このような画面が表示されます。

[Web service input] と [Web service output]が上下に追加されていることを確認してください。

構築したモデルで有効なデータの列はモデル構築時に絞り込まれています。

例 : [make], [body-style]

そのため、Web API 呼び出し時に正規化の手順は必要なく、[Web service input]の位置を変更します。

なお、変更をしない場合には不必要に処理の時間がかかり、Timeoutが発生し 500エラーが返され

ることが多くなります。

API の公開

70

まずは、今の接続を削除し、その後適切な場所に接続しなおします。

この部分を選択し、[Del] キーなどで削除してください。削除が完了すると左下図の状態になります。

API の公開

71

[Web Service input] の出力と [Score Model] の入力を繋ぎます。

テクニック的な補足を追加します。Web API の出力を絞り込みたいときには

[Score Model] と [Web service output]の間に [Project Columns]を追加しましょう。

Web API の出力を確認する方法はこの後解説しますので、まずは API の出力を確認し、必要に応じて [Project Columns] を

追加してください。

API の公開

72

[PUBLISH WEB SERVICE]をクリックします。

もし [PUBLISH WEB SERVICE]がグレーアウトしている場合には、下記手順を行ってください。

1. [PUBLISH WEB SERVICE] 左隣の [RUN]ボタンをクリックします。

2. この部分が地球儀のマークになっていることを確認します。ビーカーのマークになっている場合にはクリックして、地球儀のマークへ切り替

えてください。

地球儀のマーク : Web API 公開用のビュービーカーのマーク : モデル構築用のビュー

API の公開

73

[YES] をクリックします。

API の公開

74

API をテストするために、[TEST] をクリックします。

API に車の情報を与えることで、価格の予想結果が返ってきます。

左図のような画面に遷移します。表示されていない場合には、ここをクリックします。

API の公開

75

左図のような画面が表示されます。下記の表の情報を入力してください。他の情報は不要です。モデル作成時に Project Columnsで選択した属性です。

属性名 サンプルの値

Make alfa-romero

body-style convertible

wheel-base 88.6

engine-size 130

horsepower 111

peak-rpm 5000

highway-mpg 27

API の公開

76

左図のように結果が表示されますが、すぐに隠れてしまいますので、

再表示する方法を次ページ以降で説明します。

API の公開

77

ここをクリックします。

API の公開

78

[DETAILS] をクリックします。

API の公開

79

ここに値段が表示されています (json形式)。今回はポータル上でテストをしましたが、

ご自身のWeb サービスやアプリからも呼び出すことができます。

API の公開

80

API 呼び出しのための情報やサンプルプログラムにアクセスする方法を学びます。

ここをクリックします。

API の公開

81

このようなページが表示され、API ドキュメントを確認できます。

ページ下側へスクロールすると、サンプルコードも確認できますので、プログラムを書く際に参考にしてください。

このセッションは以上になります。モデルをWeb API として公開し、

機械学習を使ったソリューションを皆様のサービスから活用できる方法を学びました。

ハンズオンは終了ですお疲れ様でした

82

ハンズオンの振り返り車のパーツから売上金額を予想するソリューションを開発しました

83

Microsoft Azure

Azure Machine Learning

1. 機械学習のソリューションを開発するAzure Machine Lerningの環境構成

2. ソリューションの開発と検証

3. Web API の公開※Web API を操作するプログラムの開発は本ハンズオンには含まれていません

ハンズオンで学んだこと

• 機械学習の概要

• 機械学習を活用したソリューションの開発方法

84

top related