SlideShare une entreprise Scribd logo
1  sur  73
Télécharger pour lire hors ligne
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
Distant
supervision
機械学習の種類
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 5
0 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 1
0 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 2
0 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 4
0 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 0
0 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 5
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 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 )
カーネルは自動で学習
or
Denoising 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/7d3f74981b5b42cd9687370
671c86696
• 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

Contenu connexe

Tendances

jazug信州 オートメーションと可用性セットの話
jazug信州 オートメーションと可用性セットの話jazug信州 オートメーションと可用性セットの話
jazug信州 オートメーションと可用性セットの話
Tsubasa Yoshino
 
クラウド業界、移ってみてWindows Azure中の人になって 分かったこと(仮)
クラウド業界、移ってみてWindows Azure中の人になって分かったこと(仮)クラウド業界、移ってみてWindows Azure中の人になって分かったこと(仮)
クラウド業界、移ってみてWindows Azure中の人になって 分かったこと(仮)
Ryusaburo Tanaka
 

Tendances (20)

Visual studio communityの紹介
Visual studio communityの紹介Visual studio communityの紹介
Visual studio communityの紹介
 
20210925_jazug_azure_what_to_do_first
20210925_jazug_azure_what_to_do_first20210925_jazug_azure_what_to_do_first
20210925_jazug_azure_what_to_do_first
 
Jazug福島 azure vm_20150404
Jazug福島 azure vm_20150404Jazug福島 azure vm_20150404
Jazug福島 azure vm_20150404
 
20181117 azure ml_seminar_1
20181117 azure ml_seminar_120181117 azure ml_seminar_1
20181117 azure ml_seminar_1
 
Tips for passing AZ-103 once
Tips for passing AZ-103 onceTips for passing AZ-103 once
Tips for passing AZ-103 once
 
JAWS DAYS 2014 ACEに聞け! S3
JAWS DAYS 2014 ACEに聞け! S3JAWS DAYS 2014 ACEに聞け! S3
JAWS DAYS 2014 ACEに聞け! S3
 
ここがつらいよAws batch
ここがつらいよAws batchここがつらいよAws batch
ここがつらいよAws batch
 
Azure(クラウド)を使った堅牢なシステムを考える
Azure(クラウド)を使った堅牢なシステムを考えるAzure(クラウド)を使った堅牢なシステムを考える
Azure(クラウド)を使った堅牢なシステムを考える
 
Azure Cognitive Serviceの感情分析を使って自分を見つめ直す
Azure Cognitive Serviceの感情分析を使って自分を見つめ直すAzure Cognitive Serviceの感情分析を使って自分を見つめ直す
Azure Cognitive Serviceの感情分析を使って自分を見つめ直す
 
Azure event grid 紹介
Azure event grid 紹介Azure event grid 紹介
Azure event grid 紹介
 
jaws-ug kansai-special_kinesis_20150207
jaws-ug kansai-special_kinesis_20150207jaws-ug kansai-special_kinesis_20150207
jaws-ug kansai-special_kinesis_20150207
 
Azure Fundamental
Azure FundamentalAzure Fundamental
Azure Fundamental
 
2016 09-03 jazug
2016 09-03 jazug2016 09-03 jazug
2016 09-03 jazug
 
Redmineosaka 20 talk_crosspoints
Redmineosaka 20 talk_crosspointsRedmineosaka 20 talk_crosspoints
Redmineosaka 20 talk_crosspoints
 
関数プロキシを使って REST APIっぽくを使ってみる
関数プロキシを使って REST APIっぽくを使ってみる関数プロキシを使って REST APIっぽくを使ってみる
関数プロキシを使って REST APIっぽくを使ってみる
 
jazug信州 オートメーションと可用性セットの話
jazug信州 オートメーションと可用性セットの話jazug信州 オートメーションと可用性セットの話
jazug信州 オートメーションと可用性セットの話
 
20190731 Azure Functions x Line at Azure Tech Lab #4
20190731 Azure Functions x Line at Azure Tech Lab #420190731 Azure Functions x Line at Azure Tech Lab #4
20190731 Azure Functions x Line at Azure Tech Lab #4
 
俺的 Ignite 2021 Spring Update まとめ ミニ
俺的 Ignite 2021 Spring Update まとめ ミニ俺的 Ignite 2021 Spring Update まとめ ミニ
俺的 Ignite 2021 Spring Update まとめ ミニ
 
クラウド業界、移ってみてWindows Azure中の人になって 分かったこと(仮)
クラウド業界、移ってみてWindows Azure中の人になって分かったこと(仮)クラウド業界、移ってみてWindows Azure中の人になって分かったこと(仮)
クラウド業界、移ってみてWindows Azure中の人になって 分かったこと(仮)
 
sakura-baremetal_ssmjp
sakura-baremetal_ssmjpsakura-baremetal_ssmjp
sakura-baremetal_ssmjp
 

Similaire à Azure MLで何かやる

Similaire à Azure MLで何かやる (20)

Microsoft Azure 概要
Microsoft Azure 概要Microsoft Azure 概要
Microsoft Azure 概要
 
第23回八子クラウド座談会 人工知能 クラウドxAI 20170520
第23回八子クラウド座談会 人工知能 クラウドxAI 20170520第23回八子クラウド座談会 人工知能 クラウドxAI 20170520
第23回八子クラウド座談会 人工知能 クラウドxAI 20170520
 
SFDGR 06 20180219
SFDGR 06 20180219SFDGR 06 20180219
SFDGR 06 20180219
 
セキュアに使おう Microsoft Teams
セキュアに使おう Microsoft Teamsセキュアに使おう Microsoft Teams
セキュアに使おう Microsoft Teams
 
