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={
( ×1、y1) 、( ×2、y2) 、. . . . 、( ×メートル、yメートル) } 、はいはい_ε{
− 1 ,+ 1 }、サンプル空間で分割超平面を見つけて、異なるカテゴリのサンプルを分離します
サポート ベクター マシン: 線形分離可能なデータ セットの分類問題陽性サンプルと陰性サンプルの両方から最も遠いの超平面モデル. (パーセプトロンの超平面解は一意ではないかもしれませんが、SVM 解は一意です)
- 2 種類のサンプルの中間に位置するサンプルは、トレーニング サンプルの局所的な摂動に対する許容度が最も高く、分類結果が最もロバスト (ロバスト) であり、目に見えない例に対する一般化能力が最も強力です。
最強の一般化能力を持つ説明のために:
図に示すように、選択した超平面が赤で、正と負のサンプルからの距離が最も遠い場合、新しい正のサンプル (紫) は負のサンプルに分割されます。汎化能力は強くありません。
SVM によって検出された超平面は緑色で、一般化能力が高く、分類エラーが少ないです。
サポート ベクトル サポート ベクトル
超平面に最も近いトレーニング サンプル ポイント
超平面w ⃗ T x ⃗ + b = 0 \vec{w}^T\vec{x} + b= 0wTバツ+b=0
超平面方程式とプロパティ
1. 超平面方程式: w ⃗ T x ⃗ + b = 0 \vec{w}^T\vec{x} + b= 0wTバツ+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=( w1、w2)=( 1 ,1 )、超平面の方向を決定する
- 法線ベクトルw ⃗ \vec{w}w、変位項bbb、一意の超平面を決定する
- 法線ベクトルw ⃗ \vec{w}wポインティングの半分はポジティブ スペースで、残りの半分はネガティブ スペースです。
- 正の空間の点、w ⃗ T x ⃗ + b > 0 \vec{w}^T\vec{x} + b > 0 を持ってくるwTバツ+b>0
- w ⃗ T x ⃗ + b < 0 \vec{w}^T\vec{x} +b < 0 を代入する負のスペースのポイントwTバツ+b<0
- w ⃗ T x ⃗ + b = 0 \vec{w}^T\vec{x} +b = 0 に取り込まれた超平面上の点wTバツ+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)( ×0、y0)から直線へ:∣ 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+ C ∣n次元 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= 0wTバツ+b=0幾何学的間隔γ i \gamma_ic私:
幾何学的間隔は実数を反映するだけではありません間隔サイズ、これはサンプル点から超平面までの距離 r であり、反射することもできます。分類は正しいですか?
- 分類が正しい場合、幾何学的間隔γ i > 0 \gamma_i > 0c私>0
- 分類が間違っている場合、幾何学的間隔γ i < 0 \gamma_i <0c私<0
証明:
- 正の空間の点、w ⃗ T x ⃗ + b > 0 \vec{w}^T\vec{x} + b > 0 を持ってくるwTバツ+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 を代入する負のスペースのポイントwTバツ+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 に取り込まれた超平面上の点wTバツ+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. 主な問題: 実際、これはすでに凸最適化問題です
マスターの質問は次を満たします。
- は凸最適化問題です
- もつ強い二元性: すると、双対問題の最適解が主問題の最適解になります。証明 後で見る
したがって、主問題自体はすでに凸最適化問題であり、それを解く既製の最適化計算パッケージもありますが、双対問題に変換した方が効率的です。
3.2. ラグランジュ関数:
ラグランジュ乗数α i \alpha_iを m 個の不等式制約に追加しますa私、双対問題にはα i ≥ 0 \alpha_i \ge 0が必要ですa私≥0
3.3. 双対関数Γ ( α ⃗ ) \Gamma(\vec{\alpha})を解くC (a) =inf L ( w ⃗ , b , α ) ⃗ \inf L(\vec{w}, b,\vec{\alpha)}fでL (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)}fでL (w、b 、a )なために:
3.4 二重問題
双対問題の定義
ここでは簡単な定義を示し、その後に詳細な説明を行います
SVM の二重の問題: 6.11
双対関数を使用すると、双対問題で必要な制約に従ってα i ≥ 0 \alpha_i \ge 0a私≥0、およびタイトル自体に必要な制約により、二重の問題が発生します
強い双対性の確立も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メートルa私y私φ (バツ私)
サポート ベクター展開
6.24 の意味: 超平面モデルの最適解は、サンプルx ⃗ \vec{x}をトレーニングすることによって取得できます。バツのカーネル関数展開
次に、カーネル関数が既知である限り、超平面モデルを取得できます。
カーネル関数の選択には、2 つの条件を満たす必要があります。付録を参照してください。
一般的に使用されるカーネル関数は次のとおりです。すべてカーネル関数定理を満たします。
適切なカーネル関数を選択し、適切な特徴空間にマッピングして、パフォーマンスの良い分割超平面モデルを取得します。
式導出プロセス:
付録 1: 凸最適化問題
凸関数: ヘッセ行列は正定値または半正定値です
凸最適化問題:
- 目的関数は凸です
- 制約のセットは凸です
特に、次の状況も凸最適化問題です。
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 )=ex,inf ( 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) DDでDの下限
二重機能の 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 が凸最適化問題である理由を説明し、双対問題で解いてください。
- まず、SVM 問題の強い双対性が確立されているため、双対問題 (最大値を見つける) の最適解は、元の問題 (最小値を見つける) の最適解です。つまり解決できる
- 双対問題のパラメーターは、サンプル サイズ 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∗ ): 双対問題の最適解
最適解は次を満たさなければなりません。
- パラメータの偏導関数 = 0: ラグランジュ乗数法で十分
- 等式制約が成り立つ
- 不等式制約が成り立つ
- 不等式制約の m ラグランジュ乗数は >=0 でなければなりません
- 不等式制約のラグランジュ乗数 * 不等式制約 = 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 が見つかりますwTφ(_バツ)+bの場合、モデルが利用可能になり、サンプルをカテゴリに分類できます