支持向量機(SVM)(四)及超易懂實例

在感知機一節中說到,咱們在線性可分的狀況下,尋找一個超平面使得html

一部分實例$\sum_{i=1}^{n}w _{i}\cdot x_{i}>0$,算法

另外一部分實例$\sum_{i=1}^{n}w _{i}\cdot x_{i}<0$函數

可是感知機的解不惟一,因此會出現這樣的狀況優化

咱們應該如何選擇一個最佳的解呢?spa

 

首先定義幾何間隔爲:3d

$d=\frac{y\left | w\cdot x_{i}+b \right |}{\left \| w \right \|_{2}}$htm

其實就是感知機損失函數在固定分子以前的形式blog

定義函數間隔爲:ip

$y_{i}(w\cdot x_{i}+b)$get

幾何間隔d纔是真正的點到超平面的距離

 

支持向量

圖中過樣本點的虛線表示的就是支持向量(support vector)

中間的實線就是超平面$y_{i}(w\cdot x_{i}+b)=0$

通常設置支持向量爲 $y_{i}(w\cdot x_{i}+b)=+1/-1$

SVM但願全部的點到超平面的距離都大於1,公示表示爲

max $ d=\frac{1}{\left \| w \right \|_{2}}\sum_{x_{i}\subseteq M}^{ }y_{i}(w\cdot x_{i}+b) $

而且 $s.t  y_{i}(w\cdot x_{i}+b)≥1$

與感知機不一樣,咱們固定d的分子爲1,

又最大化$\frac{1}{\left \| w_{2} \right \|_{2}}$,等同於最小化$\frac{1}{2}\left \| w_{2} \right \|_{2}^{2}$   


 tips

要加1/2 和 平方 單純的爲了求導的方便


 

因此優化公式變爲:

min $\frac{1}{2}\left \| w_{2} \right \|_{2}^{2}$ 

 $s.t y_{i}(w\cdot x_{i}+b)≥1$

創建拉格朗日函數,將不等於約束變成無約束優化問題

$L(w,b,a)=\frac{1}{2}\left \| w_{2} \right \|_{2}^{2}-\sum a_{i}\left [ y\left ( w\cdot x+b \right )-1 \right ]且a_{i}> 1 $

這裏i= 1,2,,,m,即樣本個數。下文爲了編輯公式方便再也不贅述。

(這裏不明白的爲何ai≥0,請看KKT條件一文)

因此優化目標變成:

$\underset{w,b}{min}$ $\underset{a\geq 0}{max}$ $L(w,b,a)$


這裏爲何要max ai 

 博主我的認爲 是要獲得L(w,b,a)的最小值,可是關於a的那部分前面是負號,因此要求L最大時a的值。(ps:純屬我的意見,但願你們指點。)


 

 

欲獲得min L(w,b,a)時對應的w,b,對L求偏導

$\frac{\partial L}{\partial w}=0\Rightarrow w = \sum a_{i}y_{i}x_{i}$

$\frac{\partial L}{\partial b}=0\Rightarrow b = \sum a_{i}y_{i}$

這裏w可由a表示,帶入方程,咱們可要求出maxL時對應的 a即可求得w,b暫時先無論。

定義:$\psi (\alpha )=\underset{w,b}{min} {w,b}$ $L(w,b,a)$

將$w = \sum a_{i}y_{i}x_{i}$帶入

獲得

 

(公式太過龐大,編輯公式太繁瑣,so..盜圖)推導很關鍵,反正博主本身推不出來...

因此,優化目標變成:

$\underset{a}{max}=-\frac{1}{2}\sum \sum a_{i}a_{j}y_{i}y_{j}x_{i}\cdot x_{j}+\sum a_{i}$

        $s.t \sum a_{i}y_{i}=0$

        $a_{i}≥0  $

也能夠去掉負號,變成:

$\underset{a}{max}=\frac{1}{2}\sum \sum a_{i}a_{j}y_{i}y_{j}x_{i}\cdot x_{j}-\sum a_{i}$

        $s.t \sum a_{i}y_{i}=0$

        $a_{i}≥0 $

上述優化目標只有α未知,求得α便可獲得w

α的計算使用SMO算法假設獲得α*

根據$w = \sum a_{i}y_{i}x_{i}$,求得

$w* = \sum a*_{i}y_{i}x_{i}$

 

求b

在線性可分的狀況下,找到一個支持向量,必有$y_{s}(w\cdot x_{s}+b)=1\Rightarrow y_{s}(\sum a*_{i}y_{i}x_{i}\cdot x_{s}+b)=1$,能夠求得b

 

線性不可分問題請看下一節soft margin(軟間隔)。

給一個簡單的小例子感覺一下計算過程。

 

如圖,兩個樣本M1,M2,每一個樣本兩個特徵X1,X2,一個Y(因此是三個點表示他的座標)

求最佳線性分割平面

首先,根據最終的優化目標,其中第一個約束條件爲$s.t \sum a_{i}y_{i}=0$,能夠獲得

第二,根據$\frac{1}{2}\sum \sum a_{i}a_{j}y_{i}y_{j}x_{i}\cdot x_{j}-\sum a_{i}$

爲了計算簡便,定義:$H = y_{i}y_{j}x_{i}\cdot x_{j}$

因此

將H和第一步獲得的$\alpha _{1}=\alpha _{2}$帶入LD,有

如今欲獲得優化目標最大對應的α,很明顯,這是個開口向上的拋物線

 

α取到1,優化目標值最大,因此

第三,w的求解。將α值帶入$w = \sum a_{i}y_{i}x_{i}$,獲得

第四,b的求解。

由於只有兩個樣本,因此這兩個點都在支持向量上,選M1帶入w·x1+b=1有

獲得超平面

 

自我總結

(感知機與SVM的不一樣,感知機欲使誤分類點到超平面的距離最小,SVM想讓全部點到超平面的距離最大)

相關文章
相關標籤/搜索