支援向量機SVM學習筆記(六) 問題的轉換

2021-08-19 21:42:08 字數 1608 閱讀 7020

讓我再一次比較完整的重複一下我們要解決的問題:我們有屬於兩個類別的樣本點(並不限定這些點在二維空間中)若干,如圖:

圓形的樣本點定為正樣本(連帶著,我們可以把正樣本所屬的類叫做正類),方形的點定為負例。我們想求得這樣乙個線性函式(在n維空間中的線性函式):

g(x)=wx+b

使得所有屬於正類的點x+代入以後有g(x+)≥1,而所有屬於負類的點x-代入後有g(x-)≤-1(之所以總跟1比較,無論正一還是負一,都是因為我們固定了間隔為1,注意間隔和幾何間隔的區別)。代入g(x)後的值如果在1和-1之間,我們就拒絕判斷。

求這樣的g(x)的過程就是求w(乙個n維向量)和b(乙個實數)兩個引數的過程(但實際上只需要求w,求得以後找某些樣本點代入就可以求得b)。因此在求g(x)的時候,w才是變數。

你肯定能看出來,一旦求出了w(也就求出了b),那麼中間的直線h就知道了(因為它就是wx+b=0嘛,哈哈),那麼h1和h2也就知道了(因為三者是平行的,而且相隔的距離還是||w||決定的)。那麼w是誰決定的?顯然是你給的樣本決定的,一旦你在空間中給出了那些個樣本點,三條直線的位置實際上就唯一確定了(因為我們求的是最優的那三條,當然是唯一的),我們解優化問題的過程也只不過是把這個確定了的東西算出來而已。

樣本確定了w,用數學的語言描述,就是w可以表示為樣本的某種組合:

w=α1x1+α2x2+…+αnxn

式子中的αi是乙個乙個的數(在嚴格的證明過程中,這些α被稱為拉格朗日乘子),而xi是樣本點,因而是向量,n就是總樣本點的個數。為了方便描述,以下開始嚴格區別數字與向量的乘積和向量間的乘積,我會用α1x1表示數字和向量的乘積,而用1,x2>表示向量x1,x2的內積(也叫點積,注意與向量叉積的區別)。因此g(x)的表示式嚴格的形式應該是:

g(x)=+b

但是上面的式子還不夠好,你回頭看看圖中正樣本和負樣本的位置,想像一下,我不動所有點的位置,而只是把其中乙個正樣本點定為負樣本點(也就是把乙個點的形狀從圓形變為方形),結果怎麼樣?三條直線都必須移動(因為對這三條直線的要求是必須把方形和圓形的點正確分開)!這說明w不僅跟樣本點的位置有關,還跟樣本的類別有關(也就是和樣本的「標籤」有關)。因此用下面這個式子表示才算完整:

w=α1y1x1+α2y2x2+…+αnynxn (式1)

其中的yi就是第i個樣本的標籤,它等於1或者-1。其實以上式子的那一堆拉格朗日乘子中,只有很少的一部分不等於0(不等於0才對w起決定作用),這部分不等於0的拉格朗日乘子後面所乘的樣本點,其實都落在h1和h2上,也正是這部分樣本(而不需要全部樣本)唯一的確定了分類函式,當然,更嚴格的說,這些樣本的一部分就可以確定,因為例如確定一條直線,只需要兩個點就可以,即便有三五個都落在上面,我們也不是全都需要。這部分我們真正需要的樣本點,就叫做支援(撐)向量!(名字還挺形象吧,他們「撐」起了分界線)

式子也可以用求和符號簡寫一下:

因此原來的g(x)表示式可以寫為:

注意式子中x才是變數,也就是你要分類哪篇文件,就把該文件的向量表示代入到 x的位置,而所有的xi統統都是已知的樣本。還注意到式子中只有xi和x是向量,因此一部分可以從內積符號中拿出來,得到g(x)的式子為:

發現了什麼?w不見啦!從求w變成了求α。

支援向量機 SVM 學習筆記

最近學習了coursera上史丹福大學的機器學習課程。其中支援向量機的內容和其他地方的理解不太一樣,現將兩種理解方法記錄如下。這一種理解是從邏輯回歸推理得來。邏輯回歸的損失函式為 其中h z 1 1 exp z 接下來 log h x 和 log 1 h x 的影象如圖所示 其中手繪的函式為原函式的...

SVM支援向量機筆記

舉個簡單的例子,如下圖所示 左圖有三條直線 1 虛線不能很好的進行分類 2 兩條實線能夠實現分類 在該資料集中表現較好 但是這兩個線性模型的判定便界很靠近樣本點,在新的資料上可能不會表現得那麼好。右圖一條實線 1 該實線不僅分開了兩種類別,還盡可能遠離了最靠近的訓練資料點,可以理解為svm分類器在兩...

svm支援向量機學習

1.從零開始的機器學習之svm乙個簡單的實現案例 鳶尾花分類 2.svm的第乙個例項,這個和第乙個鏈結是乙個例子 3.機器學習 支援向量機svm及例項應用,例子仍然是地乙個 4.機器學習之旅 svm分類器,概述了svm的原理 5.支援向量機通俗導論 理解svm的三層境界 對svm原理講述的較為詳細 ...