B 2-1 はじめての Windows Azure
B 2-1 はじめての Windows AzureB 2-1 はじめての Windows Azure
B 2-1 はじめての Windows Azure
 
クラウドサービスで作成するノンコーディングBot
クラウドサービスで作成するノンコーディングBotクラウドサービスで作成するノンコーディングBot
クラウドサービスで作成するノンコーディングBot
 
最近の Windows Azure ってどう?
最近の Windows Azure ってどう?最近の Windows Azure ってどう?
最近の Windows Azure ってどう?
 
座談会資料(討議メモ付き) 20170225
座談会資料(討議メモ付き) 20170225座談会資料(討議メモ付き) 20170225
座談会資料(討議メモ付き) 20170225
 
20201107 四国クラウドお遍路 2020 LT
20201107 四国クラウドお遍路 2020 LT20201107 四国クラウドお遍路 2020 LT
20201107 四国クラウドお遍路 2020 LT
 
協調フィルタリングを利用した推薦システム構築
協調フィルタリングを利用した推薦システム構築協調フィルタリングを利用した推薦システム構築
協調フィルタリングを利用した推薦システム構築
 
座談会資料(事前配布) 20161217
座談会資料(事前配布) 20161217座談会資料(事前配布) 20161217
座談会資料(事前配布) 20161217
 
Azure Serverless or Power Platform 〜 あなたならどっち?! - Azure Serverless 編
Azure Serverless or Power Platform 〜 あなたならどっち?! - Azure Serverless 編Azure Serverless or Power Platform 〜 あなたならどっち?! - Azure Serverless 編
Azure Serverless or Power Platform 〜 あなたならどっち?! - Azure Serverless 編
 
クラウドサービスで作成するノンコーディングBot
クラウドサービスで作成するノンコーディングBotクラウドサービスで作成するノンコーディングBot
クラウドサービスで作成するノンコーディングBot
 
Light switch × sql azure
Light switch × sql azureLight switch × sql azure
Light switch × sql azure
 
座談会資料 事前配布 20170225
座談会資料 事前配布 20170225座談会資料 事前配布 20170225
座談会資料 事前配布 20170225
 
Global Office 365 Developer BootCamp 2018 - Japan
Global Office 365 Developer BootCamp 2018 - JapanGlobal Office 365 Developer BootCamp 2018 - Japan
Global Office 365 Developer BootCamp 2018 - Japan
 
テスト漏れを無くしたい!ワークフロー単位でトリガーを自由に設定したい要望
テスト漏れを無くしたい!ワークフロー単位でトリガーを自由に設定したい要望テスト漏れを無くしたい!ワークフロー単位でトリガーを自由に設定したい要望
テスト漏れを無くしたい!ワークフロー単位でトリガーを自由に設定したい要望
 
Azure Searchで作る検索サービス
Azure Searchで作る検索サービスAzure Searchで作る検索サービス
Azure Searchで作る検索サービス
 
Jazug信州 クラウドとデータ解析
Jazug信州  クラウドとデータ解析Jazug信州  クラウドとデータ解析
Jazug信州 クラウドとデータ解析
 
Azureでデータ解析
Azureでデータ解析Azureでデータ解析
Azureでデータ解析
 

Plus de Yuki Igarashi

Plus de Yuki Igarashi (14)

.NET Coreとツール類の今
.NET Coreとツール類の今.NET Coreとツール類の今
.NET Coreとツール類の今
 
論文紹介:The wavelet matrix
論文紹介:The wavelet matrix論文紹介:The wavelet matrix
論文紹介:The wavelet matrix
 
Introduction to VSCode
Introduction to VSCodeIntroduction to VSCode
Introduction to VSCode
 
それっぽく感じる機械学習
それっぽく感じる機械学習それっぽく感じる機械学習
それっぽく感じる機械学習
 
Visual Studio 拡張機能の作り方
Visual Studio 拡張機能の作り方Visual Studio 拡張機能の作り方
Visual Studio 拡張機能の作り方
 
続・Kinect v2を通してMicrosoft技術を考える
続・Kinect v2を通してMicrosoft技術を考える続・Kinect v2を通してMicrosoft技術を考える
続・Kinect v2を通してMicrosoft技術を考える
 
Kinect v2を通してMicrosoft技術を考える
Kinect v2を通してMicrosoft技術を考えるKinect v2を通してMicrosoft技術を考える
Kinect v2を通してMicrosoft技術を考える
 
君も今日からWebMatrixMan(仮)
君も今日からWebMatrixMan(仮)君も今日からWebMatrixMan(仮)
君も今日からWebMatrixMan(仮)
 
Visual Studio付きWindowsインスタンスの利用方法
Visual Studio付きWindowsインスタンスの利用方法Visual Studio付きWindowsインスタンスの利用方法
Visual Studio付きWindowsインスタンスの利用方法
 
EXTREME AZURE 2
EXTREME AZURE 2EXTREME AZURE 2
EXTREME AZURE 2
 
Introduction to Roslyn
Introduction to RoslynIntroduction to Roslyn
Introduction to Roslyn
 
//publish/ MSPTutorial 応用編
//publish/ MSPTutorial 応用編//publish/ MSPTutorial 応用編
//publish/ MSPTutorial 応用編
 
Community Camp 2014 Tohoku LT
Community Camp 2014 Tohoku LTCommunity Camp 2014 Tohoku LT
Community Camp 2014 Tohoku LT
 
VBCPP - ICT+R 2012
VBCPP - ICT+R 2012VBCPP - ICT+R 2012
VBCPP - ICT+R 2012
 

Azure MLで何かやる