Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

7,938 views

Published on

2013/3/10(日) @株式会社VOYAGE GROUP セミナールーム Pangea

Published in: Education
  • Be the first to comment

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

  1. 1. パターン認識と機械学習 6.2 カーネル関数の構成 PRML復々習レーン #9 2013/3/10(日) ぷるうぬす@Prunus135013年3月10日日曜日 1
  2. 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. 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. 4. (x) より一般的には、   を明示的に構成することなく、関数が有 効なカーネルであるかどうかを簡単に調べる方法が望まれる。 k(x, x0 ) 関数     が有効なカーネルである 必要十分条件 {xn } k(xn , xm ) 任意の   に対して、要素が      で K 与えられるグラム行列  が半正定値である13年3月10日日曜日 4
  5. 5. 付録Cより A w Aw > 0 T w の値に対して        正方行列  がすべてのベクトル  A A⌫0 を満たすとき、 は半正定値行列であると言われ、    と表 す。 i > 0 これは、半正定値行列のすべての固有値が    を満たすこと と同値である。 ※ 行列のすべての要素が非負であることとは異なることに注意 する。13年3月10日日曜日 5
  6. 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. 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 b13年3月10日日曜日 7
  8. 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. 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. 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. 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. 12. これらの性質を用いると、より複雑なカーネルを構成すること k(x, x0 ) が可能になる。なお、カーネル     は、 ・対称 ・半正定値 x と 0 の適切な類似度である ・適用先の問題領域における  x ことが必要である。13年3月10日日曜日 12
  13. 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. 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. 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 xi13年3月10日日曜日 15
  16. 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. 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 )) 213年3月10日日曜日 17
  18. 18. カーネル法の考え方によって得られる重要な利点は、入力が実数 値ベクトルだけではなく、記号であるような場合にも適用できる ことである。 グラフ、集合、文字列、テキスト文書などのさまざまな対象に対 して、カーネル関数が定義されている。 例)対象としてある集合を考え、この集合のすべての部分集合で 構成される、ベクトル形式を持たない入力空間を定義する。 A1 A2   と  をこのような部分集合とすると、カーネル関数のひと つの定義としては、以下のようなものが考えられる。 k(A1 , A2 ) = 2|A1 A2 | A1 A2 |A| A ここで、     は  と  の共通集合とし、  を  に A1 A2 含まれる要素の数とする。13年3月10日日曜日 18
  19. 19. 別の強力なアプローチとして、確率的生成モデルからカーネル関 数を構成する方法がある。これによって、生成モデルを分類に用 いることができる。 生成モデルは、欠損データを自然に扱うことができ、また、隠れ マルコフモデルなどを使えば可変長の配列を扱うことができる。 一方、識別モデルは、分類問題においては生成モデルよりも一般 に性能が良いことが知られている。 これら2つのアプローチを組み合わせることは、しばしば興味の 対象となる。これを実現する方法のひとつとして考えられるの は、生成モデルを用いてカーネルを定義し、このカーネルを用い て識別アプローチをとるという方法である。13年3月10日日曜日 19
  20. 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. 21. 無限個の構成要素の和を考えることで、次のようなカーネルを考 えることができる。 Z k(x, x0 ) = p(x|z)p(x0 |z)p(z) z ここで、  は連続値をとる潜在変数である。13年3月10日日曜日 21
  22. 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. 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. 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. 25. シグモイドカーネル k(x, x0 ) = tanh(axT x0 + b) シグモイドカーネルのグラム行列は必ずしも半正定値にならない が、実用的には以前からよく使用されている。 シグモイドカーネルを使うと、サポートベクトルマシンとニュー ラルネットワークが表層的に類似したものになる。 基底関数が無限にある場合には、適当な事前分布をもつベイズ ニューラルネットワークは、ガウス過程に一致し、ニューラル ネットワークとカーネル法のより深いつながりが明らかになる。13年3月10日日曜日 25
  26. 26. ご清聴ありがとうございました。13年3月10日日曜日 26

×