SlideShare una empresa de Scribd logo
1 de 39
Descargar para leer sin conexión
第1回  Jubatusハンズオン


    2013年年 2⽉月18⽇日(⽉月)
       Jubatus Team
⾃自⼰己紹介

l    海野  裕也 (Yuya Unno)
l    Twitter: @unnonouno
l    株式会社Preferred Infrastructure

l    専⾨門
      l    ⾃自然⾔言語処理理
      l    テキストマイニング




                           2
今⽇日の⽬目標



            Jubatusを使って機械学習に触れてみる



l  初めて機械学習を使ってみる⼈人も対象です
l  機械学習の初歩から説明します
      l    ⾼高校数学くらいの知識識があればOK
l    詳しい⼈人にとっては少し退屈かもしれません


                        3
アジェンダ

l    イントロダクション

l    Jubatusを使ってみる

l    設定を変更更してみる




                      4
l    イントロダクション

l    Jubatusを使ってみる

l    設定を変更更してみる




                      5
JubatusはOSSの機械学習フレームワークです
  l    NTT  SIC*とPreferred  Infrastructureによる共同開発
  l    2011年年10⽉月よりOSSで公開  http://jubat.us/




        リアルタイム  
         ストリーム         分散並列列           深い解析
                            6	
*  NTT  SIC:  NTT研究所  サイバーコミュニケーション研究所  ソフトウェアイノベーションセンタ
機械学習は「データに基づいに機械が判断を⾏行行う」
技術




l    過去のデータにもとづいて⼈人が判断できるようになる
l    同じように過去のデータから機械が判断するようになる
      のが機械学習
                 7
複数の選択肢から1つ選ぶのが「多値分類問題」
l    ⼊入⼒力力xに対する出⼒力力yを予想するのが多値分類問題
l    機械学習の⼀一番基本的な問題設定
l    ⼊入出⼒力力の組みをたくさん教えこむ
                                 スポーツ記事
           文書	
                    or	
                                 芸能記事

                    分類器
                  (classifier)
                                 ⼈人物画像
           画像	
                                   or	
                                 動物画像
                      8
l    イントロダクション

l    Jubatusを使ってみる

l    設定を変更更してみる




                      9
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
今⽇日は分散の話はしません

l    今⽇日は単体で実⾏行行させます

l    分散させません




                    11
Jubatusはサーバー・クライアントモデルで動きま
す

                                    Jubatus
  ユーザープログ                       (jubaclassifier)
     ラム

          Jubatusクライ
                         通信	
             アント

            各種言語で実装	

l    Jubatusクライアント経由でサーバーと通信する
l    通信⽅方法などはクライアントライブラリが隠蔽している
l    クライアントはC++/Ruby/Python/Javaで⽤用意
                        12
サンプルを⽤用意したので実⾏行行してみましょう

      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
