サポート ベクター マシン (SVM)、初心者向けのブログ

サポート ベクター マシン (SVM)、初心者向けのブログ

目標: さまざまなクラスのサンプルを分離する超平面を見つけます。このような超平面は下図のように多数あると考えられますが、その中で汎化能力を高めたい超平面なので、太い方を選択する必要があります。この超平面にはどのような特徴があるのでしょうか? あの飛行機は「ど真ん中」の飛行機です!
ここに画像の説明を挿入

インターバルとサポートベクター

分割された超平面は次の線形方程式で記述されます:
w T x + b = 0 w^Tx+b=0wT ×+b=0
其中, w = ( w 1 ; w 2 ; … ; w d ) w=(w_1;w_2;…;w_d) w=( w1;w2;;wd)は超平面の方向を決定する法線ベクトル、b は超平面と原点の間の距離を決定する変位項目です。
任意の点 x から超平面までの距離は次のとおりです:
r = ∣ w T x + b ∣ ∣ ∣ w ∣ ∣ r=\frac{|w^Tx+b|}{||w||}r=∣∣ w ∣∣wT ×+b∣ _
サンプルを正しく分類するには、(xi, yi) ∈ D (x_i, y_i)\in D が必要です。( ×私はy私は)Dはい、yi = 1 y_i=1y私は=1 (正の例) の場合、w T xi + b > 0 w^Tx_i+b>0wT ×私は+b>0 ;若yi = − 1 y_i=-1y私は=1 (反例) の場合、w T xi + b < 0 w^Tx_i+b<0wT ×私は+b<0汎化のパフォーマンスを向上させるために、このギャップを広げたいため、上記の式をスケーリングしました (スケーリングが前提となっており、データは r 分離可能である必要があります。つまり、r と同じ幅の線があり、データは分離されています)2 ∣ ∣ w ∣ ∣ \frac{2}{||w||}に等しい∣∣ w ∣∣2したがって、不等式の右側は 1 です。もちろん、特別な問題が発生した場合は、r) を置き換えることができ、次のようになります。
ここに画像の説明を挿入
超平面に最も近い点により、上記の等号が成立するはずです。この最近接点は「サポート ベクター」と呼ばれます。超平面は、正の例と負の例のサポート ベクトルのちょうど中央に位置する必要があります。このとき、ポジティブ サポート ベクターとネガティブ サポート ベクターの間の距離は次のとおりです。
ここに画像の説明を挿入
視覚的な図は次のとおりです。
質問: r は大きいほど良いのでしょうか? それとも小さい方が良いのでしょうか?答えは明白で、2 つのカテゴリのデータが分離されると、大きいほど良いことになります。逆に、距離が小さければ、2種類のデータが特に分離されていないことを意味し、汎化能力が想像できる。
ここに画像の説明を挿入
上記の考えに従って、特定の条件下 (正の例と負の例の両方が正しく分類された場合) で距離 r を最大化する最適化関数を構築できます。
ここに画像の説明を挿入
機械学習では、最大化問題は常に最小化問題に変換され、上記の式は次のように書き換えることができます。
ここに画像の説明を挿入
これがサポート ベクター マシンの基本的なタイプです。次にwとbを解くにはどうすればいいでしょうか?「二重問題」を使って解決しましょう!

二重の問題

(理解できない場合はスキップしてください。この部分は、いくつかの数学的手法を使用して w と b を計算します。)
解決策全体のアイデアは、ラグランジュ乗数法を使用して変数α i \alpha_iを導入することです。ある私は、w と b の両方をα i \alpha_iに変換します。ある私はの式を、 α i \alpha_iを解くことによってある私は、さらに w と b を貸し出します。

  1. ラグランジュ乗数法の式:
    ここに画像の説明を挿入
    したがって、現在の最適化関数は次のようになります:
    minw , bmax α i L ( w , b , α ) min_{w,b}max_{\alpha_i}L(w,b,\alpha )_w b×ある私はL ( w ,b α )
    内側から外側に向かって計算する必要があるので、内部最大値 α i L ( w , b , α ) max_{\alpha_i}L(w,b,\alpha)×ある私はL ( w ,b α )は偏微分をとるのが難しいので変換してください! 変換先:
    max α iminw , b L ( w , b , α ) max_{\alpha_i}min_{w,b}L(w,b,\alpha)×ある私は_w bL ( w ,b α )
    このようにして、w と b の偏微分を内部的に求めることができます。Get:
    ここに画像の説明を挿入
    得られた式をL ( w , b , a ) L(w,b,a)L ( w ,b a )では、双対問題が得られます。
    ここに画像の説明を挿入
    条件は次のとおりです
    ここに画像の説明を挿入
    。この式を観察してください。x、y は誰もが知っており、すべての点と b の偏導関数をこの式に取り込むことによって得られた上記の条件を代入します。α i \alpha_iを見つけることができますある私は上。そして、wの偏微分をとった上式を代入するとwが得られます。
    双対問題に従って得られたα i \alpha_iが示されています。ある私は特定の条件、つまり kkt 条件を満たす必要があります。
    ここに画像の説明を挿入
    したがって、貸し出された一部の値がこの条件を満たさない場合、それらは破棄される必要があります。得られた結果の中には、0でないものもあれば、0であるものもある。次の式によれば、0の値はwの値に影響を及ぼさないことがわかり、この点はサポートベクターではないことがわかる。ではなく、0 の場合のみ w で動作し、そのポイントがサポート ベクターであることを示します。超平面はローカル データにのみ関連します。

