2次元空間内の一連の点が与えられた場合、SVMの設計決定関数をどのように設計できますか


10

誰かがSVM決定関数の設計についてどう説明するか?または、具体的な例について説明しているリソースを参照してください。

編集

以下の例では、式X2=1.5がクラスを最大マージンで分離していることがわかります。しかし、どうすれば超平面の重みを調整し、方程式を次の形式で記述できますか。

H1:w0+w1x1+w2x21forYi=+1H2:w0+w1x1+w2x21forYi=1.

ここに画像の説明を入力してください

より高い次元について考える前に、(視覚化するのが簡単であるため)2D空間で基礎となる理論を正しく理解しようとしています。

私はこれの解決策を考え出しましたこれが正しいかどうか誰かが確認できますか?

重みベクトルは(0、-2)で、W_0は3です

H1:3+0x12x21forYi=+1H2:3+0x12x21forYi=1.

ここにRのイラストがありますが、アルゴリズム的な側面についての質問だと思います。この場合、目的のアプリケーションまたは使用可能なリソースについてもう少し詳細を追加できれば役立ちます。
2012年

私は詳細で質問更新しました@chl
ネアシュ

回答:


12

SVMに動機を与える方法は少なくとも2つありますが、ここではより簡単な方法をとります。

D={(x1i,x2i,yi)}yi{1,1}11

w0+w1x1+w2x2=0w0+w1x1+w2x2>0w0+w1x1+w2x2<0

[w0,w1,w2]w0+w1x1i+w2x2i0xiyi=1w0+w1x1i+w2x2i<0xiyi=1

そのような行が実際に存在すると仮定すると、次のように分類子を定義できます。

min|w0|+|w1|+|w2|subject to:w0+w1x1i+w2x2i0,xi with yi=1w0+w1x1i+w2x2i<0,xi with yi=1

上記の任意の目的関数を使用しましたが、現時点では、どの目的関数が使用されるかは問題ではありません。制約を満たすが必要なだけです。2つのクラスをその行で分離できるような行が存在すると想定しているため、上記の最適化問題の解決策が見つかります。w

上記はSVMではありませんが、分類子を提供します:-)。ただし、この分類子はあまり良くない場合があります。しかし、良い分類子をどのように定義しますか?通常、適切な分類子は、テストセットで良好に機能する分類子です。理想的には、トレーニングデータを分離する可能性のあるすべてのを調べ、テストデータでどれがうまく機能するかを確認します。ただし、無限のがあるため、これはまったく絶望的です。代わりに、適切な分類子を定義するためにいくつかのヒューリスティックを検討します。1つの発見的方法は、データを分割する線がすべてのポイントから十分に離れていることです(つまり、ポイントと線の間に常にギャップまたはマージンがあります)。これらの中で最高の分類子は、マージンが最大のものです。これは、SVMで使用されるものです。ww

代わりに、その主張のすべての点に対してととのすべての点については、と、我々はその主張すればすべての点についてととすべての点についてと、それから私たちは実際にはポイントがラインから遠く離れていると主張しています。この要件に対応する幾何学的マージンは。w0+w1x1i+w2x2i0xiyi=1w0+w1x1i+w2x2i<0xiyi=1w0+w1x1i+w2x2i1xiyi=1w0+w1x1i+w2x2i1xiyi=11w2

したがって、次の最適化問題が得られます: これを書くのは少し簡潔な形式ですが、 これは基本的にSVMの基本的な定式化です。簡潔にするために、私はかなりの議論をスキップしました。うまくいけば、私はまだアイデアのほとんどをやり遂げた。

max1w2subject to:w0+w1x1i+w2x2i1,xi with yi=1w0+w1x1i+w2x2i1,xi with yi=1
minw2subject to:yi(w0+w1x1i+w2x2i)1,i

サンプル問題を解決するCVXスクリプト:

A = [1 2 1; 3 2 1; 2 3 1; 3 3 1; 1 1 1; 2 0 1; 2 1 1; 3 1 1];
b = ones(8, 1);
y = [-1; -1; -1; -1; 1; 1; 1; 1];
Y = repmat(y, 1, 3);
cvx_begin
variable w(3)
minimize norm(w)
subject to
(Y.*A)*w >= b
cvx_end

補遺-幾何マージン

上記では、または一般的にようなを探すことをすでに要求しています。ここに表示されるLHSは機能マージンと呼ばれるため、ここで要求したのは機能マージンをです。次に、この機能的マージンの要件を前提として、幾何学的マージンの計算を試みます。wyi(w0+w1x1+w2x2)1yi(w0+wTx)11

幾何学的マージンとは何ですか?幾何学的マージンは、正の例のポイントと負の例のポイント間の最短距離です。さて、上記の必要な最短距離を持つポイントは、1以上の機能マージンを持つことができます。しかし、それらが超平面に最も近い、つまり、最短ポイントの機能マージンが完全に等しいという極端な場合を考えてみましょう。 to 1.正の例の点とし、となる点とし、負の例の点とし、。今、距離及びなり最短場合x+wTx++w0=1xwTx+w0=1x+xx+x 超平面に垂直です。

ここで、上記のすべての情報を使用して、幾何学的マージンであるを見つけようとします。 x+x2

wTx++w0=1
wTx+w0=1
wT(x+x)=2
|wT(x+x)|=2
w2x+x2=2
x+x2=2w2

[1]とどちらを選択するかは、実際には問題ではありません。選択した内容に一貫性を保つ必要があります。11


1
@nareshうん、これをcvxで解決すると、 -2、3]とまったく同じ解決策が得られました。w=[0,2,3]
TenaliRaman 2012年

1
@entropyありがとう、タイプミスを修正しました。幾何学的マージンの説明を追加します。
TenaliRaman 2013年

1
@entropy幾何学的マージンの説明で答えを更新しました。
TenaliRaman 2013年

1
@entropyは原点を通過する超平面です。すべての線形方程式の空間をカバーするには、バイアス項が必要です。2Dに存在する点を考えて、これらの点を区切る線を見つけようとしているとしましょう。ただし、これらの点はすべて第1象限にあります。これで、これらの点を分離できるように配置できますが、原点を通過する線によってはできません。ただし、適切なバイアスのあるラインはそれを行うことができます。wTx
TenaliRaman 2013

1
@entropy以上で、ポイントを適切に回転およびシフトすると、原点を通る線でもクラスを分離できるはずであることに気付いたかもしれません。ただし、バイアス項を学習するだけの場合と比較すると、通常、この正しい回転とシフトを見つけることは簡単ではありません。
TenaliRaman 2013
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.