Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Azure Machine Learning getting started

10,713 views

Published on

2015 年 2/27 (金) に開催した機械学習勉強会でのハンズオン資料です。
http://www.eventbrite.com/e/227-microsoft-chun-ming-chin-tickets-15645225290

Azure Machine Learning を使用し、機械学習を簡単に活用する手順を説明しています。
Azure を使った事が無い方は、無償評価版をご活用ください。
http://azure.microsoft.com/ja-jp/pricing/free-trial/

また、Azure Machine Learning の詳細はこちらを参照してください。
http://azure.microsoft.com/ja-jp/services/machine-learning/

Published in: Data & Analytics
  • Be the first to comment

Azure Machine Learning getting started

  1. 1. Azure Machine Learning getting started 日本マイクロソフト テクニカル エバンジェリスト 大田 昌幸 Twitter : @masota0517 Blog : http://nt-d.hatenablog.com/ 江田 周平 Twitter : @shumach5 1
  2. 2. 事前学習資料 2
  3. 3. 機械学習について 3
  4. 4. 機械学習とは何か アルゴリズムとして明示的に解法が与えられないタスクに対して、 そのタスクを遂行するための「進化するモデル」を、 学習データから構築すること タスク : 対象とする問題 モデル : 人間の知的活動をパターン化したもの 学習データ : コンピューターが学習するために使用する実験データ <出展 : フリーソフトで始める機械学習入門> 4
  5. 5. 機械学習の要素 (学習時) データ 学習用データ/評価用データを 分割する (例: 60% : 40%) モデルの訓練 (学習アルゴリズムの訓練) モデル 学習データを使用して、 最適な結果を出すモデルを作成する データの正規化 (不要・不正なデータの削除) アウトプット/評価 実世界のデータ 5
  6. 6. 機械学習の要素 (使用時) データ 学習用データ/評価用データを 分割する (例: 60% : 40%) モデルの訓練 (学習アルゴリズムの訓練) モデル データの正規化 (不要・不正なデータの削除) アウトプット/評価 実世界のデータ 6
  7. 7. 機械学習の分類 (手法別) 機械学習 教師あり学習 (正解データがある場合) 中間的手法 教師なし学習 (正解データがない場合) 識別 (カテゴリ分類) 回帰 (数値推測) モデル推定 (クラスタリング) パターン マイニング データが正解つき/なしの組み合わせ 手法が正解つき/なしの組み合わせ 購買パターン発見音声/文字認識 文章のP/N 判定 売り上げ予測 顧客の分類 ハンズオンの内容 7
  8. 8. 線形回帰 (Linear Regression) ハンズオン・セッションで使用します • 要素データからの距離が最小となる 直線を生成します • ある変数の変化を元に別の変数の 変化を予測する際に使用されます • 例 : 車の性能・パーツから価格を予測 8 学習アルゴリズムは複数ありますので、下記を参考に選定してください (英語) http://azure.microsoft.com/en-us/documentation/articles/machine-learning-algorithm-choice/
  9. 9. 用語集 今後学習を進めるうえで理解しておくと便利な用語解説 まず下記のような数式のことを、あるデータ群の性質を表す ”モデル” と呼びます y = ax1 + ax2 + ax3 … y の部分を目的変数・結果変数・ラベルなどと呼びます x の部分を予測変数・説明変数・特徴などと呼びます 複数の x を入力し、y の値が最適な値となるように 適切な a を決定していくことをモデルの訓練(調整)と呼びます 9
  10. 10. Azure Machine Learning (Azure ML) について 10
  11. 11. 11 ネットワーク 仮想 ネットワーク トラフィック マネージャー コンピューティング 仮想 マシン クラウド サービス Web サイト モバイル サービス 開発言語 キャッシュ メディア CDN データ分析HPC Machine LearningID サービスバス アプリケーション バックアップ データ管理 SQL データベース ビックデータ テーブル BLOB 世界規模のクラウド基盤 データセンター: 北米 4 か所、ヨーロッパ 2 か所、 アジア 2 か所、日本 2 か所 豪州 2 か所、中国(中国国内から利用) CDN: 全世界に 24 か所
  12. 12. Azure Machine Learning • Azure 上の機械学習サービス • 高度な分析ソリューションを GUI で開発 • R, Python によるカスタム コードもサポート • 数分で Web API として公開 12
  13. 13. ハンズオンで学べること • 機械学習の概要 • 機械学習を活用したソリューションの開発方法 13
  14. 14. ハンズオンの全体像 車のパーツから売上金額を予想するソリューションを開発します 14 Microsoft Azure Azure Machine Learning 1. 機械学習のソリューションを開発する Azure Machine Lerning の環境構成 2. ソリューションの開発と検証 今回は車のパーツから売上金額を予想する ソリューションを開発します 3. Web API の公開 ※ Web API を操作するプログラムの開発は 本ハンズオンには含まれていません
  15. 15. ハンズオン完了時のアウトプット 15 車のパーツの性能を API へ POST する JSON 形式のデータを受け取る Microsoft Azure Azure Machine Learning
  16. 16. ハンズオンの全体像 車のパーツから売上金額を予想するソリューションを開発します 16 Microsoft Azure Azure Machine Learning 1. 機械学習のソリューションを開発する Azure Machine Lerning の環境構成 2. ソリューションの開発と検証 今回は車のパーツから売上金額を予想する ソリューションを開発します 3. Web API の公開 ※ Web API を操作するプログラムの開発は 本ハンズオンには含まれていません
  17. 17. ワークスペースの作成 17
  18. 18. ワークスペースの作成 このセクションでは Azure ML を使用するためのインスタンス である “ワークスペース” を作成していきます。 18
  19. 19. ワークスペースの作成 1. ブラウザで以下のページへアクセスします https://manage.windowsazure.com 3. [+ 新規] をクリックします 19 2. 左のような画面が表示されます
  20. 20. ワークスペースの作成 2. ワークスペース名を入力します。 (ユニークな名前となる必要があります。) 1. [データ サービス]-[MACHINE LEARNING]- [簡易作成] の順にクリックします。 3. データ保存領域であるストレージに 任意のアカウント名を設定します。 (ユニークな名前となる必要があります。) 20
  21. 21. ワークスペースの作成 しばらくすると、 ワークスペースの作成が完了します 21 このセクションの手順は完了です ワークスペースの作成が完了し、 Azure ML を使用する準備が整いました。
  22. 22. 2. ML Studio へサインイン 22
  23. 23. ML Studio へサインイン このセクションでは実際の作業スペースである ML Studio へサ インインします 23
  24. 24. ML Studio へサインイン 先ほど作成したワークスペースの 名前の横にある [→] をクリックします。 24
  25. 25. ML Studio へサインイン [ML Studio にサインイン] をクリックします。 25
  26. 26. ML Studio へサインイン しばらくすると、 ML Studio の画面が表示されます。 26 このセクションの手順は完了です ML Studio へのサイン インが完了し、 ソリューションを開発する準備が整いました。
  27. 27. ハンズオンの全体像 車のパーツから売上金額を予想するソリューションを開発します 27 Microsoft Azure Azure Machine Learning 1. 機械学習のソリューションを開発する Azure Machine Lerning の環境構成 2. ソリューションの開発と検証 今回は車のパーツから売上金額を予想する ソリューションを開発します 3. Web API の公開 ※ Web API を操作するプログラムの開発は 本ハンズオンには含まれていません
  28. 28. Experiment の作成 28
  29. 29. Experiment の作成 このセクションではML Studioでソリューション(Experiment) を作成します 29
  30. 30. Experiment の作成 ML Studio 上で、[+ New] をクリックします。 30
  31. 31. Experiment の作成 今回は 1 からソリューションを作成するため、 [Blank Experiment] を選択します。 31
  32. 32. Experiment の作成 ソリューションの開発画面が表示されます この画面上で各種モジュールを追加して、 ソリューションを開発していきます 32 このセクションの手順は完了です ソリューションを開発する準備が整いました。
  33. 33. モジュールの追加 33
  34. 34. 最終的な完成イメージ 各モジュール (パーツ) の詳細な説明は各スライドで行います 34 データ 学習用データ/評価用データを 分割する (例: 60% : 40%) モデルの訓練 (学習アルゴリズムの訓練) モデル データの正規化 (不要・不正なデータの削除) アウトプット/評価
  35. 35. データの追加 このセクションでは、学習用のデータを追加する方法を学びます 35 データ 学習用データ/評価用データを 分割する (例: 60% : 40%) モデルの訓練 (学習アルゴリズムの訓練) モデル データの正規化 (不要・不正なデータの削除) アウトプット/評価
  36. 36. データの追加 1. 検索ボックスに “Automobile” と入力します。 対象のデータが検索結果として表示されます。 2. [Automobile price date (Raw)] を 画面中央のスペースにドラッグ & ドロップします。 36 ML Studio 上には練習用のサンプルデータがあります。 今回は車の売り上げデータを使用します。
  37. 37. データの追加 [Automobile price date (Raw)] の モジュールが追加されます。 37
  38. 38. データの追加 1.[Automobile price date (Raw)] のモデルの出力先 (赤丸で指定した部分)をクリックします。 2. [Visualize] をクリックし、データを確認します。 38
  39. 39. データの追加 左図のようにデータを確認できます。 [Normalized-loss] の列でデータが多く欠けている こと、その他の列でも欠けている箇所が存在する ことを確認します。 39 このセクションの手順は完了です ML Studio でデータを追加する方法や 追加したデータの中身を見る方法を学びました。
  40. 40. データの正規化 このセクションでは、学習用のデータを正規化する方法を学びます 40 データ 学習用データ/評価用データを 分割する (例: 60% : 40%) モデルの訓練 (学習アルゴリズムの訓練) モデル データの正規化 (不要・不正なデータの削除) アウトプット/評価
  41. 41. データの正規化 1.検索ボックスに “Project Columns” と入力します。 2.[Project Columns] を 画面中央のスペースにドラッグ & ドロップします。 このパーツは、データの中で使用する列の選択・ 不要な列の削除をする際に使用します。 41 このセクションでは不正・不要なデータを削除する 方法を学びます。データを変更することで モデルの予測精度が変わります。
  42. 42. データの正規化 [Automobile price date (Raw)] の出力から、 [Project Columns] の入力へドラッグ & ドロップします。 矢印により、 モジュールを結合することができます。 これにより、データをデータ変更用のパーツへ渡すことが できます。 42
  43. 43. データの正規化 それでは、実際に不要な列を削除しましょう。 [Launch Column Selector] をクリックします。 43
  44. 44. データの正規化 1. 左図の通り設定し、[normalized-losses] の列を 削除します。 2. 設定が完了したら、チェックボタンをクリックしま す。 44
  45. 45. データの正規化 45 処理したデータを見ていきましょう 処理を行うために [RUN] をクリックします
  46. 46. データの正規化 46 処理が終わると、[✅] が表示されます
  47. 47. データの正規化 47 処理されたデータを見るために [Visualize] を クリックします
  48. 48. データの正規化 48 実際に [normalized-losses] が削除されていることを確認できます。 このように ML Stduio は簡単にデータの編集・表示が行えます。 処理結果を都度確認することは通常大変な作業ですが、 ML Studio では簡単に確認できるのでソリューションの開発が 効率化されます。 本セクションのこの後の手順でも適宜 [RUN] と [Visualize] をご活用いただき、都度処理結果をご確認ください
  49. 49. データの正規化 空白を含む行を削除するために、 [Missing Values Scrubber] を追加します。 [Project Columns] と結合します。 49
  50. 50. データの正規化 必要な列のみを選択するために、 再度 [Project Columns] を追加します。 その後、[Missing Values Scrubber] と結合します。 このプロジェクトでは、[Project Columns] を 2 つ使用し ています。[Project Columns] を一つにまとめてしまっ ても同じ結果となりますが、下記 2 つの処理ができる ことを説明するためにあえて追加しました。 • 特定列のみの選択 • 特定列のみの削除 なお、 2 つに分けた方が適切な場合もありますので、 適宜データの処理結果を見ながらご判断ください。 50
  51. 51. データの正規化 1.[Launch Column Selector] をクリックします。 2.画面の通り設定を追加します。 なお、追加している Column は、以下となります。 [make], [body-style], [wheel-base], [engine-size], [horsepower], [peak rpm], [highway-mpg], [price] 51 このセクションの手順は完了です。 データの正規化方法・現時点でのデータの様子を 確認する方法を学びました。
  52. 52. 学習用データ/評価用データの分割 このセクションでは、データを学習用・評価用へ分割する方法を学びます 52 データ 学習用データ/評価用データを 分割する (例: 70% : 30%) モデルの訓練 (学習アルゴリズムの訓練) モデル データの正規化 (不要・不正なデータの削除) アウトプット/評価
  53. 53. データの分割 1. [Split] モジュールを追加します データを分割する性質のモジュールのため、 接続用のノードが下に 2 つついています。 2. [Fraction of rows in the first] の値を 0.7 とします。 この結果、学習用に 70% のデータが割り振られる ことになります このセッションはここで終了です。 53 データを、学習用とモデル評価用に分割するため の手順を学びます
  54. 54. モデルの作成 このセクションでは、学習結果からモデルを作成します 54 データ 学習用データ/評価用データを 分割する (例: 70% : 30%) モデルの訓練 (学習アルゴリズムの訓練) モデル データの正規化 (不要・不正なデータの削除) アウトプット/評価
  55. 55. モデルの作成 モデルを作成するために、 [Train Model] を追加します。 Train Model 内で学習データを使用して a を決めて いきます。 [Split] と結合します。 55 モデル作成とは最適な処理を行う関数を生成する こととご理解ください。 例えば、 y = ax1 + ax2 + ax3 …などの数式をベースと するとします。その際に、学習データを用いること で最適な a を決めるフェーズとなります。
  56. 56. モデルの作成 56 Train Model を設定するために、 [Launch Column Selector] をクリックします。
  57. 57. モデルの作成 左図の通り設定を追加します。 ここでは、 [price] を選択しています。 この設定は、y = ax1 + ax2 + ax3 … のような 関数の y を [price] とする設定をしています。 57
  58. 58. モデルの作成 [Linear Regression] を追加し、 [Train Model] と結合します。 この操作は y = ax1 + ax2 + ax3 … のような、 ベースとなる関数を決定しています。 今回は線形回帰を選択しています。 なお、他のモデルの選択も可能です。 58 このセクションの手順は完了です ML Studio でデータを追加する方法や 追加したデータの中身を見る方法を学びました。 Train Model はベースとなる関数と変数 (x) を入力 する必要があるので、入力が 2 つあります。
  59. 59. モデルの評価 このセクションでは、モデルの評価方法を学びます 59 データ 学習用データ/評価用データを 分割する (例: 70% : 30%) モデルの訓練 (学習アルゴリズムの訓練) モデル データの正規化 (不要・不正なデータの削除) アウトプット/評価
  60. 60. モデルの評価 予想の値段を出すためには Score Model を使います。 [Score Model] を追加し、 [Split]、[Train Model] と [Score Model] を結合させます。 Score Model はモデル・データを入力する必要がある ので、入力口が 2 つあります。 左側の入力が “モデルの入り口” 、 右側の入力が “モデルで使うデータの入り口” となる ため、今回はここに評価用のデータを入力します。 60 評価用のデータをモデルに入力し、 モデルに予想の値段を出力させます。 y = ax1 + ax2 + ax3 … の x に評価用のデータを入れると いうイメージをしてください。
  61. 61. モデルの評価 61 Score Model を接続後、[Run] と [Visualize] を実施しましょう。 左図のように、実際の価格 (price) と予想した価格 (Scored Labels) が確認できます。
  62. 62. モデルの評価 予想と実際の比較をするために、[Evaluate Model] を追加します。 追加後、[Score Model] と結合します。 62
  63. 63. モデルの評価 [Run] をクリックします。 63
  64. 64. モデルの評価 1.[Finish Running] が表示されるのを待ちます。 2.[Evaluate Model]の出力先から [Visualize] をク リックします。 64
  65. 65. モデルの評価 予想した値段・実際の値段を比較して、 今回作成したモデルの評価が表示されるので確認してください このセクションの手順は完了です。 作成したモデルを評価する方法を学びました。 65 上記定義の詳細は下記 URL の Step5 をご参照ください。 http://azure.microsoft.com/en-us/documentation/articles/machine-learning-create-experiment/ 予想と実際の値の差異を表すエラーの値 小さな値になるとモデルの性能が高い モデルとデータの相性を表す値 1.0 に近づくほど性能が高い
  66. 66. ハンズオンの全体像 66 Microsoft Azure Azure Machine Learning 1. 機械学習のソリューションを開発する Azure Machine Lerning の環境構成 2. ソリューションの開発と検証 今回は車のパーツから売上金額を予想する ソリューションを開発します 3. Web API の公開 ※ Web API を操作するプログラムの開発は 本ハンズオンには含まれていません
  67. 67. API の公開 67 1. Web サービスとして公開する準備のために ここをクリックします
  68. 68. API の公開 68 はじめて操作する際にはこのような画面が表示され るので、すべて [NEXT] をクリックします。
  69. 69. API の公開 69 操作が完了すると、 このような画面が表示されます。 [Web service input] と [Web service output] が 上下に追加されていることを確認してください。 構築したモデルで有効なデータの列は モデル構築時に絞り込まれています。 例 : [make], [body-style] そのため、Web API 呼び出し時に正規化の手順は 必要なく、[Web service input] の位置を変更します。 なお、変更をしない場合には不必要に処理の時間 がかかり、Timeout が発生し 500 エラーが返され ることが多くなります。
  70. 70. API の公開 70 まずは、今の接続を削除し、 その後適切な場所に接続しなおします。 この部分を選択し、[Del] キーなどで削除してください。 削除が完了すると左下図の状態になります。
  71. 71. API の公開 71 [Web Service input] の出力と [Score Model] の入力を繋ぎます。 テクニック的な補足を追加します。 Web API の出力を絞り込みたいときには [Score Model] と [Web service output] の間に [Project Columns] を追加しましょう。 Web API の出力を確認する方法はこの後解説しますので、 まずは API の出力を確認し、必要に応じて [Project Columns] を 追加してください。
  72. 72. API の公開 72 [PUBLISH WEB SERVICE] をクリックします。 もし [PUBLISH WEB SERVICE] がグレーアウトしてい る場合には、下記手順を行ってください。 1. [PUBLISH WEB SERVICE] 左隣の [RUN] ボタンを クリックします。 2. この部分が地球儀のマークになっていることを 確認します。ビーカーのマークになっている場 合にはクリックして、地球儀のマークへ切り替 えてください。 地球儀のマーク : Web API 公開用のビュー ビーカーのマーク : モデル構築用のビュー
  73. 73. API の公開 73 [YES] をクリックします。
  74. 74. API の公開 74 API をテストするために、[TEST] をクリックします。 API に車の情報を与えることで、 価格の予想結果が返ってきます。 左図のような画面に遷移します。 表示されていない場合には、ここをクリックします。
  75. 75. 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
  76. 76. API の公開 76 左図のように結果が表示されますが、 すぐに隠れてしまいますので、 再表示する方法を次ページ以降で説明します。
  77. 77. API の公開 77 ここをクリックします。
  78. 78. API の公開 78 [DETAILS] をクリックします。
  79. 79. API の公開 79 ここに値段が表示されています (json 形式)。 今回はポータル上でテストをしましたが、 ご自身の Web サービスやアプリからも呼び出す ことができます。
  80. 80. API の公開 80 API 呼び出しのための情報やサンプルプログラム にアクセスする方法を学びます。 ここをクリックします。
  81. 81. API の公開 81 このようなページが表示され、 API ドキュメントを確認できます。 ページ下側へスクロールすると、サンプルコードも確認 できますので、プログラムを書く際に参考にしてください。 このセッションは以上になります。 モデルを Web API として公開し、 機械学習を使ったソリューションを皆様のサービス から活用できる方法を学びました。
  82. 82. ハンズオンは終了です お疲れ様でした 82
  83. 83. ハンズオンの振り返り 車のパーツから売上金額を予想するソリューションを開発しました 83 Microsoft Azure Azure Machine Learning 1. 機械学習のソリューションを開発する Azure Machine Lerning の環境構成 2. ソリューションの開発と検証 3. Web API の公開 ※ Web API を操作するプログラムの開発は 本ハンズオンには含まれていません
  84. 84. ハンズオンで学んだこと • 機械学習の概要 • 機械学習を活用したソリューションの開発方法 84

×