SlideShare a Scribd company logo
パターン認識と機械学習
               6.2 カーネル関数の構成


                     PRML復々習レーン #9
                         2013/3/10(日)
                      ぷるうぬす@Prunus1350



13年3月10日日曜日                              1
•     カーネル関数を構成するには?

                           (x)
              (1) 特徴空間への写像   を考え、これをもとに対応するカー
                  ネルを構成する。
                                               M
                                               X
                      0           T     0                         0
                 k(x, x ) = (x)       (x ) =         i (x) i (x       )
                                               i=1

              (2) カーネル関数を直接定義する。

               • 与えた関数がカーネル関数として有効であることを保証
                 する必要がある。

               • 言い換えれば、ある特徴空間におけるスカラー積である
                 ことを保証する必要がある。




13年3月10日日曜日                                                               2
(2) の簡単な例

              k(x, z) = (xT z)2
                   x = (x1 , x2 )
          2次元の入力空間       を考えると、対応する特徴空間
          への非線形写像を得ることができる。
                          T   2                    2
              k(x, z) = (x z) = (x1 z1 + x2 z2 )
                     = x2 z1 + 2x1 z1 x2 z2 + x2 z2
                        1
                           2
                                                2
                                                  2
                            p                  p
                     = (x2 , 2x1 x2 , x2 )(z1 , 2z1 z2 , z2 )T
                         1             2
                                            2             2


                     = (x)T (z)
                                           p
                    (x) = (x2 , 2x1 x2 , x2 )T の形を持つ
          特徴空間への写像は              
                            1             2
          ことが分かる。




13年3月10日日曜日                                                      3
(x)
          より一般的には、   を明示的に構成することなく、関数が有
          効なカーネルであるかどうかを簡単に調べる方法が望まれる。


                  k(x, x0 )
               関数     が有効なカーネルである



                         必要十分条件



                 {xn }      k(xn , xm )
              任意の   に対して、要素が      で
                         K
              与えられるグラム行列  が半正定値である




13年3月10日日曜日                               4
付録Cより

              A                  w Aw > 0
                                  T
                         w の値に対して       
          正方行列  がすべてのベクトル 
                 A                 A⌫0
          を満たすとき、 は半正定値行列であると言われ、    と表
          す。

                              i > 0
          これは、半正定値行列のすべての固有値が    を満たすこと
          と同値である。



          ※ 行列のすべての要素が非負であることとは異なることに注意
          する。




13年3月10日日曜日                                 5

          グラム行列の成分がカーネル関数  であるとき、この行列を
          カーネル行列という。

          標準的な表記法を用いて、この行列を

              K      1             2          ···       N
              1   (x1 , x1 )   (x1 , x1 )   ···    (x1 , xN )
              2   (x2 , x1 )   (x2 , x2 )   ···    (x2 , xN )
              .
              .       .
                      .             .
                                    .         ..         .
                                                         .
              .       .             .            .       .
              N   (xN , x1 )   (xN , x2 )   ···    (xN , xN )

          と書く。

             K
          左隅の  の記号は、表がカーネル行列の表であることを示す。




13年3月10日日曜日                                                        6
新たなカーネルを構築するための便利な方法は、より単純なカー
          ネルを構成要素として用いることである。これには、次の性質を
          利用することができる。


               0              0
        k(x, x ) = ck1 (x, x )                       c>0
                                                        は定数
        k(x, x0 ) = f (x)k1 (x, x0 )f (x0 )          f (·)
                                                       は任意の関数
        k(x, x0 ) = q(k1 (x, x0 ))                     は非負の係数をもつ多項式
                                                     q(·)
                                                       (x)
                                                        は から  x   RM への関数
        k(x, x0 ) = exp(k1 (x, x0 ))
                                                     k3 (·, ·) RM
                                                         は   で定義された有効なカー
        k(x, x0 ) = k1 (x, x0 ) + k2 (x, x0 )       ネル
        k(x, x0 ) = k1 (x, x0 )k2 (x, x0 )           A
                                                      は対称な半正定値行列
        k(x, x0 ) = k3 ( (x), (x0 ))                 xa xb      x = (xa , xb )
                                                       と  は        であるよう
                                                    な変数
        k(x, x0 ) = xT Ax0
                                                      ka kb
                                                       と  はそれぞれの特徴空間におい
        k(x, x0 ) = ka (xa , x0 ) + kb (xb , x0 )
                               a               b    て有効なカーネル関数
        k(x, x0 ) = ka (xa , x0 )kb (xb , x0 )
                               a           b




13年3月10日日曜日                                                                      7
0   0
        k(x, x ) = ck1 (x, x ) (c > 0)
                         の証明

        w K1 w > 0
              T
                より wT (cK1 )w > 0        (w 2 RN )
        ) cK1
            は半正定値行列

              ck1
          よって   はカーネル関数である。




13年3月10日日曜日                                          8
k(x, x0 ) = k1 (x, x0 ) + k2 (x, x0 )
                         の証明

        w K1 w > 0, w K2 w > 0
              T        T       (w 2 RN )
                              より

        wT K1 w + wT K2 w = wT (K1 + K2 )w > 0

        ) K1 + K2
               は半正定値行列

              k1 + k2
          よって     はカーネル関数である。




13年3月10日日曜日                                      9
k(x, x0 ) = k1 (x, x0 )k2 (x, x0 )
                         の証明

            K1 K2
          行列  と  のテンソル積を
                       N
              K = K1       K2
          とする。

                 K1     K2          K1
          テンソル積とは  の各成分に  の行列を掛け合わせ、  の
          各成分の位置にその行列を置いたものをいう。

          2つの半正定値行列のテンソル積は、それ自体が半正定値であ
          る。積の固有値は2コンポーネントの固有値の積すべてのペアだ
          からである。




13年3月10日日曜日                                    10
k(x, x0 ) = k1 (x, x0 )k2 (x, x0 )
                         の証明続き

            k1 k2      H K1 K2
          関数   に対応する行列  を  と  のシューア積とい
          う。この成分は対応する2つのコンポーネントの成分ごとの積と
          なる。

            H K               K       K
          行列  は  の主部分行列である(  の主部分行列とは、 の部
          分行列で、行の集合と列の集合が同じ添字集合からなる行列をい
                       w 2 RN
          う)。したがって任意の     に対して、

              wT Hw = w1 Kw1 > 0
                       T

                                N2
                    w1 2 R         H
          を満たすような対応      が存在し、したがって  は半
          正定値行列となる。

              k1 k2
          よって    はカーネル関数である。




