azure mlで何かやる

73
Azure MLで何かやる 2015年5月30日 /サトヤ+プロ生勉強会@マイクロソフト 東北支店 山口 健史 (@quintia) 五十嵐 祐貴 (@bonprosoft) Microsoft MVP for .NET / MSP / サトヤ 1

Upload: yuki-igarashi

Post on 04-Aug-2015

451 views

Category:

Software


0 download

TRANSCRIPT

Page 1: Azure MLで何かやる

Azure MLで何かやる2015年5月30日 /サトヤ+プロ生勉強会@マイクロソフト 東北支店

山口 健史 (@quintia)

五十嵐 祐貴 (@bonprosoft) Microsoft MVP for .NET / MSP / サトヤ

1

Page 2: Azure MLで何かやる

土下座タイム•今回Azure MLの惨敗しました

•あまり良い結果は見せられません

2

Page 3: Azure MLで何かやる

自己紹介•五十嵐 祐貴

•所属

Microsoft MVP for .NET April 2015

Microsoft Student Partners Fellow

サトヤ仙台

青葉山の上

•自然言語処理の研究室でアルバイト機械学習はあまり良く分かってません

3

Page 4: Azure MLで何かやる

Azure MLとは•ブラウザだけで簡単に機械学習が試せるサービス

手元で環境を整える必要が一切なし!

•数クリックで実験からデプロイまで可能 Azureの安定したプラットフォームに支えられて動きます

• Azureでホストしているサービスと連携 BlobやSQL Databaseなどとも連携可能

•様々なモジュールが手軽に扱える Open CVやR/Pythonなども扱えます

4

Page 5: Azure MLで何かやる

Azure MLを使って何かやる〜 機械学習のはなし 〜

山口健史 @quintia

サトヤ+プロ生勉強会@マイクロソフト 東北支店

2015/5/30

Page 6: Azure MLで何かやる

わたしのこと

大学研究室で働いているエンジニア

機械学習を勉強しているわけじゃない

でも、機械学習を扱う研究室なので門前の小僧なんとやらで「どんな話をしているか」ぐらいはわかる(気になっている)

教科書とかチュートリアルとかを斜め読み状態でこの場に望んでいます

6

Page 7: Azure MLで何かやる

機械学習って、なに?

7

Page 8: Azure MLで何かやる

機械学習って、なに?

コンピュータプログラムが、ある種のタスクTと評価尺度Pにおいて、経験Eから学習するとは、タスクTにおけるその性能をPによって評価した際に、経験Eによってそれが改善されている場合である

Wikipedia 機械学習のページ より

原文は Wikipedia 英語版

Machine Learning (Tom M. Mitchell) 1997

8

Page 9: Azure MLで何かやる

機械学習って、なに?

アルゴリズムとして明示的に解法が与えられないタスクに対して、そのタスクを遂行するためのモデルを、学習データから構築すること

フリーソフトではじめる機械学習入門 (荒木 雅弘)

9

Page 10: Azure MLで何かやる

つまりどういうこと?

何かのタスクを解く

プログラム

データ

答え

今度はもっとうまくタスクを解けるよ!

10

Page 11: Azure MLで何かやる

解こうとしているタスクの問題領域

研究で普段やっていること

システムの答え

合ってる?間違えてる?

問題領域をうまく記述できるモデル

学習用データ

テストデータ

これを検証する

11

繰り返す

Page 12: Azure MLで何かやる

機械学習の種類

教師あり学習

Classification識別

Regression回帰

教師なし学習

Clusteringクラスタリング

Anomaly Detection異常検出

Pattern Miningパターンマイニング

半教師あり学習

強化学習

Deep learning深層学習

12

Distantsupervision

Page 13: Azure MLで何かやる

機械学習の種類

Azure ML studio のコンポーネント

教師あり学習

Classification識別

Regression回帰

教師なし学習

Clusteringクラスタリング

Anomaly Detection異常検出

13

Page 14: Azure MLで何かやる

14

識別

回帰

クラスタリング

