支援向量機(SVM)之硬閾值

ZhiboZhao發表於2021-06-24

支援向量機 ( support vector machine, SVM ) 是使用超平面來對給定的 p 維向量進行分類的非概率二元線性分類器。

一、超平面 ( hyperplane )

在一個p維的輸入空間,超平面就是 \(p-1\) 維的子空間。比如:在一個二維輸入的空間,超平面就是一維,也就是直線。用公式表示如下:

\[b + w_{1}x_{11} + w_{2}x_{12}=0 \]

在一個三維的輸入空間,超平面就是二維,也就是一個平面,公式表示如下:

\[b + w_{1}x_{11} + w_{2}x_{12} + w_{3}x_{13}=0 \]

當輸入維度 \(p > 3\) 時,很難直觀地理解超平面,但是可以簡單地記為:超平面將輸入空間分為兩個部分,因此超平面最終的數學表示式為:

\[b + w_{1}x_{11} + w_{2}x_{12} +...+ w_{p}x_{1p} = 0 \]

其中,\(\alpha_{i}\) 表示超平面的引數。因此,超平面將一個p維的空間分成兩個部分,考慮一個 \(p\) 維度的輸入例項 \(x = (x_{1}, x_{2},..., x_{p})\),當該例項在超平面上時,有:

\[b + w_{1}x_{11} + w_{2}x_{12} +...+ w_{p}x_{1p} = 0 \]

當其不在超平面上時,必然會存在:

\[b + w_{1}x_{11} + w_{2}x_{12} +...+ w_{p}x_{1p} > 0 \]

或者:

\[b + w_{1}x_{11} + w_{2}x_{12} +...+ w_{p}x_{1p} < 0 \]

二、使用超平面進行二分類

