azure mlで何かやる

Post on 04-Aug-2015

451 Views

Category:

Software

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

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

山口 健史 (@quintia)

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

1

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

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

2

自己紹介•五十嵐 祐貴

•所属

Microsoft MVP for .NET April 2015

Microsoft Student Partners Fellow

サトヤ仙台

青葉山の上

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

3

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

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

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

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

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

4

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

山口健史 @quintia

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

2015/5/30

わたしのこと

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

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

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

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

6

機械学習って、なに?

7

機械学習って、なに?

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

Wikipedia 機械学習のページ より

原文は Wikipedia 英語版

Machine Learning (Tom M. Mitchell) 1997

8

機械学習って、なに?

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

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

9

つまりどういうこと?

何かのタスクを解く

プログラム

データ

答え

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

10

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

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

システムの答え

合ってる?間違えてる?

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

学習用データ

テストデータ

これを検証する

11

繰り返す

機械学習の種類

教師あり学習

Classification識別

Regression回帰

教師なし学習

Clusteringクラスタリング

Anomaly Detection異常検出

Pattern Miningパターンマイニング

半教師あり学習

強化学習

Deep learning深層学習

12

Distantsupervision

機械学習の種類

Azure ML studio のコンポーネント

教師あり学習

Classification識別

Regression回帰

教師なし学習

Clusteringクラスタリング

Anomaly Detection異常検出

13

14

識別

回帰

クラスタリング

異常検知

教師あり学習

教師なし学習

識別

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

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

を当てるタスク

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

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

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

15

識別

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

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

こんな感じだと思った?

16

識別

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

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

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

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

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

17

識別

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

決定木

ロジスティック識別

ベイジアンネットワーク

ニューラルネットワーク

サポートベクターマシン

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

18

19

識別

回帰

クラスタリング

異常検知

教師あり学習

教師なし学習

回帰

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

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

主な手法

線形回帰

回帰木

20

回帰

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

こう?

それともこう?

21

22

識別

回帰

クラスタリング

異常検知

教師あり学習

教師なし学習

クラスタリング

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

主な手法

k-means

23

異常検出

教師なしデータから

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

を分離する

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

24

問題を解いてみよう

25

こんな題材

26

ポーカーの役の識別

Poker Hand Data Set

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

学習用データ 25,010件

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

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

27

ポーカーの役の識別

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

ポーカーの役の識別

識別器 ?

どんな役ができた?

識別モデル

29

ポーカーの役の識別

識別器

♥J

♥3

♠3

♦8

♣3

スリーカード

どんな役ができた?

識別モデル

30

ポーカーの役の識別

2 2

5 5 7 7

♥ ♥ ♥ ♥ ♥

6 6 6 Q Q

4 4 4 4

10

♠J

♠Q

♠K

♠A

ワンペア

ツーペア

フラッシュ

フルハウス

フォアカード

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

学習器

識別モデル

正解から学習

31

学習用データ

さて

32

こう思った人がいるはず

33

それ

機械学習

使わなくてもいいよね?

34

(再掲)

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

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

35

じゃあなんでこの題材?

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

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

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

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

36

データの加工

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

動かしてみる

38

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

ところで…

40

身近な?

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

41

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

42

身近な?

山手線各駅の

チェックイン数

43

身近な?

山手線各駅の

チェックイン数

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

ある日のメール

45

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

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

熊の出没に関わる素性

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

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

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

46

データセットの入手

47

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

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

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

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

48

熊の出没の条件とは?

49

熊の出没条件

地形・植生的条件

気温・時間的条件

50

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

51

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

52

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

53

熊に出会ったときは

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

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

54

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

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

56

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

57

プロ生ちゃん!!!

58

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

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

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

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

59

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

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

60

Deep Learning

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

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

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

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

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

61

ConvolutionとPooling

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

カーネルは自動で学習

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

62

CIFAR10のCNN

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

63

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(画像は各サイトからそれぞれ引用)

最高

65

さっそくやってみる• 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

書く

67

動かす

68

突然のエラー

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

69

とりあえずデモ•します

70

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

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

正規化されない

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

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

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

71

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

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

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

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

https://studio.azureml.net

72

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

ぺろさん ( @ThePerorist )

おぼさん ( @oboenikui )

雀さん ( @WeatherSparrow )

73

top related