Machine Learning Watermelon Book Notes: サポート ベクター マシン SVM (サポート ベクター マシン)

1. コンセプト


サポート ベクター マシン


分類学習の基本的な考え方: トレーニング サンプル セットD = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( xm , ym ) } , yi ∈ { − 1 , + 1 } D = \{(x_1,y_1),(x_2,y_2),....,(x_m,y_m)\}, y∈\{-1,+1\}D={ ( ×1y1) ( ×2y2) . . . . ( ×メートルyメートル) } はいはい_ε{ 1 ,+ 1 }、サンプル空間で分割超平面を見つけて、異なるカテゴリのサンプルを分離します
ここに画像の説明を挿入

サポート ベクター マシン: 線形分離可能なデータ セットの分類問題陽性サンプルと陰性サンプルの両方から最も遠い超平面モデル. (パーセプトロンの超平面解は一意ではないかもしれませんが、SVM 解は一意です)

  • 2 種類のサンプルの中間に位置するサンプルは、トレーニング サンプルの局所的な摂動に対する許容度が最も高く、分類結果が最もロバスト (ロバスト) であり、目に見えない例に対する一般化能力が最も強力です。

最強の一般化能力を持つ説明のために:

図に示すように、選択した超平面が赤で、正と負のサンプルからの距離が最も遠い場合、新しい正のサンプル (紫) は負のサンプルに分割されます。汎化能力は強くありません。

SVM によって検出された超平面は緑色で、一般化能力が高く、分類エラーが少ないです。
ここに画像の説明を挿入


サポート ベクトル サポート ベクトル


超平面に最も近いトレーニング サンプル ポイント

ここに画像の説明を挿入


超平面w ⃗ T x ⃗ + b = 0 \vec{w}^T\vec{x} + b= 0w Tバツ +b=0


超平面方程式とプロパティ


1. 超平面方程式: w ⃗ T x ⃗ + b = 0 \vec{w}^T\vec{x} + b= 0w Tバツ +b=0 (b is − θ -\thetaはニューラル ネットワークを思い出すとθ閾値)

  • n=1、超平面は点
  • n=2、超平面は直線
  • n=3、超平面は曲面

超平面は次のように書くことができます( w ⃗ , b ) (\vec{w}, b)(w b )


2. 超平面特性: n=2 の場合、w 1 = w 2 = 1 、b = − 1 w_1 = w_2 = 1、b= -1w1=w2=1 b=例として1 つの超平面

ここに画像の説明を挿入

  • 超平面方程式は一意ではありません。各項目に係数を追加しても、結果は同じです
  • 法線ベクトルw ⃗ \vec{w}w 超平面に垂直: 法線ベクトルとしてw ⃗ = ( w 1 , w 2 ) = ( 1 , 1 ) \vec{w} = (w_1,w_2) = (1,1)w =( w1w2)=( 1 ,1 )超平面の方向を決定する
  • 法線ベクトルw ⃗ \vec{w}w 、変位項bbb、一意の超平面を決定する
  • 法線ベクトルw ⃗ \vec{w}w ポインティングの半分はポジティブ スペースで、残りの半分はネガティブ スペースです。
    • 正の空間の点、w ⃗ T x ⃗ + b > 0 \vec{w}^T\vec{x} + b > 0 を持ってくるw Tバツ +b>0
    • w ⃗ T x ⃗ + b < 0 \vec{w}^T\vec{x} +b < 0 を代入する負のスペースのポイントw Tバツ +b<0
    • w ⃗ T x ⃗ + b = 0 \vec{w}^T\vec{x} +b = 0 に取り込まれた超平面上の点w Tバツ +b=0

サンプル点から超平面までの距離:幾何学的間隔の一部


サンプル空間の任意の点x ⃗ \vec{x}バツ 超平面( w ⃗ , b ) (\vec{w}, b)(w b )距離rrr

ここに画像の説明を挿入式は実際に直線A x + B y + C = 0 Ax + By + C=0について考えますA ×+によって_+=0、平面上の任意の点( x 0 , y 0 ) (x_0, y_0)( ×0y0)から直線へ:∣ A x 0 + B x 0 + C ∣ A 2 + B 2 {|Ax_0 + Bx_0+C|}\over {\sqrt{A^2+B^2}}2 +B2 ∣A × _0+ B ×0+ Cn次元 n次元に対応可能n次元空間式。

