こっちの サイトがわかりやすい。
こっちもいい。
データを非線形変換して、特徴空間に写像して、そのうえでSVMなどで分類する。この手法がカーネル法であり、非線形変換する関数をカーネル関数と呼ぶ
例えば、$(X, Y, Z)$を、$(X, Y, Z, X^2, Y^2, Z^2, XY, YZ, ZX, \cdots)$のように拡張する。このベキ展開は実際にも使われてる手法。こんな風にデータから新しいラベルを作って、それが有効に説明してるように頑張るのを、特徴量エンジニアリングという。
ただし、明らかに大変ですよね。次元が明らかに爆発するもんね。
カーネルによる内積の計算 #
データ空間の$\Omega$から、特徴空間$H$まで移す特徴写像の$\Phi : \Omega \to H$を考える。この$\Phi$は非線形な写像となる。
$H$の上では線形であるとやりやすいので、ベクトルとみなした時の内積が定義できると嬉しい。ただ、このままだと、バカデカい次元数になったときに、内積の計算も一苦労ですよね。
これを、うまいこと$H$での内積を計算することなく、データ空間$\Omega$での$\mathbf{X}_i, \mathbf{X}_j$について、何かしらの関数=カーネル関数で計算したするのを代用する、というのがカーネルトリック。再生核ヒルベルト空間でさえあればね。
記号としては$k(\mathbf{X}_i, \mathbf{X}_j)$を、特徴空間$H$の上の内積$<\Phi(\mathbf{x}_i), \Phi(\mathbf{x}_j)>$の代用とする感じ。
正定値カーネル #
カーネル関数に対して以下が成り立つなら正定値カーネル。
- $k(x, y) = k(y, x)$
- $\forall c_i, c_j \in \mathrm{R}, \forall x_i, x_j \in \chi \sum _{i = 1, j = 1}^{n} c_i c_j k(x_i, x_j) \geq 0$
2つ目の条件は、(i, j)成分を$k(x_i, x_j)$として、グラム行列となる。グラム行列なので、$A^{*} A$で書けたりもするし、当然半正定値である。理論元がエルミート行列なので、複素世界に行ったら$c_j$は共役となることをお忘れなく。
正定値カーネルはこういう性質を持つ。
- $\forall x, k(x, x) \geq 0$
- $|k(x, y)|^2 \leq k(x, x) k(y, y)$
- $\chi$の部分集合の$\chi_s$として、そこに制限しても正定値のカーネルとなる。
正定値カーネルは次のように拡張することもできる。
- 非負の定数関数は明らかにカーネル関数。
- $f$は任意の関数、$k$はカーネル関数。この時、$\hat{k}(x, y) = f(x) k(x, y) \bar{f(y)}$もカーネル関数。
- これ自体、正定値の式に簡単に変形できるので。つまりこれも簡単にグラム行列に。
そして、カーネルトリックを保証する最大の強さは、
$x \to \Phi(x)$なら、$\Phi(x) ^ T \Phi(y) = k(x, y)$ならば、正定値のカーネルである。つまり、何かしらの写像$\Phi(x)$に対して必ず該当のカーネル関数は存在する。
再生核ヒルベルト空間 #
ここでも見てな。
普通のヒルベルト空間は以下の条件を満たす。 こちらがわかりやすい。
- 三角不等式と線形性が成り立つ
- 完備性がある(コーシー列が常に収束) 上のことでもあるけど
- 内積が存在している
- 例えばユークリッド空間がいい例
どうやら$H$はこれを満たすものらしい。$\forall x \in \chi$で、$k_x \in H$が存在し、
$$ \forall f \in H, <f, k(\cdot, x)>_H = f(x) $$
これを再生性という。再生核ヒルベルト空間上の内積は$<\cdot, \cdot>_H$。
この中で、$k(y, x) = k_x (y)$となるカーネル$k$を再生核という。
正直ようわからんが、任意の関数に対してカーネル関数との内積を取ったら、それが$f(x)$っぽいってことかね。
再生核ヒルベルト空間の再生核$k$は、必ず正定値カーネルであり、ある再生核ヒルベルト空間に対して一意に決まる。
まあ色々あるがいったん飛ばそう。
カーネル法の実際 #
主成分分析を考える。普通に主成分分析するのと、ガウシアンカーネルに変換した後でやる。
ガウシアンカーネルの場合、$\sigma$が小さいと、細長い結果に。大きいと、線形の結果に近づく。
ちなみに、主成分以外はノイズとみなすことで、主成分分析はノイズ除去にも使えたりする。