13年3月10日日曜日                                    11
これらの性質を用いると、より複雑なカーネルを構成すること
                             k(x, x0 )
              が可能になる。なお、カーネル     は、

              ・対称

              ・半正定値

                           x と 0 の適切な類似度である
              ・適用先の問題領域における   x

              ことが必要である。




13年3月10日日曜日                                   12
多項式カーネルの一般化

          k(x, x0 ) = (xT x0 )2
                    は2次の項のみを含む。
              0   T 0   2
          k(x, x ) = (x x + c) (c > 0)
                            は2次までの項を持つ。

          k(x, x0 ) = (xT x0 )M M
                     は  次の項すべてをもつ。
              0   T 0   M
          k(x, x ) = (x x + c) (c > 0) M
                            は  次までのすべての
          次数の項をもつ。

          これらはすべて有効なカーネル関数である。




13年3月10日日曜日                                13
ガウスカーネル

              k(x, x0 ) = exp( kx   x0 k2 /2   2
                                                   )
          カーネル法の文脈では、これは確率密度関数としては解釈され
          ず、したがって正規化のための定数は省かれている。

           kx x0 k2 = xT x 2xT x0 + (x0 )T x0
                              と展開すると、
                          ✓  T
                                 ◆     ✓ T 0◆     ✓   0 T 0
                                                            ◆
                 0          x x         x x         (x ) x
           k(x, x ) = exp      2
                                   exp    2
                                              exp
                            2                         2 2

          となる。これは有効なカーネル関数である。

          ※  はカーネル関数の広がりを制御するパラメータである。

                         x0 から遠く離れている広範囲の
          ※  が大きい場合は入力データ 
          サポートベクトルが識別に寄与することになる。

13年3月10日日曜日                                                     14
演習 6.11
                    xT x0
           exp( 2 )
                を、べき級数展開することによって、ガウスカーネ
          ルは、無限次元の特徴ベクトルの内積で表されることを示せ。
                    ✓           ◆               M
                                                              !       M           ✓           ◆
                         T
                        x x   0                 X         0
                                                      xi xi           Y                   0
                                                                                      xi xi
              exp         2
                                    = exp                         =         exp
                                                i=1                   i=1
                    ✓           ◆       1
                                        X       ✓           ◆n
                        xi x0
                            i             1         xi x0
                                                        i
              exp                   =
                                      n=0
                                          n!
                                        1
                                        X  1   ⇣ x ⌘ n 1 ✓ x 0 ◆n
                                                  i          i
                                    =     p           p
                                      n=0   n!          n!
                                         T 0
                                    =   xi xi


13年3月10日日曜日                                                                                       15
演習 6.11 続き

          ここで、    xiと 0 はそれぞれ、
                      xi
               ⇣ x ⌘n        ✓ 0 ◆n
           1      i      1    xi
          p           , p             (n = 0, 1, 2, · · · )
            n!            n!

          の無限の要素をもつベクトルである。

          よって、ガウスカーネルは、無限次元の特徴ベクトルの内積で表
          される。




13年3月10日日曜日                                                   16
ガウスカーネルは、必ずしもユークリッド距離に限定されたもの
          ではない。
                               ✓       T
                                               ◆         ✓   T 0
                                                                   ◆         ✓     0 T 0
                                                                                           ◆
                   0               x x                       x x                 (x ) x
              k(x, x ) = exp                       exp                 exp
                                   2 2                        2                    2 2

                 T 0                                     0
           x x        (x, x )
          の   を非線形カーネル     で置き換えれば、次のよう
          なカーネルが得られる。
                               ⇢
                   0                   1                                0          0   0
          k(x, x ) = exp                   2
                                               ((x, x)       2(x, x ) + (x , x ))
                                   2




13年3月10日日曜日                                                                                    17
カーネル法の考え方によって得られる重要な利点は、入力が実数
          値ベクトルだけではなく、記号であるような場合にも適用できる
          ことである。

          グラフ、集合、文字列、テキスト文書などのさまざまな対象に対
          して、カーネル関数が定義されている。

          例)対象としてある集合を考え、この集合のすべての部分集合で
          構成される、ベクトル形式を持たない入力空間を定義する。

          A1 A2
            と  をこのような部分集合とすると、カーネル関数のひと
          つの定義としては、以下のようなものが考えられる。

              k(A1 , A2 ) = 2|A1 A2 |

              A1  A2            |A| A
          ここで、     は  と  の共通集合とし、  を  に
                      A1 A2
          含まれる要素の数とする。


13年3月10日日曜日                               18
別の強力なアプローチとして、確率的生成モデルからカーネル関
          数を構成する方法がある。これによって、生成モデルを分類に用
          いることができる。

          生成モデルは、欠損データを自然に扱うことができ、また、隠れ
          マルコフモデルなどを使えば可変長の配列を扱うことができる。

          一方、識別モデルは、分類問題においては生成モデルよりも一般
          に性能が良いことが知られている。

          これら2つのアプローチを組み合わせることは、しばしば興味の
          対象となる。これを実現する方法のひとつとして考えられるの
          は、生成モデルを用いてカーネルを定義し、このカーネルを用い
          て識別アプローチをとるという方法である。




13年3月10日日曜日                               19
p(x)
          生成モデル   が与えられたとき、カーネルを以下のように定
          義する。

              k(x, x0 ) = p(x)p(x0 )
                        x と 0 の確率が共に大きいとき
          このカーネルでは、2つの入力   x
          に、2つの入力が似ているとみなされる。

          さらに、複数の確率分布があるときに、確率分布の積の和を考え
          ることによって、以下のように拡張することができる。
                            X
              k(x, x0 ) =       p(x|i)p(x0 |i)p(i)   (p(i) > 0)
                            i
          これは全体を定数倍すれば、混合分布に等しくなる。

                   i
          混合要素を指定する は、「潜在」変数であると解釈できる。




