SlideShare una empresa de Scribd logo
1 de 87
Descargar para leer sin conexión
きれいなジャイアンによる
カカカカ☆カーネル法入門-C++

       2011-09-10
    YOSHIHIKO SUHARA
      @sleepy_yoshi
自己紹介
• @sleepy_yoshi
  – キレイになりました

• 趣味
  – 検索とか機械学習とか

• ブログ
  – 睡眠不足?!
  – http://d.hatena.ne.jp/sleepy_yoshi/

                                          2
本日の内容
• 前回を踏まえて,簡単なオンライン学習手法でカーネ
  ルを使う方法を紹介
• カーネル法の入門書に書いてあることがわかるくらい
  の基礎知識+αを紹介
 – 木構造やグラフ構造を扱う話は一切ありません




                             3
本日のノリ
• 使うこと第一,理解第一に考えるため,厨二
  ぽい名前の理論は扱わない
 – ×再生核ヒルベルト空間
 – ×リプレゼンター定理


• 前回の反省を踏まえ,微妙なネタは入れない



                         4
前回のおさらい



          5
線形識別モデル
• 二値分類の線形識別モデルを考える
 – モデルはM次元の重みベクトル������
 – M次元の特徴ベクトル������に対する予測������は,


       ������ = +1   if ������������ ������ > 0
            −1   otherwise

• バイアス項は?
 – 必ず1になるM+1次元目の特徴を考えればよい
                                  6
パーセプトロン
 INPUT: (������������ , ������������ ) ∈ ������, ������, ������
OUTPUT: ������

1: Initialize ������0 = ������, ������ = 0
2: FOR ������ in 0 to ������
3: Obtain random sample (������������ , ������������ ) from ������
4: IF ������������ ������������ ������������ ≤ 0 THEN
              ������
5:       ������������+1 ← ������������ + ������ ������������ ������������
6:       ������ ← ������ + 1
7: ENDIF
8: ENDFOR
9: RETURN ������������                                   7
パーセプトロン
 INPUT: (������������ , ������������ ) ∈ ������, ������, ������
OUTPUT: ������

1: Initialize ������0 = ������, ������ = 0
2: FOR ������ in 0 to ������                  間違ったら重みを修正
3: Obtain random sample (������������ , ������������ ) from ������
4: IF ������������ ������������ ������������ ≤ 0 THEN
              ������
5:       ������������+1 ← ������������ + ������ ������������ ������������
6:       ������ ← ������ + 1
7: ENDIF
8: ENDFOR
9: RETURN ������������                                     8
パーセプトロン
 INPUT: (������������ , ������������ ) ∈ ������, ������, ������
OUTPUT: ������

1: Initialize ������0 = ������, ������ = 0
2: FOR ������ in 0 to ������                  間違ったら重みを修正
3: Obtain random sample (������������ , ������������ ) from ������
4: IF ������������ ������������ ������������ ≤ 0 THEN
              ������
5:       ������������+1 ← ������������ + ������ ������������ ������������
6:       ������ ← ������ + 1
7: ENDIF
8: ENDFOR
9: RETURN ������������                                     9
マージンパーセプトロン
 INPUT: (������������ , ������������ ) ∈ ������, ������, ������, ������
OUTPUT: ������

1: Initialize ������0 = ������, ������ = 0
2: FOR ������ in 0 to ������
3: Obtain random sample (������������ , ������������ ) from ������
4: IF ������������ ������������ ������������ ≤ ������ THEN
              ������
5:       ������������+1 ← ������������ + ������ ������������ ������������
6:       ������ ← ������ + 1
7: ENDIF
8: ENDFOR
9: RETURN ������������                                   10
マージンパーセプトロン
 INPUT: (������������ , ������������ ) ∈ ������, ������, ������, ������
OUTPUT: ������

1: Initialize ������0 = ������, ������ = 0
2: FOR ������ in 0 to ������
3: Obtain random sample (������������ , ������������ ) from ������
4: IF ������������ ������������ ������������ ≤ ������ THEN
              ������
5:       ������������+1 ← ������������ + ������ ������������ ������������
6:       ������ ← ������ + 1
7: ENDIF
8: ENDFOR
9: RETURN ������������                                   11
Passive-Aggressive
 INPUT: (������������ , ������������ ) ∈ ������, ������
OUTPUT: ������
                                                              0              ������������ ������������ ������������ ≥ 1
                                  ℓ(������; ������������ , ������������ ) =
1: Initialize ������0 = ������                                  1 − ������������ ������������ ������������     otherwise

2: FOR ������ in 0 to ������
3: Obtain random sample (������������ , ������������ ) from ������
4:       calculate ������������ = ℓ������ / ������������ 2
5:       ������������+1 ← ������������ + ������������ ������������ ������������
6: ENDFOR
7: RETURN ������ ������

                                                                                        12
再掲: お伝えしたかったこと
• パーセプトロンを軸に楽しい仲間をぽぽぽ
  ぽーんできる!
 – 損失と最適化の方法
 – SVMとの関連
 – マージン最大化
 – どこを改善するか

• 実装は超簡単
 – 重み更新部分だけ変えればよい

           詳しくは http://d.hatena.ne.jp/sleepy_yoshi/20110423/p1
                                                          13
今回のお話



        14
カーネル法の背景


           15
16
17
もとい


      18
線形モデルの問題点
 • 必ずしも与えられた特徴ベクトルの線形和で判別がで
   きるとは限らない
                                              ������������ ������(������)
������2




                                    ������2
                    ×     ������������ ������
                ×                                           ×   ×
           ○                                     ○
           ○            ×                                           ×
                                                   ○
      ×             ○                     ×                     ○
                ○                                           ○
                    ○   positive
          × ×       ×   negative
                                              × ×

                         ������1                                        ������1
          線形モデル                               非線形モデル

               非線形モデルを利用することで,
               より高精度な分類を目指したい                                             19
非線形モデルの実現方法
• (1) モデルを非線形にする
 – e.g., 多層ニューラルネット
 –  大域最適解を求めることができない

• (2) カーネル法+線形モデル
 –  うまくカーネルを設定することで複雑な特徴を適
   切に把握できる
 –  線形識別モデルなので大域的最適解を保証


                          20
カーネル法ひとこと要約
                                               カーネル関数
           ������
• ������ ������ = ������ ������ ������ =   ������ ������������ ������(������������ , ������)
          非線形変換した             訓練データ������������
           入力データ              との類似度



• 予測値=訓練データとの類似度の重みづけ和
 – 予測に用いるデータをサポートベクタと呼ぶ


       カーネル法の学習=
     サポートベクタの「重み」を学習
                                                        21
カーネル法のすごいところを
    ひとことで言うと
直接計算するのが困難or不可能な次元にお
ける線形識別関数を,入力データとサポート
ベクタのカーネル関数の出力の重みづけ和
で計算できるぜ!




                       22
カーネル関数って?
• ひとことで言えば類似度



          似てる?




  焼きそば    似てる!   焼きさば
                        23
カーネル関数って? (その2)
• 写像先の内積

     ������ ������, ������′ = ������ ������ ������ ������ ������′




                                    24
カーネル関数の種類
• (1) 閉じた形で計算できるもの
 – 例) 多項式カーネル,ガウスカーネル
• (2) 再帰などで計算できるもの
 – 例) 文字列カーネル (次発表をご期待!)
• (3) ちょっと特殊なもの
 – 例) Semantic similarity kernel [Sahami+ 06] (後述)



        効率的に計算できないとうれしくないよね..
                                                 25
基本的なカーネル
• 基本的なカーネル関数 (閉じたカーネル)
 – 線形カーネル:
   • ������ ������������ , ������������ = ������������ ������������
                        ������

 – 多項式カーネル:
                                         ������
   • ������ ������������ , ������������ = ������������������ ������������ + ������
                          ������                  , ������ > 0

 – ガウスカーネル (*1):
                                                         2
   • ������ ������������ , ������������ = exp −������ ������������ − ������������                    , ������ > 0
 – シグモイドカーネル:
   • ������ ������������ , ������������ = tanh(������������������ ������������ + ������)
                               ������


(*1) 正確にはガウスカーネル.RBFカーネルは一般化した呼び方
(*2) ������, ������, ������はカーネルパラメータ                                               26
カーネルパーセプトロン



              27
パーセプトロン
 INPUT: (������������ , ������������ ) ∈ ������, ������, ������
OUTPUT: ������

1: Initialize ������0 = ������, ������ = 0
2: FOR ������ in 0 to ������                  間違ったら重みを修正
3: Obtain random sample (������������ , ������������ ) from ������
4: IF ������������ ������������ ������������ ≤ 0 THEN
              ������
5:       ������������+1 ← ������������ + ������ ������������ ������������
6:       ������ ← ������ + 1
7: ENDIF
8: ENDFOR
9: RETURN ������������                                     28
カーネルパーセプトロンの導出
                                                         ������
������������+1 = ������������ + ������������������ ������������          ������������ ������(������) = ������          ������������ ������(������������ ) ⋅ ������(������)
                                                        ������=1
                ������

   ������ = ������            ������������ ������������                          ������

               ������=1                           = ������             ������������ ������(������������ , ������)
                                                        ������=1
                ������

������������ ������ = ������          ������������ ������������ ������
                             ������
               ������=1
                                         ������は不要?
                                         ⇒ 特徴ベクトルの正規化で対応
                                                       29
