SlideShare ist ein Scribd-Unternehmen logo
1 von 17
Downloaden Sie, um offline zu lesen
オンライン機械学習を「分散」する	
  
Jubatusハンズオン 分散編	
Jubatus	
  Team	
  
小田 哲
本資料の流れ	
•  Jubatusと分散	
  
– Jubatusはどこを目指しているのか	
  
•  分散を知るための機械学習	
  
– nearest	
  neighbor	
  
•  MIX	
  
– MIXで行われること	
  
– MIXをどのタイミングで行うか	
  
•  動かしてみよう!
Jubatusと分散	
  
Jubatusが切り拓く世界	
v さまざまな所で大量のデータが生成され続けている。	
  
v これらのデータをリアルタイムに学習しながらリアルタイムに
分析を行いたい。	
  
Jubatusは、なぜ分散するのか?	
クラスタ構成を組んでスループットを
あげよう!	
1台だと処理しきれないかもしれない	
ストリーム的に入ってくるデータをリ
アルタイムに処理したい	
v リアルタイムにデータを処理したいが、一台で処理できる単
位時間あたりの処理量は限られている。	
  
v システムとして、24h/365d動き続けて欲しい。	
  
MIX	
ストリームデータを相手にしているためモデルは常に
変化し続ける。完全な同期はコストが高い。	
  
Jubatusはサーバ間の完全な同期を諦め、代わ
りにMIXという同期の仕組みを実現することで
スケールアウトを実現。	
緩い同期	
  
=MIX
分散を知るための機械学習	
  
Nearest	
  Neighbor	
ある点  からの距離を定義し、もっとも近い点  や、
決められた距離より近い点たちを抽出するタスク。	
推薦、クラスタリングなど
様々なアルゴリズムの基
盤となる手法
NNではモデル=点のハッシュ値リスト	
まじめにやると大変なので確率的に判断する。例えば、
LSH(=距離が近ければ、値がかぶりやすい関数)を使
うと一致している数が多いものは距離も近い、ことを
使う。	
01010100,	
  1010010,	
  010111	
  ,0110101	
01110100,	
  1010010,	
  010101	
  ,0110101	
01110100,	
  1011001,	
  110011	
  ,0110101	
01010100,	
  1010010,	
  110111	
  ,0110101	
01010100,	
  1101011,	
  010100	
  ,0110101	
01010100,	
  1010010,	
  010101	
  ,0110101	
01010100,	
  1010010,	
  010011	
  ,0110101	
01010100,	
  1010010,	
  011101	
  ,	
  1101011	
01111100,	
  1010100,	
  100011	
  ,1101011
MIXとは?	
  
モデルの穏やかな共有
MIXで行われること:nearest	
  neighbor	
12,	
  23,	
  34	
  ,45	
10,	
  30,	
  31,	
  50	
10,	
  23,	
  30,	
  31	
50,	
  52,	
  54,	
  60	
80,	
  82,	
  90,	
  100	
10,	
  12,	
  21,	
  25	
12,	
  23,	
  30,	
  34	
50,	
  52,	
  78,	
  90	
75,	
  79,	
  80,	
  82	
+	
 =	
12,	
  23,	
  34	
  ,45	
10,	
  12,	
  21,	
  25	
10,	
  30,	
  31,	
  50	
10,	
  23,	
  30,	
  31	
12,	
  23,	
  30,	
  34	
50,	
  52,	
  78,	
  90	
50,	
  52,	
  54,	
  60	
75,	
  79,	
  80,	
  82	
80,	
  82,	
  90,	
  100	
モデル=点のハッシュ値なので、点ごとに持っていな
い	
  or	
  以前のデータを上書きすれば、全体のモデルに
なる。
MIXと精度	
•  タイミングによる精度のズレ	
  
•  タイミングにより失われるデータ	
  
•  MIXの精度を制御したいのであれば、ある程
度中のアルゴリズムと挙動を理解することが
必要	
  
MIXはアルゴリズムごとに手法が異なる。	
  
精度は、タスクの種類、MIXの頻度、データ入力のタイ
ミングなどにより変化する。	
  
C/C++,	
  Java,	
  Python,	
  Ruby
などで書かれた、jubatus
にクエリーを投げるため
のクライアントライブラリ。	
クライアントが分散を意識
しなくても利用できるよう
に、クエリーの分散、調停、
集計などを行うプロキシ	
機械学習を実行するエン
ジン	
言語に適した名前	
 juba[アルゴリズム名]	
