azure machine learning getting started

84
Azure Machine Learning getting started 日本マイクロソフト テクニカル エバンジェリスト 大田 昌幸 Twitter : @masota0517 Blog : http://nt-d.hatenablog.com/ 江田 周平 Twitter : @shumach5 1

Upload: masayuki-ota

Post on 16-Jul-2015

3.246 views

Category:

Data & Analytics


4 download

TRANSCRIPT

Page 1: Azure Machine Learning getting started

Azure Machine Learninggetting started

日本マイクロソフト

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

大田 昌幸

Twitter : @masota0517

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

江田 周平

Twitter : @shumach5

1

Page 2: Azure Machine Learning getting started

事前学習資料

2

Page 3: Azure Machine Learning getting started

機械学習について

3

Page 4: Azure Machine Learning getting started

機械学習とは何か

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

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

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

タスク : 対象とする問題

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

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

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

4

Page 5: Azure Machine Learning getting started

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

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

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

モデル

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

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

アウトプット/評価

実世界のデータ

5

Page 6: Azure Machine Learning getting started

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

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

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

モデル

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

アウトプット/評価

実世界のデータ

6

Page 7: Azure Machine Learning getting started

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

機械学習

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

中間的手法教師なし学習

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

識別(カテゴリ分類)

回帰(数値推測)

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

パターンマイニング

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

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

売り上げ予測 顧客の分類

ハンズオンの内容

7

Page 8: Azure Machine Learning getting started

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

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

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

8

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

Page 9: Azure Machine Learning getting started

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

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

y = ax1 + ax2 + ax3 …

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

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

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

9

Page 10: Azure Machine Learning getting started

Azure Machine Learning (Azure ML) について

10

Page 11: Azure Machine Learning getting started

11

ネットワーク

仮想ネットワーク

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

コンピューティング

仮想マシン

クラウドサービス

Webサイト

モバイルサービス

開発言語

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

アプリケーション

バックアップ

データ管理

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

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

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

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

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

CDN: 全世界に 24 か所

Page 12: Azure Machine Learning getting started

Azure Machine Learning

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

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

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

• 数分で Web API として公開

12

Page 13: Azure Machine Learning getting started

ハンズオンで学べること

• 機械学習の概要

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

13

Page 14: Azure Machine Learning getting started

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

14

Microsoft Azure

Azure Machine Learning

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

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

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

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

Page 15: Azure Machine Learning getting started

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

15

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

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

Microsoft Azure

Azure Machine Learning

Page 16: Azure Machine Learning getting started

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

16

Microsoft Azure

Azure Machine Learning

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

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

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

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

Page 17: Azure Machine Learning getting started

ワークスペースの作成

17

Page 18: Azure Machine Learning getting started

ワークスペースの作成

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

18

Page 19: Azure Machine Learning getting started

ワークスペースの作成

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

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

19

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

Page 20: Azure Machine Learning getting started

ワークスペースの作成

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

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

の順にクリックします。

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

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

20

Page 21: Azure Machine Learning getting started

ワークスペースの作成

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

21

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

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

Page 22: Azure Machine Learning getting started

2. ML Studio へサインイン

22

Page 23: Azure Machine Learning getting started

ML Studio へサインイン

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

23

Page 24: Azure Machine Learning getting started

ML Studio へサインイン

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

24

Page 25: Azure Machine Learning getting started

ML Studio へサインイン

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

25

Page 26: Azure Machine Learning getting started

ML Studio へサインイン

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

26

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

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

Page 27: Azure Machine Learning getting started

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

27

Microsoft Azure

Azure Machine Learning

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

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

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

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

Page 28: Azure Machine Learning getting started

Experiment の作成

28

Page 29: Azure Machine Learning getting started

Experiment の作成

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

29

Page 30: Azure Machine Learning getting started

Experiment の作成

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

30

Page 31: Azure Machine Learning getting started

Experiment の作成

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

31

Page 32: Azure Machine Learning getting started

Experiment の作成

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

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

32

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

Page 33: Azure Machine Learning getting started

モジュールの追加

33

Page 34: Azure Machine Learning getting started

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

34

データ

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

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

モデル

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

アウトプット/評価

Page 35: Azure Machine Learning getting started

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

35

データ

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

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

モデル

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