カーネルパーセプトロン
 INPUT: (������������ , ������������ ) ∈ ������, ������, ������, ������(⋅,⋅)
OUTPUT: ������

1: Initialize ������ = ������, ������ = 0
2: FOR ������ in 0 to ������
3: Obtain random sample (������������ , ������������ ) from ������
4: IF ������������ ������ ������������ ������(������������ , ������������ ) ≤ 0 THEN
5:       ������������ ← ������������ + ������������
6: ENDIF
7: ENDFOR
8: RETURN ������������
                                                 30
カーネルパーセプトロン
 INPUT: (������������ , ������������ ) ∈ ������, ������, ������, ������(⋅,⋅)
OUTPUT: ������

1: Initialize ������ = ������, ������ = 0
2: FOR ������ in 0 to ������                        間違ったら重みを修正
3: Obtain random sample (������������ , ������������ ) from ������
4: IF ������������ ������ ������������ ������(������������ , ������������ ) ≤ 0 THEN
5:       ������������ ← ������������ + ������������
6: ENDIF
7: ENDFOR
8: RETURN ������������
                                                     31
実装: 訓練ルーチン




             32
実装: 予測関数




  関数ポインタ




           33
実装: カーネル関数の定義




                34
実装: カーネル関数の定義




                35
カーネルPA



         36
Passive-Aggressive
 INPUT: (������������ , ������������ ) ∈ ������, ������
OUTPUT: ������
                                                              0              ������������ ������������ ������������ ≥ 1
                                  ℓ(������; ������������ , ������������ ) =
1: Initialize ������0 = ������                                  1 − ������������ ������������ ������������     otherwise

2: FOR ������ in 0 to ������
3: Obtain random sample (������������ , ������������ ) from ������
4:       calculate ������������ = ℓ������ / ������������ 2
5:       ������������+1 ← ������������ + ������������ ������������ ������������
6: ENDFOR
7: RETURN ������ ������

                                                                                        37
カーネルPAの導出
                                                        ������
������������+1 = ������������ + ������������ ������������ ������������         ������������ ������(������) =          ������������ ������������ ������(������������ ) ⋅ ������(������)
                                                       ������=1
             ������

   ������ =            ������������ ������������ ������������                        ������

            ������=1                                 =             ������������ ������(������������ , ������)
                                                        ������=1
             ������

������������ ������ =          ������������ ������������ ������������ ������
                               ������
            ������=1

                                                                                    38
Kernelized Passive-Aggressive
 INPUT: (������������ , ������������ ) ∈ ������, ������
OUTPUT: ������

1: Initialize ������0 = ������
2: FOR ������ in 0 to ������
3: Obtain random sample (������������ , ������������ ) from ������
4:       calculate ������������ = ℓ������ / ������������ 2
5:       ������������ ← ������������ + ������������ ������������
6: ENDFOR
7: RETURN ������ ������

                                                 39
カーネル行列と
カーネルキャッシュ



            40
カーネル行列
• ポイント
 – カーネルパーセプトロンでは,サポートベクタのラ
   ベルとカーネル関数の出力しか使っていない
 – 生のデータ点そのものが不要!


• カーネル行列
                      1 2
 –   N個の訓練データの全ての組み合わせ ������ 個の
                      2
     ������ ������������ , ������������ を(i,j)成分に持つ行列

                                    41
カーネルキャッシュ
• データ数2のカーネル関数の出力を計算する
  のが困難な場合 and/or 値を保持するのが困
  難な場合,一部の出力だけを保持しておく

• 参考
 – Passive Aggressive と多項式カーネル – ny23の日
   記
   • http://d.hatena.ne.jp/ny23/20090624


                                           42
オンラインカーネル学習
   の問題点



              43
オンライン学習+カーネル法の問題
•  損失を生むサンプルの重みを増やしてしま
  うので,サポートベクタが増えてしまう
 – cf. SVMはバッチ学習で疎な解を求められる

• 対策のひとつ
 – サポートベクタ数に上限を設ける方法 (Budget法)
  • Aggressive Perceptron [Crammer+ 03]
  • Forgetron [Dekel+ 05]
  • など


                                          44
Budget-consicous Aggressive
  Perceptron [Crammer +03]




                              45
Budget-consicous Aggressive
  Perceptron [Crammer +03]




                              46
Budget-consicous Aggressive
  Perceptron [Crammer +03]


                マージンパーセプトロン
                   と同じノリ




                              47
Budget-consicous Aggressive
  Perceptron [Crammer +03]


                      サポートベクタが
                      いっぱいの場合




                                 48
Budget-consicous Aggressive
  Perceptron [Crammer +03]
                      多分typo
                      ������������ ������������−1 − ������������ ������������ ������������ ������������

                        影響の少ない
                      サポートベクタを除去




                                                     49
Budget-consicous Aggressive
  Perceptron [Crammer +03]



                      選択されたサポートベクタ
                       をなかったことにする




                                50
Budget-consicous Aggressive
  Perceptron [Crammer +03]




                       新しいサポートベクタを
                           追加




                                51
その他のカーネル



           52
ちょっと変わったカーネル
• Semantic similarity kernel [Sahami+ 06]
  – short text snippet同士の類似度をうまく測るため
    のカーネルを提案




                                            53
Semantic similarity kernel [Sahami+ 06]




                                          54
Semantic similarity kernel [Sahami+ 06]




                                          55
Semantic similarity kernel [Sahami+ 06]




                                          56
Semantic similarity kernel [Sahami+ 06]




                                          57
Semantic similarity kernel [Sahami+ 06]




                                          58
Semantic similarity kernel [Sahami+ 06]




                                          59
Semantic similarity kernel [Sahami+ 06]




                                          60
参考: SVM


          61
SVMの場合
                                        ������
             1               2
主問題:    ������ =   ������                −            ������������ {������������ ������������ ������ ������������ + ������ − 1}
             2
                                      ������=1
       – 極値は
                       ������
         • ������ =        ������=1 ������������ ������������ ������(������������ )
                      ������
         • 0=         ������=1 ������������ ������������

       – で与えられるため,
                ������                     ������         ������
                             1
双対問題:   ������ =          ������������ −                           ������������ ������������ ������������ ������������ ������ ������������ ������ ������ ������������
                             2
               ������=1                  ������=1 ������=1                            ������(������������ , ������������ )
           カーネルを利用するためには双対問題を解く必要がある
              ※ 主問題を高速に解く手法が利用できない                                                              62
参考:
Kernelized Nearest Neighbor


                          63
k-Nearest Neighbor (k-NN)
• ユークリッド距離が最小である事例のラベル
  で予測
        argmin������ ������ − ������������ 2
                           2

                  2
     ������ − ������������    2   = ������ − ������������ ������ (������ − ������������ )

                 ������          ������            ������
         = ������ ������ −        2������������ ������   +   ������������ ������������
                           RBFカーネルのような差分に対して定義
                           されるカーネルの場合,これだけで良い

                                                     64
疑問
     65
Q. カーネルを計算するコストが高いンなら
   無理してカーネル使わなくてよくね?




 カーネルを展開して主問題で解く方法がありマす
                          66
多項式カーネルの展開
• 2次の多項式カーネルの場合
                 ������ ������, ������ = ������������ ������ + 1 2
         ������������ ������ + 1 2 = ������1 ������1 + ������2 ������2 + 1         2

     2 2       2 2
= (������1 ������1 + ������2 ������2 + 2������1 ������1 ������2 ������2 + 2������2 ������2 + 2������1 ������1 + 1)
         2       2                                                ������
  =    ������1     ������2        2������1 ������2        2������2       2������1    1
         2       2
      (������1     ������2       2������1 ������2        2������2       2������1     1)

                                                                       67
多項式カーネルの展開
• 2次の多項式カーネルの場合
                 ������ ������, ������ = ������������ ������ + 1 2
         ������������ ������ + 1 2 = ������1 ������1 + ������2 ������2 + 1         2

  ������(������) 2 2
     2 2
= (������1 ������1 + ������2 ������2 + 2������1 ������1 ������2 ������2 + 2������2 ������2 + 2������1 ������1 + 1)
         2       2                                                  ������
  =    ������1     ������2        2������1 ������2        2������2       2������1      1
         2       2
      (������1     ������2       2������1 ������2        2������2       2������1       1)


  ※効率的な展開は[Isozaki+ 02] など                                  ������(������)       68
参考
• 線形識別器でカーネルトリックを使う方法 –
  PFI Research Blog
 – http://research.preferred.jp/2011/09/kernel-
   trick/




                                                  69
カーネルの設計



          70
どうすればカーネルになるのよ
• カーネル行列が半正定値であること
      ������������ ������������ ≥ 0 ⇔ 全ての固有値が非負
 – 例外もあり: シグモイドカーネル
                        /)
                     ///)
                  /,.=゙''"/
      /          i f ,.r='"-‐'つ____      こまけぇこたぁいいんだよ!!
    /         /       _,.-‐'~/⌒ ⌒\
        /     ,i       ,二ニ⊃( ●). (●)\
      /     ノ        il゙フ::::::⌒(__人__)⌒::::: \
          ,イ「ト、 ,!,!|             |r┬-|       |
         / iトヾヽ_/ィ"\             `ー'´   /

                                                          71
