1. 程式人生 > >支援向量機SVM(直觀理解原理、推導)

支援向量機SVM(直觀理解原理、推導)

這裡主要基於吳恩達機器學習課程對於SVM的講解進行總結回顧,並參考各類資料對其推導過程進一步理解及實現。所以分為兩個部分及最後的一些個人總結。(內容較多、篇幅較長,靜下心來、慢慢體會)

第一部分也即吳恩達課程是從邏輯迴歸的cost函式講到svm的cost優化問題的,其實直接上來看是有一定理解難度的(要求有一定相關基礎),可以先看第二部分推導,再回過頭來看第一部分會有一個更加深刻的理解和掌握。

1、吳恩達機器學習課程對於SVM的講解

1、損失函式的由來

課程裡直接從邏輯迴歸的cost函式講起,(線性迴歸用於擬合,而邏輯迴歸用於分類,這裡的SVM就是用於分類的,所以其應該是屬於邏輯迴歸的)。 在這裡插入圖片描述 如上圖所示,由邏輯迴歸的cost函式進行基本的線性變換

(*m/lambda)得到SVM的cost的函式;

有了cost函式,我們的目標自然是儘可能地使其取得最小值,在這裡假設一種情況: 1)假如前面的係數C非常大的話,為了使總體cost值最小,那麼對於C後面的加和乘數其值將接近於0才可;那麼此時的cost函式就只剩下最後一項1/2*theta的平方求和。

先解釋一下為什麼要取C值非常大: 如下圖所示,為了找一條邊界將藍圓與紅叉分開,當取不同的C值對於SVM將有如圖所示兩種情況分法:一個是粉線、一個為黑線; 那麼考慮這兩條線哪個更合理呢, 1)當C不大的時候,若沒有最左下面的紅叉,其計算的分界線肯定是黑色;若加上最左下面那個紅叉,分界線將變為粉線(說明了其演算法受個別突出樣本的影響非常大) 2)當C很大的時候

,C的乘數(內部包含樣本x)趨近於0,cost只由引數theta決定,所以在有無突出樣本(最左下紅叉)時,其計算出的分類邊界都將是如黑色分類線所示;

所以綜上所述,SVM的cost值主要由後一個加法項決定,那麼我們的目標變成了最小化最後一項:

2、直觀的來理解一下:邊距及cost函式的theta值之間的關係

(cost越小也即theta越小,邊距越大,分類效果越好,為什麼)

如下圖所示,這裡的cost函式是有條件的,即樣本標籤y=1時,要求thetax>=1;同樣y=0時,thetax<=-1;(這裡可以直接類別邏輯迴歸,只不過是增強了其安全係數,比較的不是0而是-/+1).(在這裡上課時老師說SVM是一個強分類器,使用具有較強特徵的樣本,跟這裡的取+/-1而不是0,應該是同一個意思

) 在這裡插入圖片描述 在這裡對其條件形式thetax>=1/<=1進行了轉化,(用到了相關的向量內積的知識,向量theta與x取內積,本身就是類比於投影處理:x在theta上的投影;),在這裡的p代表了樣本x在theta的投影,然後在乘以theta的長度,軟化後形式如下圖所示: 在這裡插入圖片描述 通過上面的兩種分類邊界情況來直觀的理解一下,最大邊距與cost及theta之間的關係: 同樣是分類圓圈與紅叉,分類邊界均為綠色那條線,分類邊界由theta決定,theta作為其係數,所以theta的方向是與分類邊界垂直的。將每個樣本向theta做投影,可以看到左邊圖的分類情況其投影p的值是遠小於右邊圖樣本向theta做投影之後的p值的; **p值的不同說明了什麼?**再看cost函式的約束條件:ptheta>=1,p越大,則表示在滿足>=1的條件下其theta值越小!! 這就驗證了之前的結論:cost函式越小也即theta值越小,其分類效果越好,也即邊界距離越大,也就是由上圖的邊界情況(此時投影p是大的)

課程後面還包括使用線性核函式及高斯核函式的SVM進行分類處理,這裡主要是應用層面的,後續部落格再行探討,在此只關注於其原理及推導。

2、SVM的具體推導過程(主要來源於各種部落格的個人總結及理解)

1、從最直觀的表現走起(其深層含義如第一部分所述): 在這裡插入圖片描述 如上圖所示,分類邊界wx+b=0;兩邊的支援向量(虛線上的樣本點)組成的最大邊界線wx+b=+/-1;我們的目的就是使分類邊距(即兩條虛線間的間距)最大,如下圖所示:間距=2/||w||,其約束條件y(wx+b)>=1(這這裡樣本標籤分別取+1/-1);稍微轉化一下變為求下面||w||^2的最小值:(這裡的w即對應第一部分的theta) 在這裡插入圖片描述 2、利用拉格朗日函式求解滿足上述條件的w、b

可以看到上面所求函式是一個條件函式,而求解條件函式可以借用拉格朗日函式求解(對於此函式不在過多討論,大學高數內容,只是一種方便求解的形式,個人認為沒必要深究只需記住如何使用並解決問題即可):目標函式、約束條件及拉格朗日函式如下: 在這裡插入圖片描述 對於拉格朗日函式求極值的規則就是對變數求偏導並使其為0;在這裡L(w,b,a)是有極大值的,因為乘子a>0且由約束條件知y(wx+b)>=1,L的後一項為負數;於是我們將L對w、b求偏導並使其為0,即可得到L關於乘子a的極大值: 將如上求值帶入L,即可消去w、b得到L關於a的函式: 在這裡插入圖片描述 如上問題,只含有一個變數乘子a,我們是可以求出滿足條件的a的,然後再根據之前求得的偏導式子中a與w、b的關係,我們便可以求得相應的w、b的,也即得到了分類超平面。

如上是關於SVM的一些理解及推導,其實還有很多細節沒有涉及;個人感覺主要是理解其思想及由來,包括前後之間的關係及其直觀解釋等;

分類----邏輯迴歸cost----SVM的cost,有了目標函式,就是對其不斷優化求解;在這裡利用了拉格朗日函式求解法,不斷調解a使其滿足KKT條件(KKT條件就是在約束下求得目標函式極值時αi滿足的條件,只有滿足了kkt條件,才算是滿足了目標函式和約束函式),然後通過a求得超平面引數w、b最終得到超平面。