具体的な導出プロセス:
ここに画像の説明を挿入


幾何学的な間隔のマージン: スイカの本によらない


スイカの本の間隔の定義:


間隔マージン: 2 つの異種サポート ベクターから超平面までの距離の合計ここに画像の説明を挿入

この式は多くのステップをスキップします. Watermelon Book は正しく分類された SVM 超平面モデルが 6.3 であると想定します. ここでの +1 と -1 は実際には任意の定数である可能性があり, 結果 w と b に影響を与えません.スケーリングされます。

ここに画像の説明を挿入ここでは、+1、-1 として指定されます。これは、サポート ベクターから超平面までの距離も決定します = 1。次に、異種サポート ベクターから超平面までの距離の合計を 6.4 に示します。


次の導出では、最初に +1 と -1 を仮定する代わりに、最後のステップで分子 = 1 とします。とにかく、これらすべての係数は、w と b の計算に影響を与えることなく、計算のために自由に設定できます。


スイカ以外の本

1. データセット内サンプルポイント( xi ⃗ , yi ) , yi ∈ { − 1 , 1 } , i = 1 , 2 , . . , m (\vec{x_i}, y_i), y_i \in \{-1,1\},i=1,2,..,m(バツ y) yε{ 1 ,1 } =1 2 . . m超平面w ⃗ T x ⃗ + b = 0 \vec{w}^T\vec{x} + b= 0w Tバツ +b=0幾何学的間隔γ i \gamma_ic

ここに画像の説明を挿入


幾何学的間隔は実数を反映するだけではありません間隔サイズ、これはサンプル点から超平面までの距離 r であり、反射することもできます。分類は正しいですか?

  1. 分類が正しい場合、幾何学的間隔γ i > 0 \gamma_i > 0c>0
  2. 分類が間違っている場合、幾何学的間隔γ i < 0 \gamma_i <0c<0

証明:

  • 正の空間の点、w ⃗ T x ⃗ + b > 0 \vec{w}^T\vec{x} + b > 0 を持ってくるw Tバツ +b>0
    • 誤分類: 真のラベルyi = − 1 y_i=-1y=1,则 γ i \gamma_i c<0
    • 分類は正しい: 真のラベルyi = 1 y_i=1y=1,则 γ i \gamma_i c>0
  • w ⃗ T x ⃗ + b < 0 \vec{w}^T\vec{x} +b < 0 を代入する負のスペースのポイントw Tバツ +b<0
    • 分類エラー: 真のラベルyi = 1 y_i=1y=1,则 γ i \gamma_i c<0
    • 分類は正しい: 真のラベルyi = − 1 y_i=-1y=1,则 γ i \gamma_i c>0
  • w ⃗ T x ⃗ + b = 0 \vec{w}^T\vec{x} +b = 0 に取り込まれた超平面上の点w Tバツ +b=0

2、データセットXX _バツ超平面までの幾何学的間隔: XXとして定義Xのすべてのサンプル ポイントの幾何学的間隔最小値

ここに画像の説明を挿入


二、SVM


1. モデル: 分類の最大マージン超平面


超平面が正しく分類されることを直接規定し、分類関数を符号関数で設定して、実数値を分類値 1、-1 に変更します。

  • 現在のデータセットは線形分離可能です。つまり、正しく分割できる超平面、つまり、最適化区間プロセスが完了した後に見つかった最大のγ \gammaを見つけることができなければなりません。γ は>0 でなければなりません。

  • したがって、最初に超平面モデルが正しい分類モデルであると規定する必要があり、線形分離可能なデータセットでは不可能であるため、正しく分類できないと考える必要はありません。

ここに画像の説明を挿入

次のステップは、正しく分類できるこの超平面の損失関数を最小化すること、つまり区間を最大化することです。

ここに画像の説明を挿入


2. 戦略: 損失関数の導出


最終目標: SVM には超平面γ \gammaが必要γ、この超平面の幾何学的間隔は、すべての超平面の中で最大です。