カーネル設計の練習 (1/2)
• 文書dの特徴ベクトルxを文書内に出現する
  単語頻度freq(d, i)で表す
 ������ = (������1 ������2 ⋯ ������������ ) ただし ������������ = ������������������������(������, ������)

                                       ������        ������
   ������ ������������1 , ������������2 = ������ ∈ 1, ������     ������������ 1 = ������������ 2 }
                                     頻度が一致する数




                             実はブッチャー本 [Buttcher+ 10] の例を引用
                                                         72
カーネル設計の練習 (2/2)
• 一般に頻度freqは無限に存在.そこで以下の写像を考える
  – 例えば,M=10の場合,1の位が特徴ベクトルの添字を表
    し,10の位より大きな数字で頻度を表現する
          ������ ������������������������, ������ = ������ + ������ ⋅ ������������������������

• この写像を用いることにより,以下の特徴ベクトルで表現で
  きる
                      1 ������������������ = ������
          ������������ ������������ =
                      0 ������������������ ≠ ������


• これより,������   ������������1 , ������������2   =   ������������ ������������1 ������ ������     ������������2
                                                ������
  – おぉっ! なんかカーネルぽい!!                                         73
カーネル構築のヒント
������1 , ������2 が有効なカーネルの場合,以下の関数もカーネルとして有効である.
• ������ ������, ������′ = ������������1 ������, ������′
• ������ ������, ������′ = ������(������)������1 ������, ������′ ������(������′)
• ������ ������, ������′ = ������ ������1 ������, ������′
• ������ ������, ������′ = exp ������1 ������, ������′
• ������ ������, ������′ = ������1 ������, ������′ + ������2 ������, ������′
• ������ ������, ������′ = ������1 ������, ������′ ������2 (������, ������′ )
•   ������   ������, ������′   = ������3 ������ ������ , ������ ������′
•   ������   ������, ������′   = ������������ ������������′
•   ������   ������, ������′   = ������������ ������������ , ������′ + ������������ ������������ , ������′
                                   ������                 ������
•   ������   ������, ������′   = ������������ ������������ , ������′ ������������ ������������ , ������′
                                   ������              ������




                                                           74
まとめ



      75
学習アルゴリズムのカーネル化

(1) がんばって特徴ベクトルの内積に式変形
(2) 基底関数φの内積に変換
(3) カーネル関数に置換




                         76
主問題か双対問題かそれが問題だ
Q. 主問題/双対問題どっちで解くか?
 – カーネルを利用したい ⇒ 双対問題
 – 特徴次元数 ≫訓練事例数 ⇒ 双対問題
 – 訓練事例数 ≫特徴次元数 ⇒ 主問題

• 展開可能なカーネル (e.g.,組み合わせ素性)
  を利用したいのであれば,明示的に基底関数
  ������(⋅)を利用する方法もありなんじゃないでしょ
  うか
                         77
再掲: カーネル法ひとこと要約
• ������ ������ = ������������ ������ ������ =   ������ ������������ ������(������������ , ������)
           非線形変換した              訓練データ������������
            入力データ               との類似度



• 予測値=訓練データとの類似度の重みづけ和
 – 予測に用いる訓練データをサポートベクタと呼ぶ


       カーネル法の学習=
     サポートベクタの「重み」を学習
                                                 78
カーネル法の適用に関係するステージ



                                      ������ ������
      ������(������, ������)
                                      = ������������ ������(������������ , ������)




データ   カーネル関数       カーネル行列     学習            予測関数
                            アルゴリズム



                               [Shawe-Taylor 04] 図2.4を参考
                                                      79
カーネル法の適用に関係するステージ



                                      ������ ������
      ������(������, ������)
                                      = ������������ ������(������������ , ������)




データ   カーネル関数       カーネル行列     学習            予測関数
                            アルゴリズム



                               [Shawe-Taylor 04] 図2.4を参考
                                                      80
カーネル法に対する私の考え
• どのような特徴/類似度が予測に効果的か?
  という人間の知識をモデルに取り入れるひと
  つの方法

• カーネルの選択≒ feature engineering




                                 81
この後の話
• 文字列カーネルや木構造カーネルこそがNLPに
  おけるカーネル法の醍醐味

• 理論的背景や発展に関する話題については,専
  門家の資料があるので,そちらをご参照されたし

• Kernel learning, Multiple Kernel Learning あたり
  がそこそこ最新の話題なのでしょうか?
  – 教えて詳しい人

                                                  82
まとめ
• カーネルとはなんぞ?
• オンライン学習のカーネル化を紹介
 – パーセプトロン
 – Passive-Aggressive
• オンラインカーネル学習の問題
 – Budget法
    • Budget-consicous Aggressive Perceptron
• その他のカーネル
 – Semantic similarity kernel
• カーネルの展開
• カーネルの設計(もどき)

                                               83
参考資料
• [Sahami+ 06] Mehran Sahami, Timothy D. Heilman. A Webbased Kernel
  Function for Measuring the Similarity of Short Text Snippets. WWW2006.
• [Isozaki+ 02] Hideki Isozaki and Hideto Kazawa, “Efficient Support Vector
  Classifiers for Named Entity Recognition”, COLING2002.
• [Crammer+ 03] Koby Crammer, Jaz Kandola, Yoram Singer, “Online
  Classification on a Budget”, NIPS2003.
• [Dekel+ 05] Ofer Dekel, Shai Shalev-Shwartz, Yoram Singer, “The
  Forgetron: A Kernel-Based Perceptron on a Fixed Budget”, NIPS2005.
• [Shawe-Taylor 04] John Shawe-Taylor, Nello Cristianini, “Kernel Methods
  for Pattern Analysis”, Cambridge University Press (2004). [邦訳: 大北剛訳.
  カーネル法によるパターン解析. 共立出版]




                                                                         84
教科書 (和書)




           85
教科書 (洋書)




Amazonリストマニア「機械学習/データマイニング(1) 」kashi_pong
http://www.amazon.co.jp/%E6%A9%9F%E6%A2%B0%E5%AD%A6%E7%BF%92-
%E3%83%87%E3%83%BC%E3%82%BF%E3%83%9E%E3%82%A4%E3%83%8B%E3%83%B3%E
3%82%B0%EF%BC%88%EF%BC%91%EF%BC%89/lm/1J5BFNYLWKWHI/ref=cm_lmt_dtpa_f_1
_rdssss0                                                                  86
終
    87

Más contenido relacionado

La actualidad más candente

はじめてのパターン認識 第5章 k最近傍法(k_nn法)
はじめてのパターン認識 第5章 k最近傍法(k_nn法)はじめてのパターン認識 第5章 k最近傍法(k_nn法)
はじめてのパターン認識 第5章 k最近傍法(k_nn法)Motoya Wakiyama
 
「統計的学習理論」第1章
「統計的学習理論」第1章「統計的学習理論」第1章
「統計的学習理論」第1章Kota Matsui
 
SMO徹底入門 - SVMをちゃんと実装する
SMO徹底入門 - SVMをちゃんと実装するSMO徹底入門 - SVMをちゃんと実装する
SMO徹底入門 - SVMをちゃんと実装するsleepy_yoshi
 
PRML輪読#13
PRML輪読#13PRML輪読#13
PRML輪読#13matsuolab
 
ベイズ統計学の概論的紹介
ベイズ統計学の概論的紹介ベイズ統計学の概論的紹介
ベイズ統計学の概論的紹介Naoki Hayashi
 
PRMLの線形回帰モデル(線形基底関数モデル)
PRMLの線形回帰モデル(線形基底関数モデル)PRMLの線形回帰モデル(線形基底関数モデル)
PRMLの線形回帰モデル(線形基底関数モデル)Yasunori Ozaki
 
PRML輪読#4
PRML輪読#4PRML輪読#4
PRML輪読#4matsuolab
 
マルコフ連鎖モンテカルロ法 (2/3はベイズ推定の話)
マルコフ連鎖モンテカルロ法 (2/3はベイズ推定の話)マルコフ連鎖モンテカルロ法 (2/3はベイズ推定の話)
マルコフ連鎖モンテカルロ法 (2/3はベイズ推定の話)Yoshitake Takebayashi
 
PRML輪読#2
PRML輪読#2PRML輪読#2
PRML輪読#2matsuolab
 
CVIM#11 3. 最小化のための数値計算
CVIM#11 3. 最小化のための数値計算CVIM#11 3. 最小化のための数値計算
CVIM#11 3. 最小化のための数値計算sleepy_yoshi
 
階層ベイズによるワンToワンマーケティング入門
階層ベイズによるワンToワンマーケティング入門階層ベイズによるワンToワンマーケティング入門
階層ベイズによるワンToワンマーケティング入門shima o
 
PRML読み会第一章
PRML読み会第一章PRML読み会第一章
PRML読み会第一章Takushi Miki
 
はじめてのパターン認識 第6章 後半
はじめてのパターン認識 第6章 後半はじめてのパターン認識 第6章 後半
はじめてのパターン認識 第6章 後半Prunus 1350
 
ガウス過程回帰の導出 ( GPR : Gaussian Process Regression )
ガウス過程回帰の導出 ( GPR : Gaussian Process Regression )ガウス過程回帰の導出 ( GPR : Gaussian Process Regression )
ガウス過程回帰の導出 ( GPR : Gaussian Process Regression )Kenji Urai
 
変分推論法(変分ベイズ法)(PRML第10章)
変分推論法(変分ベイズ法)(PRML第10章)変分推論法(変分ベイズ法)(PRML第10章)
変分推論法(変分ベイズ法)(PRML第10章)Takao Yamanaka
 