アウトプット/評価

Page 36: Azure Machine Learning getting started

データの追加

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

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

36

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

Page 37: Azure Machine Learning getting started

データの追加

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

37

Page 38: Azure Machine Learning getting started

データの追加

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

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

38

Page 39: Azure Machine Learning getting started

データの追加

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

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

39

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

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

Page 40: Azure Machine Learning getting started

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

40

データ

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

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

モデル

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

アウトプット/評価

Page 41: Azure Machine Learning getting started

データの正規化

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

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

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

41

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

Page 42: Azure Machine Learning getting started

データの正規化

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

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

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

42

Page 43: Azure Machine Learning getting started

データの正規化

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

43

Page 44: Azure Machine Learning getting started

データの正規化

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

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

44

Page 45: Azure Machine Learning getting started

データの正規化

45

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

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

Page 46: Azure Machine Learning getting started

データの正規化

46

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

Page 47: Azure Machine Learning getting started

データの正規化

47

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

Page 48: Azure Machine Learning getting started

データの正規化

48

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

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

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

Page 49: Azure Machine Learning getting started

データの正規化

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

[Project Columns] と結合します。

49

Page 50: Azure Machine Learning getting started

データの正規化

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

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

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

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

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

50

Page 51: Azure Machine Learning getting started

データの正規化

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

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

51

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

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

Page 52: Azure Machine Learning getting started

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

52

データ

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

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

モデル

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

アウトプット/評価

Page 53: Azure Machine Learning getting started

データの分割

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

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

ことになります

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

53

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

Page 54: Azure Machine Learning getting started

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

54

データ

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

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

モデル

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

アウトプット/評価

Page 55: Azure Machine Learning getting started

モデルの作成

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

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

[Split] と結合します。

55

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

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

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

Page 56: Azure Machine Learning getting started

モデルの作成

56

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

Page 57: Azure Machine Learning getting started

モデルの作成

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

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

57

Page 58: Azure Machine Learning getting started

モデルの作成

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

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

58

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

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

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

Page 59: Azure Machine Learning getting started

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

59

データ

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

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

モデル

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

アウトプット/評価

Page 60: Azure Machine Learning getting started

モデルの評価

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

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

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

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

60

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

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

Page 61: Azure Machine Learning getting started

モデルの評価

61

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

が確認できます。

Page 62: Azure Machine Learning getting started

モデルの評価

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

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

62

Page 63: Azure Machine Learning getting started

モデルの評価

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

63

Page 64: Azure Machine Learning getting started

モデルの評価

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

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

64

Page 65: Azure Machine Learning getting started

モデルの評価

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

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

65

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

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

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

Page 66: Azure Machine Learning getting started

ハンズオンの全体像

66

Microsoft Azure

Azure Machine Learning

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

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

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

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

Page 67: Azure Machine Learning getting started

API の公開

67

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

Page 68: Azure Machine Learning getting started

API の公開

68

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

Page 69: Azure Machine Learning getting started

API の公開

69

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

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

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

例 : [make], [body-style]

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

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

ることが多くなります。

Page 70: Azure Machine Learning getting started

API の公開

70

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

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

Page 71: Azure Machine Learning getting started

API の公開

71

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

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

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

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

追加してください。

Page 72: Azure Machine Learning getting started

API の公開

72

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

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

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

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

えてください。

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

Page 73: Azure Machine Learning getting started

API の公開

73

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

Page 74: Azure Machine Learning getting started

API の公開

74

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

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

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

Page 75: Azure Machine Learning getting started

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

Page 76: Azure Machine Learning getting started

API の公開

76

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

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

Page 77: Azure Machine Learning getting started

API の公開

77

ここをクリックします。

Page 78: Azure Machine Learning getting started

API の公開

78

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

Page 79: Azure Machine Learning getting started

API の公開

79

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

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

Page 80: Azure Machine Learning getting started

API の公開

80

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

ここをクリックします。

Page 81: Azure Machine Learning getting started

API の公開

81

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

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

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

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

Page 82: Azure Machine Learning getting started

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

82

Page 83: Azure Machine Learning getting started

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

83

Microsoft Azure

Azure Machine Learning

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

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

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

Page 84: Azure Machine Learning getting started

ハンズオンで学んだこと

• 機械学習の概要

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

84