在這之前所探討的輸入數據都是假設為可線性分離的,如果輸入數據不是線性可分離的,實務上的數據往往是這樣,那麼標準PCA,所設計的線性轉換技術就不是最好的選擇,在本節介紹核PCA(kernel PCA),它與核支援向量機(kernel SVM)類似,利用核技巧來將非線性分離的數據轉換到一個新的特徵子空間,而轉換之後便可以做線性分離。
核函數與核技巧:
類似核SVM的作法,透過核函數與核技巧,將原始數據投影到更高維的新特徵空間,而在新特徵空間,數據類別是可以線性分離的。要轉換d維空間的樣本到更高維的k維空間,我們需要定義一個非線性對應函數Φ:
如下方式,原本數據X有兩個特徵行向量,為2維d=2。利用函數Φ可以對應到3維空間k=3。
整體上來說就是,透過核PCA,我們執行一個非線性對應函數將數據轉換到一個更高維的空間,並在這個高維的空間,使用標準PCA,再將數據投影回到一個較低維度的子空間,在這個低維度的子空間中,樣本即可使用線性分類器來分離。
這個方法的缺點是非常耗費計算資源,因此我們可以使用核技巧,使用核技巧,我們可以計算兩個由原始的特徵空間所產生的高維特徵向量之間的相似度。
套用之前標準PCA的推導(此略),我們可以定義一核矩陣(相似度矩陣)K:
核函數k則可以替代原本需使用的非線性對應函數Φ:
這樣我們就不用去計算原本需由非線性對應函數Φ去處理的樣本中兩兩數據點的內積(公式右側),因此核函數也可以理解為,一個計算兩個向量內積的函數,也就是計算相似度的函數。而不像標準PCA,會建立一個轉換矩陣,經過核PCA處理之後,所得到的是已經投影完成的樣本。
在此我們使用的核函數為RBF(Radial Basis Function Kernel):
實作一個「RBF核」(Radial Basis Function Kernel)的PCA,我們可以定義如下的三個步驟: