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

26
パターン認識と機械学習 §6.2 カーネル関数の構成 PRML復々習レーン #9 2013/3/10(日) ぷるうぬす@Prunus1350 1 13310日日曜日

Upload: prunus-1350

Post on 03-Jul-2015

2.397 views

Category:

Education


0 download

DESCRIPTION

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

TRANSCRIPT

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

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

PRML復々習レーン #92013/3/10(日)

ぷるうぬす@Prunus1350

113年3月10日日曜日

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

• カーネル関数を構成するには?(1)特徴空間への写像   を考え、これをもとに対応するカーネルを構成する。

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

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

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

k(x, x0) = �(x)T�(x0) =MX

i=1

�i(x)�i(x0)

�(x)

213年3月10日日曜日

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

(2)の簡単な例

2次元の入力空間       を考えると、対応する特徴空間への非線形写像を得ることができる。

特徴空間への写像は               の形を持つことが分かる。

k(x, z) = (xTz)2

x = (x1, x2)

k(x, z) = (xTz)2 = (x1z1 + x2z2)2

= x

21z

21 + 2x1z1x2z2 + x

22z

22

= (x21,p2x1x2, x

22)(z

21 ,p2z1z2, z22)

T

= �(x)T�(z)

�(x) = (x21,p2x1x2, x

22)

T

313年3月10日日曜日

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

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

�(x)

関数     が有効なカーネルである

任意の   に対して、要素が      で与えられるグラム行列  が半正定値である

k(x,x0)

{xn} k(xn,xm)

K

必要十分条件

413年3月10日日曜日

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

付録Cより

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

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

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

A w

A

�i > 0

A ⌫ 0wTAw > 0

513年3月10日日曜日

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

グラム行列の成分がカーネル関数  であるとき、この行列をカーネル行列という。

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

と書く。

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

K

K 1 2 · · · N1 (x1,x1) (x1,x1) · · · (x1,xN )2 (x2,x1) (x2,x2) · · · (x2,xN )...

......

. . ....

N (xN ,x1) (xN ,x2) · · · (xN ,xN )

613年3月10日日曜日

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

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

k(x,x0) = ck1(x,x

0)

k(x,x0) = f(x)k1(x,x

0)f(x0

)

k(x,x0) = q(k1(x,x

0))

k(x,x0) = exp(k1(x,x

0))

k(x,x0) = k1(x,x

0) + k2(x,x

0)

k(x,x0) = k1(x,x

0)k2(x,x

0)

k(x,x0) = k3(�(x),�(x

0))

k(x,x0) = x

TAx

0

k(x,x0) = ka(xa,x

0a) + kb(xb,x

0b)

k(x,x0) = ka(xa,x

0a)kb(xb,x

0b)

    は定数   は任意の関数   は非負の係数をもつ多項式    は から   への関数     は   で定義された有効なカーネル  は対称な半正定値行列   と  は        であるような変数   と  はそれぞれの特徴空間において有効なカーネル関数

c > 0f(·)q(·)�(x) x RM

k3(·, ·) RM

Axa xb x = (xa,xb)

ka kb

713年3月10日日曜日

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

                の証明

       より

   は半正定値行列

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

k(x,x0) = ck1(x,x0) (c > 0)

wTK1w > 0 wT(cK1)w > 0

) cK1

ck1

(w 2 RN )

813年3月10日日曜日

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

                の証明

                     より

      は半正定値行列

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

k(x,x0) = k1(x,x0) + k2(x,x0)

wTK1w > 0, wTK2w > 0

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

) K1 +K2

k1 + k2

(w 2 RN )

913年3月10日日曜日

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

               の証明

行列  と  のテンソル積を

とする。

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

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

k(x,x0) = k1(x,x0)k2(x,x0)

K1 K2

K = K1N

K2

K1 K2 K1

1013年3月10日日曜日

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

               の証明続き

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

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

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

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

k(x,x0) = k1(x,x0)k2(x,x0)

H K1 K2

H K K K

w 2 RN

w1 2 RN2

wTHw = wT1 Kw1 > 0

H

k1k2

k1k2

1113年3月10日日曜日

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

これらの性質を用いると、より複雑なカーネルを構成することが可能になる。なお、カーネル     は、

・対称

・半正定値

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

ことが必要である。

k(x,x0)

x

x

0

1213年3月10日日曜日

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

多項式カーネルの一般化

          は2次の項のみを含む。

                  は2次までの項を持つ。

           は  次の項すべてをもつ。

                  は  次までのすべての次数の項をもつ。

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

k(x,x0) = (xTx

0)2

k(x,x0) = (xTx

0 + c)2 (c > 0)

k(x,x0) = (xTx

0)M

