Azure MLで何かやる
-
Upload
yuki-igarashi -
Category
Software
-
view
451 -
download
0
Transcript of Azure MLで何かやる
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