學習SVM(四) 理解SVM中的支持向量(Support Vector)

咱們在開始接觸SVM時確定聽到過相似這樣的話,決定決策邊界的數據叫作支持向量,它決定了margin究竟是多少,而max margin更遠的點,其實有沒有無所謂。 而後通常會配一張圖說明一下哪些是支持向量(Support Vector),這個圖在以前的學習SVM(二) 如何理解支持向量機的最大分類間隔裏面就有,這裏不在重複貼了。html

可是問題的關鍵是,這些Support Vector是怎麼被肯定的呢? 在學習SVM(三)理解SVM中的對偶問題計算獲得新的優化目標:函數

寬客在線

注意這裏的約束條件有n+1個,以後只須要根據Data(x),Label(y)求解出知足條件的拉格朗日系數a,並將a帶回求得w和b,因而就有了最後的決策邊界。(w,b,x,y,a都是向量) 學習

注意:在上面b的公式中,i=1,2,…,n。可是j卻沒有給值,這是由於j是任意一個支持向量均可以。優化

在這裏對w和b的公式的推導作一個簡短說明,w是經過拉格朗日求偏導後推出的;在學習SVM(二) 如何理解支持向量機的最大分類間隔中咱們知道最大間隔爲:3d

那麼支持向量到決策邊界的距離爲: cdn

同時根據點到直線的距離公式有:htm

超平面(w,b)可以將訓練樣本正確分類,即對於 blog

所以去掉絕對值能夠獲得關於b的公式。

而非支持向量的數據就在求解參數a,w,b的過程當中,前面的參數w求得的結果會爲0,這樣就知足了以前的說法,只有支持向量在影響着決策邊界的肯定,舉個例子: get

上圖中有3個點,x1(3,3),x2(4,3),x3(1,1),對應的:y1=y2=1,y3=-1。 很顯然x1和x3是兩個支持向量,在決策平面的兩側,咱們帶入到上面的公式求解一下: 因爲兩個求和公式(n=3),因此括號裏面的是項會有9個,能夠理解爲兩個for循環嵌套啊(哈~哈~),可是顯然這9項裏面是有重複的,由於a1a2 = a2a1,因此最後會剩下6項: a1a1,a2a2,a3a3,2a1a3,2a1a2,2a2a3,舉個例子肯定前面的係數: Ca1a2 = [(x1)(x2)y1y2]a1a2 C=2*(3,3)(4,3)(1)=2(12+9)=42it

因此最後的結果以下:

由約束條件獲得:a3=a1+a2,帶入到min中能夠求得一個關於a1 和a2的函數:

要求它的最小值,求偏導啊~

最後求解獲得: a1 = 1.5 a2 = -1

而a2 = -1的點不滿於a2>0的條件,因此最小值在邊界上取得。邊界狀況要麼是a1=0,要麼是a2=0,因而: a1=0時,咱們應該把a1的值往s對a2的偏導裏面帶入: a2=2/13 (知足條件) 此時:

a2=0時,咱們應該把a2的值往s對a1的偏導裏面帶入: a1=1/4 (知足條件) 此時:

顯而後面的結果更小,因此: a1 = 1/4 a2 = 0 a3 = 1/4

到這裏就能驗證上面的結論了,a1和a3是x1和x3的係數,x1和x3是支持向量,而x2不是,因此前面的係數是0。由於根據w求解公式,a2=0,因此x2對w權的最後取值沒有影響,因此x2不是支持向量。

最後一步,帶到上面的式子中求w,b:

w1=w2=0.5 對於支持向量x1,計算b的值:

對於非支持向量x2,計算b的值:

顯然,因爲b的公式由支持向量與決策平面的距離推導獲得,因此x2的計算結果是錯誤的。 因而獲得最後的決策邊界爲: 0.5x1+0.5x2+2=0

閱讀原文

相關文章
相關標籤/搜索