k(x,x0) = (xTx

0 + c)M (c > 0)

M

M

1313年3月10日日曜日

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

ガウスカーネル

カーネル法の文脈では、これは確率密度関数としては解釈されず、したがって正規化のための定数は省かれている。

                    と展開すると、

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

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

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

k(x,x0) = exp(�kx� x

0k2/2�2)

kx� x

0k2 = x

Tx� 2xT

x

0 + (x0)Tx0

�x

0

k(x,x0) = exp

✓�x

Tx

2�2

◆exp

✓x

Tx

0

�2

◆exp

✓� (x

0)

Tx

0

2�2

1413年3月10日日曜日

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

演習 6.11

      を、べき級数展開することによって、ガウスカーネルは、無限次元の特徴ベクトルの内積で表されることを示せ。exp(

x

Tx

0

�2 )

exp

✓x

Tx

0

2

◆= exp

MX

i=1

xi

x

0i

!=

MY

i=1

exp

✓xi

x

0i

exp

✓xi

x

0i

◆=

1X

n=0

1

n!

✓xi

x

0i

◆n

= x

Ti x

0i

=1X

n=0

1pn!

⇣xi

⌘n 1pn!

✓x

0i

◆n

1513年3月10日日曜日

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

演習 6.11 続き

ここで、  と  はそれぞれ、

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

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

xi x

0i

1pn!

⇣xi

⌘n,

1pn!

✓x

0i

◆n

(n = 0, 1, 2, · · · )

1613年3月10日日曜日

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

ガウスカーネルは、必ずしもユークリッド距離に限定されたものではない。

の   を非線形カーネル     で置き換えれば、次のようなカーネルが得られる。

k(x,x0) = exp

✓�x

Tx

2�2

◆exp

✓x

Tx

0

�2

◆exp

✓� (x

0)

Tx

0

2�2

x

Tx

0 (x,x0)

k(x,x0) = exp

⇢� 1

2�2((x,x)� 2(x,x0

) + (x0,x0))

1713年3月10日日曜日

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

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

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

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

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

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

A1 A2

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

A1 \A2 A1 A2 |A| A

1813年3月10日日曜日

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

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

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

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

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

1913年3月10日日曜日

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

生成モデル   が与えられたとき、カーネルを以下のように定義する。

このカーネルでは、2つの入力  と  の確率が共に大きいときに、2つの入力が似ているとみなされる。

さらに、複数の確率分布があるときに、確率分布の積の和を考えることによって、以下のように拡張することができる。

これは全体を定数倍すれば、混合分布に等しくなる。

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

p(x)

k(x,x0) = p(x)p(x0)

x

x

0

k(x,x0) =X

i

p(x|i)p(x0|i)p(i) (p(i) > 0)

i

2013年3月10日日曜日

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

無限個の構成要素の和を考えることで、次のようなカーネルを考えることができる。

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

k(x,x0) =

Zp(x|z)p(x0|z)p(z)

z

2113年3月10日日曜日

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

隠れマルコフモデル

データの長さ  の配列、つまり入力変数が          の形であたえられる場合を考える。

配列の生成モデルとしてよく使われるものとしては、隠れマルコフモデルがある。隠れマルコフモデルは、   の分布を、対応する隠れ変数          について周辺化したものとして表す。このアプローチにより、混合表現を拡張して、2つの配列  と  の類似度を測るカーネル関数が定義できる。

このモデルは2つの配列の長さが異なる場合にも容易に拡張が可能である。

L X = {x1, · · · ,xL}

p(X)

Z = {z1, · · · , zL}

X X0

k(X,X0) =X

Z

p(X|Z)p(X0|Z)p(Z)

2213年3月10日日曜日

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

フィッシャーカーネル

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

フィッシャースコアを

フィッシャー情報量行列を

と定義し、フィッシャーカーネルを

と定義する。

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

✓p(x|✓)

g(✓,x) = r✓ ln p(x|✓)

F = Ex

[g(✓,x)g(✓,x)T]

k(x,x0) = g(✓,x)TF�1g(✓,x0)

2313年3月10日日曜日

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

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

より簡単に、フィッシャー情報量行列を省いて、次のように定義することもある。

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

F ' 1

N

NX

x=1

g(✓,xn)g(✓,xn)T

k(x,x0) = g(✓,x)Tg(✓,x0)

2413年3月10日日曜日

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

シグモイドカーネル

シグモイドカーネルのグラム行列は必ずしも半正定値にならないが、実用的には以前からよく使用されている。

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

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

k(x,x0) = tanh(axTx

0 + b)

2513年3月10日日曜日

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

ご清聴ありがとうございました。

2613年3月10日日曜日