ここに画像の説明を挿入
b を求める方法は? サポート ベクトルの場合は、 ysf ( xs ) = 1 y_sf(x_s)=1となります。ysf ( xs)=1の場合は、次
ここに画像の説明を挿入
の式ys 、 α i 、 yi 、 xi 、 xs y_s,\alpha_i,y_i,x_i,x_s をysある私はy私はバツ私はバツsこれらの変数はすべて既知ですが、b だけが不明であるため、b の値は簡単に取得できます。
ここまでで、超平面の表現ができました。

カーネル関数

以前のサポート ベクター マシンは線形分離可能なデータをうまく分類できましたが、線形分離不可能なデータはどうなるでしょうか? 分類はどのように行うのですか? 核となるアイデアは、2 次元データが線形分離不可能である場合、これらのデータ ポイントを 3 次元以上の次元にマッピングする方法を考えるということです。マッピングされたデータ ポイントは前のデータ ポイントを表すことができます。点は線形に分離可能であり、分類のために高次元空間で超平面を見つけます。以下に示すように。
ここに画像の説明を挿入
元の空間が有限次元である場合、つまり属性の数が制限されている場合、サンプルを分離可能にする高次元の特徴空間が存在する必要があることが証明されています。
写像関係がx → ϕ ( x ) x\to \phi(x) であると仮定します。バツϕ ( x )
次に、前の章と同様に、最適化関数は次のようになります。
ここに画像の説明を挿入
双対問題は次のとおりです。
ここに画像の説明を挿入
右端 T\phi にϕ ( xi ) T ϕ ( xj ) \phi(x_i)^ が(x_j)ϕ ( x私は)T ϕ(xj)、これはサンプル マッピング後の内積ですが、計算が困難です。なぜ?マッピング後の次元は非常に高くなる可能性があるためです。この問題を回避するにはどうすればよいでしょうか? 数学的には、次のように、マッピング後の内積をマッピング前のデータ間の演算に変換できる関数を求めることができます(マッピング前のデータは有限次元なので簡単に計算できます)。
ここに画像の説明を挿入

κ ( xi , xj ) \kappa(x_i,x_j)k ( x私はバツj)はカーネル関数xi , xj x_i,x_jバツ私はバツj高次元空間での内積は、元のサンプル空間でカーネル関数によって計算された結果と等しくなります。
OK、一連の同様の計算の後、超平面が得られます。超平面は次のとおりです。
ここに画像の説明を挿入
通常、ϕ ( x ) \phi(x)ϕ ( x )はカーネル関数と 1 対 1 に対応する必要がありますが、実際には上記の条件を満たすカーネル関数は多くありません。一般的によく使用されるカーネル関数は次のとおりです。
ここに画像の説明を挿入

ソフトインターバル

前の説明では、超平面がすべてのデータを分離できるとデフォルト設定しましたが、実際には間違ったデータ ポイントが存在することがよくあり、これらのデータ ポイントがサポート ベクターとして使用される場合、超平面に大きな影響を与えることになります。 。超平面にいくつかの緩やかな条件を与えることはできますか。つまり、すべてのデータを完全に分離する必要はありません。これは汎化パフォーマンスの向上に役立ちます。この目的のために、「ソフト インターバル」が導入され、概略図は次のとおりです。
ここに画像の説明を挿入
この目的のために、前の最適化関数がスラック変数に導入されます。
ここに画像の説明を挿入
ここに画像の説明を挿入
条件は緩和されます。つまり、完全に最適化する必要はありません。 1 以上。このスラック変数は、サンプルが制約を満たさない程度を特徴付けるために使用されます。前のラグランジュ乗数法を引き続き使用して双対問題を解くと、w と b が得られます。

要約する

思考と計算: サポート ベクター マシンのアイデアは、サンプルを分離する超平面を見つけることです。この超平面は 2 種類のデータの中央にある必要があり、間隔が大きいほど良いです。間隔が大きいほど、最適化関数を構築でき、ラグランジュ乗数法を使用してそれを解くことができます。
カーネル関数: 線形分離できないサンプルについては、線形分離できるようにサンプルを高次元空間にマッピングすることを試みます。これによりマッピング関数が導入されますが、計算中にマッピングされた内積を計算することは困難です。 process なので、マッピング後の内積演算をマッピング前のサンプル演算に変換するカーネル関数が導入されています。また、一般的に使用されるカーネル関数はほんのわずかです。
ソフトインターバル: 最後に、一部の間違ったデータの干渉を防ぎ、汎化パフォーマンスを向上させるためです。超平面上の制約を緩和するために、ソフト マージンが導入されました。スラック変数は、制約が満たされない度合いを特徴づけます。

おすすめ

転載: blog.csdn.net/no1xiaoqianqian/article/details/127580570