同時に、幾何学的間隔自体が次の制約を満たさなければなりません: γ = min ⁡ γ i \gamma = \min \gamma_ic=cこれは、サンプル ポイントからデータ セット内の超平面までの距離の最小値です。


まず、サンプル点から超平面までの区間式を思い出してください。
ここに画像の説明を挿入

SVM の問題は次のように変換されます。

ここで (xmin, ymin) はスイカの本で定義されていますサポート ベクター
ここに画像の説明を挿入

ここに画像の説明を挿入
分母は同じですが、削除すると、問題は次のようになります。
ここに画像の説明を挿入


最適解を見つけるには( w ⃗ ∗ , b ) (\vec{w}^*, b) を制限する必要があります(w ,b )


問題を解く前に、固定された最適解を見つけることができる最小化問題になるまで、問題の形式を変更し続けます


最大の幾何学的間隔( w ⃗ ∗ , b ) (\vec{w}^*, b) が得られる最適解を見つける(w ,b )

ここに画像の説明を挿入
しかし、この条件付き極値問題は、LDA と同様に、直接解くことはできません。

最適解が( w ⃗ ∗ , b ) (\vec{w}^*, b)(w ,b ),则( α w ⃗ ∗ , α b ) (\alpha\vec{w}^*,\alpha b)( _w ,α b )も最適解でなければならず、上下に分割されます。

したがって、( w ⃗ ∗ , b ) (\vec{w}^*, b)(w ,b )制限を加える: 通常、固定の分子または分母は固定の定数値です。固定されていない場合、係数α \alphaαはランダムに選択され、解決できません。固定されている場合、一意のα \alpha がα はこの式を満たします。


SVM 固定分子: サポート ベクター距離超平面 1 を指定するのと同等
ここに画像の説明を挿入
問題は次のようになります。
ここに画像の説明を挿入


最大化問題から最小化問題へ


通常、最大化問題は最小化問題に変換されますが、やはり損失関数と呼ばれるため、max はその逆数となり、制約は <=0 の形で記述されます。

導出などの後の計算では、1 2 {1\over 2}と記述されます。21モジュラスの長さの 2 乗。

主な最適化の問題は次のとおりです。

ここに画像の説明を挿入


3. 解決: ラグランジュ双対問題への変換


3.1. 主な問題: 実際、これはすでに凸最適化問題です

ここに画像の説明を挿入ここに画像の説明を挿入


マスターの質問は次を満たします。

  1. は凸最適化問題です
  2. もつ強い二元性: すると、双対問題の最適解が主問題の最適解になります証明 後で見る

したがって、主問題自体はすでに凸最適化問題であり、それを解く既製の最適化計算パッケージもありますが、双対問題に変換した方が効率的です。


3.2. ラグランジュ関数:


ラグランジュ乗数α i \alpha_iを m 個の不等式制約に追加しますa、双対問題にはα i ≥ 0 \alpha_i \ge 0が必要ですa0
ここに画像の説明を挿入


3.3. 双対関数Γ ( α ⃗ ) \Gamma(\vec{\alpha})を解くC (a ) =inf ⁡ L ( w ⃗ , b , α ) ⃗ \inf L(\vec{w}, b,\vec{\alpha)}fL (w b a )


それは L の最小値を見つけることですが、なぜ L の最小値を見つけて偏導関数 = 0 を求めるのでしょうか? 次のようにいくつかの理解があります。

  • 凸関数の性質: ラグランジュ関数は w,b をw ⃗ ^ \hat{\vec{w}}に変換します。w ^、約w ⃗ ^ \hat{\vec{w}}w ^凸関数、次にその偏微分を求める = 0、解は最適解でなければなりません。
  • SVMの問題強い二元性が成り立つの場合、主問題の最適解は 5 つの KKT 条件を満たさなければなりません。最初の条件は、ラグランジュ関数の最適解が偏導関数 = 0 に持ち込まれることです。

ここに画像の説明を挿入


行列とベクトルの偏導関数の一般的な式:

- 、導関数には式 = を使用します


偏導関数 = 0 を取り込んで、双対関数Γ ( α ⃗ ) \Gamma(\vec{\alpha}) を取得します。C (a ) =inf ⁡ L ( w ⃗ , b , α ) ⃗ \inf L(\vec{w}, b,\vec{\alpha)}fL (w b a ) ために:

