四:SVM

SVM

介紹

SVM是一種分類手段,就是找出一個超平面,將給定的數據集{(x1,y1),(x1,y2),…,(xn,yn)}分類(xi爲特徵向量,yi爲類別,這邊分爲兩類y=0或1)。這種超平面很多,但SVM分類是找到那個最優的超平面,即下圖中的藍色平面-------要求是margin(分隔間距)最大。
margin(分隔間距)最大:通俗理解就是這個平面向垂直於它的方向上下平移,所碰到的第一個點(上下都有)離它的距離和最大。

在這裏插入圖片描述
所以說SVM的目標就是如何去找到這個能使得margin最大的分類藍色超平面。

SVM轉化爲最優解問題

我們先設超平面的方程爲:wTx+b =0,兩側margin/2距離的平面方程設爲:wTx+b =±c,爲了方便起見c選爲1:wTx+b =±1。
(爲了理解方便,可設x爲二維特徵,式子就變成:w1 * x1+w2 * x2+b=0,可以看出w就是這個平面的法向量,b爲截距)
所以呢,我們只要求出w向量和 b值 ,就可解得超平面方程。

從上圖中可以看到,凡是在虛平面wTx+b =-1下方的樣本xi,wTx+b <=-1 都屬於y = -1類,在虛平面wTx+b =1上方的樣本xi,wTx+b >=1 都屬於y = 1類。
即if:wTx+b <=-1 則 y = -1
if:wTx+b >= 1 則 y = 1 ==》 y(wTx+b) >= 1 限制條件

現在算margin :margin是 wTx+b =0和wTx+b =1 距離的兩倍。
(假設x二維,可參考兩直線的距離公式: w1x1+w2x2=0-b,w1x1+w2x2+b=1-b
d = |0-b-1+b| / (根號(w1的平方+w2的平方)) )提升到高維距離距離就是1/||w||。
所以 margin = 2/||w||

我們期望的是距離最大即margin最大 ,也就是||w|| = wTw 最小。爲了方便起見前面加個1/2.。
於是就成了個最優化問題 (注:限制條件是N組不等式 x是N維的)
在這裏插入圖片描述

KKT

對於求解不等式約束條件的優化問題,必須滿足KKT條件

KKT圖解

在這裏插入圖片描述
上圖所示圖中
f是目標函數 ,求其最小值。
g1(x)<=0,g2(x)<=0,g3(x)<=0爲限制函數 。
▽則表示爲梯度,梯度方向爲函數增加最快的方向。
通過 反梯度方向及g(x) = 0 ,我們可以判斷出陰影部分三個函數都<=0,是x的取值範圍。

進一步的通過分析,不難確定x的取值應該是g1=0, g2=0的交點處。
似乎有沒有g3(x)<=0 這個限制條件x取值都一樣,此時我們稱 g1,g2條件是活躍的,g3是不活躍的。

且 ▽f 可以被活躍的兩個限制函數的梯度▽g1,▽g2表示出來。
▽f =α1 (-▽g1)+α2 (-▽g2) 且從圖中梯度方向不難看出 α1,α2都應該大於0。
爲了整齊起見,不活躍的g3我們也加上去,只是係數α3設爲0
於是式子就變成▽f =α1 (-▽g1)+α2 (-▽g2)+α3 (-▽g3)
整理可得 ===》▽f +α1 (▽g1)+α2 (▽g2)+α3 (▽g3) = 0
(其中活躍限制條件係數>0,不活躍限制條件係數=0,總的來說α>=0)

KKT定理

以上就是KKT引導,下面給出KKT定理:在這裏插入圖片描述
概括如下: 目標函數: f(x)
限制條件 (分兩類,一類是等式限制條件,一類是不等式):
h(x) = 0, g(x)<=0(不等式都寫成<=形式)
KKT條件:
1.:▽f +α(▽g)+λ(▽h)=0
其中等式h(x)前的λ沒有限制就像正常的拉格朗日乘子法一樣。
2.不等式g(x)前的係數α則要大於等於0。(這個就是上面的α推導)
3.最後解讀 αTg(x) = 0 :
寫開就是: α1 (g1)+α2 (g2)+α3 (g3)+…+αn (gn)=0
因爲α>=0 g<=0,他們兩都不等於0,相乘結果一定是負。要滿足αTg(x) = 0,如果α不等於0,g就必須等於0,反之也是。
這個結論和剛剛那張圖推導結果是一致的,即g(x) = 0,說明他是活躍的,α>0,g(x) < 0,說明不活躍,α=0。

KKT例子

怎麼是橫的
在這裏插入圖片描述

如果實在不懂,可以看這篇文。
https://www.cnblogs.com/xinchen1111/p/8804858.html

求解SVM最優化問題

剛剛我們已經將SVM轉化爲一個最優化問題。
在這裏插入圖片描述
爲了滿足KKT條件,這邊的g(x)取: 1-y(wTx+b) <=0 ,α>=0
列出拉格朗日方程
所以對w,b求偏導等於0。
在這裏插入圖片描述
很多時候在現空間中是找不到一個線性超平面來區分樣本的所以引入核技巧,映射到高維空間中進行分類。

將樣本用核技巧進行處理後:
在這裏插入圖片描述
考慮到維度可能太高,所以用拉格拉日對偶解決問題

拉格朗日對偶

也沒研究過拉格朗日對偶,書上怎麼說,咱就怎麼做:
在這裏插入圖片描述

拉格朗日對偶例子

在這裏插入圖片描述

用拉格朗日對偶解決問題

在這裏插入圖片描述

求min 1/2wTw ,就是求max W(α)=L(w(α),b,α)(推導我不會)
我們需要把wTw,wTφxi,b化成關於α的式子
在這裏插入圖片描述
在這裏插入圖片描述
現在的問題就變成了這個:
在這裏插入圖片描述
下面證明W(α)有最大值,是一個半負定二次型,開口向下有最大值。
在這裏插入圖片描述
所以可求出W(α)的最大值時 的α值(這個計算有一種簡單的SMO算法)
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述
在這裏插入圖片描述

知道α即可通過在這裏插入圖片描述
求出w。
在通過:在這裏插入圖片描述
求出b。

KKT在SVM中的意義

KKT條件在物理意義上對應的SVM含義
在這裏插入圖片描述
KKT的條件之一爲αTg(x) = 0 ,α >=0, 其中 g(x) = 1-y(wTx+b) 。
可以在圖中看到凡是在wT+b=-1下方 或者 wT+b=1上方的樣本都有y(wTx+b) > 1
通過上述條件可得:此時α必定爲0。
只有在虛線上的的點 1-y(wTx+b)=0 此時α>0
而w是關於α的函數,α爲0時,對應的樣本毫無意義,只有在虛線上的點 α>0才真正起了作用。在這裏插入圖片描述
所以真正參加運算的只有邊緣那些點,這些點就叫支持向量

測試

代碼:https://blog.csdn.net/jirong5206/article/details/106032636
將測試樣本核化後代入超平面方程,大於0 ,小於0 分類。
在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章