次へ: マージン最大化と SVM
上へ: パーセプトロンからサポートベクタマシンへ
戻る: パーセプトロン
さて,線形分離可能でない場合にはどうすればよいだろうか.
そのためには
そのままではなく,いったん
を
高次元空間(特徴空間)に写像した
を
パーセプトロンに入れてやればよい.
一般に特徴空間の次元 を 以上にすればサンプルは線形分離可能になる.
そこで以下では入出力関数を
と定義する.
識別を誤ったサンプルに対して
に比例して重みを修正するので,
を初期値とすれば,学習終了時には
|
(1) |
という形になっている. これをパーセプトロンの入出力関数に
代入してやると
となる. さて,ここに出てくる二つの特徴空間の要素
と
の内積を
と書く. これが本講演の主役である カーネル関数
である.
入出力関数はカーネル関数を使って
と書ける. ここまでは単なる書き換えであるが,逆に勝手に持ってきた関数
が,ある特徴空間の内積の形になっていないかという
ことを考える. もしそれができれば,高次元への写像を計算してから
さらにその内積を取るという厄介なことをしなくても,簡単に計算できる
カーネル関数を代わりに使ってやればよいことになる.
実は は何でもよいというわけではない.
どんな関数なら内積の形に書けるかは,以下の定理で与えられる.
定理 1 (Mercerの定理)
の関数
が内積の形
|
(2) |
と書けるための必要十分条件は,
が対称関数
(
)であり,かつ,半正定値すなわち
任意の
に対して
を満たすことである. ただし,
は
の固有関数で,
ここで,入力空間を から任意の集合 に一般化した.
カーネルを用いた学習機械では,実数に限らず記号列でもグラフでも
うまくカーネルが定義できれば何でもよいというのが一つの特長である.
さて,Mercer の定理を満たすカーネルをMercer カーネルと呼ぶ.
Mercer カーネルについては後の節でも述べるが,ここでは代表的な
カーネル関数を挙げておく. ニューラルネットとの関連が深いのは
シグモイドカーネル
や RBF カーネル
である. また,
多項式カーネル
などもよく使われる.
Shotaro Akaho
平成15年7月18日