Jubatus
使ってみたよ
TokyoR #44
小林 達 @soultoru
※ この資料の情報は個人の見解であり、
所属団体や資料を参考にした個人・団体様には
一切関係ないです。
あっても見逃してください。
早速ですが、
こんなことに
困っていません
か?
問
関係者がデータ
を小出しに
提出してくる
データが巨大で
1 台のサーバの
メモリには
載らない
データ投入から
分析結果の出力
まで長時間
あるよ。
https://preferred.jp/
アジェンダ
●
どんなもの?
●
何ができるの?
●
どうして動くの?
●
作ってみた
●
R から使うには
●
どんなもの?
●
何ができるの?
●
どうして動くの?
●
作ってみた
●
R から使うには
Jubatus =
機械学習
エンジン
「分散した
データ」を
「常に素早く」
「深く分析」
https://preferred.jp/product/jubatus/
PFI と NTT が
共同開発の
国産 OSS
※ 現在は Preferred Networks がライセンスを保有しているみたいです。
http://itpro.nikkeibp.co.jp/atcl/news/14/100101159/
●
どんなもの?
●
何ができるの?
●
どうして動くの?
●
作ってみた
●
R から使うには
Jubatus =
機械学習
エンジン
多値分類
線形回帰
クラスタリング
クラスタ分析
時系列データの統計分析
近傍探索
推薦
グラフマイニング
異常検知
これらの
機械学習タスク
を
オンラインに
分散処理できる
!
●
どんなもの?
●
何ができるの?
●
どうして動くの?
●
作ってみた
●
R から使うには
Jubatus =
機械学習
エンジン
多値分類
線形回帰
クラスタリング
クラスタ分析
時系列データの統計分析
近傍探索
推薦
グラフマイニング
異常検知
機械学習とは、
簡単にはデータに対して何かのモデルに対して
問題を解くことで意図した動作を機械にさせる
※ 詳しい原理は書籍を読んでください
オンライン
勉強しろ
結果くれ
Datum
この間わずか
数十 ms で OK !
ほい
※ 状況によって違います
結果
なぜオンライン
で動くのか?
オンライン化
のマジック =
確率的
勾配降下法
目的関数が期待値で表された最適化問題
          (  は確率密度関数)
に対するオンライン最適化アルゴリズム.
目的関数の勾配が得られる状況下では,  通常の勾配法が適用
可能だが,  の計算が高コストであまり現実的ではない場合が
ある.そこで,  の代わりに近似的に   を用いた勾配法
         ( は反復時点での実現値)
が確率的勾配降下法( Stochastic Gradient Descent, 以下 SGD )
である.    は   平均的にはと一致するので通常の勾配
法と同様な収束性が期待される.
http://www.msi.co.jp/nuopt/glossary/term_da265770bed70e5f0a764f3d20c0ce3d242e6467.html
※Jubatus は同様ではあるが違うアルゴリズム使ってるかも。ソースそこまで読んでないす。
分散処理
勉強しろ
Datum
勉強しろ
Datum
こそこそ
結果くれ
結果くれ
どっちに聞いても
いいよ!
結果が少し
違うかもだけど
なぜ分散処理
できるか
「こそこそ」
に秘密あり!
分散学習機構
Mix
データそのもの
をやりとり
しない
(大きいから)
分析結果
( モデル ) を
ガッチャンコ
(平均化)
データ モデル
全部処理。。。
モデルの平均
とるだけ!
※ 「モデルの平均とるだけ」はイメージです。
実際にはもっと難しい処理しているはずです。
ただし、
データの
Update 毎に
Mix しない
=
分析結果が
ノード毎
違う可能性
●
どんなもの?
●
何ができるの?
●
どうして動くの?
●
作ってみた
●
R から使うには
http://karaoke.pink
アプリ作ってみました。
推薦エンジンを中で使ってます。
●
どんなもの?
●
何ができるの?
●
どうして動くの?
●
作ってみた
●
R から使うには
残念なお知らせ残念なお知らせ
R のライブラリ
はまだないみたい
です。。。
今のところ
C++ 、 Java
Python 、 Ruby
に対応
でも
動かせる可能性
はありますっ
1
Msgpack + RPC
を R で実装
2
C++ ライブラリ
を Rcpp
で呼び出す
3
RESTapi を Ruby
などで作成
RCurl で呼び出す
すみません、
どれも試せて
ないです。。。
本当は R のドライバライブラリ
公開したかったのですが間に合いませんでした
●
まとめ
Jubatus =
機械学習
エンジン
「分散した
データ」を
「常に素早く」
「深く分析」
今は
(簡単には)
R から動かない
※ その内なんとか
するかも
おしまい

Jubatus使ってみた