異常検知

教師あり学習

教師なし学習

Page 15: Azure MLで何かやる

識別

2つのクラスのどちらかに属するデータの集合で学習

データを持ってきた時にどちらに属する(可能性が高いか)

を当てるタスク

もしくは識別面を当てるタスク

怪奇!!次元の呪い : 識別問題,パターン認識,データマイニングの初心者のために(後編)情報処理, vol.43, no.5, pp.562-567 (2002) ※彩色は引用者

http://ci.nii.ac.jp/naid/110002764383

15

Page 16: Azure MLで何かやる

識別

怪奇!!次元の呪い : 識別問題,パターン認識,データマイニングの初心者のために(後編)情報処理, vol.43, no.5, pp.562-567 (2002) ※彩色は引用者

http://ci.nii.ac.jp/naid/110002764383

こんな感じだと思った?

16

Page 17: Azure MLで何かやる

識別

2変数正規分布から発生させた乱数のデータでした

なので「真の識別面」は2次曲線

怪奇!!次元の呪い : 識別問題,パターン認識,データマイニングの初心者のために(後編)情報処理, vol.43, no.5, pp.562-567 (2002)

http://ci.nii.ac.jp/naid/110002764383

この谷間を上から見ると2次曲線になる(らしい)

17

Page 18: Azure MLで何かやる

識別

主な手法(主な、と言いつつたくさん)

決定木

ロジスティック識別

ベイジアンネットワーク

ニューラルネットワーク

サポートベクターマシン

3クラス以上を識別する問題は一工夫すれば ok

18

Page 19: Azure MLで何かやる

19

識別

回帰

クラスタリング

異常検知

教師あり学習

教師なし学習

Page 20: Azure MLで何かやる

回帰

数値特徴から数値特徴を出力する関数を推定するタスク

識別とは「地と図」みたいな関係

主な手法

線形回帰

回帰木

20

Page 21: Azure MLで何かやる

回帰

1次元特徴→1次元特徴の関数を推定

こう?

それともこう?

21

Page 22: Azure MLで何かやる

22

識別

回帰

クラスタリング

異常検知

教師あり学習

教師なし学習

Page 23: Azure MLで何かやる

クラスタリング

教師なしデータから「近いもの」の固まりを見つけ出すタスク

主な手法

k-means

23

Page 24: Azure MLで何かやる

異常検出

教師なしデータから

大多数の正常データとほとんど発生しない異常データ

を分離する

クラスタリングの特殊なケースとも考えられる

24

Page 25: Azure MLで何かやる

問題を解いてみよう

25

Page 26: Azure MLで何かやる

こんな題材

26

Page 27: Azure MLで何かやる

ポーカーの役の識別

Poker Hand Data Set

トランプのカード5枚分のデータとそれでできる役のデータ(正解)で1件分

学習用データ 25,010件

テスト用データ 1,000,000件

http://archive.ics.uci.edu/ml/datasets/Poker+Hand

27

Page 28: Azure MLで何かやる

ポーカーの役の識別

2 2

5 5 7 7

J J J

3 4 5 6 7

♥ ♥ ♥ ♥ ♥

6 6 6 Q Q

4 4 4 4

♦4

♦5

♦6

♦7

♦8

10

♠J

♠Q

♠K

♠A

ワンペア

ツーペア

スリーカード

ストレート

フラッシュ

フルハウス

フォアカード

ストレートフラッシュ

ロイヤルストレートフラッシュ

28

Page 29: Azure MLで何かやる

ポーカーの役の識別

識別器 ?

どんな役ができた?

識別モデル

29

Page 30: Azure MLで何かやる

ポーカーの役の識別

識別器

♥J

♥3

♠3

♦8

♣3

スリーカード

どんな役ができた?

識別モデル

30

Page 31: Azure MLで何かやる

ポーカーの役の識別

2 2

5 5 7 7

♥ ♥ ♥ ♥ ♥

6 6 6 Q Q

4 4 4 4

10

♠J

♠Q

♠K

