パターン認識と機械学習 §6.2 カーネル関数の構成
DESCRIPTION
2013/3/10(日) @株式会社VOYAGE GROUP セミナールーム PangeaTRANSCRIPT
パターン認識と機械学習§6.2 カーネル関数の構成
PRML復々習レーン #92013/3/10(日)
ぷるうぬす@Prunus1350
113年3月10日日曜日
• カーネル関数を構成するには?(1)特徴空間への写像 を考え、これをもとに対応するカーネルを構成する。
(2)カーネル関数を直接定義する。
• 与えた関数がカーネル関数として有効であることを保証する必要がある。
• 言い換えれば、ある特徴空間におけるスカラー積であることを保証する必要がある。
k(x, x0) = �(x)T�(x0) =MX
i=1
�i(x)�i(x0)
�(x)
213年3月10日日曜日
(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日日曜日
より一般的には、 を明示的に構成することなく、関数が有効なカーネルであるかどうかを簡単に調べる方法が望まれる。
�(x)
関数 が有効なカーネルである
任意の に対して、要素が で与えられるグラム行列 が半正定値である
k(x,x0)
{xn} k(xn,xm)
K
必要十分条件
413年3月10日日曜日
付録Cより
正方行列 がすべてのベクトル の値に対して を満たすとき、 は半正定値行列であると言われ、 と表す。
これは、半正定値行列のすべての固有値が を満たすことと同値である。
※ 行列のすべての要素が非負であることとは異なることに注意する。
A w
A
�i > 0
A ⌫ 0wTAw > 0
513年3月10日日曜日
グラム行列の成分がカーネル関数 であるとき、この行列をカーネル行列という。
標準的な表記法を用いて、この行列を
と書く。
左隅の の記号は、表がカーネル行列の表であることを示す。
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日日曜日
新たなカーネルを構築するための便利な方法は、より単純なカーネルを構成要素として用いることである。これには、次の性質を利用することができる。
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日日曜日
の証明
より
は半正定値行列
よって はカーネル関数である。
k(x,x0) = ck1(x,x0) (c > 0)
wTK1w > 0 wT(cK1)w > 0
) cK1
ck1
(w 2 RN )
813年3月10日日曜日
の証明
より
は半正定値行列
よって はカーネル関数である。
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日日曜日
の証明
行列 と のテンソル積を
とする。
テンソル積とは の各成分に の行列を掛け合わせ、 の各成分の位置にその行列を置いたものをいう。
2つの半正定値行列のテンソル積は、それ自体が半正定値である。積の固有値は2コンポーネントの固有値の積すべてのペアだからである。
k(x,x0) = k1(x,x0)k2(x,x0)
K1 K2
K = K1N
K2
K1 K2 K1
1013年3月10日日曜日
の証明続き
関数 に対応する行列 を と のシューア積という。この成分は対応する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日日曜日
これらの性質を用いると、より複雑なカーネルを構成することが可能になる。なお、カーネル は、
・対称
・半正定値
・適用先の問題領域における と の適切な類似度である
ことが必要である。
k(x,x0)
x
x
0
1213年3月10日日曜日
多項式カーネルの一般化
は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日日曜日
ガウスカーネル
カーネル法の文脈では、これは確率密度関数としては解釈されず、したがって正規化のための定数は省かれている。
と展開すると、
となる。これは有効なカーネル関数である。
※ はカーネル関数の広がりを制御するパラメータである。
※ が大きい場合は入力データ から遠く離れている広範囲のサポートベクトルが識別に寄与することになる。
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日日曜日
演習 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日日曜日
演習 6.11 続き
ここで、 と はそれぞれ、
の無限の要素をもつベクトルである。
よって、ガウスカーネルは、無限次元の特徴ベクトルの内積で表される。
xi x
0i
1pn!
⇣xi
�
⌘n,
1pn!
✓x
0i
�
◆n
(n = 0, 1, 2, · · · )
1613年3月10日日曜日
ガウスカーネルは、必ずしもユークリッド距離に限定されたものではない。
の を非線形カーネル で置き換えれば、次のようなカーネルが得られる。
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日日曜日
カーネル法の考え方によって得られる重要な利点は、入力が実数値ベクトルだけではなく、記号であるような場合にも適用できることである。
グラフ、集合、文字列、テキスト文書などのさまざまな対象に対して、カーネル関数が定義されている。
例)対象としてある集合を考え、この集合のすべての部分集合で構成される、ベクトル形式を持たない入力空間を定義する。
と をこのような部分集合とすると、カーネル関数のひとつの定義としては、以下のようなものが考えられる。
ここで、 は と の共通集合とし、 を に含まれる要素の数とする。
A1 A2
k(A1, A2) = 2|A1\A2|
A1 \A2 A1 A2 |A| A
1813年3月10日日曜日
別の強力なアプローチとして、確率的生成モデルからカーネル関数を構成する方法がある。これによって、生成モデルを分類に用いることができる。
生成モデルは、欠損データを自然に扱うことができ、また、隠れマルコフモデルなどを使えば可変長の配列を扱うことができる。
一方、識別モデルは、分類問題においては生成モデルよりも一般に性能が良いことが知られている。
これら2つのアプローチを組み合わせることは、しばしば興味の対象となる。これを実現する方法のひとつとして考えられるのは、生成モデルを用いてカーネルを定義し、このカーネルを用いて識別アプローチをとるという方法である。
1913年3月10日日曜日
生成モデル が与えられたとき、カーネルを以下のように定義する。
このカーネルでは、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日日曜日
無限個の構成要素の和を考えることで、次のようなカーネルを考えることができる。
ここで、 は連続値をとる潜在変数である。
k(x,x0) =
Zp(x|z)p(x0|z)p(z)
z
2113年3月10日日曜日
隠れマルコフモデル
データの長さ の配列、つまり入力変数が の形であたえられる場合を考える。
配列の生成モデルとしてよく使われるものとしては、隠れマルコフモデルがある。隠れマルコフモデルは、 の分布を、対応する隠れ変数 について周辺化したものとして表す。このアプローチにより、混合表現を拡張して、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日日曜日
フィッシャーカーネル
生成モデルを用いてカーネル関数を定義する別の方法としては、フィッシャーカーネルがよく知られている。パラメータ を持つ、パラメトリックな生成モデル を考える。
フィッシャースコアを
フィッシャー情報量行列を
と定義し、フィッシャーカーネルを
と定義する。
これはモデルのパラメータ空間における微分幾何を考える情報幾何の考えに基づいたものである。
✓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日日曜日
実際の利用においては、フィッシャー情報量行列を計算するのは不可能であるため、期待値を単純平均で置き換える。
より簡単に、フィッシャー情報量行列を省いて、次のように定義することもある。
フィッシャーカーネルの応用例としては、文書検索の例などがある。
F ' 1
N
NX
x=1
g(✓,xn)g(✓,xn)T
k(x,x0) = g(✓,x)Tg(✓,x0)
2413年3月10日日曜日
シグモイドカーネル
シグモイドカーネルのグラム行列は必ずしも半正定値にならないが、実用的には以前からよく使用されている。
シグモイドカーネルを使うと、サポートベクトルマシンとニューラルネットワークが表層的に類似したものになる。
基底関数が無限にある場合には、適当な事前分布をもつベイズニューラルネットワークは、ガウス過程に一致し、ニューラルネットワークとカーネル法のより深いつながりが明らかになる。
k(x,x0) = tanh(axTx
0 + b)
2513年3月10日日曜日
ご清聴ありがとうございました。
2613年3月10日日曜日