ここに画像の説明を挿入


3.4 二重問題


双対問題の定義


ここでは簡単な定義を示し、その後に詳細な説明を行います
ここに画像の説明を挿入


SVM の二重の問題: 6.11

双対関数を使用すると、双対問題で必要な制約に従ってα i ≥ 0 \alpha_i \ge 0a0、およびタイトル自体に必要な制約により、二重の問題が発生します

ここに画像の説明を挿入


強い双対性の確立もKKT条件を満たす必要がある


KKT条件は後述
ここに画像の説明を挿入


3.5 6.11 の二重問題の解決


ここに画像の説明を挿入
それについては後で話します


サンプルを低次元から高次元にマップします。
次に、高次元分割超平面モデルは次のとおりです。
ここに画像の説明を挿入


双対問題は次のようになります。
ここに画像の説明を挿入


質問: 元のサンプルにマッピングされた高次元の特徴空間は、特に大きな次元、または無限の次元を持つ可能性があるため、6.21 ϕ ( x ⃗ i ) T phi ( x ⃗ i ) \phi(\vec{x}_i を計算します。 )^ Tphi(\vec{x}_i)φ バツ )T pi(_バツ 難しいでしょう。


解決策: カーネル関数κ ( ⋅ , ⋅ ) \kappa(·,·) を導入するk ( )
ここに画像の説明を挿入
このカーネル関数は、元の高次元内積問題を次のように変換します。元のサンプル次元で内積を実行します。


6.21 双対問題は次のように書き直されます: 双対問題を最大化するカーネル関数値を見つける
ここに画像の説明を挿入


解かれる超平面モデルは次のとおりです。
ここに画像の説明を挿入

  • 6.9 によると: w ⃗ = ∑ i = 1 m α iyi ϕ ( x ⃗ i ) \vec{w} = \sum_{i=1}^m\alpha_i y_i \phi(\vec{x}_i)w =私は= 1メートルayφ バツ )

サポート ベクター展開


6.24 の意味: 超平面モデルの最適解は、サンプルx ⃗ \vec{x}をトレーニングすることによって取得できます。バツ のカーネル関数展開
ここに画像の説明を挿入


次に、カーネル関数が既知である限り、超平面モデルを取得できます。

カーネル関数の選択には、2 つの条件を満たす必要があります。付録を参照してください。

一般的に使用されるカーネル関数は次のとおりです。すべてカーネル関数定理を満たします。
ここに画像の説明を挿入


適切なカーネル関数を選択し、適切な特徴空間にマッピングして、パフォーマンスの良い分割超平面モデルを取得します。


式導出プロセス:

ここに画像の説明を挿入
ここに画像の説明を挿入


付録 1: 凸最適化問題


凸関数: ヘッセ行列は正定値または半正定値です

凸最適化問題:

  1. 目的関数は凸です
  2. 制約のセットは凸です

特に、次の状況も凸最適化問題です。
1. 目的関数は凸関数です
2. 制約セットは凸セットです
3. 不等式制約関数は凸関数です
4. 等式制約関数は線形関数です

明らかに、SVM は凸最適化問題です。


付録 2: について恣意的に最適化問題: 双対問題双対問題に変換


主な問題が凸最適化問題であるかどうかに関係なく、その双対問題は凸最適化問題でなければなりません


1. 一般的な最適化問題: 凸最適化問題とは限らない


1. フォーム
ここに画像の説明を挿入
2. 最適化問題ドメインDDDは、各関数のドメインの交点です。
ここに画像の説明を挿入

3、実行可能な集合D ~ \tilde{D}Dつまり、制約を満たすドメイン
ここに画像の説明を挿入


4、最適値p ∗ = min ⁡ { f ( x ~ ⃗ ) } p^* = \min\{f(\vec{\tilde{x}})\}p={ f (バツ ) } ,x ~ ⃗ ∈ D ~ \vec{\tilde{x}} \in \tilde{D}バツ εD~ 、つまり、制約を満たすときの (実行可能セット上の) 最適化された関数の最小値


2.一般的な最適化問題のラグランジュ関数


ここに画像の説明を挿入


3、拉格朗日偶偶可以Γ ( μ ⃗ , λ ⃗ ) \Gamma(\vec{\mu}, \vec{\lambda})C (メートル l )