♠A

ワンペア

ツーペア

フラッシュ

フルハウス

フォアカード

ロイヤルストレートフラッシュ

学習器

識別モデル

正解から学習

31

学習用データ

Page 32: Azure MLで何かやる

さて

32

Page 33: Azure MLで何かやる

こう思った人がいるはず

33

Page 34: Azure MLで何かやる

それ

機械学習

使わなくてもいいよね?

34

Page 35: Azure MLで何かやる

(再掲)

アルゴリズムとして明示的に解法が与えられないタスクに対して、そのタスクを遂行するためのモデルを、学習データから構築すること

フリーソフトではじめる機械学習入門(荒木 雅弘)

35

Page 36: Azure MLで何かやる

じゃあなんでこの題材?

プログラマなら100%識別可能なルールベースの識別器が書ける

ということはどう解くのかが分かる

機械学習が間違えた時にどうして間違えたのかが想像できる

最初はそういう問題の方がいいのではと思った

36

Page 37: Azure MLで何かやる

データの加工

0 1 0 0 1 0 0 0 0 0 …… 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 50 0 0 0 0 1 0 0 0 0 …… 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 10 0 0 0 0 0 0 0 0 0 …… 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 20 0 0 0 0 0 0 0 1 0 …… 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 40 0 0 0 0 0 0 0 0 0 …… 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 0 0 0 00 0 0 1 0 0 0 0 0 0 …… 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 50 0 1 0 0 0 0 0 0 0 …… 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 1 0 0 0 7

52個の 0/1 の2値データ1つがカード1枚を表現つまり1行には1が5個

0:役なしから

9:ロイヤルストレートフラッシュ

(正解データ)

1行が1つの役

37

Page 38: Azure MLで何かやる

動かしてみる

38

Page 39: Azure MLで何かやる

Azureで予測する、宮城県の○○39

Page 40: Azure MLで何かやる

ところで…

40

Page 41: Azure MLで何かやる

身近な?

全国のラーメン二郎の4sqチェックインをクロール

41

Page 42: Azure MLで何かやる

身近な? _人人人人人人人_> データ不足 < ̄Y^Y^Y^Y^Y^Y ̄

42

Page 43: Azure MLで何かやる

身近な?

山手線各駅の

チェックイン数

43

Page 44: Azure MLで何かやる

身近な?

山手線各駅の

チェックイン数

⇒面白そうだがやはりデータが足りない(2週間前に始めた) 44

Page 45: Azure MLで何かやる

ある日のメール

45

Page 46: Azure MLで何かやる

Azure MLを使ってクマ出没を予測•「ある地点pにおいて時間tの時に、クマが出没するかどうか」簡単にするために、pは宮城県全体をグリッドとした時の一部とする

•問題点データセットの入手

熊の出没に関わる素性

学習にどのようなモデルを用いるか

熊を人が”目撃した”データからの学習である

熊にGPSが付いているわけではない

46

Page 47: Azure MLで何かやる

データセットの入手

47

Page 48: Azure MLで何かやる

ツキノワグマ出没情報•宮城県公式ホームページよりダウンロード可

http://www.pref.miyagi.jp/soshiki/sizenhogo/h27kumajouhou.html

• H22〜H27で合計2827件の目撃情報が獲得できた

•大体の日時と大体の場所が記録

48

Page 49: Azure MLで何かやる

熊の出没の条件とは?

49

Page 50: Azure MLで何かやる

熊の出没条件

地形・植生的条件

気温・時間的条件

50

Page 51: Azure MLで何かやる

データを眺める•気温と出没数

51

Page 52: Azure MLで何かやる

データを眺める•降水量と出没数

52

Page 53: Azure MLで何かやる

デモ•実際に学習させます

53

Page 54: Azure MLで何かやる

熊に出会ったときは

• http://www.shizenfureaikan.jp/material/images/pdf/animals/kuma.pdf

※興奮させないことが大切です

54

Page 55: Azure MLで何かやる

Azureで識別する○○○○○55