13年3月10日日曜日                                                       20
無限個の構成要素の和を考えることで、次のようなカーネルを考
          えることができる。
                Z
              k(x, x0 ) =   p(x|z)p(x0 |z)p(z)

              z
          ここで、  は連続値をとる潜在変数である。




13年3月10日日曜日                                      21
隠れマルコフモデル

                              X = {x1 , · · · , xL }
          データの長さ  の配列、つまり入力変数が          
                L
          の形であたえられる場合を考える。

          配列の生成モデルとしてよく使われるものとしては、隠れマルコ
          フモデルがある。隠れマルコフモデルは、   の分布を、対応  p(X)
                  Z = {z1 , · · · , zL }
          する隠れ変数          について周辺化したものとし
          て表す。このアプローチにより、混合表現を拡張して、2つの配
                0
          列  と  の類似度を測るカーネル関数が定義できる。
            X X
                       X
                0                   0
          k(X, X ) =       p(X|Z)p(X |Z)p(Z)
                       Z
          このモデルは2つの配列の長さが異なる場合にも容易に拡張が可
          能である。




13年3月10日日曜日                                            22
フィッシャーカーネル

          生成モデルを用いてカーネル関数を定義する別の方法としては、
                                   ✓
          フィッシャーカーネルがよく知られている。パラメータ  を持
                         p(x|✓)
          つ、パラメトリックな生成モデル    を考える。

          フィッシャースコアを g(✓, x) = r✓ ln p(x|✓)
                                                    T
          フィッシャー情報量行列を F = Ex [g(✓, x)g(✓, x) ]

          と定義し、フィッシャーカーネルを
                   0           T     1         0
              k(x, x ) = g(✓, x) F       g(✓, x )
          と定義する。

          これはモデルのパラメータ空間における微分幾何を考える情報幾
          何の考えに基づいたものである。


13年3月10日日曜日                                             23
実際の利用においては、フィッシャー情報量行列を計算するのは
          不可能であるため、期待値を単純平均で置き換える。

                   XN
                 1                        T
              F'       g(✓, xn )g(✓, xn )
                 N x=1

          より簡単に、フィッシャー情報量行列を省いて、次のように定義
          することもある。
                    0          T       0
              k(x, x ) = g(✓, x) g(✓, x )

          フィッシャーカーネルの応用例としては、文書検索の例などがあ
          る。




13年3月10日日曜日                                   24
シグモイドカーネル

              k(x, x0 ) = tanh(axT x0 + b)
          シグモイドカーネルのグラム行列は必ずしも半正定値にならない
          が、実用的には以前からよく使用されている。

          シグモイドカーネルを使うと、サポートベクトルマシンとニュー
          ラルネットワークが表層的に類似したものになる。

          基底関数が無限にある場合には、適当な事前分布をもつベイズ
          ニューラルネットワークは、ガウス過程に一致し、ニューラル
          ネットワークとカーネル法のより深いつながりが明らかになる。




13年3月10日日曜日                                  25
ご清聴ありがとうございました。




13年3月10日日曜日                     26
Ad

More Related Content

What's hot (20)

EMアルゴリズム
EMアルゴリズムEMアルゴリズム
EMアルゴリズム
Sotetsu KOYAMADA(小山田創哲)
 
Sliced Wasserstein距離と生成モデル
Sliced Wasserstein距離と生成モデルSliced Wasserstein距離と生成モデル
Sliced Wasserstein距離と生成モデル
ohken
 
PRML学習者から入る深層生成モデル入門
PRML学習者から入る深層生成モデル入門PRML学習者から入る深層生成モデル入門
PRML学習者から入る深層生成モデル入門
tmtm otm
 
Prml 1.3~1.6 ver3
Prml 1.3~1.6 ver3Prml 1.3~1.6 ver3
Prml 1.3~1.6 ver3
Toshihiko Iio
 
PRML輪読#3
PRML輪読#3PRML輪読#3
PRML輪読#3
matsuolab
 
サポートベクターマシン(SVM)の数学をみんなに説明したいだけの会
サポートベクターマシン(SVM)の数学をみんなに説明したいだけの会サポートベクターマシン(SVM)の数学をみんなに説明したいだけの会
サポートベクターマシン(SVM)の数学をみんなに説明したいだけの会
Kenyu Uehara
 
統計的学習理論チュートリアル: 基礎から応用まで (Ibis2012)
統計的学習理論チュートリアル: 基礎から応用まで (Ibis2012)統計的学習理論チュートリアル: 基礎から応用まで (Ibis2012)
統計的学習理論チュートリアル: 基礎から応用まで (Ibis2012)
Taiji Suzuki
 
PRML 6.1章 カーネル法と双対表現
PRML 6.1章 カーネル法と双対表現PRML 6.1章 カーネル法と双対表現
PRML 6.1章 カーネル法と双対表現
hagino 3000
 
クラシックな機械学習の入門  5. サポートベクターマシン
クラシックな機械学習の入門  5. サポートベクターマシンクラシックな機械学習の入門  5. サポートベクターマシン
クラシックな機械学習の入門  5. サポートベクターマシン
Hiroshi Nakagawa
 
パターン認識と機械学習(PRML)第2章 確率分布 2.3 ガウス分布
パターン認識と機械学習(PRML)第2章 確率分布 2.3 ガウス分布パターン認識と機械学習(PRML)第2章 確率分布 2.3 ガウス分布
パターン認識と機械学習(PRML)第2章 確率分布 2.3 ガウス分布
Nagayoshi Yamashita
 
coordinate descent 法について
coordinate descent 法についてcoordinate descent 法について
coordinate descent 法について
京都大学大学院情報学研究科数理工学専攻
 
【解説】 一般逆行列
【解説】 一般逆行列【解説】 一般逆行列
【解説】 一般逆行列
Kenjiro Sugimoto
 
混合モデルとEMアルゴリズム(PRML第9章)
混合モデルとEMアルゴリズム(PRML第9章)混合モデルとEMアルゴリズム(PRML第9章)
混合モデルとEMアルゴリズム(PRML第9章)
Takao Yamanaka
 
グラフィカル Lasso を用いた異常検知
グラフィカル Lasso を用いた異常検知グラフィカル Lasso を用いた異常検知
グラフィカル Lasso を用いた異常検知
Yuya Takashina
 
