1. 程式人生 > >機器學習 --- 支援向量機的核函式

機器學習 --- 支援向量機的核函式

一、核函式方法的直觀理解

線性向量機地分類效果可能並不是很好,難以分類非線性的問題,這就將引入核函式

例如在二維平面中,難以通過線性的方法來處理異或問題,但是通過將輸入變數經過核函式 \phi(\cdot)對映到三維空間中,那麼如上圖所示的線性超平面可以完成分類。

 

線上性不可分的情況下,支援向量機首先在低維空間中完成計算,然後通過核函式,將樣本從原始空間對映到高維特徵空間,最終在高維特徵空間中構造出最優的劃分超平面。

因此,在高維的特徵空間劃分超平面模型表示成:

f(x)=w^{T}\phi(x)+b

\phi(x) 表示成經過核函式將 x 對映後的特徵向量。

 

二、求解帶核函式的支援向量機

由之前線性支援向量機的推導,可以得到:

f(x)=w^{T}\phi(x)+b

\ \ \ \ \  \  \ \ =\sum_{i=1}^{m}{\alpha_{i}y_{i}\phi(x_{i})^T\phi(x)+b}

\ \ \ \ \  \  \ \ =\sum_{i=1}^{m}{\alpha_{i}y_{i}\kappa(x,x_{i})+b}

 

由線性向量機的知識,推出帶核函式的規劃方程:

\min \limits_{w,b} \frac{1}{2}\left| \left| w \right| \right|^{2}

s.t \quad y_{i}(w^{T}\phi(x_{i})+b)\geq1

 

同樣的,其對偶問題:

\max \limits_{\alpha}  \ \sum_{i=1}^{m}{\alpha_{i}}-\frac{1}{2}\sum_{i=1}^{m}{\sum_{j=1}^{m}{\alpha_{i}\alpha_{j}y_{i}y_{j}\phi(x_{i})^{T}\phi(x_{j})}} \qquad \qquad (1)

s.t \ \ \ \ \sum_{i=1}^{m}{a_{i}y_{i}}=0

\ \quad \ \ \ \  \ a_{i}\geq0

 

定義 \kappa(x_{i},x_{j})=\phi(x_{i})^T\phi(x_{j})=<\phi(x_{i}),\phi(x)>,(1)式重寫成:

\max \limits_{\alpha}  \ \sum_{i=1}^{m}{\alpha_{i}}-\frac{1}{2}\sum_{i=1}^{m}{\sum_{j=1}^{m}{\alpha_{i}\alpha_{j}y_{i}y_{j}\kappa(x_{i},x_{j})}} \qquad \qquad (2)

s.t \ \ \ \ \sum_{i=1}^{m}{a_{i}y_{i}}=0

\ \quad \ \ \ \  \ a_{i}\geq0

使用拉格朗日乘子法求解出 \alpha 後就能得到引數 w,b

 

三、核函式

如果一個對稱函式所對應的核矩陣 K 半正定,它就能作為核函式使用。使用核函式做特徵對映可能隱式地定義了特徵空間,因此選取合適的核函式很重要,下面列舉一些常用的核函式。

 

1.高斯核函式

\kappa(x_i,x_j)=exp(-\frac{\left| \left| x_i-x_j \right| \right|^2}{2\sigma^{2}})  \ \ \ \ \ \sigma>0

高斯核函式可以將資料從低維對映至高維甚至無窮維。是最常用的核函式之一。

三維空間中,選取不同的 \sigma 獲得不同的影象

\sigma=1 :

\sigma=5

通過調節 \sigma 可以獲得很高的靈活性,當 \sigma 選取過大,高次特徵權重衰減得很快,因此就相當於一個低維子空間,可能會帶來高偏差,低方差的現象,反之,高次特徵權重衰減得緩慢,可將任意的資料對映為線性可分,可能會帶來低偏差,高方差的現象。

 

2.線性核

\kappa(x_i,x_j)=x_i^Tx_j

3.多項式核

\kappa(x_i,x_j)=(x_i^Tx_j)^d \ \ \ \ \ d\geq 1

4.拉普拉斯核

\kappa(x_i,x_j)=exp(-\frac{\left| \left| x_i-x_j \right| \right|}{\sigma}) \ \ \ \ \ \sigma>0

5.Sigmoid核

\kappa(x_i,x_j)=tanh(\beta x_i^Tx_j+\theta) \ \ \ \ \ \beta>0,\theta<0

 

還可以通過函式組合得到:

  • 若 \kappa_1, \kappa_1 為核函式,對於任意的正數 \gamma_1,\gamma_2 ,其線性組合: \gamma_1\kappa_1+\gamma_2\kappa_2 也是核函式
  • 若 \kappa_1, \kappa_1 為核函式,函式的笛卡兒積: \kappa_1\otimes \kappa_2(x,z)=\kappa_1(x,z)\kappa_2(x,z) 也是核函式
  • 若 \kappa_1 為核函式,對於任意的函式 g(x) , \kappa(x,z)=g(x)\kappa_1(x,z)g(z) 也是核函式

 

參考文獻:

1.支援向量機通俗導論(理解SVM的三層境界) - Mac Track - CSDN部落格

2.拉格朗日對偶問題(Lagrange duality)

3.深入理解拉格朗日乘子法(Lagrange Multiplier) 和KKT條件

4.周志華. 機器學習[M]. 清華大學出版社, 2016

5.Andrew Ng 《machine learning》系列課程