More Related Content
PDF
PPTX
Jubatus Casual Talks #2: 大量映像・画像のための異常値検知とクラス分類 PPTX
前回のCasual Talkでいただいたご要望に対する進捗状況 PPTX
Jubatus使ってみた 作ってみたJubatus PDF
分類問題 - 機械学習ライブラリ scikit-learn の活用 PDF
Pythonによる機械学習入門 ~Deep Learningに挑戦~ PDF
Pythonによる機械学習入門〜基礎からDeep Learningまで〜 PDF
What's hot
PDF
PDF
2013.07.15 はじパタlt scikit-learnで始める機械学習 PDF
論文紹介 Identifying Implementation Bugs in Machine Learning based Image Classifi... PDF
Tokyo.R 41 サポートベクターマシンで眼鏡っ娘分類システム構築 PDF
「深層学習」勉強会LT資料 "Chainer使ってみた" PDF
PPTX
Jupyter NotebookとChainerで楽々Deep Learning PDF
Jubatusのリアルタイム分散レコメンデーション@TokyoWebmining#17 PDF
Python 機械学習プログラミング データ分析演習編 PDF
PDF
LCCC2010:Learning on Cores, Clusters and Cloudsの解説 PDF
PythonによるDeep Learningの実装 PDF
Pythonによる機械学習入門 ~SVMからDeep Learningまで~ PPTX
Pythonとdeep learningで手書き文字認識 PPTX
Dimensionality reduction with t-SNE(Rtsne) and UMAP(uwot) using R packages. PDF
TensorFlowによるニューラルネットワーク入門 PDF
TensorFlowの使い方(in Japanese) PDF
PPTX
PDF
Viewers also liked
PDF
Jubatusにおける大規模分散オンライン機械学習@先端金融テクノロジー研究会 PPTX
エクセルで出来るデータマイニング・データ分析入門勉強会 ダイジェスト版 PDF
PDF
PDF
PDF
論文紹介 Semi-supervised Learning with Deep Generative Models PDF
Similar to 第1回 Jubatusハンズオン
PDF
Jubatusにおける大規模分散オンライン機械学習 PDF
PPTX
0610 TECH & BRIDGE MEETING PDF
Jubatusのリアルタイム分散レコメンデーション@TokyoNLP#9 PDF
レコメンドアルゴリズムの基本と周辺知識と実装方法 PDF
Oracle Cloud Developers Meetup@東京 PDF
MapReduceによる大規模データを利用した機械学習 PDF
PDF
Session4:「先進ビッグデータ応用を支える機械学習に求められる新技術」/比戸将平 PDF
東大大学院 電子情報学特論講義資料「深層学習概論と理論解析の課題」大野健太 PDF
PDF
Jubatusの紹介@第6回さくさくテキストマイニング PDF
PDF
PPTX
2020/11/19 Global AI on Tour - Toyama プログラマーのための機械学習入門 PDF
PFI Christmas seminar 2009 PDF
PPTX
機械学習 / Deep Learning 大全 (1) 機械学習基礎編 PDF
PDF
Machine learning CI/CD with OSS More from Yuya Unno
PDF
PDF
PDF
ベンチャー企業で言葉を扱うロボットの研究開発をする PDF
PDF
PDF
PDF
PDF
最先端NLP勉強会“Learning Language Games through Interaction”Sida I. Wang, Percy L... PDF
PDF
Chainerのテスト環境とDockerでのCUDAの利用 PDF
PDF
PDF
NIP2015読み会「End-To-End Memory Networks」 PDF
PDF
PDF
PDF
PDF
PDF
PDF
第1回 Jubatusハンズオン
- 1.
- 2.
⾃自⼰己紹介
l 海野 裕也 (Yuya Unno)
l Twitter: @unnonouno
l 株式会社Preferred Infrastructure
l 専⾨門
l ⾃自然⾔言語処理理
l テキストマイニング
2
- 3.
今⽇日の⽬目標
Jubatusを使って機械学習に触れてみる
l 初めて機械学習を使ってみる⼈人も対象です
l 機械学習の初歩から説明します
l ⾼高校数学くらいの知識識があればOK
l 詳しい⼈人にとっては少し退屈かもしれません
3
- 4.
アジェンダ
l イントロダクション
l Jubatusを使ってみる
l 設定を変更更してみる
4
- 5.
l イントロダクション
l Jubatusを使ってみる
l 設定を変更更してみる
5
- 6.
JubatusはOSSの機械学習フレームワークです
l NTT SIC*とPreferred Infrastructureによる共同開発
l 2011年年10⽉月よりOSSで公開 http://jubat.us/
リアルタイム
ストリーム 分散並列列 深い解析
6
* NTT SIC: NTT研究所 サイバーコミュニケーション研究所 ソフトウェアイノベーションセンタ
- 7.
- 8.
複数の選択肢から1つ選ぶのが「多値分類問題」
l ⼊入⼒力力xに対する出⼒力力yを予想するのが多値分類問題
l 機械学習の⼀一番基本的な問題設定
l ⼊入出⼒力力の組みをたくさん教えこむ
スポーツ記事
文書
or
芸能記事
分類器
(classifier)
⼈人物画像
画像
or
動物画像
8
- 9.
l イントロダクション
l Jubatusを使ってみる
l 設定を変更更してみる
9
- 10.
Jubatusの分類器を起動しましょう
l jubaclassiferコマンドが分類器のサーバー
l -f で設定を指定して起動する
$ jubaclassifier
can't start standalone mode without
configpath specified
usage: jubaclassifier [options] ...
options:
... [略略]
$ jubaclassifier -f /opt/jubatus/share/
jubatus/example/config/classifier/pa1.json
10
- 11.
- 12.
Jubatusはサーバー・クライアントモデルで動きま
す
Jubatus
ユーザープログ (jubaclassifier)
ラム
Jubatusクライ
通信
アント
各種言語で実装
l Jubatusクライアント経由でサーバーと通信する
l 通信⽅方法などはクライアントライブラリが隠蔽している
l クライアントはC++/Ruby/Python/Javaで⽤用意
12
- 13.
サンプルを⽤用意したので実⾏行行してみましょう
https://github.com/jubatus/jubatus-example
l jubaclassifierを起動した状態でサンプルを実⾏行行
l 以下の様な結果が出れば成功
$ cd jubatus-example/gender/python
$ ./gender.py
female 0.473417669535
male 0.388551652431 ラベルごとのスコア
female 2.79595327377
male -2.36301612854
13
- 14.
線形分類は重み付き多数決のイメージ
男性
女性
入力の特徴
短髪
1.8
Tシャツ
0.3
スカート
3.2
(+
1.1 ⼥女女性だ!
l 特徴毎のスコアを加算して⼤大きい⽅方を採る
14
- 15.
学習するときは間違いを正す⽅方向に重みを調整
男性
女性
天の声=正解
入力の特徴
短髪
2.5 違います。男性
です
Tシャツ
0.8
スカート
2.8
(+
これらの特徴は男性
0.5
的なのかな?
l 判断が覆るように重みを調整する
l 学習アルゴリズム毎に重み調整の度度合いが異異なる
15
- 16.
サンプルを読んでみよう
l sample.pyの中は⼤大雑把には以下のとおり
#(前略略)
client = jubatus.Classifier(host, port)
train_data = [ ... ]
client.train(name, train_data)
test_data = [ ... ]
results = client.classify(name, test_data)
#(後略略)
16
- 17.
Jubatusはクライアントオブジェクト経由で使う
l 最初にクライアントオブジェクトを⽣生成する
l クライアントオブジェクト経由で操作する
#(前略略)
client = jubatus.Classifier(host, port)
train_data = [ ... ]
client.train(name, train_data)
test_data = [ ... ]
results = client.classify(name, test_data)
#(後略略)
17
- 18.
正解のわかっているデータを使って学習(train)を⾏行行
う
l 最初にクライアントオブジェクトを⽣生成する
l クライアントオブジェクト経由で操作する
client = jubatus.Classifier(host, port)
train_data = [
('male’, datum([('hair', 'short’), ...),
...
]
client.train(name, train_data)
test_data = [ ... ]
results = client.classify(name, test_data)
18
- 19.
学習したら未分類のデータを分類(classify)する
l 最初にクライアントオブジェクトを⽣生成する
l クライアントオブジェクト経由で操作する
client = jubatus.Classifier(host, port)
train_data = [ ... ]
client.train(name, train_data)
test_data = [
datum([('hair', 'short'), ... ),
...
]
results = client.classify(name, test_data)
19
- 20.
単体のデータを表すdatumクラスの構造に注意
l ⽂文字列列情報と数値情報のリストを別々に指定する
l それぞれは、キーと値のペアのリストになっている
l 下のデータは、”hair”が”short”、“top”が”T shirt”、”height”が
1.81と読む
datum(
[('hair', 'short'), ('top', 'T shirt’),],
[('height', 1.81)]
)
20
- 21.
データを追加してみよう
l 学習⽤用のデータを増やすと⼀一般的に分類性能が良良くなる
l 無限に増やしても、全て当たるようになるわけではない
client = jubatus.Classifier(host, port)
train_data = [
('male’, datum([('hair', 'short’), ...),
...
# ここにデータを追加
]
client.train(name, train_data)
test_data = [ ... ]
results = client.classify(name, test_data)
21
- 22.
ラベルを追加してみよう
l ラベルを細かくすると分類も細かくできる
l 粒粒度度を細かくするとそれだけ正解率率率は落落ちるので注意
client = jubatus.Classifier(host, port)
train_data = [
('male (adult)’, datum([('hair',
'short’), ...),
...
]
client.train(name, train_data)
test_data = [ ... ]
results = client.classify(name, test_data)
22
- 23.
l イントロダクション
l Jubatusを使ってみる
l 設定を変更更してみる
23
- 24.
設定を⾒見見てみよう
特徴抽出の設定
{
"converter" : {
...
学習⽅方法のパラメータ
},
"parameter" : {
"regularization_weight" : 1.0
},
"method" : "PA1"
}
学習の⽅方法
24
- 25.
学習アルゴリズムを変えてみよう
{
"converter" : { ... },
"parameter" : { ... },
"method" : ”AROW"
}
l “method” は学習アルゴリズムを指定する
l “PA1” から ”AROW” に変えてみる
l 利利⽤用できるアルゴリズムはドキュメント参照
25
- 26.
パラメータを変えてみよう
{
"converter" : { ... },
"parameter" : {
"regularization_weight" : 10.0
},
"method" : "PA1"
}
l parameter はどのように学習するかの調整に使われる
l 学習で調整されるパラメータとは区別する意味で、ハイ
パーパラメータと呼ばれる
l よい値はデータやアプリケーションによって異異なる
26
- 27.
残りの設定は特徴抽出の設定です
{
"converter" : {
...
},
“parameter” : { ... },
"method" : "PA1"
}
l converter は⽣生のデータをどう扱うかの、特徴抽出に関
する設定
l 設定のしどころであり、学習がうまくいくかの重要な部
分
27
- 28.
タスク固有の問題と⼿手法を分離離している
特徴抽出
特徴分析
分野に依存しない 様々な⼿手法・理理論論を
特徴を捉えた抽象化されたデータ 適⽤用可能
⽂文書 (0, 1, 0, 2.5, -‐‑‒1, …) 分類/回帰:SVM, LogReg,
(1, 0.5, 0.1, -‐‑‒2, 3, …) PA, CW, ALOW, Naïve Bayes
(0, 1, 0, 1.5, 2, …) CNB, DT, RF, ANN, …
特徴ベクトル
画像 クラスタリング:K-‐‑‒means,
Spectral Clustering, MMC,
LSI, LDA, GM, …
⾏行行動履履歴 グラフィカルモデル 構造分析:HMM, MRF, CRF, …
センサ情報 28
- 29.
タスク固有の問題と⼿手法の分離離(続)
l 特徴抽出と特徴分析を分離離することが重要
l データの種類、ドメイン、利利⽤用⽬目的に依存せず、様々な
分析を利利⽤用可能なしくみを作ることができる
l 利利点
l システム開発・専⾨門家教育のコストを⼤大きく下げることができ
る
l 特徴抽出では各問題ドメインに専念念
l 特徴分析では各分析⼿手法に専念念
29
- 30.
⽣生のデータから特徴を抜き出すのが特徴抽出
l ⼊入⼒力力された⽣生データの特徴をキーとバリューで表す
l 変換の⽅方法はデータの種類によって様々
特徴ベクトル
世の中ではビッグデー 分析結果
タというキーワードが ビッグデータ 2
注⽬目されていますが, 世の中 1
⼀一⼝口にビッグデータと
キーワード 1 IT関連
いっても⽴立立場や観点に
よって定義は様々です. 定義 1
周囲が黄色 1
中心が茶 1
花びらの割合 0.7 ひまわり
⾼高さ 150
30
他の要素は0とする
- 31.
デフォルトの設定では元の⼊入⼒力力をそのまま使ってい
ます
{
"hair": "short",
"top": "T shirt",
"bottom": "jeans",
"height": 1.70
}
文字列情報
数値情報
hair=short 1.0
top=T shirt 1.0
bottom=jeans 1.0
height 1.70
31
- 32.
⽂文字列列に対する処理理
{
"hair": "short", l キーと値の組み合わ
"top": "T shirt", せで、1つの特徴に
"bottom": "jeans", なるようにする
"height": 1.70
}
l 値は1.0で固定
hair=short 1.0
top=T shirt 1.0
bottom=jeans 1.0
height 1.70
32
- 33.
- 34.
数値に対する処理理
{
"hair": "short", l キーと値をそのまま
"top": "T shirt", 特徴の値となるよう
"bottom": "jeans", にする
"height": 1.70
}
hair=short 1.0
top=T shirt 1.0
bottom=jeans 1.0
height 1.70
34
- 35.
- 36.
特徴の取り⽅方を⼯工夫することで分類精度度が変わりま
す
世の中ではビッグデータ… 1.0
世の中ではビッグデー
タというキーワードが
注⽬目されていますが, 世の中 1.0
⼀一⼝口にビッグデータと
いっても⽴立立場や観点に ビッグデータ 2.0
よって定義は様々です.
キーワード 1.0
⽴立立場 1.0
l 特徴の粒粒度度が細かすぎても粗すぎても学習はうまくいか
ない
36
- 37.
スペース区切切りで特徴をとってみましょう
...
"string_rules" :[
{ "key" : "*”,
"type" : “space",
"sample_weight" : "bin”,
"global_weight" : "bin" }
],
...
l スペース区切切りを使う場合はtypeにspaceを使う
l 他にも特徴の取り⽅方は設定で簡単に変えられるので、ド
キュメントを参照
37
- 38.
その他の情報源
l ドキュメント
l http://jubat.us/ja/
l 特徴抽出や設定周りもひと通り書いてある
l メーリングリスト
l http://groups.google.com/group/jubatus
l ソースとバグ報告
l https://github.com/jubatus/jubatus
38
- 39.
⾃自由に改変してみましょう
l jubatus-example以下に、⾊色々サンプルがあるので試し
てみる
l 分類以外のサンプルもあるが、記述⾔言語が限られている
l よく知られたデータセットを利利⽤用してみる
l http://www.csie.ntu.edu.tw/~cjlin/libsvmtools/datasets
l news20で検索索
l Enjoy!
39