数式をnumpyに落としこむコツ
数式をnumpyに落としこむコツ数式をnumpyに落としこむコツ
数式をnumpyに落としこむコツ
Shuyo Nakatani
 
PRML2.4 指数型分布族
PRML2.4 指数型分布族PRML2.4 指数型分布族
PRML2.4 指数型分布族
hiroki yamaoka
 
金融時系列のための深層t過程回帰モデル
金融時系列のための深層t過程回帰モデル金融時系列のための深層t過程回帰モデル
金融時系列のための深層t過程回帰モデル
Kei Nakagawa
 
PRML第3章@京大PRML輪講
PRML第3章@京大PRML輪講PRML第3章@京大PRML輪講
PRML第3章@京大PRML輪講
Sotetsu KOYAMADA(小山田創哲)
 
スパースモデリング、スパースコーディングとその数理(第11回WBA若手の会)
スパースモデリング、スパースコーディングとその数理(第11回WBA若手の会)スパースモデリング、スパースコーディングとその数理(第11回WBA若手の会)
スパースモデリング、スパースコーディングとその数理(第11回WBA若手の会)
narumikanno0918
 
変分推論法(変分ベイズ法)(PRML第10章)
変分推論法(変分ベイズ法)(PRML第10章)変分推論法(変分ベイズ法)(PRML第10章)
変分推論法(変分ベイズ法)(PRML第10章)
Takao Yamanaka
 
Sliced Wasserstein距離と生成モデル
Sliced Wasserstein距離と生成モデルSliced Wasserstein距離と生成モデル
Sliced Wasserstein距離と生成モデル
ohken
 
PRML学習者から入る深層生成モデル入門
PRML学習者から入る深層生成モデル入門PRML学習者から入る深層生成モデル入門
PRML学習者から入る深層生成モデル入門
tmtm otm
 
PRML輪読#3
PRML輪読#3PRML輪読#3
PRML輪読#3
matsuolab
 
サポートベクターマシン(SVM)の数学をみんなに説明したいだけの会
サポートベクターマシン(SVM)の数学をみんなに説明したいだけの会サポートベクターマシン(SVM)の数学をみんなに説明したいだけの会
サポートベクターマシン(SVM)の数学をみんなに説明したいだけの会
Kenyu Uehara
 
統計的学習理論チュートリアル: 基礎から応用まで (Ibis2012)
統計的学習理論チュートリアル: 基礎から応用まで (Ibis2012)統計的学習理論チュートリアル: 基礎から応用まで (Ibis2012)
統計的学習理論チュートリアル: 基礎から応用まで (Ibis2012)
Taiji Suzuki
 
PRML 6.1章 カーネル法と双対表現
PRML 6.1章 カーネル法と双対表現PRML 6.1章 カーネル法と双対表現
PRML 6.1章 カーネル法と双対表現
hagino 3000
 
クラシックな機械学習の入門  5. サポートベクターマシン
クラシックな機械学習の入門  5. サポートベクターマシンクラシックな機械学習の入門  5. サポートベクターマシン
クラシックな機械学習の入門  5. サポートベクターマシン
Hiroshi Nakagawa
 
パターン認識と機械学習(PRML)第2章 確率分布 2.3 ガウス分布
パターン認識と機械学習(PRML)第2章 確率分布 2.3 ガウス分布パターン認識と機械学習(PRML)第2章 確率分布 2.3 ガウス分布
パターン認識と機械学習(PRML)第2章 確率分布 2.3 ガウス分布
Nagayoshi Yamashita
 
【解説】 一般逆行列
【解説】 一般逆行列【解説】 一般逆行列
【解説】 一般逆行列
Kenjiro Sugimoto
 
混合モデルとEMアルゴリズム(PRML第9章)
混合モデルとEMアルゴリズム(PRML第9章)混合モデルとEMアルゴリズム(PRML第9章)
混合モデルとEMアルゴリズム(PRML第9章)
Takao Yamanaka
 
グラフィカル Lasso を用いた異常検知
グラフィカル Lasso を用いた異常検知グラフィカル Lasso を用いた異常検知
グラフィカル Lasso を用いた異常検知
Yuya Takashina
 
数式をnumpyに落としこむコツ
数式をnumpyに落としこむコツ数式をnumpyに落としこむコツ
数式をnumpyに落としこむコツ
Shuyo Nakatani
 
PRML2.4 指数型分布族
PRML2.4 指数型分布族PRML2.4 指数型分布族
PRML2.4 指数型分布族
hiroki yamaoka
 
金融時系列のための深層t過程回帰モデル
金融時系列のための深層t過程回帰モデル金融時系列のための深層t過程回帰モデル
金融時系列のための深層t過程回帰モデル
Kei Nakagawa
 
スパースモデリング、スパースコーディングとその数理(第11回WBA若手の会)
スパースモデリング、スパースコーディングとその数理(第11回WBA若手の会)スパースモデリング、スパースコーディングとその数理(第11回WBA若手の会)
スパースモデリング、スパースコーディングとその数理(第11回WBA若手の会)
narumikanno0918
 
変分推論法(変分ベイズ法)(PRML第10章)
変分推論法(変分ベイズ法)(PRML第10章)変分推論法(変分ベイズ法)(PRML第10章)
変分推論法(変分ベイズ法)(PRML第10章)
Takao Yamanaka
 

Similar to パターン認識と機械学習 §6.2 カーネル関数の構成 (20)

パターン認識と機械学習6章(カーネル法)
パターン認識と機械学習6章(カーネル法)パターン認識と機械学習6章(カーネル法)
パターン認識と機械学習6章(カーネル法)
Yukara Ikemiya
 
カーネル法:正定値カーネルの理論
カーネル法:正定値カーネルの理論カーネル法:正定値カーネルの理論
カーネル法:正定値カーネルの理論
Daiki Tanaka
 
主成分分析
主成分分析主成分分析
主成分分析
貴之 八木
 
Prml sec6
Prml sec6Prml sec6
Prml sec6
Keisuke OTAKI
 
第8回 配信講義 計算科学技術特論A(2021)
第8回 配信講義 計算科学技術特論A(2021)第8回 配信講義 計算科学技術特論A(2021)
第8回 配信講義 計算科学技術特論A(2021)
RCCSRENKEI
 