Infimum : 単純に下限として理解されます。書き込みinf ( f ( x ) ) inf(f(x))i n f ( f ( x ) )

  • f ( x ) = exf(x) = e^xなどf ( x )=exinf ( f ( x ) ) = 0 inf(f(x)) = 0i n f ( f ( x ) )=0
  • f には下限がなく、inf ( f ( x ) ) = − ∞ inf(f(x)) = -\infini n f ( f ( x ) )=

の最適化問題を定義するラグランジュ双対関数 Γ ( μ ⃗ , λ ⃗ ) \Gamma(\vec{\mu}, \vec{\lambda})C (メートル l )は: ラグランジュ関数L ( x ⃗ , μ ⃗ , λ ⃗ ) L(\vec{x}, \vec{\mu}, \vec{\lambda})L (バツ メートル l ) DDDの下限
ここに画像の説明を挿入


二重機能の 2 つの特性:


ここに画像の説明を挿入


プロパティ 2 の証明:

  • 最適値p ∗ = min ⁡ { f ( x ~ ⃗ ) } p^* = \min\{f(\vec{\tilde{x}})\}p={ f (バツ ) } ,x ~ ⃗ ∈ D ~ \vec{\tilde{x}} \in \tilde{D}バツ εD~ 、つまり、制約を満たすときの (実行可能セット上の) 最適化された関数の最小値
  • 実行可能な集合D ~ \tilde{D}D~ : つまり、制約を満たすことができるドメイン
    ここに画像の説明を挿入

1. Γ ( μ ⃗ , λ ⃗ ) ≤ p ∗ \Gamma(\vec{\mu}, \vec{\lambda}) \leq p^* を定義します。C (メートル l )p,即证:Γ ( μ ⃗ , λ ⃗ ) ≤ min ⁡ { f ( x ~ ⃗ } ) \Gamma(\vec{\mu}, \vec{\lambda}) \leq \min\{f(\ vec{\tilde{x}}\})C (メートル l ){ f (バツ } );即证:Γ ( μ ⃗ , λ ⃗ ) ≤ f ( x ~ ⃗ ) \Gamma(\vec{\mu}, \vec{\lambda}) \leq f(\vec{\tilde{x} }))C (メートル l )f (バツ )

2、即证: inf ⁡ x ⃗ ∈ DL ( x ⃗ , μ ⃗ , λ ⃗ ) ≤ f ( x ~ ⃗ ) \inf_{\vec{x} \in D} L(\vec{x}, \vec {\mu}, \vec{\lambda}) \leq f(\vec{\tilde{x}})fバツ ∈D _L (バツ メートル l )f (バツ )

  • 左辺は、制約を満たすラグランジュ関数の大域領域の下限であり、これは、より小さな領域範囲の実行可能セット上の関数値よりも小さくなければなりません。その場合、inf ⁡ x ⃗ ∈ DL ( x ⃗ , μ ⃗ , λ ⃗ ) ≤ L ( x ⃗ ~ , μ ⃗ , λ ⃗ ) \inf_{\vec{x} \in D} L(\vec{x}, \vec{\mu}, \vec{\lambda} ) \leq L(\tilde{\vec{x}}, \vec{\mu}, \vec{\lambda})fバツ ∈D _L (バツ メートル l )L (バツ メートル l )

3、即证L ( x ⃗ ~ , μ ⃗ , λ ⃗ ) ≤ f ( x ~ ⃗ ) L(\tilde{\vec{x}}, \vec{\mu}, \vec{\lambda}) \ leq f(\vec{\tilde{x}})L (バツ メートル l )f (バツ ) :

  • 実行可能集合上の点が制約を満たすという事実によれば、それを証明するのは簡単です。
  • ここに画像の説明を挿入
    証明プロセスは逆にすることができます。

4. ラグランジュ双対性質問: 常に凸の最適化問題; 双対関数の最大値を見つけます


元の最適化問題は次のように呼ばれます: 主な問題
ここに画像の説明を挿入


ラグランジュ双対問題: 注意:ラグランジュ パラメータは >=0 である必要があります

定義は双対関数の最大値を求める最適化問題です!!

