SlideShare uma empresa Scribd logo
1 de 87
Baixar para ler offline
きれいなジャイアンによる
カカカカ☆カーネル法入門-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

Mais conteúdo relacionado

Mais procurados

顕著性マップの推定手法
顕著性マップの推定手法顕著性マップの推定手法
顕著性マップの推定手法Takao Yamanaka
 
深層学習の不確実性 - Uncertainty in Deep Neural Networks -
深層学習の不確実性 - Uncertainty in Deep Neural Networks -深層学習の不確実性 - Uncertainty in Deep Neural Networks -
深層学習の不確実性 - Uncertainty in Deep Neural Networks -tmtm otm
 
猫でも分かるVariational AutoEncoder
猫でも分かるVariational AutoEncoder猫でも分かるVariational AutoEncoder
猫でも分かるVariational AutoEncoderSho Tatsuno
 
サポートベクターマシン(SVM)の数学をみんなに説明したいだけの会
サポートベクターマシン(SVM)の数学をみんなに説明したいだけの会サポートベクターマシン(SVM)の数学をみんなに説明したいだけの会
サポートベクターマシン(SVM)の数学をみんなに説明したいだけの会Kenyu Uehara
 
パターン認識第9章 学習ベクトル量子化
パターン認識第9章 学習ベクトル量子化パターン認識第9章 学習ベクトル量子化
パターン認識第9章 学習ベクトル量子化Miyoshi Yuya
 
[DL輪読会]Scalable Training of Inference Networks for Gaussian-Process Models
[DL輪読会]Scalable Training of Inference Networks for Gaussian-Process Models[DL輪読会]Scalable Training of Inference Networks for Gaussian-Process Models
[DL輪読会]Scalable Training of Inference Networks for Gaussian-Process ModelsDeep Learning JP
 
スパースモデリングによる多次元信号・画像復元
スパースモデリングによる多次元信号・画像復元スパースモデリングによる多次元信号・画像復元
スパースモデリングによる多次元信号・画像復元Shogo Muramatsu
 
深層学習による非滑らかな関数の推定
深層学習による非滑らかな関数の推定深層学習による非滑らかな関数の推定
深層学習による非滑らかな関数の推定Masaaki Imaizumi
 
SGD+α: 確率的勾配降下法の現在と未来
SGD+α: 確率的勾配降下法の現在と未来SGD+α: 確率的勾配降下法の現在と未来
SGD+α: 確率的勾配降下法の現在と未来Hidekazu Oiwa
 
クラシックな機械学習の入門 6. 最適化と学習アルゴリズム
クラシックな機械学習の入門  6. 最適化と学習アルゴリズムクラシックな機械学習の入門  6. 最適化と学習アルゴリズム
クラシックな機械学習の入門 6. 最適化と学習アルゴリズムHiroshi Nakagawa
 
Stochastic Variational Inference
Stochastic Variational InferenceStochastic Variational Inference
Stochastic Variational InferenceKaede Hayashi
 
PRML輪読#7
PRML輪読#7PRML輪読#7
PRML輪読#7matsuolab
 
[DL輪読会]Neural Ordinary Differential Equations
[DL輪読会]Neural Ordinary Differential Equations[DL輪読会]Neural Ordinary Differential Equations
[DL輪読会]Neural Ordinary Differential EquationsDeep Learning JP
 
[DL輪読会]Adversarial Learning for Zero-shot Domain Adaptation
[DL輪読会]Adversarial Learning for Zero-shot Domain Adaptation[DL輪読会]Adversarial Learning for Zero-shot Domain Adaptation
[DL輪読会]Adversarial Learning for Zero-shot Domain AdaptationDeep Learning JP
 
深層生成モデルと世界モデル
深層生成モデルと世界モデル深層生成モデルと世界モデル
深層生成モデルと世界モデルMasahiro Suzuki
 
GAN(と強化学習との関係)
GAN(と強化学習との関係)GAN(と強化学習との関係)
GAN(と強化学習との関係)Masahiro Suzuki
 
最尤推定法(NNでの応用)
最尤推定法(NNでの応用)最尤推定法(NNでの応用)
最尤推定法(NNでの応用)MatsuiRyo
 
パターン認識 第12章 正則化とパス追跡アルゴリズム
パターン認識 第12章 正則化とパス追跡アルゴリズムパターン認識 第12章 正則化とパス追跡アルゴリズム
パターン認識 第12章 正則化とパス追跡アルゴリズムMiyoshi Yuya
 

Mais procurados (20)

顕著性マップの推定手法
顕著性マップの推定手法顕著性マップの推定手法
顕著性マップの推定手法
 
深層学習の不確実性 - Uncertainty in Deep Neural Networks -
深層学習の不確実性 - Uncertainty in Deep Neural Networks -深層学習の不確実性 - Uncertainty in Deep Neural Networks -
深層学習の不確実性 - Uncertainty in Deep Neural Networks -
 