210603 yamamoto
210603 yamamoto210603 yamamoto
210603 yamamoto
RCCSRENKEI
 
8.4 グラフィカルモデルによる推論
8.4 グラフィカルモデルによる推論8.4 グラフィカルモデルによる推論
8.4 グラフィカルモデルによる推論
sleepy_yoshi
 
ユークリッド距離以外の距離で教師無しクラスタリング
ユークリッド距離以外の距離で教師無しクラスタリングユークリッド距離以外の距離で教師無しクラスタリング
ユークリッド距離以外の距離で教師無しクラスタリング
Maruyama Tetsutaro
 
Chapter9 2
Chapter9 2Chapter9 2
Chapter9 2
Takuya Minagawa
 
Re revenge chap03-1
Re revenge chap03-1Re revenge chap03-1
Re revenge chap03-1
裕樹 奥田
 
topology of musical data
topology of musical datatopology of musical data
topology of musical data
Tatsuki SHIMIZU
 
東京都市大学 データ解析入門 6 回帰分析とモデル選択 1
東京都市大学 データ解析入門 6 回帰分析とモデル選択 1東京都市大学 データ解析入門 6 回帰分析とモデル選択 1
東京都市大学 データ解析入門 6 回帰分析とモデル選択 1
hirokazutanaka
 
20150922_楕円関数とおもしろい応用
20150922_楕円関数とおもしろい応用20150922_楕円関数とおもしろい応用
20150922_楕円関数とおもしろい応用
matsumoring
 
PRML 第4章
PRML 第4章PRML 第4章
PRML 第4章
Akira Miyazawa
 
050 確率と確率分布
050 確率と確率分布050 確率と確率分布
050 確率と確率分布
t2tarumi
 
PRML chapter7
PRML chapter7PRML chapter7
PRML chapter7
Takahiro (Poly) Horikawa
 
領域分割法
領域分割法領域分割法
領域分割法
ADVENTURE Project
 
半正定値計画問題と最大カット Sedemifinite Programming and Approximation Algorithm for Maxcu...
半正定値計画問題と最大カット Sedemifinite Programming and Approximation Algorithm for Maxcu...半正定値計画問題と最大カット Sedemifinite Programming and Approximation Algorithm for Maxcu...
半正定値計画問題と最大カット Sedemifinite Programming and Approximation Algorithm for Maxcu...
Yuya Masumura
 
代数的データ型をラムダ計算の中で表現する方法
代数的データ型をラムダ計算の中で表現する方法代数的データ型をラムダ計算の中で表現する方法
代数的データ型をラムダ計算の中で表現する方法
syamino
 
パターン認識と機械学習6章(カーネル法)
パターン認識と機械学習6章(カーネル法)パターン認識と機械学習6章(カーネル法)
パターン認識と機械学習6章(カーネル法)
Yukara Ikemiya
 
カーネル法:正定値カーネルの理論
カーネル法:正定値カーネルの理論カーネル法:正定値カーネルの理論
カーネル法:正定値カーネルの理論
Daiki Tanaka
 
第8回 配信講義 計算科学技術特論A(2021)
第8回 配信講義 計算科学技術特論A(2021)第8回 配信講義 計算科学技術特論A(2021)
第8回 配信講義 計算科学技術特論A(2021)
RCCSRENKEI
 
210603 yamamoto
210603 yamamoto210603 yamamoto
210603 yamamoto
RCCSRENKEI
 
8.4 グラフィカルモデルによる推論
8.4 グラフィカルモデルによる推論8.4 グラフィカルモデルによる推論
8.4 グラフィカルモデルによる推論
sleepy_yoshi
 
ユークリッド距離以外の距離で教師無しクラスタリング
ユークリッド距離以外の距離で教師無しクラスタリングユークリッド距離以外の距離で教師無しクラスタリング
ユークリッド距離以外の距離で教師無しクラスタリング
Maruyama Tetsutaro
 
topology of musical data
topology of musical datatopology of musical data
topology of musical data
Tatsuki SHIMIZU
 
東京都市大学 データ解析入門 6 回帰分析とモデル選択 1
東京都市大学 データ解析入門 6 回帰分析とモデル選択 1東京都市大学 データ解析入門 6 回帰分析とモデル選択 1
東京都市大学 データ解析入門 6 回帰分析とモデル選択 1
hirokazutanaka
 
20150922_楕円関数とおもしろい応用
20150922_楕円関数とおもしろい応用20150922_楕円関数とおもしろい応用
20150922_楕円関数とおもしろい応用
matsumoring
 
050 確率と確率分布
050 確率と確率分布050 確率と確率分布
050 確率と確率分布
t2tarumi
 
半正定値計画問題と最大カット Sedemifinite Programming and Approximation Algorithm for Maxcu...
半正定値計画問題と最大カット Sedemifinite Programming and Approximation Algorithm for Maxcu...半正定値計画問題と最大カット Sedemifinite Programming and Approximation Algorithm for Maxcu...
半正定値計画問題と最大カット Sedemifinite Programming and Approximation Algorithm for Maxcu...
Yuya Masumura
 
代数的データ型をラムダ計算の中で表現する方法
代数的データ型をラムダ計算の中で表現する方法代数的データ型をラムダ計算の中で表現する方法
代数的データ型をラムダ計算の中で表現する方法
syamino
 
Ad

More from Prunus 1350 (12)

SAS University EditionでもJupyter Notebookが使えるようになった話
SAS University EditionでもJupyter Notebookが使えるようになった話SAS University EditionでもJupyter Notebookが使えるようになった話
SAS University EditionでもJupyter Notebookが使えるようになった話
Prunus 1350
 
統計的学習の基礎 第2章後半
統計的学習の基礎 第2章後半統計的学習の基礎 第2章後半
統計的学習の基礎 第2章後半
Prunus 1350
 
Rで学ぶデータマイニングI 第8章〜第13章
Rで学ぶデータマイニングI 第8章〜第13章Rで学ぶデータマイニングI 第8章〜第13章
Rで学ぶデータマイニングI 第8章〜第13章
Prunus 1350
 
