SVM:硬/最大間隔SVM(手撕原理)

示意圖

摘自其他人的CSDN博客,未知博客名

二分類問題描述

Data={(xi,yi)}i=1N,xiRp,yi{1,+1}Data=\{(x_i, y_i)\}_{i=1}^N,x_i\in\R^p,y_i\in\{-1,+1\}
由於超平面ωTx+b\omega^Tx+b有很多個,要找到最好的一個超平面,以得到最低的泛化誤差(或測試誤差、期望損失)。

hard-margin SVM判別模型,與概率無關:
f(ω)=sign(ωTx+b)={ωTx+b>0,f(ω)=1ωTx+b<0,f(ω)=1f(\omega)=sign(\omega^Tx+b)=\begin{cases}\omega^Tx+b>0,f(\omega)=1\\\omega^Tx+b<0,f(\omega)=-1\end{cases}
目標函數:
{max margin(ω,b)s.t. {ωTxi+b>0,yi=1ωTxi+b<0,yi=1yi(ωTxi+b)>0,i=1...,N\begin{cases}max\space margin(\omega,b) \\ s.t.\space \begin{cases}\omega^Tx_i+b>0,y_i=1\\\omega^Tx_i+b<0,y_i=-1\end{cases}\Rightarrow y_i(\omega^Tx_i+b)>0,i=1...,N\end{cases}
即,{max margin(ω,b)s.t. yi(ωTxi+b)>0,i=1,...,N\begin{cases}max\space margin(\omega,b) \\ s.t.\space y_i(\omega^Tx_i+b)>0,i=1,...,N\end{cases}

什麼是margin?
答:一共有N個點到直線的距離,最小的那個就是margin。點到直線距離公式,
margin(ω,b)=minω,b,xidistance(ω,b,xi)=minω,b,xi1ωωTxi+bmargin(\omega,b)={min \atop \omega,b,x_i}distance(\omega,b,x_i)={min \atop \omega,b,x_i}{\frac 1 {\parallel\omega\parallel}}\mid\omega^Tx_i+b\mid

則上式寫爲:
{maxω,bminω,b,xi1ωωTxi+b =maxω,bminxi1ωωTxi+b=maxω,b1ωminxiyi(ωTxi+b)yi{1,+1}s.t. yi(ωTxi+b)>0\begin{cases}{max \atop \omega,b}{min \atop \omega,b,x_i}{\frac 1 {\parallel\omega\parallel}}\mid\omega^Tx_i+b\mid\space ={max \atop \omega,b}{min \atop x_i}{\frac 1 {\parallel\omega\parallel}}\mid\omega^Tx_i+b\mid={max \atop \omega,b}{\frac 1 {\parallel\omega\parallel}}{min \atop x_i}y_i(\omega^Tx_i+b)\Larr y_i\in\{-1,+1\} \\ s.t.\space y_i(\omega^Tx_i+b)>0\end{cases}

yi(ωTxi+b)>0y_i(\omega^Tx_i+b)>0可以理解爲: γ>0,s.t. minxi,yiyi(ωTxi+b)=γ\exist\space\gamma>0,s.t.\space {min \atop x_i,y_i}y_i(\omega^Tx_i+b)=\gamma
γ\gamma的取值對式子(或超平面)是沒有影響的,實際上就是對ω,b\omega,b的縮放。
因此,令 γ=1\gamma=1
則,maxω,b1ωminxiyi(ωTxi+b)=maxω,b1ωγ=maxω,b1ω{max \atop \omega,b}{\frac 1 {\parallel\omega\parallel}}{min \atop x_i}y_i(\omega^Tx_i+b)={max \atop \omega,b}{\frac 1 {\parallel\omega\parallel}}\gamma={max \atop \omega,b}{\frac 1 {\parallel\omega\parallel}}
則,上式可寫爲:
{maxω,b1ωminω,bω=minω,b12ωTω s.t. minxiyi(ωTxi+b)=1yi(ωTxi+b)1,i=1,...,N N\begin{cases}{max \atop \omega,b}{\frac 1 {\parallel\omega\parallel}}\Rarr{min \atop \omega,b}{\parallel\omega\parallel}={min \atop \omega,b}{\frac 1 2}\omega^T\omega\space硬間隔;二次的、凸優化,可直接求解 \\s.t.\space {min\atop x_i}y_i(\omega^Tx_i+b)=1\Rarr y_i(\omega^Tx_i+b)\geqslant1,i=1,...,N\space 有N個約束 \end{cases}

則,(1){minω,b12ωTω s.t. yi(ωTxi+b)1,i=1,...,N(1)\begin{cases}{min \atop \omega,b}{\frac 1 2}\omega^T\omega\space \\s.t.\space y_i(\omega^Tx_i+b)\geqslant1,i=1,...,N \end{cases}

開始求解

1. Primal problem:帶ω,b\omega,b約束的優化

(1){minω,b12ωTωs.t. yi(ωTxi+b)1,for i=1,...,N1yi(ωTxi+b)0(1)\begin{cases} {min \atop \omega,b}{\frac 1 2}\omega^T\omega \\ s.t. \space y_i(\omega^Tx_i+b)\geqslant1,for \space i=1,...,N \xLeftrightarrow{}1-y_i(\omega^Tx_i+b)\leqslant0\end{cases}

2. 拉格朗日乘子法→對ω,b\omega,b無約束的優化

L(ω,b,λ)=12ωTω+i=1Nλi(1yi(ωTxi+b))L(\omega,b,\lambda)={\frac 1 2}{\omega^T}\omega+\displaystyle\sum_{i=1}^N\lambda_i(1-y_i(\omega^Tx_i+b)), λi0\lambda_i\geqslant0
(2){minω,bmaxλL(ω,b,λ)s.t. λi0(2)\begin{cases}{min \atop \omega,b} {max \atop \lambda}L(\omega,b,\lambda) \\ s.t.\space\lambda_i\geqslant0\end{cases}

值得注意的是:1yi(ωTxi+b)01-y_i(\omega^Tx_i+b)\leqslant0。爲什麼呢?
答:
直觀上看,
如果1yi(ωTxi+b)>01-y_i(\omega^Tx_i+b)>0,則maxλL=12ωTω+={max\atop\lambda}L={\frac 1 2}{\omega^T}\omega+\infty=\infty
如果1yi(ωTxi+b)01-y_i(\omega^Tx_i+b)\leqslant0,則maxλL{max\atop\lambda}L一定存在,maxλL=12ωTω+0=12ωTω (λi0){max\atop\lambda}L={\frac 1 2}{\omega^T}\omega+0={\frac 1 2}{\omega^T}\omega\space(\lambda_i\rarr0)
則,minω,bmaxλL(ω,b,λ)=minω,b(,12ωTω)=12ωTω{min \atop \omega,b} {max \atop \lambda}L(\omega,b,\lambda)={min \atop \omega,b} (\infty,{\frac 1 2}{\omega^T}\omega)={\frac 1 2}{\omega^T}\omega
因此,1yi(ωTxi+b)>01-y_i(\omega^Tx_i+b)>0被丟棄了。

3. 轉化爲強對偶問題

(3){maxλminω,bL(ω,b,λ)s.t. λi0(3)\begin{cases}{max \atop \lambda}{min \atop \omega,b}L(\omega,b,\lambda) \\s.t.\space \lambda_i \geqslant0\end{cases}

什麼是強、弱對偶?
答:凸優化二次規劃問題,它的約束是線性的,目標函數是二次的,因此滿足強對偶關係。(可證)
(1)弱對偶關係爲min maxLmax minLmin\space maxL\geqslant max\space minL,對應理解爲“尾鳳\geqslant頭雞”,即鳳尾優於雞頭、瘦死的駱駝比馬大。
(2)強對偶關係,就是把\geqslant改爲=。

4. 求解對偶問題:解拉格朗日方程minω,bL(ω,b,λ){min \atop \omega,b}L(\omega,b,\lambda)

L(ω,b,λ)=12ωTω+i=1Nλi(1yi(ωTxi+b))L(\omega,b,\lambda)={\frac 1 2}{\omega^T}\omega+\displaystyle\sum_{i=1}^N\lambda_i(1-y_i(\omega^Tx_i+b)), λi0\lambda_i\geqslant0

(1) 求Lb=0{\frac {\partial L} {\partial b}}=0

Lb=b[i=1Nλii=1Nλiyi(ωTxi+b)]=b[i=1Nλiyib)]=i=1Nλiyi=0{\frac {\partial L} {\partial b}}={\frac {\partial }{\partial b}}[\displaystyle\sum_{i=1}^N\lambda_i-\displaystyle\sum_{i=1}^N\lambda_iy_i(\omega^Tx_i+b)]={\frac {\partial }{\partial b}}[-\displaystyle\sum_{i=1}^N\lambda_iy_ib)]\\=-\displaystyle\sum_{i=1}^N\lambda_iy_i=0
則,i=1Nλiyi=0\displaystyle\sum_{i=1}^N\lambda_iy_i=0

(2) 將i=1Nλiyi=0\displaystyle\sum_{i=1}^N\lambda_iy_i=0代入到L(ω,b,λ)L(\omega,b,\lambda)

L(ω,b,λ)=12ωTω+i=1Nλii=1Nλiyi(ωTxi+b)=12ωTω+i=1Nλii=1NλiyiωTxi+i=1Nλiyib=12ωTω+i=1Nλii=1NλiyiωTxiL(\omega,b,\lambda)={\frac 1 2}\omega^T\omega+\displaystyle\sum_{i=1}^N\lambda_i-\displaystyle\sum_{i=1}^N\lambda_iy_i(\omega^Tx_i+b)\\={\frac 1 2}\omega^T\omega+\displaystyle\sum_{i=1}^N\lambda_i-\displaystyle\sum_{i=1}^N\lambda_iy_i\omega^Tx_i+\displaystyle\sum_{i=1}^N\lambda_iy_ib\\={\frac 1 2}\omega^T\omega+\displaystyle\sum_{i=1}^N\lambda_i-\displaystyle\sum_{i=1}^N\lambda_iy_i\omega^Tx_i

(3) 求Lω=0{\frac {\partial L} {\partial \omega}}=0

Lω=122ωi=1Nλiyixi=0{\frac {\partial L} {\partial \omega}}={\frac 1 2}·2·\omega-\displaystyle\sum_{i=1}^N\lambda_iy_ix_i=0
則,ω=i=1Nλiyixi\omega=\displaystyle\sum_{i=1}^N\lambda_iy_ix_i

(4) 將ω=i=1Nλiyixi\omega=\displaystyle\sum_{i=1}^N\lambda_iy_ix_i代入到L(ω,b,λ)L(\omega,b,\lambda)

L(ω,b,λ)=12(i=1Nλiyixi)T(i=1Nλiyixi)+i=1Nλii=1Nλiyi(j=1Nλjyjxj)TxiL(\omega,b,\lambda)={\frac 1 2}(\displaystyle\sum_{i=1}^N\lambda_iy_ix_i)^T(\displaystyle\sum_{i=1}^N\lambda_iy_ix_i)+\displaystyle\sum_{i=1}^N\lambda_i-\displaystyle\sum_{i=1}^N\lambda_iy_i(\displaystyle\sum_{j=1}^N\lambda_jy_jx_j)^Tx_i

注意:
λiR,yi{1,1},xiRp\lambda_i\in\Reals,y_i\in\{-1,1\},x_i\in\Reals^p
∴(i=1Nλiyixi)T=i=1NλiyixiT\displaystyle\sum_{i=1}^N\lambda_iy_ix_i)^T=\displaystyle\sum_{i=1}^N\lambda_iy_ix_i^T
ωTω=(iNλiyixiT)(jNλjyjxj)=iNjNλiλjyiyjxiTxj\omega^T\omega=(\displaystyle\sum_{i}^N\lambda_iy_ix_i^T)·(\displaystyle\sum_{j}^N\lambda_jy_jx_j)=\displaystyle\sum_{i}^N\displaystyle\sum_{j}^N\lambda_i\lambda_jy_iy_jx_i^Tx_j
同理,i=1Nλiyi(j=1Nλjyjxj)Txi=i=1Nλiyij=1NλjyjxjTxi=iNjNλiλjyiyjxjTxi=iNjNλiλjyiyjxiTxjxiTxj=xjTxiR\displaystyle\sum_{i=1}^N\lambda_iy_i(\displaystyle\sum_{j=1}^N\lambda_jy_jx_j)^Tx_i=\displaystyle\sum_{i=1}^N\lambda_iy_i\displaystyle\sum_{j=1}^N\lambda_jy_jx_j^Tx_i\\=\displaystyle\sum_{i}^N\displaystyle\sum_{j}^N\lambda_i\lambda_jy_iy_jx_j^Tx_i\\=\displaystyle\sum_{i}^N\displaystyle\sum_{j}^N\lambda_i\lambda_jy_iy_jx_i^Tx_j\Larr x_i^Tx_j=x_j^Tx_i\in\Reals
發現上面兩個結果一樣!因此,可以約掉啦~
(i=1Nλiyixi)T(i=1Nλiyixi)=i=1Nλiyi(j=1Nλjyjxj)Txi=iNjNλiλjyiyjxiTxj(\displaystyle\sum_{i=1}^N\lambda_iy_ix_i)^T(\displaystyle\sum_{i=1}^N\lambda_iy_ix_i)=\displaystyle\sum_{i=1}^N\lambda_iy_i(\displaystyle\sum_{j=1}^N\lambda_jy_jx_j)^Tx_i\\=\displaystyle\sum_{i}^N\displaystyle\sum_{j}^N\lambda_i\lambda_jy_iy_jx_i^Tx_j

L(ω,b,λ)=i=1Nλi12iNjNλiλjyiyjxiTxjminω,bL(ω,b,λ)L(\omega,b,\lambda)=\displaystyle\sum_{i=1}^N\lambda_i-{\frac 1 2}\displaystyle\sum_{i}^N\displaystyle\sum_{j}^N\lambda_i\lambda_jy_iy_jx_i^Tx_j\xRightarrow{即} {min \atop \omega,b}L(\omega,b,\lambda)
代入式(3)即,
(4){maxλi=1Nλi12i=1Nj=1NλiλjyiyjxiTxjmaxλminω,bL(ω,b,λ)s.t. λi0,i=1Nλiyi=0(4)\begin{cases}{max \atop \lambda}\displaystyle\sum_{i=1}^N\lambda_i-{\frac 1 2}\displaystyle\sum_{i=1}^N\displaystyle\sum_{j=1}^N\lambda_i\lambda_jy_iy_jx_i^Tx_j\Larr {max \atop \lambda}{min \atop \omega,b}L(\omega,b,\lambda) \\s.t.\space \lambda_i\geqslant0,\displaystyle\sum_{i=1}^N\lambda_iy_i=0 \end{cases}

(5) 對偶問題的最終優化式

最優化問題常由minmin表示
(5){minλ12i=1Nj=1NλiλjyiyjxiTxji=1Nλis.t. λi0,i=1Nλiyi=0(5)\begin{cases}{min \atop \lambda}{\frac 1 2}\displaystyle\sum_{i=1}^N\displaystyle\sum_{j=1}^N\lambda_i\lambda_jy_iy_jx_i^Tx_j-\displaystyle\sum_{i=1}^N\lambda_i \\s.t.\space \lambda_i\geqslant0,\displaystyle\sum_{i=1}^N\lambda_iy_i=0 \end{cases}

5. KKT條件求解對偶問題

定理:原問題和對偶問題具有強對偶關係\xLeftrightarrow{充要條件}滿足KKT條件

拉格朗日方程(上面第2點):
L(ω,b,λ)=12ωTω+i=1Nλi(1yi(ωTxi+b))L(\omega,b,\lambda)={\frac 1 2}{\omega^T}\omega+\displaystyle\sum_{i=1}^N\lambda_i(1-y_i(\omega^Tx_i+b)), λi0\lambda_i\geqslant0

根據定理可直接得到該問題的KKT(Karush-Kuhn-Tucker)條件:
{Lω=0,Lb=0,Lλ=0λi01yi(ωTxi+b)02λi(1yi(ωTxi+b))=0L(ω,b,λ)=12ωTωb\begin{cases}{\frac {\partial L}{\partial \omega}}=0,{\frac {\partial L}{\partial b}}=0,{\frac {\partial L}{\partial \lambda}}=0 \\\lambda_i\geqslant0\Rarr 拉格朗日乘子法的要求 \\1-y_i(\omega^Tx_i+b)\leqslant0\Rarr 上面第2點解釋了 \\\lambda_i(1-y_i(\omega^Tx_i+b))=0\Rarr此時,L(\omega,b,\lambda)={\frac 1 2}\omega^T\omega,爲最大值;鬆弛互補條件,求解b^* \end{cases}
根據KKT條件,可求出最優的ω,b\omega^*,b^*
凸優化中對偶問題詳解,尤其解釋了什麼是KKT條件

(1) 最優解ω=i=1Nλiyixi\omega^*=\displaystyle\sum_{i=1}^N\lambda_iy_ix_i

就是之前(3)中Lω=0{\frac {\partial L} {\partial \omega}}=0的結果。

(2) 最優解b=ykiNλiyixiTxkb^*=y_k-\displaystyle\sum_i^N\lambda_iy_ix_i^Tx_k

假設(xk,yk), s.t. 1yk(ωTxk+b)=0\exist (x_k,y_k),\space s.t.\space 1-y_k(\omega^Tx_k+b)=0,(xk,yk)(x_k,y_k)爲支持向量ωTxk+b{1,1}\omega^Tx_k+b\in\{-1,1\}
yk(ωTxk+b)=1yk=±1,yk2=1yk2(ωTxk+b)=ykωTxk+b=ykb=ykωTxk=yk(ω)Txk=yki=1NλiyixiTxk由y_k(\omega^Tx_k+b)=1 \\∵y_k=±1,y_k^2=1 \\∴y_k^2(\omega^Tx_k+b)=y_k \\∴\omega^Tx_k+b=y_k \\∴b^*=y_k-\omega^Tx_k=y_k-(\omega^*)^Tx_k=y_k-\displaystyle\sum_{i=1}^N\lambda_iy_ix_i^Tx_k

(3) 根據w,bw^*,b^*得出超平面wx+bw^*x+b^*

  1. f(x)=sign((w)Tx+b)f(x)=sign((w^*)^Tx+b^*)
  2. w=i=1Nλiyixiw^*=\displaystyle\sum_{i=1}^N\lambda_iy_ix_i可看做是Data={(xi,yi)}i=1N,xiRp,yi{1,+1}Data=\{(x_i, y_i)\}_{i=1}^N,x_i\in\R^p,y_i\in\{-1,+1\}的線性組合
  3. λi\lambda_i只對支持向量纔有意義,即1yi(ωTxi+b)=01-y_i(\omega^Tx_i+b)=0上的點,此時,λi0\lambda_i\geqslant0;對於非支持向量不起作用,此時λi=0\lambda_i=0
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章