PRML第6章「カーネル法」
PRML第6章「カーネル法」PRML第6章「カーネル法」
PRML第6章「カーネル法」Keisuke Sugawara
 

La actualidad más candente (20)

はじめてのパターン認識 第5章 k最近傍法(k_nn法)
はじめてのパターン認識 第5章 k最近傍法(k_nn法)はじめてのパターン認識 第5章 k最近傍法(k_nn法)
はじめてのパターン認識 第5章 k最近傍法(k_nn法)
 
「統計的学習理論」第1章
「統計的学習理論」第1章「統計的学習理論」第1章
「統計的学習理論」第1章
 
SMO徹底入門 - SVMをちゃんと実装する
SMO徹底入門 - SVMをちゃんと実装するSMO徹底入門 - SVMをちゃんと実装する
SMO徹底入門 - SVMをちゃんと実装する
 
Prml 2.3
Prml 2.3Prml 2.3
Prml 2.3
 
PRML輪読#13
PRML輪読#13PRML輪読#13
PRML輪読#13
 
ベイズ統計学の概論的紹介
ベイズ統計学の概論的紹介ベイズ統計学の概論的紹介
ベイズ統計学の概論的紹介
 
PRMLの線形回帰モデル(線形基底関数モデル)
PRMLの線形回帰モデル(線形基底関数モデル)PRMLの線形回帰モデル(線形基底関数モデル)
PRMLの線形回帰モデル(線形基底関数モデル)
 
PRML輪読#4
PRML輪読#4PRML輪読#4
PRML輪読#4
 
2 3.GLMの基礎
2 3.GLMの基礎2 3.GLMの基礎
2 3.GLMの基礎
 
マルコフ連鎖モンテカルロ法 (2/3はベイズ推定の話)
マルコフ連鎖モンテカルロ法 (2/3はベイズ推定の話)マルコフ連鎖モンテカルロ法 (2/3はベイズ推定の話)
マルコフ連鎖モンテカルロ法 (2/3はベイズ推定の話)
 
PRML輪読#2
PRML輪読#2PRML輪読#2
PRML輪読#2
 
CVIM#11 3. 最小化のための数値計算
CVIM#11 3. 最小化のための数値計算CVIM#11 3. 最小化のための数値計算
CVIM#11 3. 最小化のための数値計算
 
階層ベイズとWAIC
階層ベイズとWAIC階層ベイズとWAIC
階層ベイズとWAIC
 
階層ベイズによるワンToワンマーケティング入門
階層ベイズによるワンToワンマーケティング入門階層ベイズによるワンToワンマーケティング入門
階層ベイズによるワンToワンマーケティング入門
 
PRML読み会第一章
PRML読み会第一章PRML読み会第一章
PRML読み会第一章
 
はじめてのパターン認識 第6章 後半
はじめてのパターン認識 第6章 後半はじめてのパターン認識 第6章 後半
はじめてのパターン認識 第6章 後半
 
機械学習と主成分分析
機械学習と主成分分析機械学習と主成分分析
機械学習と主成分分析
 
ガウス過程回帰の導出 ( GPR : Gaussian Process Regression )
ガウス過程回帰の導出 ( GPR : Gaussian Process Regression )ガウス過程回帰の導出 ( GPR : Gaussian Process Regression )
ガウス過程回帰の導出 ( GPR : Gaussian Process Regression )
 
変分推論法(変分ベイズ法)(PRML第10章)
変分推論法(変分ベイズ法)(PRML第10章)変分推論法(変分ベイズ法)(PRML第10章)
変分推論法(変分ベイズ法)(PRML第10章)
 
PRML第6章「カーネル法」
PRML第6章「カーネル法」PRML第6章「カーネル法」
PRML第6章「カーネル法」
 

Destacado

今さら聞けないカーネル法とサポートベクターマシン
今さら聞けないカーネル法とサポートベクターマシン今さら聞けないカーネル法とサポートベクターマシン
今さら聞けないカーネル法とサポートベクターマシンShinya Shimizu
 
PRML 6.1章 カーネル法と双対表現
PRML 6.1章 カーネル法と双対表現PRML 6.1章 カーネル法と双対表現
PRML 6.1章 カーネル法と双対表現hagino 3000
 
TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん
TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~んTokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん
TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~んsleepy_yoshi
 
「HOME'Sデータセット」を活用した不動産物件画像への深層学習の適用の取り組み
「HOME'Sデータセット」を活用した不動産物件画像への深層学習の適用の取り組み「HOME'Sデータセット」を活用した不動産物件画像への深層学習の適用の取り組み
「HOME'Sデータセット」を活用した不動産物件画像への深層学習の適用の取り組みYoji Kiyota
 
パターン認識と機械学習6章(カーネル法)
パターン認識と機械学習6章(カーネル法)パターン認識と機械学習6章(カーネル法)
パターン認識と機械学習6章(カーネル法)Yukara Ikemiya
 
深層リカレントニューラルネットワークを用いた日本語述語項構造解析
深層リカレントニューラルネットワークを用いた日本語述語項構造解析深層リカレントニューラルネットワークを用いた日本語述語項構造解析
深層リカレントニューラルネットワークを用いた日本語述語項構造解析Hiroki Ouchi
 
パターン認識と機械学習 §6.2 カーネル関数の構成
パターン認識と機械学習 §6.2 カーネル関数の構成パターン認識と機械学習 §6.2 カーネル関数の構成
パターン認識と機械学習 §6.2 カーネル関数の構成Prunus 1350
 
機械学習チュートリアル@Jubatus Casual Talks
機械学習チュートリアル@Jubatus Casual Talks機械学習チュートリアル@Jubatus Casual Talks
機械学習チュートリアル@Jubatus Casual TalksYuya Unno
 

Destacado (9)

今さら聞けないカーネル法とサポートベクターマシン
今さら聞けないカーネル法とサポートベクターマシン今さら聞けないカーネル法とサポートベクターマシン
今さら聞けないカーネル法とサポートベクターマシン
 
PRML 6.1章 カーネル法と双対表現
PRML 6.1章 カーネル法と双対表現PRML 6.1章 カーネル法と双対表現
PRML 6.1章 カーネル法と双対表現
 
TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん
TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~んTokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん
TokyoNLP#5 パーセプトロンで楽しい仲間がぽぽぽぽ~ん
 
NL20161222invited
NL20161222invitedNL20161222invited
NL20161222invited
 
「HOME'Sデータセット」を活用した不動産物件画像への深層学習の適用の取り組み
「HOME'Sデータセット」を活用した不動産物件画像への深層学習の適用の取り組み「HOME'Sデータセット」を活用した不動産物件画像への深層学習の適用の取り組み
「HOME'Sデータセット」を活用した不動産物件画像への深層学習の適用の取り組み
 
パターン認識と機械学習6章(カーネル法)
パターン認識と機械学習6章(カーネル法)パターン認識と機械学習6章(カーネル法)
パターン認識と機械学習6章(カーネル法)
 
深層リカレントニューラルネットワークを用いた日本語述語項構造解析
深層リカレントニューラルネットワークを用いた日本語述語項構造解析深層リカレントニューラルネットワークを用いた日本語述語項構造解析
深層リカレントニューラルネットワークを用いた日本語述語項構造解析
 
パターン認識と機械学習 §6.2 カーネル関数の構成
パターン認識と機械学習 §6.2 カーネル関数の構成パターン認識と機械学習 §6.2 カーネル関数の構成
パターン認識と機械学習 §6.2 カーネル関数の構成
 
機械学習チュートリアル@Jubatus Casual Talks
機械学習チュートリアル@Jubatus Casual Talks機械学習チュートリアル@Jubatus Casual Talks
機械学習チュートリアル@Jubatus Casual Talks
 

Similar a TokyoNLP#7 きれいなジャイアンのカカカカ☆カーネル法入門-C++

プログラミングコンテストでの乱択アルゴリズム
プログラミングコンテストでの乱択アルゴリズムプログラミングコンテストでの乱択アルゴリズム
プログラミングコンテストでの乱択アルゴリズムTakuya Akiba
 
東京都市大学 データ解析入門 6 回帰分析とモデル選択 1
東京都市大学 データ解析入門 6 回帰分析とモデル選択 1東京都市大学 データ解析入門 6 回帰分析とモデル選択 1
東京都市大学 データ解析入門 6 回帰分析とモデル選択 1hirokazutanaka
 
アンサンブル学習
アンサンブル学習アンサンブル学習
アンサンブル学習Hidekazu Tanaka
 
ベイズ推論による機械学習入門 第4章
ベイズ推論による機械学習入門 第4章ベイズ推論による機械学習入門 第4章
ベイズ推論による機械学習入門 第4章YosukeAkasaka
 
Pythonとdeep learningで手書き文字認識
Pythonとdeep learningで手書き文字認識Pythonとdeep learningで手書き文字認識
Pythonとdeep learningで手書き文字認識Ken Morishita
 
K040 確率分布とchi2分布
K040 確率分布とchi2分布K040 確率分布とchi2分布
K040 確率分布とchi2分布t2tarumi
 
HistoPyramid Stream Compaction
HistoPyramid Stream CompactionHistoPyramid Stream Compaction
HistoPyramid Stream Compactiondasyprocta
 
数式をnumpyに落としこむコツ
数式をnumpyに落としこむコツ数式をnumpyに落としこむコツ
数式をnumpyに落としこむコツShuyo Nakatani
 