_proxy	
juba[アルゴリズム名]	
Jubatusの登場人物	
Jubatus	
  Client	
 Jubatus	
  Proxy	
クライアント プロキシ サーバ
Jubatus	
  Server
動かしてみよう!	
•  用意するもの	
  
– AWSのアカウント
一台構成	
manager
凡例	
サーバ
プロセス
jubatus_
update.pysource.py
manager内で完結させる	
  
queue
jubaneares
t_neighbor
jubatus_a
nalyze.py
最終的なサーバ構成	
c1manager s1
jubanearest_nei
ghbor
jubanearest_
neighbor_
proxy
jubatus_
update
.py
queue
サーバ2プロセスに対して、クライアントが処理を投げ
続けるモデル	
  
c2
jubanearest_ne
ighbor_
proxy
jubatus_
update
.py
Zookeeper
s2
jubanearest_nei
ghbor
分散の功罪	
•  MIXのタイミングを制御	
  
– MIXする前とした後で、結果が変わることを確認
する。	
  
•  Analyzeクエリーを捌ききれることを確認

Weitere ähnliche Inhalte

Andere mochten auch

評BanにおけるJubatus活用事例
評BanにおけるJubatus活用事例評BanにおけるJubatus活用事例
評BanにおけるJubatus活用事例JubatusOfficial
 
標的型メール対策製品でのJubatus活用事例
標的型メール対策製品でのJubatus活用事例標的型メール対策製品でのJubatus活用事例
標的型メール対策製品でのJubatus活用事例JubatusOfficial
 
Jubatus 0.6.0 新機能紹介
Jubatus 0.6.0 新機能紹介Jubatus 0.6.0 新機能紹介
Jubatus 0.6.0 新機能紹介JubatusOfficial
 
Jubatus Casual Talks #2: 大量映像・画像のための異常値検知とクラス分類
Jubatus Casual Talks #2: 大量映像・画像のための異常値検知とクラス分類Jubatus Casual Talks #2: 大量映像・画像のための異常値検知とクラス分類
Jubatus Casual Talks #2: 大量映像・画像のための異常値検知とクラス分類Hirotaka Ogawa
 
Jubatusで始める機械学習
Jubatusで始める機械学習Jubatusで始める機械学習
Jubatusで始める機械学習JubatusOfficial
 
Jubatus Casual Talks #2 Jubatus開発者入門
Jubatus Casual Talks #2 Jubatus開発者入門Jubatus Casual Talks #2 Jubatus開発者入門
Jubatus Casual Talks #2 Jubatus開発者入門Shuzo Kashihara
 
世界征服を目指すJubatusだからこそ期待する5つのポイント
世界征服を目指すJubatusだからこそ期待する5つのポイント世界征服を目指すJubatusだからこそ期待する5つのポイント
世界征服を目指すJubatusだからこそ期待する5つのポイントNTT DATA OSS Professional Services
 
Jubatus Casual Talks #2 : 0.5.0の新機能(クラスタリング)の紹介
Jubatus Casual Talks #2 : 0.5.0の新機能(クラスタリング)の紹介Jubatus Casual Talks #2 : 0.5.0の新機能(クラスタリング)の紹介
Jubatus Casual Talks #2 : 0.5.0の新機能(クラスタリング)の紹介瑛 村下
 
センサデータ解析におけるJubatus活用事例
センサデータ解析におけるJubatus活用事例センサデータ解析におけるJubatus活用事例
センサデータ解析におけるJubatus活用事例JubatusOfficial
 
Jubatus分類器の活用テクニック
Jubatus分類器の活用テクニックJubatus分類器の活用テクニック
Jubatus分類器の活用テクニックJubatusOfficial
 
Jubatus使ってみた 作ってみたJubatus
Jubatus使ってみた 作ってみたJubatusJubatus使ってみた 作ってみたJubatus
Jubatus使ってみた 作ってみたJubatusJubatusOfficial
 
Jubatus Casual Talks #2 異常検知入門
Jubatus Casual Talks #2 異常検知入門Jubatus Casual Talks #2 異常検知入門
Jubatus Casual Talks #2 異常検知入門Shohei Hido
 
jubaanomalyでキーストローク認証
jubaanomalyでキーストローク認証jubaanomalyでキーストローク認証
jubaanomalyでキーストローク認証odasatoshi
 
