xiangze's sparse blog

機械学習、ベイズ統計、コンピュータビジョンと関連する数学について

カーネル法とグラム行列

多次元データの回帰、判別などの多変量解析においてベクトルとして表現されるデータを
処理しやすい空間(もとのデータより次元の高い場合が多い)に写像する方法としてカーネル法が知られています。
カーネル法は直感的にはベクトルの内積を拡張したものと見なせますが、RBF(ガウシアン)カーネル
 K(x_i,x_j)=exp(-|\bf{x_i} - \bf{x_j}|^2/\sigma^2)
多項式カーネル
 K(x_i,x_j)=(\bf{x_i \cdot x_j} +c)^d
と呼ばれる特定の数式に従ってもとのベクトルを多次元空間に写像する方法のほかに学習データベクトルの組x_i,x_jに対して正定値の要素を設定して作られるグラム行列
 K(\bf{x_i,x_j})=<\bf{x_i,x_j}>
カーネルとして用いる方法があります。
しかしグラム行列は既知の学習用データから作られるので、その次元は学習データの数によってきまり、データの次元の数ではありません。
このような場合に未知のデータの識別問題はどのように記述されるのか個人的にはいまいち理解できていませんでした。
これはヒルベルト空間の持ちうる再生性という性質で説明することができます。

サポートベクターマシン入門」の例3.11によれば回帰問題は学習ベクトル \bf{x_i} とそこから対応するラベル y_i \in \{1, -1 \}を生成する関数 t(x) (y_i=t(\bf{x_i}))カーネルK, それを用いた関数f(x)を用いて
 argmin_{ \{\alpha_i\} }(|f-t|^2) \bigl(=argmin_{ \{\alpha_i\} }(<(f-t) \cdot (f-t)> ) \bigr)
 f(\bf{x})\equiv \sum_{i=1}^{N} \alpha_i K(\bf{x_i},\bf{x})

と書かれます(Nは学習ベクトルの数)。ここで| |で書かれるノルム, <>で書かれる内積ヒルベルト空間上のものとします。この式は
 |f-t|^2=<(f-t) \cdot (f-t)>
=|f|^2-2 < t ( \bf{x} ) \cdot \sum_{i=1}^{N} \alpha_i K (\bf{x_i},\ bf{x} ) > +|t|^2
 =|f|^2-2 \sum_{i=1}^{N} \alpha_i < t( \bf{x} ) \cdot K(\bf{x_i}, \bf{x} ) > +|t|^2
 =\sum_{i=1}^{N} \sum_{j=1}^{N} \alpha_i \alpha_j K(\bf{x_i} , \bf{x_j}) -2 \sum_{i=1}^{N} \alpha_i t(\bf{x_i})+ |t|^2
 =\sum_{i=1}^{N} \sum_{j=1}^{N} \alpha_i \alpha_j K(\bf{x_i} , \bf{x_j}) -2 \sum_{i=1}^{N} \alpha_i y_i+ |t|^2
と変形され、グラム行列の要素K(x_i,x_j)に依存したベクトル \bf{\alpha}=\{ \alpha_i \}の2次形式になり、最適化問題として解くことができるようになるのですが、その最後の変形の第1項、第2項において再生性
 < f(x) \cdot K(x,z) >= f(z)
が使われています。
またfが上記の様な表記(双対表記)で表現できるのもヒルベルト空間のもつ性質(レプレゼンター定理)によっています。
以上の説明は「サポートベクターマシン入門」に書かれている通りのものなのですが、
id:echizen_tmさんの書かれている通り"SF小説を彷彿とさせる独特な翻訳の文体"であることから必要以上に難解な印象を持ってしまい、なかなか理解できませんでした。
http://d.hatena.ne.jp/echizen_tm/20110608/1307549165
再生性がいかなる場合に成立するかなどについてさらに理解を深めたいです。

サポートベクターマシン入門

サポートベクターマシンカーネル法多様体学習などの次元削減手法については「カーネル多変量解析」がわかりやすく、詳しいです。