5

フィードバックがなく、時間に敏感な質問であるため、これをmath.stackexchange.comから相互投稿しています。


私の質問は、サポート ベクター マシンにおける超平面による線形分離可能性に関するものです。

ウィキペディアによると:

...正式には、サポートベクターマシンは、分類、回帰、またはその他のタスクに使用できる、高次元または無限次元の空間に超平面または超平面のセットを構築します。直感的には、任意のクラスの最も近いトレーニング データ ポイント (いわゆる関数マージン) までの最大距離を持つ超平面によって適切な分離が達成されます。これは、一般に、マージンが大きいほど、classifier.classifier の一般化エラーが低くなるためです。

超平面によるクラスの線形分離は、直感的に理解できます。そして、2 次元幾何学の線形分離可能性を理解していると思います。ただし、一般的な SVM ライブラリ (libSVM) を使用して SVM を実装していますが、数値をいじると、SVM がクラス間で曲線を作成する方法や、カテゴリ 1 の中心点を円形の曲線で囲む方法を理解できません。 n 次元空間 V の超平面が次元 n − 1 の「平坦な」部分集合である場合、または 2 次元空間の場合はカテゴリ 2 の点で囲まれています (1D 線)。

これが私が意味することです:

2D バイナリ SVM の円で囲まれたクラス分離

それは超平面ではありません。それは円形です。これはどのように作動しますか?それとも、2 次元の 2D 入力フィーチャよりも多くの次元が SVM 内にありますか?


このサンプル アプリケーションは、ここからダウンロードできます。


編集:

包括的な回答をありがとう。そのため、SVM はカーネル関数を使用することで、奇妙なデータをうまく分離できます。データを SVM に送信する前に線形化することは役に立ちますか? たとえば、私の入力フィーチャ (数値) の 1 つには、カテゴリ 1 にきちんと収まる転換点 (たとえば 0) がありますが、0 より上と下ではカテゴリ 2 に収まります。分類が SVM のこの機能の絶対値を送信するのに役立ちますか?

4

7 に答える 7

12

mokus が説明したように、サポート ベクター マシンはカーネル関数を使用して、線形分離可能な特徴空間にデータを暗黙的にマッピングします。

ある特徴空間を別の特徴空間にマッピングする SVM

さまざまな種類のデータに対して異なるカーネル関数が使用されます。余分な次元 (機能) が画像の変換によって追加されることに注意してください。ただし、この機能はメモリ内で具体化されることはありません。

(イラストは U. Sussex の Chris Thorntonから)

于 2010-10-22T14:18:19.723 に答える
9

より高い次元にマッピングされたときに平面によって分離可能になる線形分離不可能な点の例を示すこのYouTube ビデオを確認してください。

代替テキスト

于 2010-10-23T03:34:55.167 に答える
3

私は SVM に詳しくありませんが、私の研究から思い出すと、それらは「カーネル関数」と一緒に使用されることがよくあります。基本的には、空間を効果的に非線形化する標準の内積の代わりです。これは、空間から線形分類器が適用される「作業空間」に非線形変換を適用し、その結果を元の空間に戻すこととほぼ同等です。元の空間では、分類器が動作する線形部分空間が線形ではなくなります。

ウィキペディアの記事では、サブセクション「非線形分類」でこれについて言及しており、技術をより一般的に説明しているhttp://en.wikipedia.org/wiki/Kernel_trickへのリンクがあります。

于 2010-10-22T14:00:21.550 に答える
2

これは、[Kernel Trick](http://en.wikipedia.org/wiki/Kernel_trick)として知られているものを適用することによって行われます。基本的に行われるのは、既存の入力空間で何かが線形分離可能でない場合(2-Dあなたの場合)、これが分離可能であるより高い次元に投影されます。カーネル関数(非線形の場合もあります)を適用して、機能空間を変更します。次に、すべての計算がこの特徴空間で実行されます(これも無限の次元である可能性があります)。

入力の各ポイントは、このカーネル関数を使用して変換され、それ以降のすべての計算は、これが元の入力スペースであるかのように実行されます。したがって、ポイントはより高い次元(おそらく無限)で分離可能である可能性があり、したがって、より高い次元の線形超平面は元の次元では線形ではない可能性があります。

簡単な例として、XORの例を考えてみましょう。Input1をX軸に、Input2をY軸にプロットすると、出力クラスは次のようになります。

  1. クラス0:(0,0)、(1,1)
  2. クラス1:(0,1)、(1,0)

ご覧のとおり、2次元では線形に分離できません。しかし、これらの順序対を3Dで取得する場合(3Dで1ポイント移動するだけで)、次のように言います。

  1. クラス0:(0,0,1)、(1,1,0)
  2. クラス1:(0,1,0)、(1,0,0)

これで、これら2つのクラスを線形に分離する平面が3Dにあることが簡単にわかります。

したがって、入力を十分に大きな次元(おそらく無限)に投影すると、その次元でクラスを線形に分離できます。

ここで注意すべき重要な点の1つは(おそらく他の質問にも答えます)、カーネル関数を自分で作成する必要がないことです(上記で作成したように)。良い点は、カーネル関数が自動的に入力を処理し、それを「線形化」する方法を理解することです。

于 2013-02-19T22:24:41.940 に答える
1

2 次元空間で与えられた問題の SVM の例では、x1、x2 を 2 つの軸とします。変換関数 F = x1^2 + x2^2 を使用して、この問題を 1 次元空間の問題に変換できます。変換された空間で、点 (F 軸のしきい値) を簡単に線形に分離できることに注意して注意してください。ここで、変換された空間は [F] (1 次元) でした。ほとんどの場合、次元を増やして線形に分離可能な超平面を取得します。

于 2011-11-27T21:23:51.377 に答える
0

SVMクラスタリング

http://www.biomedcentral.com/1471-2105/8/S7/S18/figure/F4

HTH

于 2010-10-22T14:25:44.573 に答える
0

以前の質問に対する私の答えは、この場合に何が起こっているのかを明らかにするかもしれません。私が示す例は非常に不自然であり、SVM で実際に何が起こるかではありませんが、直感的に理解できるはずです。

于 2010-10-22T18:07:13.197 に答える