機械学習とjubatus

20
IPROS 2013/04/09 株式会社イプロス 山口隼也 @junya100 機械学習と jubatus 13410日水曜日

Upload: junya-yamaguchi

Post on 19-Jun-2015

2.608 views

Category:

Technology


2 download

TRANSCRIPT

Page 1: 機械学習とJubatus

IPROS 2013/04/09株式会社イプロス 山口隼也

@junya100

機械学習とjubatus

13年4月10日水曜日

Page 2: 機械学習とJubatus

機械学習とは?

13年4月10日水曜日

Page 3: 機械学習とJubatus

人間が自然に行っている学習能力と同様の機能をコンピュータで実現しようとする技術・手法のこと

by wikipedia

13年4月10日水曜日

Page 4: 機械学習とJubatus

機械学習とは、人間では到底処理できない膨大なデータを元に

学習&判断を行ってくれる仕組み!

13年4月10日水曜日

Page 5: 機械学習とJubatus

これで何ができるのか?

13年4月10日水曜日

Page 6: 機械学習とJubatus

・予測(不良検知、株価予測…)・分類(スパム検出、Gmail優先フォルダ、カテゴリ付与、DNA配列…)・パターン認識(音声認識、文字認識…)・検索エンジン(ランクアルゴリズム)・レコメンドエンジン・機械翻訳・ロボット・・・

13年4月10日水曜日

Page 7: 機械学習とJubatus

機械学習システムは、どういうものがあるのか?

13年4月10日水曜日

Page 8: 機械学習とJubatus

最も有名なのは、Apache Mahout

13年4月10日水曜日

Page 9: 機械学習とJubatus

Mahoutは、既に旧世代のMLエンジンと言われている

13年4月10日水曜日

Page 10: 機械学習とJubatus

では、最新のMLエンジンとは?(第3世代機械学習)

13年4月10日水曜日

Page 11: 機械学習とJubatus

1. リアルタイム2. 深い解析3. 分散処理

これらを同時に満たす!※Mahoutは3のみ。

13年4月10日水曜日

Page 12: 機械学習とJubatus

○BSP(Bulk Synchronous Parallel)ベースGoogle PregelApache HamaApache Giraph

○Iterative MRベースSparkHaLoopTwisterPiccolo

13年4月10日水曜日

Page 13: 機械学習とJubatus

BSP、MR、IterativeMRの関係性

出展元:http://sssslide.com/www.slideshare.net/doryokujin/largescale-graph-processingintroduction

13年4月10日水曜日

Page 14: 機械学習とJubatus

本命は、Jubatus

13年4月10日水曜日

Page 15: 機械学習とJubatus

Jubatusとは、

NTTとPFIが共同開発したオープンソースのMLフレームワーク

13年4月10日水曜日

Page 16: 機械学習とJubatus

機械学習の基本(教師データありの分類の場合)

分類器ベクトル

文書 特徴抽出(ベクトル化)

機械学習

分類

教師データ

実データ モデル

13年4月10日水曜日

Page 17: 機械学習とJubatus

センサー(Jubatus

クライアント)Jubatusサーバ モデル

モデルの一部を共有するだけで、全体の精度を保つ

リアルタイムのオンライン機械学習(パーセプトロン、PA・・・)

大規模データでもスケール可能

13年4月10日水曜日

Page 18: 機械学習とJubatus

Demo製品の自動カテゴリ付け

13年4月10日水曜日

Page 19: 機械学習とJubatus

■jubatusとmecabのインストール$ brew tap jubatus/jubatus$ brew install --HEAD pficommon$ brew install --HEAD re2$ brew install mecab$ brew install jubatus

※注意brewでインストールすると以下のようにre2が無効になってしまうし、mecabが入らないので$ ./waf configure --prefix=/usr/local/Cellar/jubatus/0.4.2 --disable-re2

以下のコマンドを自分で打つ$ ./waf configure --prefix=/usr/local/Cellar/jubatus/0.4.2 --enable-mecab$ ./waf build$ ./waf install

■ipadicも忘れずにインストール$ ./configure --with-mecab-config=/usr/local/Cellar/mecab/0.994/bin/mecab-config --with-charset=utf8$ make$ sudo make install

■jubatusクライアントのインストール$ sudo pip install jubatus

13年4月10日水曜日

Page 20: 機械学習とJubatus

■jubatusサーバとして、分類器(jubaclassifier)を起動$ jubaclassifier --configpath config.json

■config.jsonの設定{ "method": "PA", "converter": { "string_filter_types": {}, "string_filter_rules": [], "num_filter_types": {}, "num_filter_rules": [], "string_types": { "mecab": { "method": "dynamic", "function": "create", "path": "/usr/local/Cellar/jubatus/0.4.2/lib/jubatus/plugin/libmecab_splitter.dylib"} }, "string_rules": [ { "key": "*", "type": "mecab", "sample_weight": "tf", "global_weight": "idf" } ], "num_types": {}, "num_rules": [] }, "parameter": {}}

13年4月10日水曜日