Chap12 4 appendix_suhara
Chap12 4 appendix_suharaChap12 4 appendix_suhara
Chap12 4 appendix_suharasleepy_yoshi
 
Chap12 4 appendix_suhara
Chap12 4 appendix_suharaChap12 4 appendix_suhara
Chap12 4 appendix_suharasleepy_yoshi
 
Or seminar2011final
Or seminar2011finalOr seminar2011final
Or seminar2011finalMikio Kubo
 
モンテカルロサンプリング
モンテカルロサンプリングモンテカルロサンプリング
モンテカルロサンプリングKosei ABE
 
Introduction to NumPy & SciPy
Introduction to NumPy & SciPyIntroduction to NumPy & SciPy
Introduction to NumPy & SciPyShiqiao Du
 
劣モジュラ最適化と機械学習 2.4節
劣モジュラ最適化と機械学習 2.4節劣モジュラ最適化と機械学習 2.4節
劣モジュラ最適化と機械学習 2.4節Hakky St
 
純粋関数型アルゴリズム入門
純粋関数型アルゴリズム入門純粋関数型アルゴリズム入門
純粋関数型アルゴリズム入門Kimikazu Kato
 
Algorithm 速いアルゴリズムを書くための基礎
Algorithm 速いアルゴリズムを書くための基礎Algorithm 速いアルゴリズムを書くための基礎
Algorithm 速いアルゴリズムを書くための基礎Kenji Otsuka
 

Similar a TokyoNLP#7 きれいなジャイアンのカカカカ☆カーネル法入門-C++ (20)

プログラミングコンテストでの乱択アルゴリズム
プログラミングコンテストでの乱択アルゴリズムプログラミングコンテストでの乱択アルゴリズム
プログラミングコンテストでの乱択アルゴリズム
 
東京都市大学 データ解析入門 6 回帰分析とモデル選択 1
東京都市大学 データ解析入門 6 回帰分析とモデル選択 1東京都市大学 データ解析入門 6 回帰分析とモデル選択 1
東京都市大学 データ解析入門 6 回帰分析とモデル選択 1
 
Cv 14th
Cv 14thCv 14th
Cv 14th
 
アンサンブル学習
アンサンブル学習アンサンブル学習
アンサンブル学習
 
ベイズ推論による機械学習入門 第4章
ベイズ推論による機械学習入門 第4章ベイズ推論による機械学習入門 第4章
ベイズ推論による機械学習入門 第4章
 
Pythonとdeep learningで手書き文字認識
Pythonとdeep learningで手書き文字認識Pythonとdeep learningで手書き文字認識
Pythonとdeep learningで手書き文字認識
 
K040 確率分布とchi2分布
K040 確率分布とchi2分布K040 確率分布とchi2分布
K040 確率分布とchi2分布
 
Gurobi python
Gurobi pythonGurobi python
Gurobi python
 
6 Info Theory
6 Info Theory6 Info Theory
6 Info Theory
 
HistoPyramid Stream Compaction
HistoPyramid Stream CompactionHistoPyramid Stream Compaction
HistoPyramid Stream Compaction
 
数式をnumpyに落としこむコツ
数式をnumpyに落としこむコツ数式をnumpyに落としこむコツ
数式をnumpyに落としこむコツ
 
Chap12 4 appendix_suhara
Chap12 4 appendix_suharaChap12 4 appendix_suhara
Chap12 4 appendix_suhara
 
Chap12 4 appendix_suhara
Chap12 4 appendix_suharaChap12 4 appendix_suhara
Chap12 4 appendix_suhara
 
Or seminar2011final
Or seminar2011finalOr seminar2011final
Or seminar2011final
 
モンテカルロサンプリング
モンテカルロサンプリングモンテカルロサンプリング
モンテカルロサンプリング
 
Introduction to NumPy & SciPy
Introduction to NumPy & SciPyIntroduction to NumPy & SciPy
Introduction to NumPy & SciPy
 
劣モジュラ最適化と機械学習 2.4節
劣モジュラ最適化と機械学習 2.4節劣モジュラ最適化と機械学習 2.4節
劣モジュラ最適化と機械学習 2.4節
 
CVIM mean shift-3
CVIM mean shift-3CVIM mean shift-3
CVIM mean shift-3
 
純粋関数型アルゴリズム入門
純粋関数型アルゴリズム入門純粋関数型アルゴリズム入門
純粋関数型アルゴリズム入門
 
Algorithm 速いアルゴリズムを書くための基礎
Algorithm 速いアルゴリズムを書くための基礎Algorithm 速いアルゴリズムを書くための基礎
Algorithm 速いアルゴリズムを書くための基礎
 

Más de sleepy_yoshi

KDD2014勉強会: Large-Scale High-Precision Topic Modeling on Twitter
KDD2014勉強会: Large-Scale High-Precision Topic Modeling on TwitterKDD2014勉強会: Large-Scale High-Precision Topic Modeling on Twitter
KDD2014勉強会: Large-Scale High-Precision Topic Modeling on Twittersleepy_yoshi
 
KDD2013読み会: Direct Optimization of Ranking Measures
KDD2013読み会: Direct Optimization of Ranking MeasuresKDD2013読み会: Direct Optimization of Ranking Measures
KDD2013読み会: Direct Optimization of Ranking Measuressleepy_yoshi
 
PRML復々習レーン#15 前回までのあらすじ
PRML復々習レーン#15 前回までのあらすじPRML復々習レーン#15 前回までのあらすじ
PRML復々習レーン#15 前回までのあらすじsleepy_yoshi
 
PRML復々習レーン#14 前回までのあらすじ
PRML復々習レーン#14 前回までのあらすじPRML復々習レーン#14 前回までのあらすじ
PRML復々習レーン#14 前回までのあらすじsleepy_yoshi
 
PRML復々習レーン#13 前回までのあらすじ
PRML復々習レーン#13 前回までのあらすじPRML復々習レーン#13 前回までのあらすじ
PRML復々習レーン#13 前回までのあらすじsleepy_yoshi
 
PRML復々習レーン#12 前回までのあらすじ
PRML復々習レーン#12 前回までのあらすじPRML復々習レーン#12 前回までのあらすじ
PRML復々習レーン#12 前回までのあらすじsleepy_yoshi
 
ICML2013読み会: Distributed training of Large-scale Logistic models
ICML2013読み会: Distributed training of Large-scale Logistic modelsICML2013読み会: Distributed training of Large-scale Logistic models
ICML2013読み会: Distributed training of Large-scale Logistic modelssleepy_yoshi
 
SEXI2013読み会: Adult Query Classification for Web Search and Recommendation
SEXI2013読み会: Adult Query Classification for Web Search and RecommendationSEXI2013読み会: Adult Query Classification for Web Search and Recommendation
SEXI2013読み会: Adult Query Classification for Web Search and Recommendationsleepy_yoshi
 
計算論的学習理論入門 -PAC学習とかVC次元とか-
計算論的学習理論入門 -PAC学習とかVC次元とか-計算論的学習理論入門 -PAC学習とかVC次元とか-
計算論的学習理論入門 -PAC学習とかVC次元とか-sleepy_yoshi
 
PRML復々習レーン#11 前回までのあらすじ
PRML復々習レーン#11 前回までのあらすじPRML復々習レーン#11 前回までのあらすじ
PRML復々習レーン#11 前回までのあらすじsleepy_yoshi
 
PRML復々習レーン#10 前回までのあらすじ
PRML復々習レーン#10 前回までのあらすじPRML復々習レーン#10 前回までのあらすじ
PRML復々習レーン#10 前回までのあらすじsleepy_yoshi
 
PRML復々習レーン#10 7.1.3-7.1.5
PRML復々習レーン#10 7.1.3-7.1.5PRML復々習レーン#10 7.1.3-7.1.5
PRML復々習レーン#10 7.1.3-7.1.5sleepy_yoshi
 
PRML復々習レーン#9 6.3-6.3.1
PRML復々習レーン#9 6.3-6.3.1PRML復々習レーン#9 6.3-6.3.1
PRML復々習レーン#9 6.3-6.3.1sleepy_yoshi
 
PRML復々習レーン#9 前回までのあらすじ
PRML復々習レーン#9 前回までのあらすじPRML復々習レーン#9 前回までのあらすじ
PRML復々習レーン#9 前回までのあらすじsleepy_yoshi
 
PRML復々習レーン#7 前回までのあらすじ
PRML復々習レーン#7 前回までのあらすじPRML復々習レーン#7 前回までのあらすじ
PRML復々習レーン#7 前回までのあらすじsleepy_yoshi
 
SIGIR2012勉強会 23 Learning to Rank
SIGIR2012勉強会 23 Learning to RankSIGIR2012勉強会 23 Learning to Rank
SIGIR2012勉強会 23 Learning to Ranksleepy_yoshi
 
DSIRNLP#3 LT: 辞書挟み込み型転置インデクスFIg4.5
DSIRNLP#3 LT: 辞書挟み込み型転置インデクスFIg4.5DSIRNLP#3 LT: 辞書挟み込み型転置インデクスFIg4.5
DSIRNLP#3 LT: 辞書挟み込み型転置インデクスFIg4.5sleepy_yoshi
 
ICML2012読み会 Scaling Up Coordinate Descent Algorithms for Large L1 regularizat...
ICML2012読み会 Scaling Up Coordinate Descent Algorithms for Large L1 regularizat...ICML2012読み会 Scaling Up Coordinate Descent Algorithms for Large L1 regularizat...
ICML2012読み会 Scaling Up Coordinate Descent Algorithms for Large L1 regularizat...sleepy_yoshi
 