猫でも分かるVariational AutoEncoder
猫でも分かるVariational AutoEncoder猫でも分かるVariational AutoEncoder
猫でも分かるVariational AutoEncoder
 
サポートベクターマシン(SVM)の数学をみんなに説明したいだけの会
サポートベクターマシン(SVM)の数学をみんなに説明したいだけの会サポートベクターマシン(SVM)の数学をみんなに説明したいだけの会
サポートベクターマシン(SVM)の数学をみんなに説明したいだけの会
 
パターン認識第9章 学習ベクトル量子化
パターン認識第9章 学習ベクトル量子化パターン認識第9章 学習ベクトル量子化
パターン認識第9章 学習ベクトル量子化
 
[DL輪読会]Scalable Training of Inference Networks for Gaussian-Process Models
[DL輪読会]Scalable Training of Inference Networks for Gaussian-Process Models[DL輪読会]Scalable Training of Inference Networks for Gaussian-Process Models
[DL輪読会]Scalable Training of Inference Networks for Gaussian-Process Models
 
スパースモデリングによる多次元信号・画像復元
スパースモデリングによる多次元信号・画像復元スパースモデリングによる多次元信号・画像復元
スパースモデリングによる多次元信号・画像復元
 
深層学習による非滑らかな関数の推定
深層学習による非滑らかな関数の推定深層学習による非滑らかな関数の推定
深層学習による非滑らかな関数の推定
 
SGD+α: 確率的勾配降下法の現在と未来
SGD+α: 確率的勾配降下法の現在と未来SGD+α: 確率的勾配降下法の現在と未来
SGD+α: 確率的勾配降下法の現在と未来
 
クラシックな機械学習の入門 6. 最適化と学習アルゴリズム
クラシックな機械学習の入門  6. 最適化と学習アルゴリズムクラシックな機械学習の入門  6. 最適化と学習アルゴリズム
クラシックな機械学習の入門 6. 最適化と学習アルゴリズム
 
Stochastic Variational Inference
Stochastic Variational InferenceStochastic Variational Inference
Stochastic Variational Inference
 
機械学習と主成分分析
機械学習と主成分分析機械学習と主成分分析
機械学習と主成分分析
 
PRML輪読#7
PRML輪読#7PRML輪読#7
PRML輪読#7
 
[DL輪読会]Neural Ordinary Differential Equations
[DL輪読会]Neural Ordinary Differential Equations[DL輪読会]Neural Ordinary Differential Equations
[DL輪読会]Neural Ordinary Differential Equations
 
[DL輪読会]Adversarial Learning for Zero-shot Domain Adaptation
[DL輪読会]Adversarial Learning for Zero-shot Domain Adaptation[DL輪読会]Adversarial Learning for Zero-shot Domain Adaptation
[DL輪読会]Adversarial Learning for Zero-shot Domain Adaptation
 
深層生成モデルと世界モデル
深層生成モデルと世界モデル深層生成モデルと世界モデル
深層生成モデルと世界モデル
 
GAN(と強化学習との関係)
GAN(と強化学習との関係)GAN(と強化学習との関係)
GAN(と強化学習との関係)
 
最尤推定法(NNでの応用)
最尤推定法(NNでの応用)最尤推定法(NNでの応用)
最尤推定法(NNでの応用)
 
DeepLearningTutorial
DeepLearningTutorialDeepLearningTutorial
DeepLearningTutorial
 
パターン認識 第12章 正則化とパス追跡アルゴリズム
パターン認識 第12章 正則化とパス追跡アルゴリズムパターン認識 第12章 正則化とパス追跡アルゴリズム
パターン認識 第12章 正則化とパス追跡アルゴリズム
 

Destaque

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
 

Destaque (8)

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
 

Semelhante 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
 

Semelhante 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 速いアルゴリズムを書くための基礎
 

Mais 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
 
SMO徹底入門 - SVMをちゃんと実装する
SMO徹底入門 - SVMをちゃんと実装するSMO徹底入門 - SVMをちゃんと実装する
SMO徹底入門 - SVMをちゃんと実装する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
 

Mais 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 前回までのあらすじ
 
SMO徹底入門 - SVMをちゃんと実装する
SMO徹底入門 - SVMをちゃんと実装するSMO徹底入門 - SVMをちゃんと実装する
SMO徹底入門 - SVMをちゃんと実装する
 
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
 

Último

論文紹介: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
 
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
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 
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
 
論文紹介: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
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)Hiroki Ichikura
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものですiPride Co., Ltd.
 

Último (9)

論文紹介: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...
 
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
 
論文紹介: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
 
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
【早稲田AI研究会 講義資料】3DスキャンとTextTo3Dのツールを知ろう!(Vol.1)
 
SOPを理解する 2024/04/19 の勉強会で発表されたものです
SOPを理解する       2024/04/19 の勉強会で発表されたものですSOPを理解する       2024/04/19 の勉強会で発表されたものです
SOPを理解する 2024/04/19 の勉強会で発表されたものです
 

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