Jubatusでuserとbrandのレコメンドを試してみた話
Jubatusでuserとbrandのレコメンドを試してみた話Jubatusでuserとbrandのレコメンドを試してみた話
Jubatusでuserとbrandのレコメンドを試してみた話JubatusOfficial
 
Jubatusでオンラインランク学習
Jubatusでオンラインランク学習Jubatusでオンラインランク学習
Jubatusでオンラインランク学習Yukihiro Tagami
 
数式を使わないJubatus入門
数式を使わないJubatus入門数式を使わないJubatus入門
数式を使わないJubatus入門Kenji Aiko
 

Andere mochten auch (18)

評BanにおけるJubatus活用事例
評BanにおけるJubatus活用事例評BanにおけるJubatus活用事例
評BanにおけるJubatus活用事例
 
標的型メール対策製品でのJubatus活用事例
標的型メール対策製品でのJubatus活用事例標的型メール対策製品でのJubatus活用事例
標的型メール対策製品でのJubatus活用事例
 
Jubatus 0.6.0 新機能紹介
Jubatus 0.6.0 新機能紹介Jubatus 0.6.0 新機能紹介
Jubatus 0.6.0 新機能紹介
 
Jubatus Casual Talks #2: 大量映像・画像のための異常値検知とクラス分類
Jubatus Casual Talks #2: 大量映像・画像のための異常値検知とクラス分類Jubatus Casual Talks #2: 大量映像・画像のための異常値検知とクラス分類
Jubatus Casual Talks #2: 大量映像・画像のための異常値検知とクラス分類
 
Jubatusで始める機械学習
Jubatusで始める機械学習Jubatusで始める機械学習
Jubatusで始める機械学習
 
Jubatus Casual Talks #2 Jubatus開発者入門
Jubatus Casual Talks #2 Jubatus開発者入門Jubatus Casual Talks #2 Jubatus開発者入門
Jubatus Casual Talks #2 Jubatus開発者入門
 
世界征服を目指すJubatusだからこそ期待する5つのポイント
世界征服を目指すJubatusだからこそ期待する5つのポイント世界征服を目指すJubatusだからこそ期待する5つのポイント
世界征服を目指すJubatusだからこそ期待する5つのポイント
 
Jubatus Casual Talks #2 : 0.5.0の新機能(クラスタリング)の紹介
Jubatus Casual Talks #2 : 0.5.0の新機能(クラスタリング)の紹介Jubatus Casual Talks #2 : 0.5.0の新機能(クラスタリング)の紹介
Jubatus Casual Talks #2 : 0.5.0の新機能(クラスタリング)の紹介
 
センサデータ解析におけるJubatus活用事例
センサデータ解析におけるJubatus活用事例センサデータ解析におけるJubatus活用事例
センサデータ解析におけるJubatus活用事例
 
Jubatus分類器の活用テクニック
Jubatus分類器の活用テクニックJubatus分類器の活用テクニック
Jubatus分類器の活用テクニック
 
Jubatus casulatalks2
Jubatus casulatalks2Jubatus casulatalks2
Jubatus casulatalks2
 
A use case of online machine learning using Jubatus
A use case of online machine learning using JubatusA use case of online machine learning using Jubatus
A use case of online machine learning using Jubatus
 
Jubatus使ってみた 作ってみたJubatus
Jubatus使ってみた 作ってみたJubatusJubatus使ってみた 作ってみたJubatus
Jubatus使ってみた 作ってみたJubatus
 
Jubatus Casual Talks #2 異常検知入門
Jubatus Casual Talks #2 異常検知入門Jubatus Casual Talks #2 異常検知入門
Jubatus Casual Talks #2 異常検知入門
 
jubaanomalyでキーストローク認証
jubaanomalyでキーストローク認証jubaanomalyでキーストローク認証
jubaanomalyでキーストローク認証
 
Jubatusでuserとbrandのレコメンドを試してみた話
Jubatusでuserとbrandのレコメンドを試してみた話Jubatusでuserとbrandのレコメンドを試してみた話
Jubatusでuserとbrandのレコメンドを試してみた話
 
Jubatusでオンラインランク学習
Jubatusでオンラインランク学習Jubatusでオンラインランク学習
Jubatusでオンラインランク学習
 
数式を使わないJubatus入門
数式を使わないJubatus入門数式を使わないJubatus入門
数式を使わないJubatus入門
 

Jubatusハンズオン分散編