PRML復々習レーン#3 3.1.3-3.1.5
PRML復々習レーン#3 3.1.3-3.1.5PRML復々習レーン#3 3.1.3-3.1.5
PRML復々習レーン#3 3.1.3-3.1.5sleepy_yoshi
 
PRML復々習レーン#3 前回までのあらすじ
PRML復々習レーン#3 前回までのあらすじPRML復々習レーン#3 前回までのあらすじ
PRML復々習レーン#3 前回までのあらすじsleepy_yoshi
 

Más de sleepy_yoshi (20)

KDD2014勉強会: Large-Scale High-Precision Topic Modeling on Twitter
KDD2014勉強会: Large-Scale High-Precision Topic Modeling on TwitterKDD2014勉強会: Large-Scale High-Precision Topic Modeling on Twitter
KDD2014勉強会: Large-Scale High-Precision Topic Modeling on Twitter
 
KDD2013読み会: Direct Optimization of Ranking Measures
KDD2013読み会: Direct Optimization of Ranking MeasuresKDD2013読み会: Direct Optimization of Ranking Measures
KDD2013読み会: Direct Optimization of Ranking Measures
 
PRML復々習レーン#15 前回までのあらすじ
PRML復々習レーン#15 前回までのあらすじPRML復々習レーン#15 前回までのあらすじ
PRML復々習レーン#15 前回までのあらすじ
 
PRML復々習レーン#14 前回までのあらすじ
PRML復々習レーン#14 前回までのあらすじPRML復々習レーン#14 前回までのあらすじ
PRML復々習レーン#14 前回までのあらすじ
 
PRML復々習レーン#13 前回までのあらすじ
PRML復々習レーン#13 前回までのあらすじPRML復々習レーン#13 前回までのあらすじ
PRML復々習レーン#13 前回までのあらすじ
 
PRML復々習レーン#12 前回までのあらすじ
PRML復々習レーン#12 前回までのあらすじPRML復々習レーン#12 前回までのあらすじ
PRML復々習レーン#12 前回までのあらすじ
 
ICML2013読み会: Distributed training of Large-scale Logistic models
ICML2013読み会: Distributed training of Large-scale Logistic modelsICML2013読み会: Distributed training of Large-scale Logistic models
ICML2013読み会: Distributed training of Large-scale Logistic models
 
SEXI2013読み会: Adult Query Classification for Web Search and Recommendation
SEXI2013読み会: Adult Query Classification for Web Search and RecommendationSEXI2013読み会: Adult Query Classification for Web Search and Recommendation
SEXI2013読み会: Adult Query Classification for Web Search and Recommendation
 
計算論的学習理論入門 -PAC学習とかVC次元とか-
計算論的学習理論入門 -PAC学習とかVC次元とか-計算論的学習理論入門 -PAC学習とかVC次元とか-
計算論的学習理論入門 -PAC学習とかVC次元とか-
 
PRML復々習レーン#11 前回までのあらすじ
PRML復々習レーン#11 前回までのあらすじPRML復々習レーン#11 前回までのあらすじ
PRML復々習レーン#11 前回までのあらすじ
 
PRML復々習レーン#10 前回までのあらすじ
PRML復々習レーン#10 前回までのあらすじPRML復々習レーン#10 前回までのあらすじ
PRML復々習レーン#10 前回までのあらすじ
 
PRML復々習レーン#10 7.1.3-7.1.5
PRML復々習レーン#10 7.1.3-7.1.5PRML復々習レーン#10 7.1.3-7.1.5
PRML復々習レーン#10 7.1.3-7.1.5
 
PRML復々習レーン#9 6.3-6.3.1
PRML復々習レーン#9 6.3-6.3.1PRML復々習レーン#9 6.3-6.3.1
PRML復々習レーン#9 6.3-6.3.1
 
PRML復々習レーン#9 前回までのあらすじ
PRML復々習レーン#9 前回までのあらすじPRML復々習レーン#9 前回までのあらすじ
PRML復々習レーン#9 前回までのあらすじ
 
PRML復々習レーン#7 前回までのあらすじ
PRML復々習レーン#7 前回までのあらすじPRML復々習レーン#7 前回までのあらすじ
PRML復々習レーン#7 前回までのあらすじ
 
SIGIR2012勉強会 23 Learning to Rank
SIGIR2012勉強会 23 Learning to RankSIGIR2012勉強会 23 Learning to Rank
SIGIR2012勉強会 23 Learning to Rank
 
DSIRNLP#3 LT: 辞書挟み込み型転置インデクスFIg4.5
DSIRNLP#3 LT: 辞書挟み込み型転置インデクスFIg4.5DSIRNLP#3 LT: 辞書挟み込み型転置インデクスFIg4.5
DSIRNLP#3 LT: 辞書挟み込み型転置インデクスFIg4.5
 
ICML2012読み会 Scaling Up Coordinate Descent Algorithms for Large L1 regularizat...
ICML2012読み会 Scaling Up Coordinate Descent Algorithms for Large L1 regularizat...ICML2012読み会 Scaling Up Coordinate Descent Algorithms for Large L1 regularizat...
ICML2012読み会 Scaling Up Coordinate Descent Algorithms for Large L1 regularizat...
 
PRML復々習レーン#3 3.1.3-3.1.5
PRML復々習レーン#3 3.1.3-3.1.5PRML復々習レーン#3 3.1.3-3.1.5
PRML復々習レーン#3 3.1.3-3.1.5
 
PRML復々習レーン#3 前回までのあらすじ
PRML復々習レーン#3 前回までのあらすじPRML復々習レーン#3 前回までのあらすじ
PRML復々習レーン#3 前回までのあらすじ
 

