ガウシアンカーネル、カーネル・トリック

  • カーネルトリックというのがある
  • カーネル関数を使って、データの次元を上げてやり、上げた次元で簡単な処理(線形処理)をした結果を返すことで、データのオリジナルな次元空間での非線形な出力を得るような時に使うのだが、トリックなのは、上げた次元での計算をせず、オリジナルの座標のみで計算して高次元処理の果実を取る、という部分
  • 簡単で次元の上げ幅が小さいカーネル関数としては、データの次元が2次元(x1,x2)の時に、(x1,x2,x3=x1*x2)という3次元にあげるものがある
  • また、次元の上げ幅は大きいが、簡単なカーネル関数として、ガウシアン・カーネルがある。ガウシアン・カーネルでは、オリジナルなデータ空間の「全ての点」に対して、カーネル関数を使うことで、「全ての点の次元=無限次元」にする
  • ガウシアン・カーネル正規分布の形をした関数だが、これを有限個のデータ点に適用するということは、ガウシアン・カーネルを使ったノンパラメトリック・分布推定をしているのと同じこと
  • ガウシアン・カーネルを使って無限次元空間に上げる、ということは、「滑らかな分布関数を推定する」ということ
  • 単なる分布推定だが、カーネル埋め込みの用語で言えば、その滑らかな関数が「無限の点に対応する値」を持つので、その無限の点のそれぞれを次元とした、無限次元空間を考えると、埋め込まれた先がヒルベルト空間の点になる、と説明される。このヒルベルト空間が再生核ヒルベルト空間
  • 実際、ガウシアン・カーネルによって再生核ヒルベルト空間上の点に対応させたとき、それは滑らかな分布関数だから、オリジナルの標本が示す、オリジナルな分布のモーメントの情報を持っている
  • カーネル関数の返り値は「密度関数」なので、密度の重みをつけてモーメント計算すること
  • 以下はそれを(自明な)1次元分布でやってみたもの