考慮到一系列的輸入 \(x = (x_{1}, x_{2},...,x_{n})\),其中 \(x_{i} = (x_{i1}, x_{i2},...,x_{ip})^{T}\) ,那麼對應的標籤 應該屬於不同的類,這裡用\((1, -1)\) 來表示,即:\(y = (y_{1}, y_{2},...,y_{n}) \in (-1, 1)\)。因此我們需要根據這些觀測的訓練資料 \(T = ( (x_{1},y_{1}), (x_{2},y_{2}),...,(x_{n},y_{n})\) 來學習到SVM的引數 \((\alpha_{1}, \alpha_{2},...,\alpha_{p})\),使其能夠對任意給定的 \(p\) 維輸入 \(x_{n+1}\) 做出正確的判斷。在訓練過程中,假如在超平面一側的為 \(-1\),那麼在另外一側的就是 \(+1\),於是訓練的標準就可以表示為:

\[b + w_{1}x_{i1} + w_{2}x_{i2} +...+ w_{p}x_{ip} > 0,\quad if \quad y_{i}=1 \\ b + w_{1}x_{i1} + w_{2}x_{i2} +...+ w_{p}x_{ip} < 0,\quad if \quad y_{i}=-1 \]

因此,最終的訓練標準可以統一為:

\[(b + w_{1}x_{i1} + w_{2}x_{i2} +...+ w_{p}x_{ip})y_{i}>0 \]

最終的超平面方程寫成矩陣形式為:\(f(x) = w^{T}x + b\)

但是從理論上來講通過旋轉,平移等操作,滿足這種條件的 SVM 分類器有無數個,如下圖左邊的部分所示,我們以二維輸入為例,把藍色的點看做同一類,而紅色的點看做第二類,黑色的線就是學到的分類器,那麼到底應該選哪一個呢?

第1個分類器太靠近藍色的和粉色的點,稍微有點擾動很有可能造成錯誤的分類,魯棒性較差

第2,3個分類器似乎看起來還可以,但是選取的標準又該怎麼定義呢?

一個很自然而然的想法就是選擇最大邊緣超平面\((maximal \quad margin \quad hyperplane)\)。即:我們可以計算 \(p\) 維空間上所有的點到該超平面的距離,另其最小的距離(\(margin\))最大。由於離超平面越近的點越容易分不清楚,最大化這些距離之後便能具有一定程度的魯棒性,這樣一來便能找到最優的超平面。因此通過這種策略,上圖的最優超平面可以描述為下圖:

從上圖中我們看到三個訓練觀測值與最大邊距超平面等距,並且沿著指示邊距寬度的虛線排列。因此這三個觀測值被稱為支援向量。有趣的是,最大邊緣超平面直接取決於支援向量,而不取決於其他觀測值,任何其他觀察的移動不會影響分離超平面,前提是觀察的移動不會導致它跨越 \(margin\)

三、最大間隔閾值(\(maximum\quad margin\))表示

回憶高中數學的相關內容,對於平面 \(\Phi:Ax+By+Cz+D=0\),則其法向量為 \([A, B, C]\),空間內任意一點 \((x,y,z)\) 到該平面的距離為:

\[distance = \dfrac{|Ax_{0}+By_{0}+Cz_{0}+D|}{\sqrt {A^{2}+B^{2}+C^{2}}} \]

那麼同理,在 \(p\) 維空間內,\(p-1\) 維超平面表示為:\(\Phi: w^{T}x = 0\),則其法向量為 \(w^{T}\),空間內任意一點 \(x_{i}^{T} = (x_{i1},x_{i2},...,x_{ip})\) 到該超平面的距離為:

\[distance = \dfrac{|w^{T}x_{i}+b|}{w^{2}} = \dfrac{|w^{T}x_{i}+b|}{||w||} \]

加入超平面能夠實現正確的分類,那麼設支援向量到超平面的距離為 \(\beta\),我們可以得到分類的值為:

\[(b + w_{1}x_{i1} + w_{2}x_{i2} +...+ w_{p}x_{ip})y_{i}>\beta \]

即:\(w^{T}x > \beta\),通過觀察發現,縮放 \(w\) 的值並不會影響超平面的位置,因此不管 \(\beta\) 取任何值,最後都能通過 \(w'=w/\beta,\quad b'=b/\beta\) 將結果變為:\(w^{T}x+b > 1\),因此支援向量之間的距離就變成了: \(2/||w||\), 所以最後 SVM 的模型就變成了:

\[\mathop{argmax} \limits_{w} \dfrac{2}{||w||}\quad \quad s.t.\quad y_{i}(w^{T}x_{i}+b)>1,\quad x = 1, 2,...,m \]

等價於:

\[\mathop{argmin} \limits_{w} \dfrac{1}{2}||w||^{2}\quad s.t.\quad y_{i}(w^{T}x_{i}+b)>1,\quad x = 1,2,...,m \]

即:將超平面左右平移1個單位得到超平面 \(\Phi_{1},\Phi_{2}\),找出所有為 +1 類的點全部落在 \(\Phi_{1}\) 左側,所有為 -1 類的點全部落在 \(\Phi_{2}\) 右側,並且同時滿足超平面的所有引數 \(w\) 的平方和最小的超平面。

四、對偶問題與KKT條件

求解帶約束的不等式,根據拉格朗日乘數法將式 \((13)\) 改寫成無約束不等式,得到:

\[L(w,b,\lambda) = \dfrac{1}{2}||w||^{2}+\sum_{i=1}^{m}\lambda_{i}(1-y_{i}(w^{T}x_{i}+b)) \]

於是我們對 \(L\) 求偏導:

\[\dfrac{\partial{L(w,b,\lambda)}}{\partial w} = w-\sum_{i=1}^{m}\lambda_{i}y_{i}x_{i}=0\\ \dfrac{\partial{L(w,b,\lambda)}}{\partial b} = \sum_{i=1}^{m}\lambda_{i}y_{i} = 0 \]

將得到的 \(w = \sum_{i=1}^{m}\lambda_{i}y_{i}x_{i},\quad \sum_{i=1}^{m}\lambda_{i}y_{i} = 0\) 代入式 \((14)\) 得到:

\[L(w,b,\lambda) = \dfrac{1}{2}(\sum_{i=1}^{m}\lambda_{i}y_{i}x_{i})^{T}\sum_{j=1}^{m}\lambda_{j}y_{j}x_{j}+\sum_{i=1}^{m}\lambda_{i} - \sum_{i=1}^{m}\lambda_{i}y_{i}(w^{T}x_{i})\\ =\dfrac{1}{2}\sum_{i=1}^{m}\sum_{j=1}^{m}\lambda_{i}y_{i}\lambda_{j}y_{j}x_{i}^{T}x_{j}+\sum_{i=1}^{m}\lambda_{i} - \sum_{i=1}^{m}\sum_{j=1}^{m}\lambda_{i}y_{i}\lambda_{j}y_{j}x_{i}^{T}x_{j}\\ =\sum_{i=1}^{m}\lambda_{i} - \dfrac{1}{2}\sum_{i=1}^{m}\sum_{j=1}^{m}\lambda_{i}y_{i}\lambda_{j}y_{j}x_{i}^{T}x_{j} \]

即最後式子 \((14)\) 的對偶問題可以寫成:

\[\mathop{argmax}\limits_{\lambda}\sum_{i=1}^{m}\lambda_{i} - \dfrac{1}{2}\sum_{i=1}^{m}\sum_{j=1}^{m}\lambda_{i}y_{i}\lambda_{j}y_{j}x_{i}^{T}x_{j}, \quad s.t. \quad \sum_{i=1}^{m}\lambda_{i}y_{i} = 0 \]

最後通過求出 \(\lambda\) ,帶入到公式 \((15)\) 中就可以求出 \(w\) ,進而能求出 \(b\)

在上述將原問題轉換為對偶問題的過程中,原問題需要滿足 \(KKT\) 條件,即:

\[\begin{equation} \left\{ \begin{array}{lr} \lambda_{i}>=0; & \\ y_{i}f(x_{i})-1 >=0; & \\ \lambda_{i}(y_{i}f(x_{i})-1) = 0 ; \end{array} \right. \end{equation} \]

這個條件不就是同濟第七版《高等數學》關於拉格朗日乘數法的應用前提嗎?有興趣的朋友可以自己查閱一下,畢竟已經不學數學好多年了,若有疏漏還請斧正。

這樣就出現一個非常有趣的現象,即:

\(\lambda_{i}=0\),則 \(y_{i}f(x_{i}) >= 1\)

\(\lambda_{i}>0\),則 \(y_{i}f(x_{i}) = 1\),所對應的樣本剛好落在最大邊界上 ( 即支援向量 ),因此訓練完成後大部分的訓練樣本都不需要保留,最終模型僅僅與支援向量有關。

上述主要分析了當訓練樣本是線性可分的情況下,SVM的一些理論與求解過程,即硬閾值的SVM。當訓練樣本不是線性可分的情況下需要設計軟閾值以及核函式的SVM,限於篇幅原因,將在後面的文章中進行闡述。

相關文章