分離超平面とSVMのクラス境界との間のマージンは、このアルゴリズムの本質的な特徴です。
(1) w^tx+b>=1, if y=1
と(2) w^tx+b<=-1, if y=-1
の2つの超平面を参照してください。これは、ラベルy=1
を持つどのベクトルも、超平面の上または下にエーテルを置かなければならないことを示しています(1)
。ラベルy=-1
と超平面(2)
の場合も同様です。
注:これらの要件が満たされる場合、暗黙的に、データセットが線形に分離可能であることを意味します。このようなマージンを構築できないため、これは理にかなっています。
SVMが見つけようとしているのは、(1)
と(2)
の中間にある決定境界です。この境界を(3) w^tx+b=0
と定義しましょう。ここで見られるのは、同じパラメータw
とb
を共有しているため、(1)
,(2)
と(3)
はパラレル・ハイパープレーンです。パラメータw
は、それらの面の方向を保持します。ベクトルは常に方向と大きさ/長さを持ちます。
問題は次のとおりです。超平面をどのように計算できますか(3)
?式(1)
と(2)
は、ラベルy=1
が(3)
に最も近いベクトルが、超平面(1)
に正確にあるため、(1)
は、x
の場合はw^tx+b=1
になります。同様のことは、負のラベルを持つ最も近いベクトルと(2)
に適用されます。平面上のこれらのベクトルは「サポートベクトル」と呼ばれ、もう1つは、単純にサポートベクターについて(1)
から(2)
を減算して取得することができますので、決定境界(3)
は、それらに依存します。
w^tx+b-w^tx+b=1-(-1) => wt^x-w^tx=2
注:二つの平面のためx
があります異なるサポートベクター。
ここではw
の方向を取得したいと考えていますが、(3)
と他のプレーンの間の最短距離を得るには長さを無視します。この距離は、(3)
から他のものまでの垂直線分です。そうするために、w
の長さで除算して、(3)
に垂直なノルムベクトルを得ることができ、したがって(wt^x-w^tx)/||w||=2/||w||
。左のサイトを無視すると(等しい)、2つの平面間の距離は実際には2/||w||
であることがわかります。この距離は最大化する必要があります。
編集: 他の人がここで述べるように、これは原始SVMの最適化問題の凸形である用語 1/2 ||w||^2 s.t. y(w^tx+b)>=1
を最小限に抑えるためにラグランジュ乗数やSMOアルゴリズムを使用します。
SVMの要点は、マージンを最大にする超平面を記述する重みを見つけることです。したがって、マージンを使用してそれらの重みを見つけるのは最適化の問題です。 – Pedrom
これらのウェイトを見つけるためにマージンを使用する方法はありますか? –