支援向量機數學推導

2022-05-19 16:27:53 字數 4258 閱讀 7918

svm的數學推導真的是我一生的痛,看看覺得很懂,但是過了3秒,就在糾結,為什麼可以這樣換算?今天早上在看整合學習的時候,講課的老師一直說svm、svm、svm。。。嗯,沒錯,我又開始回想svm的數學推導過程,然後,我的乙個早上就這樣沒了。

這次趁著剛看完印象深刻,我想將剛釐清的思路寫下來。僅包括如何推出最優化問題,後面的推導我打算等看完凸優化課程再記錄,推導過程參考林軒田老師教授的《機器學習技法》內容。

線性分類的分類器表示式為$$

\begin

h(x) = sgn(w^tx + b)

\end

\[林老師之前講線性分類時用的是pla演算法,即根據當前分類器是否將所有的點分類正確$(h(x)==y)$。如果有乙個點分類錯誤,那麼朝著這個點或偏離這個點更新。演算法一直迭代直到所有的點正確分類為止。pla演算法得到的分類器不唯一,僅憑線的初始位置這乙個因素便能影響最終的分類器。

但是我們知道最想要的分類器長什麼樣子。我們希望這個分類器足夠"胖",也就是說,這根線變胖的時候,邊上的點越遲碰到它越好。

!(顯然,看了上面的表述,我們應該知道決定這個超平面長什麼樣子的資料點只有那麼幾個,就是那些離超平面更近的點。下面開始將這個問題表述為乙個最優化問題。

### 最優化問題的推導

我們想要尋找的超平面是\]

\begin

w^tx + b = 0

\end

\[對於所有的正例,希望$w^tx_i + b > 0$;反之,$w^tx_i + b < 0$。其中,w和b是我們要求的引數。

#### 1.0版本問題

最初的問題可以表述為

\]\begin

\mathop\limits_ \ \ \ margin(w,b) \

s.t. \ \ \ 分類器將每乙個資料點都分類正確 \

\ \ \ \ \ \ \ \ margin(w,b) = \mathop\limits_distance(x_i, w, b)

\end

\[

#### 1.1版本問題

我們定義標籤$y=+1/-1$,分別代表正例和負例。那麼`分類器將每乙個資料點都分類正確`這件事情相當於$y_i(w^tx_i+b) > 0$,更新一下問題表述:

\]\begin

\mathop\limits_ \ \ \ margin(w,b) \

s.t. \ \ \ y_i(w^tx_i+b) > 0 \

\ \ \ \ \ \ \ \ margin(w,b) = \mathop\limits_distance(x_i, w, b)

\end

\[ #### 2.0版本問題

$distance$代表每乙個資料點到超平面的距離,在這裡希望能將它用引數表示出來。假設超平面上的有乙個資料點$x^1$,它是個向量。那麼對於它來說,顯然有\]

\begin

wtx1 + b = 0

\end

\[現在超平面外有一點$x^*$,也是向量形式。那麼$(x^*-x_1)$是兩個向量的相減形式,記為$p$。超平面的法向量為$w$,將$p$往$w$上投影的向量的模就是空間上點$x^*$到超平面的距離。用線性代數學過的知識表述,先求投影向量:\]

\begin

\fracw = \fracw=\fracw

\end

\[又由(5)式,上述的式子再可以表述為

\]\begin

\fracw=\fracw

\end

\[好的,**已經求出投影向量,接下來求投影向量的模。**$\frac$是個標量,換言之,求(7)這個向量的模得到:

\]\begin

\frac\left|w\right|

\end

\[而$w^tw$=$\left\|w\right\|^2$,因此最終可以寫成:\]

\begin

distance(x^,w,b) = \frac

\end

\[接下來更新問題表述:

\]\begin

\mathop\limits_ \ \ \ margin(w,b) \

s.t. \ \ \ y_i(w^tx_i+b) > 0 \

\ \ \ \ \ \ \ \ margin(w,b) = \mathop\limits_\frac

\end

\[#### 2.1版本問題

其中,$y_i(w^tx_i+b) > 0$與$|w^tx_i+b|$又是等價的,所以問題可以精簡為:\]

\begin

\mathop\limits_ \ \ \ margin(w,b) \

s.t. \ \ \ margin(w,b) = \mathop\limits_\frac

\end

\[#### 3.0版本問題

這一步是最重要的變換了,整個推導過程我一直卡著的點就是這裡。我想用我所理解的說一下這個。

1. 超平面$w^tx+b=0$能將乙個空間分為兩個部分,將某個向量$x_i$代入$w^tx+b$中若是得到$>0$或者$<0$說明$x_i$在超平面的某一側。

2. 將超平面$w^tx+b=0$的引數$w,b$同時縮放,比如都變大3倍或者都變小3倍,這個超平面是不會變的,它還是處於空間中的那個位置。這一點如果不理解可以在二維空間中劃一條線比如$3x_1+2x_2-1=0$,對等式左右乘3得到新的等式仍然表述二維空間的那條線。

3. 上面兩個都是前提。雖然對超平面$w^tx+b=0$的引數$w,b$同時縮放了,超平面還是那個超平面,但是有一點卻改變了。就是將某個向量$x_i$代入$w^tx+b$中計算得到的值。想象一下,這個超平面$3x_1+2x_2-1=0$,現在有乙個點(1,2)代入得到值6,但是如果將引數都放大3倍,再將點重新代入計算,得到的值也放大了3倍變為18。

4. 既然引數怎麼放大縮小超平面都不會變,那麼何不為了方便計算,將$w,b$縮放到特定的值$w^*,b^*$,使得對於那些資料點,有$$\begin\mathop\limits_y_i((w^*)^tx_i+b^*)=1\end$$這是做得到的,假設資料點中距離超平面的最近的那個點為$x^*$,離超平面的距離為$l$。只要將引數縮放$l$倍,不就滿足了(12)式。

這樣一來,原來的問題就表述為:\]

\begin

\mathop\limits_ \ \ \ \frac \

s.t. \ \ \ \mathop\limits_ \ y_i((w*)tx_i+b^*)=1

\end

\[為了和原來的形式統一,還是寫為\]

\begin

\mathop\limits_ \ \ \ \frac \

s.t. \ \ \ \mathop\limits_ \ y_i(w^tx_i+b)=1

\end

\[#### 4.0版本問題

這裡的約束條件還是有些不友好,能不能將$min$這個條件去掉。第一反應是用以下不等式來替換:\]

\begin

for \ (x_i,y_i) \in d \ \ \ y_i(w^tx_i+b)>=1

\end

\[遺憾的是,兩者並不是簡單的等價關係,或者說原來的約束條件是能推出(15)的,但是反過來並不行。比如,所有對於所有資料點$\mathop\limits_ \ y_i(w^tx_i+b)=1.26$,它是滿足(15)的,但是推不出原來的約束條件。

但是,我們現在可以證明假如可以求出一組最優引數$w,b$,它必然能滿足$\mathop\limits_ \ y_i(w^tx_i+b)=1$。

**這是為什麼?**

設已經求出的最優解為$w_1, b_1$,但是$\mathop\limits_ \ y_i(w_1^tx_i+b_1)=1.26$。我們可以很肯定的說這組必然不是最優解,因為我們希望優化的目標為$\frac$,要令其最大。現在取這組最優解時得到目標值為$\frac$,但是$\frac\right\|}$顯然比$\frac$更大,因此現在取到的$w_1, b_1$根本不是最優解。最優的引數必然能滿足$\mathop\limits_ \ y_i(w^tx_i+b)=1$.

所以,我們可以放心地用(15)代替原來的約束條件。更新問題表述後變為:\]