はじめてのパターン認識 第11章 11.1-11.2
はじめてのパターン認識 第11章 11.1-11.2はじめてのパターン認識 第11章 11.1-11.2
はじめてのパターン認識 第11章 11.1-11.2
Prunus 1350
 
TokyoR 第36回LT Rで部分空間法
TokyoR 第36回LT Rで部分空間法TokyoR 第36回LT Rで部分空間法
TokyoR 第36回LT Rで部分空間法
Prunus 1350
 
はじめてのパターン認識 第9章 9.5-9.6
はじめてのパターン認識 第9章 9.5-9.6はじめてのパターン認識 第9章 9.5-9.6
はじめてのパターン認識 第9章 9.5-9.6
Prunus 1350
 
はじめてのパターン認識 第6章 後半
はじめてのパターン認識 第6章 後半はじめてのパターン認識 第6章 後半
はじめてのパターン認識 第6章 後半
Prunus 1350
 
パターン認識と機械学習 §8.3.4 有向グラフとの関係
パターン認識と機械学習 §8.3.4 有向グラフとの関係パターン認識と機械学習 §8.3.4 有向グラフとの関係
パターン認識と機械学習 §8.3.4 有向グラフとの関係
Prunus 1350
 
はじめてのパターン認識 第1章
はじめてのパターン認識 第1章はじめてのパターン認識 第1章
はじめてのパターン認識 第1章
Prunus 1350
 
集合知プログラミング 第4章 4.7
集合知プログラミング 第4章 4.7集合知プログラミング 第4章 4.7
集合知プログラミング 第4章 4.7
Prunus 1350
 
スティーヴ・ライヒを聴こう
スティーヴ・ライヒを聴こうスティーヴ・ライヒを聴こう
スティーヴ・ライヒを聴こう
Prunus 1350
 
第5章 統計的仮説検定 (Rによるやさしい統計学)
第5章 統計的仮説検定 (Rによるやさしい統計学)第5章 統計的仮説検定 (Rによるやさしい統計学)
第5章 統計的仮説検定 (Rによるやさしい統計学)
Prunus 1350
 
SAS University EditionでもJupyter Notebookが使えるようになった話
SAS University EditionでもJupyter Notebookが使えるようになった話SAS University EditionでもJupyter Notebookが使えるようになった話
SAS University EditionでもJupyter Notebookが使えるようになった話
Prunus 1350
 
統計的学習の基礎 第2章後半
統計的学習の基礎 第2章後半統計的学習の基礎 第2章後半
統計的学習の基礎 第2章後半
Prunus 1350
 
Rで学ぶデータマイニングI 第8章〜第13章
Rで学ぶデータマイニングI 第8章〜第13章Rで学ぶデータマイニングI 第8章〜第13章
Rで学ぶデータマイニングI 第8章〜第13章
Prunus 1350
 
はじめてのパターン認識 第11章 11.1-11.2
はじめてのパターン認識 第11章 11.1-11.2はじめてのパターン認識 第11章 11.1-11.2
はじめてのパターン認識 第11章 11.1-11.2
Prunus 1350
 
TokyoR 第36回LT Rで部分空間法
TokyoR 第36回LT Rで部分空間法TokyoR 第36回LT Rで部分空間法
TokyoR 第36回LT Rで部分空間法
Prunus 1350
 
はじめてのパターン認識 第9章 9.5-9.6
はじめてのパターン認識 第9章 9.5-9.6はじめてのパターン認識 第9章 9.5-9.6
はじめてのパターン認識 第9章 9.5-9.6
Prunus 1350
 
はじめてのパターン認識 第6章 後半
はじめてのパターン認識 第6章 後半はじめてのパターン認識 第6章 後半
はじめてのパターン認識 第6章 後半
Prunus 1350
 
パターン認識と機械学習 §8.3.4 有向グラフとの関係
パターン認識と機械学習 §8.3.4 有向グラフとの関係パターン認識と機械学習 §8.3.4 有向グラフとの関係
パターン認識と機械学習 §8.3.4 有向グラフとの関係
Prunus 1350
 
はじめてのパターン認識 第1章
はじめてのパターン認識 第1章はじめてのパターン認識 第1章
はじめてのパターン認識 第1章
Prunus 1350
 
集合知プログラミング 第4章 4.7
集合知プログラミング 第4章 4.7集合知プログラミング 第4章 4.7
集合知プログラミング 第4章 4.7
Prunus 1350
 
スティーヴ・ライヒを聴こう
スティーヴ・ライヒを聴こうスティーヴ・ライヒを聴こう
スティーヴ・ライヒを聴こう
Prunus 1350
 
第5章 統計的仮説検定 (Rによるやさしい統計学)
第5章 統計的仮説検定 (Rによるやさしい統計学)第5章 統計的仮説検定 (Rによるやさしい統計学)
第5章 統計的仮説検定 (Rによるやさしい統計学)
Prunus 1350
 
Ad