Page 56: Azure MLで何かやる

みんなのアイドルと言えば…?

56

Page 57: Azure MLで何かやる

みんなのアイドルと言えば…?

57

Page 58: Azure MLで何かやる

プロ生ちゃん!!!

58

Page 59: Azure MLで何かやる

プロ生ちゃんが出演する漫画があるらしい•すぱこー

http://pronama.azurewebsites.net/web-comic/

•情報処理研究会のメンバー活躍するWebコミック

http://pronama.azurewebsites.net/pronama/computer-science-club/

59

Page 60: Azure MLで何かやる

Azure MLを使ってキャラ判別•すぱこーのデータを入力した時に漫画中のキャラを識別する

•今話題のDeep Learningに近いお話 (になるはずだった)

60

Page 61: Azure MLで何かやる

Deep Learning

•画像の分類問題一昔前まで

いかに画像から特徴を抽出するかがキー

抽出した特徴を素性として機械学習

今実は生画像だけでも機械が特徴を自動的に獲得してくれる(?)

レイヤーが深くなるごとに全体的・抽象的となっていく

61

Page 62: Azure MLで何かやる

ConvolutionとPooling

(引用: http://www.vision.is.tohoku.ac.jp/files/9313/6601/7876/CVIM_tutorial_deep_learning.pdf )

カーネルは自動で学習

orDenoising Autoencoder やRBMでプレトレーニング

62

Page 63: Azure MLで何かやる

CIFAR10のCNN

(引用: http://www.vision.is.tohoku.ac.jp/files/9313/6601/7876/CVIM_tutorial_deep_learning.pdf )

63

Page 64: Azure MLで何かやる

CIFAR10で学習した例• Deep Learningでラブライブ!キャラを識別する

http://christina.hatenablog.com/entry/2015/01/23/212541

•ご注文はDeep Learningですか?

http://kivantium.hateblo.jp/entry/2015/02/20/214909

•きんいろDeepLearning

http://showyou.hatenablog.com/entry/2015/05/24/174621

64(画像は各サイトからそれぞれ引用)

Page 65: Azure MLで何かやる

最高

65

Page 66: Azure MLで何かやる

さっそくやってみる• AzureでもDeep Learning 出来るらしい

http://gallery.azureml.net/Details/7d3f74981b5b42cd9687370671c86696

• Multiclass Neural Networkモジュールを使用 Hidden layer specificationをCustom definition scriptに変更

言語はNet# と呼ばれるものを使う

https://azure.microsoft.com/ja-jp/documentation/articles/machine-learning-azure-ml-netsharp-reference-guide/

66

Page 67: Azure MLで何かやる

書く

67

Page 68: Azure MLで何かやる

動かす

68

Page 69: Azure MLで何かやる

突然のエラー

_人人人人人人人人人人人人人人人人人人_> System.NullReferenceException < ̄Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y^Y ̄

69

Page 70: Azure MLで何かやる

とりあえずデモ•します

70

Page 71: Azure MLで何かやる

思うこと• Open CV Image Readerがちょっと使いにくい

扱えるImageのサイズに制限がある

正規化されない

FileNameとピクセルごとの色データしか出力されない

• WebAPIのInput/Outputが少々使いにくい画像データを渡すのが大変

•よく内部例外にあたるどこが原因かつかみにくい

71

Page 72: Azure MLで何かやる

まとめ• Azure MLは手軽に機械学習が試せる研究室

Caffeなどの強力なツールもあるが、慣れていないと環境構築も大変

•クラウドの力で大規模なデータを扱える Azure MLはAzureと連携してクラウドの利点を最大限に活かせます

•まずは試してみよう!無料で試せます

https://studio.azureml.net

72

Page 73: Azure MLで何かやる

謝辞•本セッション中の実験・データ処理にあたって、以下の方々に多大なご協力をいただきました。佐々木さん ( @hikomimo)

ぺろさん ( @ThePerorist )

おぼさん ( @oboenikui )

雀さん ( @WeatherSparrow )

73