機械学習とjubatus
TRANSCRIPT
IPROS 2013/04/09株式会社イプロス 山口隼也
@junya100
機械学習とjubatus
13年4月10日水曜日
機械学習とは?
13年4月10日水曜日
人間が自然に行っている学習能力と同様の機能をコンピュータで実現しようとする技術・手法のこと
by wikipedia
13年4月10日水曜日
機械学習とは、人間では到底処理できない膨大なデータを元に
学習&判断を行ってくれる仕組み!
13年4月10日水曜日
これで何ができるのか?
13年4月10日水曜日
・予測(不良検知、株価予測…)・分類(スパム検出、Gmail優先フォルダ、カテゴリ付与、DNA配列…)・パターン認識(音声認識、文字認識…)・検索エンジン(ランクアルゴリズム)・レコメンドエンジン・機械翻訳・ロボット・・・
13年4月10日水曜日
機械学習システムは、どういうものがあるのか?
13年4月10日水曜日
最も有名なのは、Apache Mahout
13年4月10日水曜日
Mahoutは、既に旧世代のMLエンジンと言われている
13年4月10日水曜日
では、最新のMLエンジンとは?(第3世代機械学習)
13年4月10日水曜日
1. リアルタイム2. 深い解析3. 分散処理
これらを同時に満たす!※Mahoutは3のみ。
13年4月10日水曜日
○BSP(Bulk Synchronous Parallel)ベースGoogle PregelApache HamaApache Giraph
○Iterative MRベースSparkHaLoopTwisterPiccolo
13年4月10日水曜日
BSP、MR、IterativeMRの関係性
出展元:http://sssslide.com/www.slideshare.net/doryokujin/largescale-graph-processingintroduction
13年4月10日水曜日
本命は、Jubatus
13年4月10日水曜日
Jubatusとは、
NTTとPFIが共同開発したオープンソースのMLフレームワーク
13年4月10日水曜日
機械学習の基本(教師データありの分類の場合)
分類器ベクトル
文書 特徴抽出(ベクトル化)
機械学習
分類
教師データ
実データ モデル
13年4月10日水曜日
センサー(Jubatus
クライアント)Jubatusサーバ モデル
モデルの一部を共有するだけで、全体の精度を保つ
リアルタイムのオンライン機械学習(パーセプトロン、PA・・・)
大規模データでもスケール可能
13年4月10日水曜日
Demo製品の自動カテゴリ付け
13年4月10日水曜日
■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日水曜日
■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日水曜日