線形分類は重み付き多数決のイメージ
               男性	
                  女性	
  入力の特徴	
   短髪	
           1.8

      Tシャツ	
          0.3

      スカート	
                     3.2
                                            (+	
                               1.1      ⼥女女性だ!

l    特徴毎のスコアを加算して⼤大きい⽅方を採る

                        14
学習するときは間違いを正す⽅方向に重みを調整
               男性	
                  女性	
   天の声=正解	
  入力の特徴	
   短髪	
          2.5                     違います。男性
                                            です
      Tシャツ	
          0.8

      スカート	
                       2.8
                                          (+	
                                    これらの特徴は男性
                      0.5
                                      的なのかな?

l    判断が覆るように重みを調整する
l    学習アルゴリズム毎に重み調整の度度合いが異異なる
                            15
サンプルを読んでみよう

l    sample.pyの中は⼤大雑把には以下のとおり


#(前略略)

client = jubatus.Classifier(host, port)
train_data = [ ... ]
client.train(name, train_data)
test_data = [ ... ]
results = client.classify(name, test_data)

#(後略略)

                     16
Jubatusはクライアントオブジェクト経由で使う

l    最初にクライアントオブジェクトを⽣生成する
l    クライアントオブジェクト経由で操作する
#(前略略)

client = jubatus.Classifier(host, port)
train_data = [ ... ]
client.train(name, train_data)
test_data = [ ... ]
results = client.classify(name, test_data)

#(後略略)

                     17
正解のわかっているデータを使って学習(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
学習したら未分類のデータを分類(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
単体のデータを表すdatumクラスの構造に注意

l    ⽂文字列列情報と数値情報のリストを別々に指定する
l    それぞれは、キーと値のペアのリストになっている
      l    下のデータは、”hair”が”short”、“top”が”T shirt”、”height”が
            1.81と読む



datum(
  [('hair', 'short'), ('top', 'T shirt’),],
  [('height', 1.81)]
)


                                20
データを追加してみよう

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
ラベルを追加してみよう

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
l    イントロダクション

l    Jubatusを使ってみる

l    設定を変更更してみる




                      23
設定を⾒見見てみよう


                           特徴抽出の設定
{
    "converter" : {
      ...
                        学習⽅方法のパラメータ
    },
    "parameter" : {
      "regularization_weight" : 1.0
    },
    "method" : "PA1"
}
                            学習の⽅方法


                    24
学習アルゴリズムを変えてみよう

{
      "converter" : { ... },
      "parameter" : { ... },
      "method" : ”AROW"
}



l    “method” は学習アルゴリズムを指定する
l    “PA1” から  ”AROW” に変えてみる
l    利利⽤用できるアルゴリズムはドキュメント参照

                         25
パラメータを変えてみよう

{
      "converter" : { ... },
      "parameter" : {
        "regularization_weight" : 10.0
      },
      "method" : "PA1"
}


l    parameter はどのように学習するかの調整に使われる
l    学習で調整されるパラメータとは区別する意味で、ハイ
      パーパラメータと呼ばれる
l    よい値はデータやアプリケーションによって異異なる
                         26
残りの設定は特徴抽出の設定です

{
      "converter" : {
        ...
      },
      “parameter” : { ... },
      "method" : "PA1"
}

l    converter は⽣生のデータをどう扱うかの、特徴抽出に関
      する設定
l    設定のしどころであり、学習がうまくいくかの重要な部
      分
                         27
タスク固有の問題と⼿手法を分離離している


      特徴抽出	
                                           特徴分析	
                   分野に依存しない                                     様々な⼿手法・理理論論を
               特徴を捉えた抽象化されたデータ                                    適⽤用可能
     ⽂文書         (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
タスク固有の問題と⼿手法の分離離(続)

l    特徴抽出と特徴分析を分離離することが重要

l    データの種類、ドメイン、利利⽤用⽬目的に依存せず、様々な
      分析を利利⽤用可能なしくみを作ることができる

l    利利点
      l    システム開発・専⾨門家教育のコストを⼤大きく下げることができ
            る
      l    特徴抽出では各問題ドメインに専念念
      l    特徴分析では各分析⼿手法に専念念


                         29
⽣生のデータから特徴を抜き出すのが特徴抽出
l    ⼊入⼒力力された⽣生データの特徴をキーとバリューで表す
l    変換の⽅方法はデータの種類によって様々

               特徴ベクトル	
世の中ではビッグデー                                分析結果	
タというキーワードが          ビッグデータ            2
注⽬目されていますが,         世の中               1
⼀一⼝口にビッグデータと
                    キーワード             1       IT関連
いっても⽴立立場や観点に
よって定義は様々です.         定義                1


                  周囲が黄色         1
                  中心が茶          1
                  花びらの割合        0.7          ひまわり
                  ⾼高さ           150

                         30	
                                他の要素は0とする
デフォルトの設定では元の⼊入⼒力力をそのまま使ってい
ます
          {
              "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
⽂文字列列に対する処理理
 {
     "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
string_rulesに⽂文字列列データの変換規則を書きます
...
 "string_rules" : [
   { "key" : "*”,
     "type" : "str",
     "sample_weight" : "bin”,
     "global_weight" : "bin" }
 ],
...

l    key: * 全てのデータに対して、
l    type: str 値をそのまま使う
l    sample_weight, global_weight: 重み付けは1.0

                           33
数値に対する処理理
{
    "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
num_rulesに数値データの変換規則を書きます

...
 ”num_rules" : [
   { "key" : "*”,
     "type" : ”num” }
 ],
...


l    key: * 全てのデータに対して
l    type: num 数値をそのまま使う



                        35
特徴の取り⽅方を⼯工夫することで分類精度度が変わりま
す
                         世の中ではビッグデータ…     1.0

  世の中ではビッグデー
  タというキーワードが
  注⽬目されていますが,            世の中        1.0
  ⼀一⼝口にビッグデータと
  いっても⽴立立場や観点に           ビッグデータ     2.0
  よって定義は様々です.
                         キーワード      1.0
                         ⽴立立場       1.0


l    特徴の粒粒度度が細かすぎても粗すぎても学習はうまくいか
      ない
                  36
スペース区切切りで特徴をとってみましょう
...
 "string_rules" : [
   { "key" : "*”,
     "type" : “space",
     "sample_weight" : "bin”,
     "global_weight" : "bin" }
 ],
...


l    スペース区切切りを使う場合はtypeにspaceを使う
l    他にも特徴の取り⽅方は設定で簡単に変えられるので、ド
      キュメントを参照
                     37
その他の情報源

l    ドキュメント
      l    http://jubat.us/ja/
      l    特徴抽出や設定周りもひと通り書いてある


l    メーリングリスト
      l    http://groups.google.com/group/jubatus


l    ソースとバグ報告
      l    https://github.com/jubatus/jubatus




                                    38
⾃自由に改変してみましょう

l    jubatus-example以下に、⾊色々サンプルがあるので試し
      てみる
      l    分類以外のサンプルもあるが、記述⾔言語が限られている


l    よく知られたデータセットを利利⽤用してみる
      l    http://www.csie.ntu.edu.tw/~cjlin/libsvmtools/datasets
      l    news20で検索索


l    Enjoy!



                                     39

Más contenido relacionado

La actualidad más candente

画像認識で物を見分ける
画像認識で物を見分ける画像認識で物を見分ける
画像認識で物を見分けるKazuaki Tanida
 
2013.07.15 はじパタlt scikit-learnで始める機械学習
2013.07.15 はじパタlt scikit-learnで始める機械学習2013.07.15 はじパタlt scikit-learnで始める機械学習
2013.07.15 はじパタlt scikit-learnで始める機械学習Motoya Wakiyama
 
論文紹介 Identifying Implementation Bugs in Machine Learning based Image Classifi...
論文紹介 Identifying Implementation Bugs in Machine Learning based Image Classifi...論文紹介 Identifying Implementation Bugs in Machine Learning based Image Classifi...
論文紹介 Identifying Implementation Bugs in Machine Learning based Image Classifi...y-uti
 
Tokyo.R 41 サポートベクターマシンで眼鏡っ娘分類システム構築
Tokyo.R 41 サポートベクターマシンで眼鏡っ娘分類システム構築Tokyo.R 41 サポートベクターマシンで眼鏡っ娘分類システム構築
Tokyo.R 41 サポートベクターマシンで眼鏡っ娘分類システム構築Tatsuya Tojima
 
「深層学習」勉強会LT資料 "Chainer使ってみた"
「深層学習」勉強会LT資料 "Chainer使ってみた"「深層学習」勉強会LT資料 "Chainer使ってみた"
「深層学習」勉強会LT資料 "Chainer使ってみた"Ken'ichi Matsui
 
実装ディープラーニング
実装ディープラーニング実装ディープラーニング
実装ディープラーニングYurie Oka
 
Jupyter NotebookとChainerで楽々Deep Learning
Jupyter NotebookとChainerで楽々Deep LearningJupyter NotebookとChainerで楽々Deep Learning
Jupyter NotebookとChainerで楽々Deep LearningJun-ya Norimatsu
 
Jubatusのリアルタイム分散レコメンデーション@TokyoWebmining#17
Jubatusのリアルタイム分散レコメンデーション@TokyoWebmining#17Jubatusのリアルタイム分散レコメンデーション@TokyoWebmining#17
Jubatusのリアルタイム分散レコメンデーション@TokyoWebmining#17Yuya Unno
 
Python 機械学習プログラミング データ分析演習編
Python 機械学習プログラミング データ分析演習編Python 機械学習プログラミング データ分析演習編
Python 機械学習プログラミング データ分析演習編Etsuji Nakai
 
Active Object
Active ObjectActive Object
Active Objecty-uti
 
LCCC2010:Learning on Cores, Clusters and Cloudsの解説
LCCC2010:Learning on Cores,  Clusters and Cloudsの解説LCCC2010:Learning on Cores,  Clusters and Cloudsの解説
LCCC2010:Learning on Cores, Clusters and Cloudsの解説Preferred Networks
 
PythonによるDeep Learningの実装
PythonによるDeep Learningの実装PythonによるDeep Learningの実装
PythonによるDeep Learningの実装Shinya Akiba
 
Pythonによる機械学習入門 ~SVMからDeep Learningまで~
Pythonによる機械学習入門 ~SVMからDeep Learningまで~Pythonによる機械学習入門 ~SVMからDeep Learningまで~
Pythonによる機械学習入門 ~SVMからDeep Learningまで~Yasutomo Kawanishi
 
Pythonとdeep learningで手書き文字認識
Pythonとdeep learningで手書き文字認識Pythonとdeep learningで手書き文字認識
Pythonとdeep learningで手書き文字認識Ken Morishita
 
Dimensionality reduction with t-SNE(Rtsne) and UMAP(uwot) using R packages.
Dimensionality reduction with t-SNE(Rtsne) and UMAP(uwot) using R packages. Dimensionality reduction with t-SNE(Rtsne) and UMAP(uwot) using R packages.
Dimensionality reduction with t-SNE(Rtsne) and UMAP(uwot) using R packages. Satoshi Kato
 
TensorFlowによるニューラルネットワーク入門
TensorFlowによるニューラルネットワーク入門TensorFlowによるニューラルネットワーク入門
TensorFlowによるニューラルネットワーク入門Etsuji Nakai
 
TensorFlowの使い方(in Japanese)
TensorFlowの使い方(in Japanese)TensorFlowの使い方(in Japanese)
TensorFlowの使い方(in Japanese)Toshihiko Yamakami
 
ディープニューラルネット入門
ディープニューラルネット入門ディープニューラルネット入門
ディープニューラルネット入門TanUkkii
 
はじめての人のためのDeep Learning
はじめての人のためのDeep Learningはじめての人のためのDeep Learning
はじめての人のためのDeep LearningTadaichiro Nakano
 
Pythonによる機械学習
Pythonによる機械学習Pythonによる機械学習
Pythonによる機械学習Kimikazu Kato
 

La actualidad más candente (20)

画像認識で物を見分ける
画像認識で物を見分ける画像認識で物を見分ける
画像認識で物を見分ける
 
2013.07.15 はじパタlt scikit-learnで始める機械学習
2013.07.15 はじパタlt scikit-learnで始める機械学習2013.07.15 はじパタlt scikit-learnで始める機械学習
2013.07.15 はじパタlt scikit-learnで始める機械学習
 
論文紹介 Identifying Implementation Bugs in Machine Learning based Image Classifi...
論文紹介 Identifying Implementation Bugs in Machine Learning based Image Classifi...論文紹介 Identifying Implementation Bugs in Machine Learning based Image Classifi...
論文紹介 Identifying Implementation Bugs in Machine Learning based Image Classifi...
 
Tokyo.R 41 サポートベクターマシンで眼鏡っ娘分類システム構築
Tokyo.R 41 サポートベクターマシンで眼鏡っ娘分類システム構築Tokyo.R 41 サポートベクターマシンで眼鏡っ娘分類システム構築
Tokyo.R 41 サポートベクターマシンで眼鏡っ娘分類システム構築
 
「深層学習」勉強会LT資料 "Chainer使ってみた"
「深層学習」勉強会LT資料 "Chainer使ってみた"「深層学習」勉強会LT資料 "Chainer使ってみた"
「深層学習」勉強会LT資料 "Chainer使ってみた"
 
実装ディープラーニング
実装ディープラーニング実装ディープラーニング
実装ディープラーニング
 
Jupyter NotebookとChainerで楽々Deep Learning
Jupyter NotebookとChainerで楽々Deep LearningJupyter NotebookとChainerで楽々Deep Learning
Jupyter NotebookとChainerで楽々Deep Learning
 
Jubatusのリアルタイム分散レコメンデーション@TokyoWebmining#17
Jubatusのリアルタイム分散レコメンデーション@TokyoWebmining#17Jubatusのリアルタイム分散レコメンデーション@TokyoWebmining#17
Jubatusのリアルタイム分散レコメンデーション@TokyoWebmining#17
 
Python 機械学習プログラミング データ分析演習編
Python 機械学習プログラミング データ分析演習編Python 機械学習プログラミング データ分析演習編
Python 機械学習プログラミング データ分析演習編
 
Active Object
Active ObjectActive Object
Active Object
 
LCCC2010:Learning on Cores, Clusters and Cloudsの解説
LCCC2010:Learning on Cores,  Clusters and Cloudsの解説LCCC2010:Learning on Cores,  Clusters and Cloudsの解説
LCCC2010:Learning on Cores, Clusters and Cloudsの解説
 
PythonによるDeep Learningの実装
PythonによるDeep Learningの実装PythonによるDeep Learningの実装
PythonによるDeep Learningの実装
 
Pythonによる機械学習入門 ~SVMからDeep Learningまで~
Pythonによる機械学習入門 ~SVMからDeep Learningまで~Pythonによる機械学習入門 ~SVMからDeep Learningまで~
Pythonによる機械学習入門 ~SVMからDeep Learningまで~
 
Pythonとdeep learningで手書き文字認識
Pythonとdeep learningで手書き文字認識Pythonとdeep learningで手書き文字認識
Pythonとdeep learningで手書き文字認識
 
Dimensionality reduction with t-SNE(Rtsne) and UMAP(uwot) using R packages.
Dimensionality reduction with t-SNE(Rtsne) and UMAP(uwot) using R packages. Dimensionality reduction with t-SNE(Rtsne) and UMAP(uwot) using R packages.
Dimensionality reduction with t-SNE(Rtsne) and UMAP(uwot) using R packages.
 
TensorFlowによるニューラルネットワーク入門
TensorFlowによるニューラルネットワーク入門TensorFlowによるニューラルネットワーク入門
TensorFlowによるニューラルネットワーク入門
 
TensorFlowの使い方(in Japanese)
TensorFlowの使い方(in Japanese)TensorFlowの使い方(in Japanese)
TensorFlowの使い方(in Japanese)
 
ディープニューラルネット入門
ディープニューラルネット入門ディープニューラルネット入門
ディープニューラルネット入門
 
はじめての人のためのDeep Learning
はじめての人のためのDeep Learningはじめての人のためのDeep Learning
はじめての人のためのDeep Learning
 
Pythonによる機械学習
Pythonによる機械学習Pythonによる機械学習
Pythonによる機械学習
 

Destacado

Jubatusにおける大規模分散オンライン機械学習@先端金融テクノロジー研究会
Jubatusにおける大規模分散オンライン機械学習@先端金融テクノロジー研究会Jubatusにおける大規模分散オンライン機械学習@先端金融テクノロジー研究会
Jubatusにおける大規模分散オンライン機械学習@先端金融テクノロジー研究会Yuya Unno
 
エクセルで出来るデータマイニング・データ分析入門勉強会 ダイジェスト版
エクセルで出来るデータマイニング・データ分析入門勉強会 ダイジェスト版エクセルで出来るデータマイニング・データ分析入門勉強会 ダイジェスト版
エクセルで出来るデータマイニング・データ分析入門勉強会 ダイジェスト版Manabu YONEYA
 
Jubatus分類器の活用テクニック
Jubatus分類器の活用テクニックJubatus分類器の活用テクニック
Jubatus分類器の活用テクニックJubatusOfficial
 
ディープラーニング徹底活用 -画像認識編-
ディープラーニング徹底活用 -画像認識編-ディープラーニング徹底活用 -画像認識編-
ディープラーニング徹底活用 -画像認識編-Hideki
 
論文紹介 Semi-supervised Learning with Deep Generative Models
論文紹介 Semi-supervised Learning with Deep Generative Models論文紹介 Semi-supervised Learning with Deep Generative Models
論文紹介 Semi-supervised Learning with Deep Generative ModelsSeiya Tokui
 
深層学習時代の自然言語処理
深層学習時代の自然言語処理深層学習時代の自然言語処理
深層学習時代の自然言語処理Yuya Unno
 

Destacado (7)

Jubatusにおける大規模分散オンライン機械学習@先端金融テクノロジー研究会
Jubatusにおける大規模分散オンライン機械学習@先端金融テクノロジー研究会Jubatusにおける大規模分散オンライン機械学習@先端金融テクノロジー研究会
Jubatusにおける大規模分散オンライン機械学習@先端金融テクノロジー研究会
 
エクセルで出来るデータマイニング・データ分析入門勉強会 ダイジェスト版
エクセルで出来るデータマイニング・データ分析入門勉強会 ダイジェスト版エクセルで出来るデータマイニング・データ分析入門勉強会 ダイジェスト版
エクセルで出来るデータマイニング・データ分析入門勉強会 ダイジェスト版
 
Jubatus casulatalks2
Jubatus casulatalks2Jubatus casulatalks2
Jubatus casulatalks2
 
Jubatus分類器の活用テクニック
Jubatus分類器の活用テクニックJubatus分類器の活用テクニック
Jubatus分類器の活用テクニック
 
ディープラーニング徹底活用 -画像認識編-
ディープラーニング徹底活用 -画像認識編-ディープラーニング徹底活用 -画像認識編-
ディープラーニング徹底活用 -画像認識編-
 
論文紹介 Semi-supervised Learning with Deep Generative Models
論文紹介 Semi-supervised Learning with Deep Generative Models論文紹介 Semi-supervised Learning with Deep Generative Models
論文紹介 Semi-supervised Learning with Deep Generative Models
 
深層学習時代の自然言語処理
深層学習時代の自然言語処理深層学習時代の自然言語処理
深層学習時代の自然言語処理
 

Similar a 第1回 Jubatusハンズオン

Jubatusにおける大規模分散オンライン機械学習
Jubatusにおける大規模分散オンライン機械学習Jubatusにおける大規模分散オンライン機械学習
Jubatusにおける大規模分散オンライン機械学習Preferred Networks
 
[AI08] 深層学習フレームワーク Chainer × Microsoft で広がる応用
[AI08] 深層学習フレームワーク Chainer × Microsoft で広がる応用[AI08] 深層学習フレームワーク Chainer × Microsoft で広がる応用
[AI08] 深層学習フレームワーク Chainer × Microsoft で広がる応用de:code 2017
 
第一回Data mining勉強会 -第二章 - 原案
第一回Data mining勉強会 -第二章 - 原案第一回Data mining勉強会 -第二章 - 原案
第一回Data mining勉強会 -第二章 - 原案yushin_hirano
 
第一回Data mining勉強会 -第二章
第一回Data mining勉強会 -第二章第一回Data mining勉強会 -第二章
第一回Data mining勉強会 -第二章Tomonobu_Hirano
 
Oracle Cloud Developers Meetup@東京
Oracle Cloud Developers Meetup@東京Oracle Cloud Developers Meetup@東京
Oracle Cloud Developers Meetup@東京tuchimur
 
DTrace for biginners part(2)
DTrace for biginners part(2)DTrace for biginners part(2)
DTrace for biginners part(2)Shoji Haraguchi
 
エンジニアのための機械学習の基礎
エンジニアのための機械学習の基礎エンジニアのための機械学習の基礎
エンジニアのための機械学習の基礎Daiyu Hatakeyama
 
2020/11/19 Global AI on Tour - Toyama プログラマーのための機械学習入門
2020/11/19 Global AI on Tour - Toyama プログラマーのための機械学習入門2020/11/19 Global AI on Tour - Toyama プログラマーのための機械学習入門
2020/11/19 Global AI on Tour - Toyama プログラマーのための機械学習入門Daiyu Hatakeyama
 
Ⅰ. Rの基礎 2017
Ⅰ. Rの基礎 2017Ⅰ. Rの基礎 2017
Ⅰ. Rの基礎 2017wada, kazumi
 
Learning Template Library Design using Boost.Geomtry
Learning Template Library Design using Boost.GeomtryLearning Template Library Design using Boost.Geomtry
Learning Template Library Design using Boost.GeomtryAkira Takahashi
 
Chainerの使い方と 自然言語処理への応用
Chainerの使い方と自然言語処理への応用Chainerの使い方と自然言語処理への応用
Chainerの使い方と 自然言語処理への応用Yuya Unno
 
Deep learning実装の基礎と実践
Deep learning実装の基礎と実践Deep learning実装の基礎と実践
Deep learning実装の基礎と実践Seiya Tokui
 
Python standard 2022 Spring
Python standard 2022 SpringPython standard 2022 Spring
Python standard 2022 Springanyakichi
 
予測型戦略を知るための機械学習チュートリアル
予測型戦略を知るための機械学習チュートリアル予測型戦略を知るための機械学習チュートリアル
予測型戦略を知るための機械学習チュートリアルYuya Unno
 
genuine-highlighter: マクロを認識するClojure向けのシンタックスハイライター
genuine-highlighter: マクロを認識するClojure向けのシンタックスハイライターgenuine-highlighter: マクロを認識するClojure向けのシンタックスハイライター
genuine-highlighter: マクロを認識するClojure向けのシンタックスハイライターsohta
 
データサイエンティストに聞く!今更聞けない機械学習の基礎から応用まで V7
データサイエンティストに聞く!今更聞けない機械学習の基礎から応用まで V7データサイエンティストに聞く!今更聞けない機械学習の基礎から応用まで V7
データサイエンティストに聞く!今更聞けない機械学習の基礎から応用まで V7Shunsuke Nakamura
 

Similar a 第1回 Jubatusハンズオン (20)

Jubatusにおける大規模分散オンライン機械学習
Jubatusにおける大規模分散オンライン機械学習Jubatusにおける大規模分散オンライン機械学習
Jubatusにおける大規模分散オンライン機械学習
 
[AI08] 深層学習フレームワーク Chainer × Microsoft で広がる応用
[AI08] 深層学習フレームワーク Chainer × Microsoft で広がる応用[AI08] 深層学習フレームワーク Chainer × Microsoft で広がる応用
[AI08] 深層学習フレームワーク Chainer × Microsoft で広がる応用
 
第一回Data mining勉強会 -第二章 - 原案
第一回Data mining勉強会 -第二章 - 原案第一回Data mining勉強会 -第二章 - 原案
第一回Data mining勉強会 -第二章 - 原案
 
第一回Data mining勉強会 -第二章
第一回Data mining勉強会 -第二章第一回Data mining勉強会 -第二章
第一回Data mining勉強会 -第二章
 
Overview and Roadmap
Overview and RoadmapOverview and Roadmap
Overview and Roadmap
 
Oracle Cloud Developers Meetup@東京
Oracle Cloud Developers Meetup@東京Oracle Cloud Developers Meetup@東京
Oracle Cloud Developers Meetup@東京
 
DTrace for biginners part(2)
DTrace for biginners part(2)DTrace for biginners part(2)
DTrace for biginners part(2)
 
エンジニアのための機械学習の基礎
エンジニアのための機械学習の基礎エンジニアのための機械学習の基礎
エンジニアのための機械学習の基礎
 
2020/11/19 Global AI on Tour - Toyama プログラマーのための機械学習入門
2020/11/19 Global AI on Tour - Toyama プログラマーのための機械学習入門2020/11/19 Global AI on Tour - Toyama プログラマーのための機械学習入門
2020/11/19 Global AI on Tour - Toyama プログラマーのための機械学習入門
 
Introduction of Python
Introduction of PythonIntroduction of Python
Introduction of Python
 
Ⅰ. Rの基礎 2017
Ⅰ. Rの基礎 2017Ⅰ. Rの基礎 2017
Ⅰ. Rの基礎 2017
 
Machine Learning Fundamentals IEEE
Machine Learning Fundamentals IEEEMachine Learning Fundamentals IEEE
Machine Learning Fundamentals IEEE
 
Learning Template Library Design using Boost.Geomtry
Learning Template Library Design using Boost.GeomtryLearning Template Library Design using Boost.Geomtry
Learning Template Library Design using Boost.Geomtry
 
Chainerの使い方と 自然言語処理への応用
Chainerの使い方と自然言語処理への応用Chainerの使い方と自然言語処理への応用
Chainerの使い方と 自然言語処理への応用
 
Deep learning実装の基礎と実践
Deep learning実装の基礎と実践Deep learning実装の基礎と実践
Deep learning実装の基礎と実践
 
Python standard 2022 Spring
Python standard 2022 SpringPython standard 2022 Spring
Python standard 2022 Spring
 
はじめての「R」
はじめての「R」はじめての「R」
はじめての「R」
 
予測型戦略を知るための機械学習チュートリアル
予測型戦略を知るための機械学習チュートリアル予測型戦略を知るための機械学習チュートリアル
予測型戦略を知るための機械学習チュートリアル
 
genuine-highlighter: マクロを認識するClojure向けのシンタックスハイライター
genuine-highlighter: マクロを認識するClojure向けのシンタックスハイライターgenuine-highlighter: マクロを認識するClojure向けのシンタックスハイライター
genuine-highlighter: マクロを認識するClojure向けのシンタックスハイライター
 
データサイエンティストに聞く!今更聞けない機械学習の基礎から応用まで V7
データサイエンティストに聞く!今更聞けない機械学習の基礎から応用まで V7データサイエンティストに聞く!今更聞けない機械学習の基礎から応用まで V7
データサイエンティストに聞く!今更聞けない機械学習の基礎から応用まで V7
 

Más de Yuya Unno

深層学習で切り拓くパーソナルロボットの未来
深層学習で切り拓くパーソナルロボットの未来深層学習で切り拓くパーソナルロボットの未来
深層学習で切り拓くパーソナルロボットの未来Yuya Unno
 
深層学習時代の 自然言語処理ビジネス
深層学習時代の自然言語処理ビジネス深層学習時代の自然言語処理ビジネス
深層学習時代の 自然言語処理ビジネスYuya Unno
 
ベンチャー企業で言葉を扱うロボットの研究開発をする
ベンチャー企業で言葉を扱うロボットの研究開発をするベンチャー企業で言葉を扱うロボットの研究開発をする
ベンチャー企業で言葉を扱うロボットの研究開発をするYuya Unno
 
PFNにおける セミナー活動
PFNにおけるセミナー活動PFNにおけるセミナー活動
PFNにおける セミナー活動Yuya Unno
 
深層学習フレームワーク Chainerとその進化
深層学習フレームワークChainerとその進化深層学習フレームワークChainerとその進化
深層学習フレームワーク Chainerとその進化Yuya Unno
 
進化するChainer
進化するChainer進化するChainer
進化するChainerYuya Unno
 
深層学習による機械とのコミュニケーション
深層学習による機械とのコミュニケーション深層学習による機械とのコミュニケーション
深層学習による機械とのコミュニケーションYuya Unno
 
最先端NLP勉強会 “Learning Language Games through Interaction” Sida I. Wang, Percy L...
最先端NLP勉強会“Learning Language Games through Interaction”Sida I. Wang, Percy L...最先端NLP勉強会“Learning Language Games through Interaction”Sida I. Wang, Percy L...
最先端NLP勉強会 “Learning Language Games through Interaction” Sida I. Wang, Percy L...Yuya Unno
 
Chainer, Cupy入門
Chainer, Cupy入門Chainer, Cupy入門
Chainer, Cupy入門Yuya Unno
 
Chainerのテスト環境とDockerでのCUDAの利用
Chainerのテスト環境とDockerでのCUDAの利用Chainerのテスト環境とDockerでのCUDAの利用
Chainerのテスト環境とDockerでのCUDAの利用Yuya Unno
 
深層学習フレームワークChainerの特徴
深層学習フレームワークChainerの特徴深層学習フレームワークChainerの特徴
深層学習フレームワークChainerの特徴Yuya Unno
 
子供の言語獲得と機械の言語獲得
子供の言語獲得と機械の言語獲得子供の言語獲得と機械の言語獲得
子供の言語獲得と機械の言語獲得Yuya Unno
 
NIP2015読み会「End-To-End Memory Networks」
NIP2015読み会「End-To-End Memory Networks」NIP2015読み会「End-To-End Memory Networks」
NIP2015読み会「End-To-End Memory Networks」Yuya Unno
 
Chainer入門と最近の機能
Chainer入門と最近の機能Chainer入門と最近の機能
Chainer入門と最近の機能Yuya Unno
 
GPU上でのNLP向け深層学習の実装について
GPU上でのNLP向け深層学習の実装についてGPU上でのNLP向け深層学習の実装について
GPU上でのNLP向け深層学習の実装についてYuya Unno
 
言語と知識の深層学習@認知科学会サマースクール
言語と知識の深層学習@認知科学会サマースクール言語と知識の深層学習@認知科学会サマースクール
言語と知識の深層学習@認知科学会サマースクールYuya Unno
 
企業における自然言語処理技術利用の最先端
企業における自然言語処理技術利用の最先端企業における自然言語処理技術利用の最先端
企業における自然言語処理技術利用の最先端Yuya Unno
 
「知識」のDeep Learning
「知識」のDeep Learning「知識」のDeep Learning
「知識」のDeep LearningYuya Unno
 
自然言語処理@春の情報処理祭
自然言語処理@春の情報処理祭自然言語処理@春の情報処理祭
自然言語処理@春の情報処理祭Yuya Unno
 
ピーFIの研究開発現場
ピーFIの研究開発現場ピーFIの研究開発現場
ピーFIの研究開発現場Yuya Unno
 

Más de Yuya Unno (20)

深層学習で切り拓くパーソナルロボットの未来
深層学習で切り拓くパーソナルロボットの未来深層学習で切り拓くパーソナルロボットの未来
深層学習で切り拓くパーソナルロボットの未来
 
深層学習時代の 自然言語処理ビジネス
深層学習時代の自然言語処理ビジネス深層学習時代の自然言語処理ビジネス
深層学習時代の 自然言語処理ビジネス
 
ベンチャー企業で言葉を扱うロボットの研究開発をする
ベンチャー企業で言葉を扱うロボットの研究開発をするベンチャー企業で言葉を扱うロボットの研究開発をする
ベンチャー企業で言葉を扱うロボットの研究開発をする
 
PFNにおける セミナー活動
PFNにおけるセミナー活動PFNにおけるセミナー活動
PFNにおける セミナー活動
 
深層学習フレームワーク Chainerとその進化
深層学習フレームワークChainerとその進化深層学習フレームワークChainerとその進化
深層学習フレームワーク Chainerとその進化
 
進化するChainer
進化するChainer進化するChainer
進化するChainer
 
深層学習による機械とのコミュニケーション
深層学習による機械とのコミュニケーション深層学習による機械とのコミュニケーション
深層学習による機械とのコミュニケーション
 
最先端NLP勉強会 “Learning Language Games through Interaction” Sida I. Wang, Percy L...
最先端NLP勉強会“Learning Language Games through Interaction”Sida I. Wang, Percy L...最先端NLP勉強会“Learning Language Games through Interaction”Sida I. Wang, Percy L...
最先端NLP勉強会 “Learning Language Games through Interaction” Sida I. Wang, Percy L...
 
Chainer, Cupy入門
Chainer, Cupy入門Chainer, Cupy入門
Chainer, Cupy入門
 
Chainerのテスト環境とDockerでのCUDAの利用
Chainerのテスト環境とDockerでのCUDAの利用Chainerのテスト環境とDockerでのCUDAの利用
Chainerのテスト環境とDockerでのCUDAの利用
 
深層学習フレームワークChainerの特徴
深層学習フレームワークChainerの特徴深層学習フレームワークChainerの特徴
深層学習フレームワークChainerの特徴
 
子供の言語獲得と機械の言語獲得
子供の言語獲得と機械の言語獲得子供の言語獲得と機械の言語獲得
子供の言語獲得と機械の言語獲得
 
NIP2015読み会「End-To-End Memory Networks」
NIP2015読み会「End-To-End Memory Networks」NIP2015読み会「End-To-End Memory Networks」
NIP2015読み会「End-To-End Memory Networks」
 
Chainer入門と最近の機能
Chainer入門と最近の機能Chainer入門と最近の機能
Chainer入門と最近の機能
 
GPU上でのNLP向け深層学習の実装について
GPU上でのNLP向け深層学習の実装についてGPU上でのNLP向け深層学習の実装について
GPU上でのNLP向け深層学習の実装について
 
言語と知識の深層学習@認知科学会サマースクール
言語と知識の深層学習@認知科学会サマースクール言語と知識の深層学習@認知科学会サマースクール
言語と知識の深層学習@認知科学会サマースクール
 
企業における自然言語処理技術利用の最先端
企業における自然言語処理技術利用の最先端企業における自然言語処理技術利用の最先端
企業における自然言語処理技術利用の最先端
 
「知識」のDeep Learning
「知識」のDeep Learning「知識」のDeep Learning
「知識」のDeep Learning
 
自然言語処理@春の情報処理祭
自然言語処理@春の情報処理祭自然言語処理@春の情報処理祭
自然言語処理@春の情報処理祭
 
ピーFIの研究開発現場
ピーFIの研究開発現場ピーFIの研究開発現場
ピーFIの研究開発現場
 

Último

Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNetToru Tamaki
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdftaisei2219
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Yuma Ohgami
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A surveyToru Tamaki
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...Toru Tamaki
 

Último (9)

Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 
論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet論文紹介:Automated Classification of Model Errors on ImageNet
論文紹介:Automated Classification of Model Errors on ImageNet
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 
TSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdfTSAL operation mechanism and circuit diagram.pdf
TSAL operation mechanism and circuit diagram.pdf
 
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
Open Source UN-Conference 2024 Kawagoe - 独自OS「DaisyOS GB」の紹介
 
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey論文紹介:Semantic segmentation using Vision Transformers: A survey
論文紹介:Semantic segmentation using Vision Transformers: A survey
 
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
論文紹介:Content-Aware Token Sharing for Efficient Semantic Segmentation With Vis...
 

第1回 Jubatusハンズオン

  • 1. 第1回  Jubatusハンズオン 2013年年 2⽉月18⽇日(⽉月) Jubatus Team
  • 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. 機械学習は「データに基づいに機械が判断を⾏行行う」 技術 l  過去のデータにもとづいて⼈人が判断できるようになる l  同じように過去のデータから機械が判断するようになる のが機械学習 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. 今⽇日は分散の話はしません l  今⽇日は単体で実⾏行行させます l  分散させません 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. string_rulesに⽂文字列列データの変換規則を書きます ... "string_rules" : [ { "key" : "*”, "type" : "str", "sample_weight" : "bin”, "global_weight" : "bin" } ], ... l  key: * 全てのデータに対して、 l  type: str 値をそのまま使う l  sample_weight, global_weight: 重み付けは1.0 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. num_rulesに数値データの変換規則を書きます ... ”num_rules" : [ { "key" : "*”, "type" : ”num” } ], ... l  key: * 全てのデータに対して l  type: num 数値をそのまま使う 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