在再談SVM(hard-margin和soft-margin詳細推導、KKT條件、核技巧)中咱們大體談到了核函數以及爲何要用核函數,今天在這裏更加詳細的介紹一下。
機器學習
1.核函數概述
從前面的學習中咱們能夠看出來,不管是Hard margin SVM仍是Soft margin SVM構建的都是一個線性的決策邊界,從而把數據集分到各自的類中,若是數據集是一個非線性的,直接使用SVM,得不到一個理想的結果,那麼使用線性分類器求解非線性分類問題,須要特殊的處理:函數
- 首先,使用一個變換將原空間的數據映射到新空間中
- 而後,在新空間中使用線性分類器求解
在機器學習之邏輯迴歸(logistics regression)中,咱們考慮了這樣一個問題:
考慮一個簡單的二分類問題,有x1,x2兩個特徵,兩個特徵值都爲0 or 1爲C2,不然爲C1。在邏輯迴歸中,輸入某一個樣本的兩個特徵值x1,x2,與各自的權重w1,w2相乘,也就是求inner product,最後加上一個bias,獲得z,再將z用Sigmoid函數處理,最後與0.5進行比較,就能夠判斷屬於哪個類別。可是咱們將兩個特徵映射到到一個二維座標系上,發現根本不可能找到一條直線將兩類樣本徹底分開。這種限制與數據量無關,是邏輯迴歸本身自己的限制。
鑑於上面這種狀況,就須要用到
Teature Transformation,即特徵轉換。用特徵轉換處理後,使得咱們可以用一條直線將C1和C2,也就是上面的紅點和藍點分開。圖裏面的處理方法是:定義新的x1,x2,x1爲點到(0,0)的距離,x2爲到點(1,1)的距離,處理後以下圖所示:
這時候咱們發現,就可以找到一條直線將兩類點分開,但在實際應用中,咱們每每不可以找到比較好的特徵變換的方法。
上面這種其實仍是隻是二維到二維的轉換,實際上咱們能夠是二維到三維的轉換,好比下面這種狀況:
一樣形狀與顏色的點表明同一類別。觀察上圖咱們發現,在二維平面上,咱們不可能找到一條直線剛好能夠將兩類樣本點分開,但假設咱們作以下處理:
這樣咱們就將二維的點變換到了三維,這個時候咱們再看看分佈狀況:
學習
這個時候兩個藍點在一個平面上,兩個紅點在另外一個平面上,在它們之間很容易找到一個超平面來使得它們分開。spa
上面囉嗦了一大堆,總結一下就是:當咱們在低維空間對樣本數據處理時,咱們發現用線性的模型沒法處理。因而咱們便把低維數據引入到高維中,這樣就能夠用線性的模型去處理。.net
2.正定核
咱們所說的核函數大部分都是正定核。在下面的探討中,輸入空間爲 χ \chi χ, x , z ∈ χ x,z\in\chi x,z∈χ。3d
2.1定義
正定核的定義有兩種:orm
- 對於 ∀ x , z ∈ χ \forall x,z\in\chi ∀x,z∈χ,若存在一個函數 ϕ \phi ϕ,使得 K ( x , z ) = < ϕ ( x ) , ϕ ( z ) > K(x,z)=\ <\phi(x),\phi(z)> K(x,z)= <ϕ(x),ϕ(z)>,則稱 K ( x , z ) K(x,z) K(x,z)爲正定核函數
- 對於 ∀ x , z ∈ χ \forall x,z\in\chi ∀x,z∈χ,若是 K ( x , z ) K(x,z) K(x,z)知足對稱性以及正定性,則咱們也稱 K ( x , z ) K(x,z) K(x,z)爲正定核函數
對第一條定義的說明:咱們要將低維樣本映射到高維,則咱們須要一個映射函數,若是咱們可以找到一個 ϕ \phi ϕ函數,使得咱們定義的 K ( x , z ) K(x,z) K(x,z)剛好是兩個高維樣本 ϕ ( x ) , ϕ ( z ) \phi(x),\phi(z) ϕ(x),ϕ(z)的內積,則 K ( x , z ) K(x,z) K(x,z)就是一個正定核函數。但上面咱們也說了,這個映射函數很很差找。
爲啥必定要是內積?由於內積偏偏是數據挖掘中很是重要的一種計算方式,數據挖掘的不少方法都是藉助內積來完成的,因此核函數具備強大的功能。
對第二條定義的說明:
blog
- 所謂對稱性,是指 K ( x , y ) = K ( y , x ) K(x,y)=K(y,x) K(x,y)=K(y,x)。
- 所謂正定性:對低維空間中任意N個樣本 x 1 , x x , . . . , x N x_{1},x_{x},...,x_{N} x1,xx,...,xN,其對應的Gram矩陣是半正定的。什麼是Gram矩陣?咱們令K表示那N個樣本的Gram矩陣:
該矩陣是一個N X N的矩陣,好比(1,1)這個位置就是 K ( x 1 , x 1 ) K(x_{1},x_{1}) K(x1,x1)
什麼是半正定?咱們任取一個N維的列向量 α \alpha α,若是知足:
則說明這個N X N的矩陣K是一個半正定的矩陣。
2.2證實
咱們一再強調,映射函數 ϕ \phi ϕ很差找。 那麼咱們該怎麼定義一個正定核?瞎猜嗎?顯然不是,咱們能夠根據第二個定義來構造。所以咱們須要證實一二兩個定義式互通的。
將一二兩個定義結合起來就是:
K ( x , z ) = < ϕ ( x ) , ϕ ( z ) > K(x,z)=<\phi(x),\phi(z)> K(x,z)=<ϕ(x),ϕ(z)> ⇔ \Leftrightarrow ⇔ Gram矩陣半正定且K知足對稱性。
下面咱們將證實這個結論。先看從左到右,假設已知了 K ( x , z ) = < ϕ ( x ) , ϕ ( z ) > K(x,z)=<\phi(x),\phi(z)> K(x,z)=<ϕ(x),ϕ(z)> ,由於是求內積,因此對稱性是顯而易見的。那麼咱們怎麼推導出Gram矩陣半正定呢?根據半正定的定義:
所以正推能夠實現。反推暫時不太會。。後期補上。
所以上述兩個定義是相通的。在定義一中,咱們得找到一個 ϕ \phi ϕ,這個一般很差找。而在定義二中,咱們只須要本身定義一個函數K,而後取任意N個樣本,聯合K求它們的Gram矩陣,只要該矩陣知足半正定性質,那麼咱們定義的函數K就是一個正定核函數。
圖片
3.核技巧
什麼是核技巧?在SVM的推導中,咱們看到:
get
注:上述 x j x_{j} xj只是爲了便於區分才這樣寫,其實是 x i x_{i} xi。咱們令:
因而有:
所謂核技巧,就是指咱們能夠直接計算 K ( x i , x j ) K(x_{i},x_{j}) K(xi,xj)(這個K是已知的,根據定義二能夠構造),而不須要真正的去找一個 ϕ ( x ) \phi(x) ϕ(x)(一般是很難找的)。也就是說,咱們並不關心低維到高維的映射 ϕ \phi ϕ是什麼樣子的,咱們只須要構造一個函數K,使得該函數能夠表示爲映射後空間裏數據的內積,這樣就能夠了。
4.常見的核函數
偉大的前人已經幫咱們定義好了不少的核函數,常見的有: