next up previous
次へ: いろいろなカーネルマシン 上へ: [チュートリアル講演] カーネルマシン 戻る: PAC による汎化能力の評価

いろいろなカーネル

SVM ではカーネルをどう選ぶかが実用的な性能に大きく影響する. そこでカーネルを設計したり,カーネルをも適応的に変化させるような 研究が盛んに行われている.

最近ではバイオインフォマティクスやデータ・テキストマイニングといった 問題にカーネル法を適用することも多いので,入力空間 $\cal X$ として 実数ベクトルだけでなく,文字列やグラフといったものを対象とすることも 多い. そういった複雑なものからいかに効率的にカーネル関数を計算するか も研究対象となっている.

代表的なものにストリングカーネルと呼ばれるものがあり,これは 有限アルファベット系列 $\mbox{\boldmath$u$}$, $\mbox{\boldmath$v$}$ があったとき, それらに共通して含まれる部分文字列の数を $k(\mbox{\boldmath$u$},\mbox{\boldmath$v$})$ の 値とするものである. この計算は再帰的な処理により効率的に行うことができ,長さ $r$ の部分文字 列までの計算が ${\cal O}(r \vert\mbox{\boldmath$u$}\vert\vert\mbox{\boldmath$v$}\vert)$ のオーダーの計算量で 済むことが知られている.

また,あるカーネルから別のカーネルを作ったり,複数のカーネルの組み合わせ によってより適切なカーネルを作ることができる.

Mercer カーネル $k_1(\mbox{\boldmath$x$},\mbox{\boldmath$y$}), k_2(\mbox{\boldmath$x$},\mbox{\boldmath$y$})$ があったとき, 以下で計算される $k(\mbox{\boldmath$x$},\mbox{\boldmath$y$})$ も Mercer カーネルとなる. なお簡単のため $k(\mbox{\boldmath$x$},\mbox{\boldmath$y$})$ 等を単に $k$ と略記する. $k = k_1 + k_2$; $k = c k_1$; $k = k + c$; $k = k_1 k_2$; $k = (k_1 + c)^m$; $k = \exp(k_1 / c)$; ただし $c>0$, $m$ は自然数. 他に,コンフォーマル変換 $k = c(\mbox{\boldmath$x$})c(\mbox{\boldmath$y$})k_1(\mbox{\boldmath$x$},\mbox{\boldmath$y$})$ も半正定値性を保存する ( $c(\mbox{\boldmath$x$})\ge0$).

SVM の性能を上げるためにカーネルを変形・学習するという研究はいくつか ある. Amari ら[4]はカーネル関数が定める入力空間の計量を定義し, サポートベクターの付近の解像度を上げるようにカーネルにコンフォーマル変換 を行うアプローチを検討している. また,筆者[3]は,SVM が特徴空間のマージンを最大化するのに対して, 入力空間でのマージンを最大化したほうが自然な場合があるのではないかという 考えからカーネルを変形するのと類似のアルゴリズムを提案した.

さて,Mercer カーネルをサンプルに対して計算して行列の形にしたものは, 結局は半正定値行列である. 半正定値行列は平均 0 の正規分布の分散と 同一視することにより,情報幾何的な扱いが可能となる[14]. Tsuda ら[22]はカーネル行列に欠損値があるとき,補助的な 情報を使ってその欠損値を EM アルゴリズムを用いて補完する方法を提案した. その他バイオインフォマティクスなどへの応用に関するカーネル設計については 津田[20]を参照されたい.



Shotaro Akaho 平成15年7月18日