ここに画像の説明を挿入


双対問題は常に凸最適化問題


ここに画像の説明を挿入


5、強い二元性: SVM が凸最適化問題である理由を説明し、双対問題で解いてください。


  1. まず、SVM 問題の強い双対性が確立されているため、双対問題 (最大値を見つける) の最適解は、元の問題 (最小値を見つける) の最適解です。つまり解決できる
  2. 双対問題のパラメーターは、サンプル サイズ m に比例するラグランジュ乗数です。元の問題は、特徴ベクトルの次元 n に比例します。一般に、次元 n はサンプル サイズ m よりもはるかに大きく、双対問題を使用して解く方が効率的です。

双対関数の性質 2 は以前に証明されました:
μ ⃗ ≽ 0 のとき、Γ ( μ ⃗ , λ ⃗ ) ≤ p ∗ = min ⁡ { f ( x ⃗ ~ ) } \vec{\mu} \succcurlyeq 0 のとき、\ガンマ (\vec{\mu}, \vec{\lambda}) \leq p^* = \min\{f(\tilde{\vec{x}})\}メートル 0 , Γ ( _メートル l )p={ f (バツ )}

双対問題の最適値を次のように書きます: d ∗ = max ⁡ { Γ ( μ ⃗ , λ ⃗ ) } ≤ p ∗ d^* = \max\{\Gamma(\vec{\mu}, \vec{\ lambda})\} \leq p^*d=最大{ C (メートル l ) }p . この時呼ばれた弱い双対性が成り立つ

d ∗ = p ∗ d^* = p^*のときd=pと呼ばれる強い二元性が成り立つ


強い二元性が成り立つのはいつ?明らかに SVM が成り立つ

ここに画像の説明を挿入

  • SVM の主な問題は、凸最適化問題です。ここに画像の説明を挿入
  • そして、すべての不等号設定

付録 3: KKT 条件: 5 (強い双対性が成立する場合に満たす必要がある)


SVM の強い双対性が確立されている場合、次の 5 つの条件が満たされている必要があります。

  • x ⃗ ∗ \vec{x}^*バツ : 主問題の最適解
  • ( μ ⃗ ∗ , λ ⃗ ∗ ) (\vec{\mu}^*, \vec{\lambda}^*)(メートル ,l ): 双対問題の最適解

ここに画像の説明を挿入


最適解は次を満たさなければなりません。

  1. パラメータの偏導関数 = 0: ラグランジュ乗数法で十分
  2. 等式制約が成り立つ
  3. 不等式制約が成り立つ
  4. 不等式制約の m ラグランジュ乗数は >=0 でなければなりません
  5. 不等式制約のラグランジュ乗数 * 不等式制約 = 0

付録 4: カーネル関数


問題: 元の次元の標本空間には、2 種類の標本を正しく分割できる超平面がありません。

のような: XOR 問題
ここに画像の説明を挿入


解決策: サンプルを入れますx ⃗ \vec{x}バツ マップする高次元の特徴空間、マッピングされたサンプルはϕ ( x ⃗ ) \phi(\vec{x})φ バツ サンプルは、この高次元特徴空間で線形分離可能です。(元の空間は有限次元、つまり属性が限られているため、サンプルを線形分離可能にする高レベルの特徴空間が必要です

3 次元の特徴空間にマッピングされた 2 次元の特徴空間。分割超平面を見つける
ここに画像の説明を挿入


カーネル関数κ \kappaκと写像ϕ \phiϕは 1 対 1 の対応で、一方がわかればもう一方もわかります。


カーネル関数の形式は任意に選択できず、特定の条件を満たす必要があります
定理: カーネル関数は次のように記述できます。

ガウス カーネル関数
ここに画像の説明を挿入


上記の 2 つの条件が満たされている場合、カーネル関数はベクトル内積の形式で記述できることがわかっています。私はまだϕ \phi
を見つける方法を知りませんがϕマッピング関数の形式。しかしw ⃗ T ϕ ( x ⃗ ) + b \vec{w}^T\phi(\vec{x})+b が見つかりますw _バツ )+bの場合、モデルが利用可能になり、サンプルをカテゴリに分類できます

おすすめ

転載: blog.csdn.net/weixin_42810939/article/details/124018413