TokyoNLP#7 きれいなジャイアンのカカカカ☆カーネル法入門-C++

  • 2. 自己紹介 • @sleepy_yoshi – キレイになりました • 趣味 – 検索とか機械学習とか • ブログ – 睡眠不足?! – http://d.hatena.ne.jp/sleepy_yoshi/ 2
  • 3. 本日の内容 • 前回を踏まえて,簡単なオンライン学習手法でカーネ ルを使う方法を紹介 • カーネル法の入門書に書いてあることがわかるくらい の基礎知識+αを紹介 – 木構造やグラフ構造を扱う話は一切ありません 3
  • 4. 本日のノリ • 使うこと第一,理解第一に考えるため,厨二 ぽい名前の理論は扱わない – ×再生核ヒルベルト空間 – ×リプレゼンター定理 • 前回の反省を踏まえ,微妙なネタは入れない 4
  • 6. 線形識別モデル • 二値分類の線形識別モデルを考える – モデルはM次元の重みベクトル������ – M次元の特徴ベクトル������に対する予測������は, ������ = +1 if ������������ ������ > 0 −1 otherwise • バイアス項は? – 必ず1になるM+1次元目の特徴を考えればよい 6
  • 7. パーセプトロン INPUT: (������������ , ������������ ) ∈ ������, ������, ������ OUTPUT: ������ 1: Initialize ������0 = ������, ������ = 0 2: FOR ������ in 0 to ������ 3: Obtain random sample (������������ , ������������ ) from ������ 4: IF ������������ ������������ ������������ ≤ 0 THEN ������ 5: ������������+1 ← ������������ + ������ ������������ ������������ 6: ������ ← ������ + 1 7: ENDIF 8: ENDFOR 9: RETURN ������������ 7
  • 8. パーセプトロン INPUT: (������������ , ������������ ) ∈ ������, ������, ������ OUTPUT: ������ 1: Initialize ������0 = ������, ������ = 0 2: FOR ������ in 0 to ������ 間違ったら重みを修正 3: Obtain random sample (������������ , ������������ ) from ������ 4: IF ������������ ������������ ������������ ≤ 0 THEN ������ 5: ������������+1 ← ������������ + ������ ������������ ������������ 6: ������ ← ������ + 1 7: ENDIF 8: ENDFOR 9: RETURN ������������ 8
  • 9. パーセプトロン INPUT: (������������ , ������������ ) ∈ ������, ������, ������ OUTPUT: ������ 1: Initialize ������0 = ������, ������ = 0 2: FOR ������ in 0 to ������ 間違ったら重みを修正 3: Obtain random sample (������������ , ������������ ) from ������ 4: IF ������������ ������������ ������������ ≤ 0 THEN ������ 5: ������������+1 ← ������������ + ������ ������������ ������������ 6: ������ ← ������ + 1 7: ENDIF 8: ENDFOR 9: RETURN ������������ 9
  • 10. マージンパーセプトロン INPUT: (������������ , ������������ ) ∈ ������, ������, ������, ������ OUTPUT: ������ 1: Initialize ������0 = ������, ������ = 0 2: FOR ������ in 0 to ������ 3: Obtain random sample (������������ , ������������ ) from ������ 4: IF ������������ ������������ ������������ ≤ ������ THEN ������ 5: ������������+1 ← ������������ + ������ ������������ ������������ 6: ������ ← ������ + 1 7: ENDIF 8: ENDFOR 9: RETURN ������������ 10
  • 11. マージンパーセプトロン INPUT: (������������ , ������������ ) ∈ ������, ������, ������, ������ OUTPUT: ������ 1: Initialize ������0 = ������, ������ = 0 2: FOR ������ in 0 to ������ 3: Obtain random sample (������������ , ������������ ) from ������ 4: IF ������������ ������������ ������������ ≤ ������ THEN ������ 5: ������������+1 ← ������������ + ������ ������������ ������������ 6: ������ ← ������ + 1 7: ENDIF 8: ENDFOR 9: RETURN ������������ 11
  • 12. Passive-Aggressive INPUT: (������������ , ������������ ) ∈ ������, ������ OUTPUT: ������ 0 ������������ ������������ ������������ ≥ 1 ℓ(������; ������������ , ������������ ) = 1: Initialize ������0 = ������ 1 − ������������ ������������ ������������ otherwise 2: FOR ������ in 0 to ������ 3: Obtain random sample (������������ , ������������ ) from ������ 4: calculate ������������ = ℓ������ / ������������ 2 5: ������������+1 ← ������������ + ������������ ������������ ������������ 6: ENDFOR 7: RETURN ������ ������ 12
  • 13. 再掲: お伝えしたかったこと • パーセプトロンを軸に楽しい仲間をぽぽぽ ぽーんできる! – 損失と最適化の方法 – SVMとの関連 – マージン最大化 – どこを改善するか • 実装は超簡単 – 重み更新部分だけ変えればよい 詳しくは http://d.hatena.ne.jp/sleepy_yoshi/20110423/p1 13
  • 16. 16
  • 17. 17
  • 18. もとい 18
  • 19. 線形モデルの問題点 • 必ずしも与えられた特徴ベクトルの線形和で判別がで きるとは限らない ������������ ������(������) ������2 ������2 × ������������ ������ × × × ○ ○ ○ × × ○ × ○ × ○ ○ ○ ○ positive × × × negative × × ������1 ������1 線形モデル 非線形モデル 非線形モデルを利用することで, より高精度な分類を目指したい 19
  • 20. 非線形モデルの実現方法 • (1) モデルを非線形にする – e.g., 多層ニューラルネット –  大域最適解を求めることができない • (2) カーネル法+線形モデル –  うまくカーネルを設定することで複雑な特徴を適 切に把握できる –  線形識別モデルなので大域的最適解を保証 20
  • 21. カーネル法ひとこと要約 カーネル関数 ������ • ������ ������ = ������ ������ ������ = ������ ������������ ������(������������ , ������) 非線形変換した 訓練データ������������ 入力データ との類似度 • 予測値=訓練データとの類似度の重みづけ和 – 予測に用いるデータをサポートベクタと呼ぶ カーネル法の学習= サポートベクタの「重み」を学習 21
  • 22. カーネル法のすごいところを ひとことで言うと 直接計算するのが困難or不可能な次元にお ける線形識別関数を,入力データとサポート ベクタのカーネル関数の出力の重みづけ和 で計算できるぜ! 22
  • 23. カーネル関数って? • ひとことで言えば類似度 似てる? 焼きそば 似てる! 焼きさば 23
  • 24. カーネル関数って? (その2) • 写像先の内積 ������ ������, ������′ = ������ ������ ������ ������ ������′ 24
  • 25. カーネル関数の種類 • (1) 閉じた形で計算できるもの – 例) 多項式カーネル,ガウスカーネル • (2) 再帰などで計算できるもの – 例) 文字列カーネル (次発表をご期待!) • (3) ちょっと特殊なもの – 例) Semantic similarity kernel [Sahami+ 06] (後述) 効率的に計算できないとうれしくないよね.. 25
  • 26. 基本的なカーネル • 基本的なカーネル関数 (閉じたカーネル) – 線形カーネル: • ������ ������������ , ������������ = ������������ ������������ ������ – 多項式カーネル: ������ • ������ ������������ , ������������ = ������������������ ������������ + ������ ������ , ������ > 0 – ガウスカーネル (*1): 2 • ������ ������������ , ������������ = exp −������ ������������ − ������������ , ������ > 0 – シグモイドカーネル: • ������ ������������ , ������������ = tanh(������������������ ������������ + ������) ������ (*1) 正確にはガウスカーネル.RBFカーネルは一般化した呼び方 (*2) ������, ������, ������はカーネルパラメータ 26
  • 28. パーセプトロン INPUT: (������������ , ������������ ) ∈ ������, ������, ������ OUTPUT: ������ 1: Initialize ������0 = ������, ������ = 0 2: FOR ������ in 0 to ������ 間違ったら重みを修正 3: Obtain random sample (������������ , ������������ ) from ������ 4: IF ������������ ������������ ������������ ≤ 0 THEN ������ 5: ������������+1 ← ������������ + ������ ������������ ������������ 6: ������ ← ������ + 1 7: ENDIF 8: ENDFOR 9: RETURN ������������ 28
  • 29. カーネルパーセプトロンの導出 ������ ������������+1 = ������������ + ������������������ ������������ ������������ ������(������) = ������ ������������ ������(������������ ) ⋅ ������(������) ������=1 ������ ������ = ������ ������������ ������������ ������ ������=1    = ������ ������������ ������(������������ , ������) ������=1 ������ ������������ ������ = ������ ������������ ������������ ������ ������ ������=1 ������は不要? ⇒ 特徴ベクトルの正規化で対応 29
  • 30. カーネルパーセプトロン INPUT: (������������ , ������������ ) ∈ ������, ������, ������, ������(⋅,⋅) OUTPUT: ������ 1: Initialize ������ = ������, ������ = 0 2: FOR ������ in 0 to ������ 3: Obtain random sample (������������ , ������������ ) from ������ 4: IF ������������ ������ ������������ ������(������������ , ������������ ) ≤ 0 THEN 5: ������������ ← ������������ + ������������ 6: ENDIF 7: ENDFOR 8: RETURN ������������ 30
  • 31. カーネルパーセプトロン INPUT: (������������ , ������������ ) ∈ ������, ������, ������, ������(⋅,⋅) OUTPUT: ������ 1: Initialize ������ = ������, ������ = 0 2: FOR ������ in 0 to ������ 間違ったら重みを修正 3: Obtain random sample (������������ , ������������ ) from ������ 4: IF ������������ ������ ������������ ������(������������ , ������������ ) ≤ 0 THEN 5: ������������ ← ������������ + ������������ 6: ENDIF 7: ENDFOR 8: RETURN ������������ 31
  • 33. 実装: 予測関数 関数ポインタ 33
  • 37. Passive-Aggressive INPUT: (������������ , ������������ ) ∈ ������, ������ OUTPUT: ������ 0 ������������ ������������ ������������ ≥ 1 ℓ(������; ������������ , ������������ ) = 1: Initialize ������0 = ������ 1 − ������������ ������������ ������������ otherwise 2: FOR ������ in 0 to ������ 3: Obtain random sample (������������ , ������������ ) from ������ 4: calculate ������������ = ℓ������ / ������������ 2 5: ������������+1 ← ������������ + ������������ ������������ ������������ 6: ENDFOR 7: RETURN ������ ������ 37
  • 38. カーネルPAの導出 ������ ������������+1 = ������������ + ������������ ������������ ������������ ������������ ������(������) = ������������ ������������ ������(������������ ) ⋅ ������(������) ������=1 ������ ������ = ������������ ������������ ������������ ������ ������=1    = ������������ ������(������������ , ������) ������=1 ������ ������������ ������ = ������������ ������������ ������������ ������ ������ ������=1 38
  • 39. Kernelized Passive-Aggressive INPUT: (������������ , ������������ ) ∈ ������, ������ OUTPUT: ������ 1: Initialize ������0 = ������ 2: FOR ������ in 0 to ������ 3: Obtain random sample (������������ , ������������ ) from ������ 4: calculate ������������ = ℓ������ / ������������ 2 5: ������������ ← ������������ + ������������ ������������ 6: ENDFOR 7: RETURN ������ ������ 39
  • 41. カーネル行列 • ポイント – カーネルパーセプトロンでは,サポートベクタのラ ベルとカーネル関数の出力しか使っていない – 生のデータ点そのものが不要! • カーネル行列 1 2 – N個の訓練データの全ての組み合わせ ������ 個の 2 ������ ������������ , ������������ を(i,j)成分に持つ行列 41
  • 42. カーネルキャッシュ • データ数2のカーネル関数の出力を計算する のが困難な場合 and/or 値を保持するのが困 難な場合,一部の出力だけを保持しておく • 参考 – Passive Aggressive と多項式カーネル – ny23の日 記 • http://d.hatena.ne.jp/ny23/20090624 42
  • 44. オンライン学習+カーネル法の問題 •  損失を生むサンプルの重みを増やしてしま うので,サポートベクタが増えてしまう – cf. SVMはバッチ学習で疎な解を求められる • 対策のひとつ – サポートベクタ数に上限を設ける方法 (Budget法) • Aggressive Perceptron [Crammer+ 03] • Forgetron [Dekel+ 05] • など 44
  • 45. Budget-consicous Aggressive Perceptron [Crammer +03] 45
  • 46. Budget-consicous Aggressive Perceptron [Crammer +03] 46
  • 47. Budget-consicous Aggressive Perceptron [Crammer +03] マージンパーセプトロン と同じノリ 47
  • 48. Budget-consicous Aggressive Perceptron [Crammer +03] サポートベクタが いっぱいの場合 48
  • 49. Budget-consicous Aggressive Perceptron [Crammer +03] 多分typo ������������ ������������−1 − ������������ ������������ ������������ ������������ 影響の少ない サポートベクタを除去 49
  • 50. Budget-consicous Aggressive Perceptron [Crammer +03] 選択されたサポートベクタ をなかったことにする 50
  • 51. Budget-consicous Aggressive Perceptron [Crammer +03] 新しいサポートベクタを 追加 51
  • 53. ちょっと変わったカーネル • Semantic similarity kernel [Sahami+ 06] – short text snippet同士の類似度をうまく測るため のカーネルを提案 53
  • 54. Semantic similarity kernel [Sahami+ 06] 54
  • 55. Semantic similarity kernel [Sahami+ 06] 55
  • 56. Semantic similarity kernel [Sahami+ 06] 56
  • 57. Semantic similarity kernel [Sahami+ 06] 57
  • 58. Semantic similarity kernel [Sahami+ 06] 58
  • 59. Semantic similarity kernel [Sahami+ 06] 59
  • 60. Semantic similarity kernel [Sahami+ 06] 60
  • 62. SVMの場合 ������ 1 2 主問題: ������ = ������ − ������������ {������������ ������������ ������ ������������ + ������ − 1} 2 ������=1 – 極値は ������ • ������ = ������=1 ������������ ������������ ������(������������ ) ������ • 0= ������=1 ������������ ������������ – で与えられるため, ������ ������ ������ 1 双対問題: ������ = ������������ − ������������ ������������ ������������ ������������ ������ ������������ ������ ������ ������������ 2 ������=1 ������=1 ������=1 ������(������������ , ������������ ) カーネルを利用するためには双対問題を解く必要がある ※ 主問題を高速に解く手法が利用できない 62
  • 64. k-Nearest Neighbor (k-NN) • ユークリッド距離が最小である事例のラベル で予測 argmin������ ������ − ������������ 2 2 2 ������ − ������������ 2 = ������ − ������������ ������ (������ − ������������ ) ������ ������ ������ = ������ ������ − 2������������ ������ + ������������ ������������ RBFカーネルのような差分に対して定義 されるカーネルの場合,これだけで良い 64
  • 65. 疑問 65
  • 66. Q. カーネルを計算するコストが高いンなら 無理してカーネル使わなくてよくね? カーネルを展開して主問題で解く方法がありマす 66
  • 67. 多項式カーネルの展開 • 2次の多項式カーネルの場合 ������ ������, ������ = ������������ ������ + 1 2 ������������ ������ + 1 2 = ������1 ������1 + ������2 ������2 + 1 2 2 2 2 2 = (������1 ������1 + ������2 ������2 + 2������1 ������1 ������2 ������2 + 2������2 ������2 + 2������1 ������1 + 1) 2 2 ������ = ������1 ������2 2������1 ������2 2������2 2������1 1 2 2 (������1 ������2 2������1 ������2 2������2 2������1 1) 67
  • 68. 多項式カーネルの展開 • 2次の多項式カーネルの場合 ������ ������, ������ = ������������ ������ + 1 2 ������������ ������ + 1 2 = ������1 ������1 + ������2 ������2 + 1 2 ������(������) 2 2 2 2 = (������1 ������1 + ������2 ������2 + 2������1 ������1 ������2 ������2 + 2������2 ������2 + 2������1 ������1 + 1) 2 2 ������ = ������1 ������2 2������1 ������2 2������2 2������1 1 2 2 (������1 ������2 2������1 ������2 2������2 2������1 1) ※効率的な展開は[Isozaki+ 02] など ������(������) 68
  • 69. 参考 • 線形識別器でカーネルトリックを使う方法 – PFI Research Blog – http://research.preferred.jp/2011/09/kernel- trick/ 69
  • 71. どうすればカーネルになるのよ • カーネル行列が半正定値であること ������������ ������������ ≥ 0 ⇔ 全ての固有値が非負 – 例外もあり: シグモイドカーネル /) ///) /,.=゙''"/ / i f ,.r='"-‐'つ____ こまけぇこたぁいいんだよ!! / / _,.-‐'~/⌒ ⌒\ / ,i ,二ニ⊃( ●). (●)\ / ノ il゙フ::::::⌒(__人__)⌒::::: \ ,イ「ト、 ,!,!| |r┬-| | / iトヾヽ_/ィ"\ `ー'´ / 71
  • 72. カーネル設計の練習 (1/2) • 文書dの特徴ベクトルxを文書内に出現する 単語頻度freq(d, i)で表す ������ = (������1 ������2 ⋯ ������������ ) ただし ������������ = ������������������������(������, ������) ������ ������ ������ ������������1 , ������������2 = ������ ∈ 1, ������ ������������ 1 = ������������ 2 } 頻度が一致する数 実はブッチャー本 [Buttcher+ 10] の例を引用 72
  • 73. カーネル設計の練習 (2/2) • 一般に頻度freqは無限に存在.そこで以下の写像を考える – 例えば,M=10の場合,1の位が特徴ベクトルの添字を表 し,10の位より大きな数字で頻度を表現する ������ ������������������������, ������ = ������ + ������ ⋅ ������������������������ • この写像を用いることにより,以下の特徴ベクトルで表現で きる 1 ������������������ = ������ ������������ ������������ = 0 ������������������ ≠ ������ • これより,������ ������������1 , ������������2 = ������������ ������������1 ������ ������ ������������2 ������ – おぉっ! なんかカーネルぽい!! 73
  • 74. カーネル構築のヒント ������1 , ������2 が有効なカーネルの場合,以下の関数もカーネルとして有効である. • ������ ������, ������′ = ������������1 ������, ������′ • ������ ������, ������′ = ������(������)������1 ������, ������′ ������(������′) • ������ ������, ������′ = ������ ������1 ������, ������′ • ������ ������, ������′ = exp ������1 ������, ������′ • ������ ������, ������′ = ������1 ������, ������′ + ������2 ������, ������′ • ������ ������, ������′ = ������1 ������, ������′ ������2 (������, ������′ ) • ������ ������, ������′ = ������3 ������ ������ , ������ ������′ • ������ ������, ������′ = ������������ ������������′ • ������ ������, ������′ = ������������ ������������ , ������′ + ������������ ������������ , ������′ ������ ������ • ������ ������, ������′ = ������������ ������������ , ������′ ������������ ������������ , ������′ ������ ������ 74
  • 75. まとめ 75
  • 77. 主問題か双対問題かそれが問題だ Q. 主問題/双対問題どっちで解くか? – カーネルを利用したい ⇒ 双対問題 – 特徴次元数 ≫訓練事例数 ⇒ 双対問題 – 訓練事例数 ≫特徴次元数 ⇒ 主問題 • 展開可能なカーネル (e.g.,組み合わせ素性) を利用したいのであれば,明示的に基底関数 ������(⋅)を利用する方法もありなんじゃないでしょ うか 77
  • 78. 再掲: カーネル法ひとこと要約 • ������ ������ = ������������ ������ ������ = ������ ������������ ������(������������ , ������) 非線形変換した 訓練データ������������ 入力データ との類似度 • 予測値=訓練データとの類似度の重みづけ和 – 予測に用いる訓練データをサポートベクタと呼ぶ カーネル法の学習= サポートベクタの「重み」を学習 78
  • 79. カーネル法の適用に関係するステージ ������ ������ ������(������, ������) = ������������ ������(������������ , ������) データ カーネル関数 カーネル行列 学習 予測関数 アルゴリズム [Shawe-Taylor 04] 図2.4を参考 79
  • 80. カーネル法の適用に関係するステージ ������ ������ ������(������, ������) = ������������ ������(������������ , ������) データ カーネル関数 カーネル行列 学習 予測関数 アルゴリズム [Shawe-Taylor 04] 図2.4を参考 80
  • 81. カーネル法に対する私の考え • どのような特徴/類似度が予測に効果的か? という人間の知識をモデルに取り入れるひと つの方法 • カーネルの選択≒ feature engineering 81
  • 82. この後の話 • 文字列カーネルや木構造カーネルこそがNLPに おけるカーネル法の醍醐味 • 理論的背景や発展に関する話題については,専 門家の資料があるので,そちらをご参照されたし • Kernel learning, Multiple Kernel Learning あたり がそこそこ最新の話題なのでしょうか? – 教えて詳しい人 82
  • 83. まとめ • カーネルとはなんぞ? • オンライン学習のカーネル化を紹介 – パーセプトロン – Passive-Aggressive • オンラインカーネル学習の問題 – Budget法 • Budget-consicous Aggressive Perceptron • その他のカーネル – Semantic similarity kernel • カーネルの展開 • カーネルの設計(もどき) 83
  • 84. 参考資料 • [Sahami+ 06] Mehran Sahami, Timothy D. Heilman. A Webbased Kernel Function for Measuring the Similarity of Short Text Snippets. WWW2006. • [Isozaki+ 02] Hideki Isozaki and Hideto Kazawa, “Efficient Support Vector Classifiers for Named Entity Recognition”, COLING2002. • [Crammer+ 03] Koby Crammer, Jaz Kandola, Yoram Singer, “Online Classification on a Budget”, NIPS2003. • [Dekel+ 05] Ofer Dekel, Shai Shalev-Shwartz, Yoram Singer, “The Forgetron: A Kernel-Based Perceptron on a Fixed Budget”, NIPS2005. • [Shawe-Taylor 04] John Shawe-Taylor, Nello Cristianini, “Kernel Methods for Pattern Analysis”, Cambridge University Press (2004). [邦訳: 大北剛訳. カーネル法によるパターン解析. 共立出版] 84
  • 87. 87