1. 程式人生 > >機器學習:核函式和核矩陣簡介

機器學習:核函式和核矩陣簡介

核函式也就是一種函式,本質上跟其他常見的函式(如冪函式)是一樣的。我們知道,冪函式有它的特點,形如y = x^{a}的函式才能稱為冪函式。同樣,核函式也有他的特點,只不過它的特點更復雜一點,滿足以下要求的函式才能稱為核函式(定理):

\chi為輸入空間,\kappa (*,*)是定義在\chi \ast \chi上的對稱函式,則\kappa是核函式當且僅當對於任意資料D = \{x_{1},x_{2},...,x_{m}\}核矩陣K總是半正定的:

K = \begin{bmatrix} \kappa (x_{1},x_{1}) & . & . & . & \kappa (x_{1},x_{m}) \\ . & . & . & . & .\\ . & . & . & . & .\\ . & . & . & . & .\\ \kappa (x_{m},x_{1}) & . & . & . & \kappa (x_{m},x_{m}) \end{bmatrix}.

上面的定理表明,只要一個對稱函式對應的核矩陣半正定,它就能作為核函式。

常用的核函式有:

核函式的作用,就一句話:計算樣本在高維空間的內積

假如出於某些原因,我們要將樣本從原始空間對映到高維空間(如在低維空間樣本線性不可分,需要對映到高維空間產生線性可分的樣本)。假設對映為\phi

\phi (x)表示x對映後的特徵向量。假設在高維空間中,正好涉及到計算內積:。這時,就可以引入核函式(涉及選擇什麼核函式):

\kappa (x_{i},x_{j}) = \left \langle \phi (x_{i}),\phi (x_{j}) \right \rangle= \phi (x_{i})^{T}\phi (x_{j}).

上式將x_{i},x_{j}高維空間的內積轉化到在原始空間計算。那為什麼不直接在對映後的高維空間計算?原因有兩點:

  1. 通常我們不知道對映\phi的具體形式;
  2. 對映後的空間維數可能非常高,甚至無限維,直接計算開銷太大,十分困難.

這就是核函式的作用。

上面提到有5種常用的核函式,選擇了不同的核函式,意味選擇了不同的某種對映。因為我們不知道對映的具體形式,所以我們並不知道什麼樣的核函式合適。核函式的選擇成為演算法的“變數”。

核函式的選擇有一些基本經驗:例如對文字資料通常採用線性核,情況不明時可先嚐試高斯核。線性核和高斯核也是最為常用的核函式。

參考資料:周志華《機器學習》