本文來自同步博客。
P.S. 不知道簡書怎么顯示數學公式以及更好的排版內容。所以如果覺得文章下面格式亂的話請自行跳轉到上述鏈接。后續我將不再對數學公式進行截圖,畢竟行內公式截圖的話排版會很亂。看原博客地址會有更好的體驗。
前面介紹的SVM
,無論是線性可分還是非線性可分,稱為Hard Margin SVM
,都要求對輸入數據進行精確劃分。我們不難想到這類SVM
存在過擬合這個問題。如果輸入數據本身就存在誤差,精確劃分反而是沒意義的。本篇文章就如何處理過擬合問題,介紹即所謂的Soft Margin SVM
。
數學推導
引入衡量誤差的變量 -\xi\_i-。-\xi\_i-表示不能被正確分類的樣本點距離正確一側邊界的距離,距離越大表示錯誤越大,即-\xi\_i-越大。如果樣本點能被正確分類,則-\xi\_i = 0-。故有-\xi\_i \ge 0-。
那么,原來能通過求解函數-\frac{1}{2}\vec{w}^{2}-在最小化下的參數-\vec{\alpha}-,如今需要增加能夠體現誤差的約束條件再求解。
可以如下構造函數來描述誤差:
\frac{1}{2}\vec{w}^{2} + C\sum_{i}^{n}{\xi\_i}
這個函數把所有輸入數據的誤差疊加在一起,即-\sum_{i}^{n}{\xi\_i}-。然后用參數C來控制所有誤差的權重。如果C很大,表示即使有很小的誤差出現都會嚴重影響目標函數。
結合之前文章提到的知識,可以構造拉格朗日方程:
L(\vec{w}, b, \vec{\xi}, \vec{\alpha}, \vec{\beta}) = \frac{1}{2}\vec{w}^{T}\vec{w} + C\sum_{i}^{n}{\xi\_i} - \sum\_{i}^{n}{\alpha\_i[y\_i(\vec{w}^{T}\vec{x\_i}+b)-1+\xi\_i]} - \sum\_{i}^{n}\beta\_i\xi\_i
其中,
\alpha\_i \ge 0, \beta\_i \ge 0, i = 1,2...n
然后利用對偶思想求解-\vec{w}, b, \xi-的導數,并讓他們等于0。如下:
\begin{array}{lcl} \frac{\partial L}{\partial \vec{w}} = \vec{w} - \sum\_{i}^{n}\alpha\_{i} y\_{i} \vec{x}\_i = 0 \\\\ \frac{\partial L}{\partial b} = - \sum\_{i}^{n}\alpha\_{i} y\_{i} = 0 \\\\ \frac{\partial L}{\partial \xi\_{i}} = C - \alpha\_{i} - \beta\_{i} = 0 \end{array}
代入上面的拉格朗日方程,可以得到二項規劃方程。最后求解-\vec{\alpha}-,可得-\vec{w}-和-b-。二項規劃方程如下:
F(\alpha) = \frac{1}{2}\sum\_{i}^{n}\sum\_{j}^{m}y\_{i}y\_{j}\alpha\_{i}\alpha\_{j}\vec{x}\_{i}^{T}\vec{x}\_{j} - \sum\_{i}^{n} \alpha\_i, C \ge \alpha\_i \ge 0, i = 1,...,n
其中-\vec{w}-如下:
\vec{w} = \sum\_{i}^{n}\alpha\_{i}y\_{i}\vec{x}\_{i}
-b-可利用落于邊界上的支持向量求解。
比較
看到二項規劃那一步,我們可以發現Hard Margin SVM
和Soft Margin SVM
的差別僅僅是-\alpha\_i-的取值范圍上有差異。Hard Margin SVM
的約束條件是-\alpha\_i \ge 0-;Soft Margin SVM
的約束條件是-C \ge \alpha\_i \ge 0-。
我們知道-\alpha\_{i}-僅在-\vec{x}-為支持向量時值大于零。而在這里,-\alpha\_{i}-多了一個上限C。因為-C = \alpha\_{i} + \beta\_{i}-,所以有下面結論:
如果-\alpha\_{i} = 0-,表示該點為非支持向量。
如果- 0 \lt \alpha\_{i} \lt C-,則-\beta\_{i} \gt 0-,對應的-\xi\_{i} = 0-,表示該點為邊界支持向量。如下圖:
如果-\alpha\_{i} = C-,則-\beta\_{i} = 0-,對應的-\xi\_{i} \gt 0-,表示該點違反了最大邊界的原則,屬于噪聲點。