パターン認識と機械学習 §6.2 カーネル関数の構成

  • 1. パターン認識と機械学習 6.2 カーネル関数の構成 PRML復々習レーン #9 2013/3/10(日) ぷるうぬす@Prunus1350 13年3月10日日曜日 1
  • 2. カーネル関数を構成するには? (x) (1) 特徴空間への写像   を考え、これをもとに対応するカー ネルを構成する。 M X 0 T 0 0 k(x, x ) = (x) (x ) = i (x) i (x ) i=1 (2) カーネル関数を直接定義する。 • 与えた関数がカーネル関数として有効であることを保証 する必要がある。 • 言い換えれば、ある特徴空間におけるスカラー積である ことを保証する必要がある。 13年3月10日日曜日 2
  • 3. (2) の簡単な例 k(x, z) = (xT z)2 x = (x1 , x2 ) 2次元の入力空間       を考えると、対応する特徴空間 への非線形写像を得ることができる。 T 2 2 k(x, z) = (x z) = (x1 z1 + x2 z2 ) = x2 z1 + 2x1 z1 x2 z2 + x2 z2 1 2 2 2 p p = (x2 , 2x1 x2 , x2 )(z1 , 2z1 z2 , z2 )T 1 2 2 2 = (x)T (z) p (x) = (x2 , 2x1 x2 , x2 )T の形を持つ 特徴空間への写像は               1 2 ことが分かる。 13年3月10日日曜日 3
  • 4. (x) より一般的には、   を明示的に構成することなく、関数が有 効なカーネルであるかどうかを簡単に調べる方法が望まれる。 k(x, x0 ) 関数     が有効なカーネルである 必要十分条件 {xn } k(xn , xm ) 任意の   に対して、要素が      で K 与えられるグラム行列  が半正定値である 13年3月10日日曜日 4
  • 5. 付録Cより A w Aw > 0 T w の値に対して        正方行列  がすべてのベクトル  A A⌫0 を満たすとき、 は半正定値行列であると言われ、    と表 す。 i > 0 これは、半正定値行列のすべての固有値が    を満たすこと と同値である。 ※ 行列のすべての要素が非負であることとは異なることに注意 する。 13年3月10日日曜日 5
  • 6. グラム行列の成分がカーネル関数  であるとき、この行列を カーネル行列という。 標準的な表記法を用いて、この行列を K 1 2 ··· N 1 (x1 , x1 ) (x1 , x1 ) ··· (x1 , xN ) 2 (x2 , x1 ) (x2 , x2 ) ··· (x2 , xN ) . . . . . . .. . . . . . . . N (xN , x1 ) (xN , x2 ) ··· (xN , xN ) と書く。 K 左隅の  の記号は、表がカーネル行列の表であることを示す。 13年3月10日日曜日 6
  • 7. 新たなカーネルを構築するための便利な方法は、より単純なカー ネルを構成要素として用いることである。これには、次の性質を 利用することができる。 0 0 k(x, x ) = ck1 (x, x ) c>0     は定数 k(x, x0 ) = f (x)k1 (x, x0 )f (x0 ) f (·)    は任意の関数 k(x, x0 ) = q(k1 (x, x0 ))    は非負の係数をもつ多項式 q(·) (x)     は から  x RM への関数 k(x, x0 ) = exp(k1 (x, x0 )) k3 (·, ·) RM      は   で定義された有効なカー k(x, x0 ) = k1 (x, x0 ) + k2 (x, x0 ) ネル k(x, x0 ) = k1 (x, x0 )k2 (x, x0 ) A   は対称な半正定値行列 k(x, x0 ) = k3 ( (x), (x0 )) xa xb x = (xa , xb )    と  は        であるよう な変数 k(x, x0 ) = xT Ax0 ka kb    と  はそれぞれの特徴空間におい k(x, x0 ) = ka (xa , x0 ) + kb (xb , x0 ) a b て有効なカーネル関数 k(x, x0 ) = ka (xa , x0 )kb (xb , x0 ) a b 13年3月10日日曜日 7
  • 8. 0 0 k(x, x ) = ck1 (x, x ) (c > 0)                 の証明 w K1 w > 0 T        より wT (cK1 )w > 0 (w 2 RN ) ) cK1    は半正定値行列 ck1 よって   はカーネル関数である。 13年3月10日日曜日 8
  • 9. k(x, x0 ) = k1 (x, x0 ) + k2 (x, x0 )                 の証明 w K1 w > 0, w K2 w > 0 T T (w 2 RN )                      より wT K1 w + wT K2 w = wT (K1 + K2 )w > 0 ) K1 + K2       は半正定値行列 k1 + k2 よって     はカーネル関数である。 13年3月10日日曜日 9
  • 10. k(x, x0 ) = k1 (x, x0 )k2 (x, x0 )                の証明 K1 K2 行列  と  のテンソル積を N K = K1 K2 とする。 K1 K2 K1 テンソル積とは  の各成分に  の行列を掛け合わせ、  の 各成分の位置にその行列を置いたものをいう。 2つの半正定値行列のテンソル積は、それ自体が半正定値であ る。積の固有値は2コンポーネントの固有値の積すべてのペアだ からである。 13年3月10日日曜日 10
  • 11. k(x, x0 ) = k1 (x, x0 )k2 (x, x0 )                の証明続き k1 k2 H K1 K2 関数   に対応する行列  を  と  のシューア積とい う。この成分は対応する2つのコンポーネントの成分ごとの積と なる。 H K K K 行列  は  の主部分行列である(  の主部分行列とは、 の部 分行列で、行の集合と列の集合が同じ添字集合からなる行列をい w 2 RN う)。したがって任意の     に対して、 wT Hw = w1 Kw1 > 0 T N2 w1 2 R H を満たすような対応      が存在し、したがって  は半 正定値行列となる。 k1 k2 よって    はカーネル関数である。 13年3月10日日曜日 11
  • 12. これらの性質を用いると、より複雑なカーネルを構成すること k(x, x0 ) が可能になる。なお、カーネル     は、 ・対称 ・半正定値 x と 0 の適切な類似度である ・適用先の問題領域における  x ことが必要である。 13年3月10日日曜日 12
  • 13. 多項式カーネルの一般化 k(x, x0 ) = (xT x0 )2           は2次の項のみを含む。 0 T 0 2 k(x, x ) = (x x + c) (c > 0)                   は2次までの項を持つ。 k(x, x0 ) = (xT x0 )M M            は  次の項すべてをもつ。 0 T 0 M k(x, x ) = (x x + c) (c > 0) M                   は  次までのすべての 次数の項をもつ。 これらはすべて有効なカーネル関数である。 13年3月10日日曜日 13
  • 14. ガウスカーネル k(x, x0 ) = exp( kx x0 k2 /2 2 ) カーネル法の文脈では、これは確率密度関数としては解釈され ず、したがって正規化のための定数は省かれている。 kx x0 k2 = xT x 2xT x0 + (x0 )T x0                     と展開すると、 ✓ T ◆ ✓ T 0◆ ✓ 0 T 0 ◆ 0 x x x x (x ) x k(x, x ) = exp 2 exp 2 exp 2 2 2 となる。これは有効なカーネル関数である。 ※  はカーネル関数の広がりを制御するパラメータである。 x0 から遠く離れている広範囲の ※  が大きい場合は入力データ  サポートベクトルが識別に寄与することになる。 13年3月10日日曜日 14
  • 15. 演習 6.11 xT x0 exp( 2 )       を、べき級数展開することによって、ガウスカーネ ルは、無限次元の特徴ベクトルの内積で表されることを示せ。 ✓ ◆ M ! M ✓ ◆ T x x 0 X 0 xi xi Y 0 xi xi exp 2 = exp = exp i=1 i=1 ✓ ◆ 1 X ✓ ◆n xi x0 i 1 xi x0 i exp = n=0 n! 1 X 1 ⇣ x ⌘ n 1 ✓ x 0 ◆n i i = p p n=0 n! n! T 0 = xi xi 13年3月10日日曜日 15
  • 16. 演習 6.11 続き ここで、  xiと 0 はそれぞれ、 xi ⇣ x ⌘n ✓ 0 ◆n 1 i 1 xi p , p (n = 0, 1, 2, · · · ) n! n! の無限の要素をもつベクトルである。 よって、ガウスカーネルは、無限次元の特徴ベクトルの内積で表 される。 13年3月10日日曜日 16
  • 17. ガウスカーネルは、必ずしもユークリッド距離に限定されたもの ではない。 ✓ T ◆ ✓ T 0 ◆ ✓ 0 T 0 ◆ 0 x x x x (x ) x k(x, x ) = exp exp exp 2 2 2 2 2 T 0 0 x x (x, x ) の   を非線形カーネル     で置き換えれば、次のよう なカーネルが得られる。 ⇢ 0 1 0 0 0 k(x, x ) = exp 2 ((x, x) 2(x, x ) + (x , x )) 2 13年3月10日日曜日 17
  • 18. カーネル法の考え方によって得られる重要な利点は、入力が実数 値ベクトルだけではなく、記号であるような場合にも適用できる ことである。 グラフ、集合、文字列、テキスト文書などのさまざまな対象に対 して、カーネル関数が定義されている。 例)対象としてある集合を考え、この集合のすべての部分集合で 構成される、ベクトル形式を持たない入力空間を定義する。 A1 A2   と  をこのような部分集合とすると、カーネル関数のひと つの定義としては、以下のようなものが考えられる。 k(A1 , A2 ) = 2|A1 A2 | A1 A2 |A| A ここで、     は  と  の共通集合とし、  を  に A1 A2 含まれる要素の数とする。 13年3月10日日曜日 18
  • 19. 別の強力なアプローチとして、確率的生成モデルからカーネル関 数を構成する方法がある。これによって、生成モデルを分類に用 いることができる。 生成モデルは、欠損データを自然に扱うことができ、また、隠れ マルコフモデルなどを使えば可変長の配列を扱うことができる。 一方、識別モデルは、分類問題においては生成モデルよりも一般 に性能が良いことが知られている。 これら2つのアプローチを組み合わせることは、しばしば興味の 対象となる。これを実現する方法のひとつとして考えられるの は、生成モデルを用いてカーネルを定義し、このカーネルを用い て識別アプローチをとるという方法である。 13年3月10日日曜日 19
  • 20. p(x) 生成モデル   が与えられたとき、カーネルを以下のように定 義する。 k(x, x0 ) = p(x)p(x0 ) x と 0 の確率が共に大きいとき このカーネルでは、2つの入力  x に、2つの入力が似ているとみなされる。 さらに、複数の確率分布があるときに、確率分布の積の和を考え ることによって、以下のように拡張することができる。 X k(x, x0 ) = p(x|i)p(x0 |i)p(i) (p(i) > 0) i これは全体を定数倍すれば、混合分布に等しくなる。 i 混合要素を指定する は、「潜在」変数であると解釈できる。 13年3月10日日曜日 20
  • 21. 無限個の構成要素の和を考えることで、次のようなカーネルを考 えることができる。 Z k(x, x0 ) = p(x|z)p(x0 |z)p(z) z ここで、  は連続値をとる潜在変数である。 13年3月10日日曜日 21
  • 22. 隠れマルコフモデル X = {x1 , · · · , xL } データの長さ  の配列、つまり入力変数が           L の形であたえられる場合を考える。 配列の生成モデルとしてよく使われるものとしては、隠れマルコ フモデルがある。隠れマルコフモデルは、   の分布を、対応 p(X) Z = {z1 , · · · , zL } する隠れ変数          について周辺化したものとし て表す。このアプローチにより、混合表現を拡張して、2つの配 0 列  と  の類似度を測るカーネル関数が定義できる。 X X X 0 0 k(X, X ) = p(X|Z)p(X |Z)p(Z) Z このモデルは2つの配列の長さが異なる場合にも容易に拡張が可 能である。 13年3月10日日曜日 22
  • 23. フィッシャーカーネル 生成モデルを用いてカーネル関数を定義する別の方法としては、 ✓ フィッシャーカーネルがよく知られている。パラメータ  を持 p(x|✓) つ、パラメトリックな生成モデル    を考える。 フィッシャースコアを g(✓, x) = r✓ ln p(x|✓) T フィッシャー情報量行列を F = Ex [g(✓, x)g(✓, x) ] と定義し、フィッシャーカーネルを 0 T 1 0 k(x, x ) = g(✓, x) F g(✓, x ) と定義する。 これはモデルのパラメータ空間における微分幾何を考える情報幾 何の考えに基づいたものである。 13年3月10日日曜日 23
  • 24. 実際の利用においては、フィッシャー情報量行列を計算するのは 不可能であるため、期待値を単純平均で置き換える。 XN 1 T F' g(✓, xn )g(✓, xn ) N x=1 より簡単に、フィッシャー情報量行列を省いて、次のように定義 することもある。 0 T 0 k(x, x ) = g(✓, x) g(✓, x ) フィッシャーカーネルの応用例としては、文書検索の例などがあ る。 13年3月10日日曜日 24
  • 25. シグモイドカーネル k(x, x0 ) = tanh(axT x0 + b) シグモイドカーネルのグラム行列は必ずしも半正定値にならない が、実用的には以前からよく使用されている。 シグモイドカーネルを使うと、サポートベクトルマシンとニュー ラルネットワークが表層的に類似したものになる。 基底関数が無限にある場合には、適当な事前分布をもつベイズ ニューラルネットワークは、ガウス過程に一致し、ニューラル ネットワークとカーネル法のより深いつながりが明らかになる。 13年3月10日日曜日 25