\begin

\mathop\limits_ \ \ \ \frac \

s.t. \ \ \ \ y_i(w^tx_i+b) \ >= \ 1

\end

\[#### 4.1版本問題

為了符合凸優化數學問題的通常形式,以及方便後續的計算,最終的問題表述為:\]

\begin

\mathop\limits_ \ \ \ \ \frac \

s.t. \ \ \ \ y_i(w^tx_i+b) \ >= \ 1

\end

\[好了,我去看凸優化了。。。\]

支援向量機數學原理推導

將支援向量機轉換為數學模型,推導其計算過程,其中主要的步驟概括如下 1.分類超平面的概念 2.間隔和幾何間隔之間的區分 3.求解目標為,正負例中距離分類超平面最近的幾何距離最大化,使得分類最可靠,對雜訊的適應性更強,求解過程中,往往固定間隔為1,求幾何間隔1 w 的最大值,即最小化 w 4.要求所有...

支援向量機(SVM)公式推導

假設一堆訓練資料的正負樣本標記為 假設有乙個超平面h 可以通過此線性方程劃分,同時存在兩個平行於 h的超平面h1和 超平面h 能夠正確分類,也就是滿足如下約束 即 離 h最近的正負樣本剛好分別落在h1和 h2上使等號成立,它們就是支援向量。而超平面h1和 h2的距離可知為 注 線到線的距離公式求得 ...

支援向量機原理推導(二)

上一節我們講述了間隔公式是如何得到的,這一節講述要得到最大間隔時的分割超平面所要的條件是什麼。在上圖中我們可以看到間隔為marginb 2,但是我們很容易發現黑線還可以向上移動從而得到更大的間隔,當移動到是最上面紅線與第乙個men資料點相交時便得到最大間隔了,如下圖 下面我們就根據這個思路求出得到最...