複雑な数学を簡単なレベルに要約するのは難しいですが、この例は私が信じるのに役立ちます.
申し訳ありませんが、Stack Overflow はComputional Scienceのように数学マークアップをサポートしていないようです。そのため、くだらないテキスト ベースの数式に我慢する必要があります。ベクトルx = [ x 1 , x 2 ] なので、x 1はベクトルxの最初のコンポーネントです。
簡単にするために、トレーニング例ごとに 2 つの属性しかないと仮定して、データが 2 次元になるようにします。これら 2 つの属性を 3 つの属性の高次元にマップするマッピング関数を開発しました。マッピング関数は次のとおりです。
Φ( x ) = [ x 1 2 , x 2 2 , x 1 * x 2 ]
SVM ラグランジュ式では、次のようになります。
各トレーニング例は、別のトレーニング例との内積として表示されます (上の画像は、最初の式でこれを示しています)。マッピング関数を使用する場合は、トレーニング例ごとにプラグインします。
もちろん、この方法で行う場合は、トレーニング例ごとに Φ( x ) を明示的に計算する必要があります。次に、高次元空間で 2 つのベクトルの内積を計算します。2 つのベクトルxとyに対してこれを行うと、次のようになります。
Φ( x ) * Φ( y ) = [ x 1 2 , x 2 2 , x 1 * x 2 ] * [ y 1 2 , y 2 2 , y 1 * y 2 ] = x 1 2 * y 1 2 + x 2 2 * y 2 2 + x 1 * x 2 * y 1 *y 2
代わりに、次数が 2 の多項式カーネルK ( x , y ) = ( x * y ) dを使用したと想像してください。次のようになります。
K ( x , y ) = ( x 1 * y 1 + x 2 * y 2 ) 2 = x 1 2 * y 1 2 + x 2 2 * y 2 2 + x 1 * x 2 * y 1 * y 2
カーネル関数を使用すると、内積を計算する前に高次元空間を計算することを回避できましたが、それでもその高次元空間で 2 つのベクトルの内積が得られました。この場合、例を単純にして明示的に実行できるようにしましたが、マーサーの定理は、関数がマーサーの条件に従う限り、明示的なマッピングを知らなくても、他の関数についてこれが真であることを証明できることを示しています。カーネル パラメーターdがマッピングに大きく影響することがわかります。d = 3の場合、マッピングがまったく異なるため、カーネル パラメーターを変更すると高次元空間が変更されます。
高次元マッピングは明示的に使用されることはなく、最適なアルファを選択する方法としてのみ使用されるため、それが何であるかを実際に知る必要はなく、計算せずに利用できます。