作者:桂。
時間:2017-04-26 12:17:42
鏈接:http://www.cnblogs.com/xingshansi/p/6767980.html

前言
之前分析的感知機、主成分分析(Principle component analysis, PCA)包括后面看的支撐向量機(Support vector machines, SVM),都有用到核函數。核函數是將信號映射到高維,而PCA一般用來降維。這里簡單梳理一下核函數的知識:
1)核函數基本概念;
2)核函數的意義;
內容為自己的學習記錄,其中多有參考他人,最后一並給出鏈接。
一、核函數基本概念
先來看看核函數的定義:
核函數:是映射關系
的內積,映射函數本身僅僅是一種映射關系,並沒有增加維度的特性,不過可以利用核函數的特性,構造可以增加維度的核函數,這通常是我們希望的。
例如這樣一個圖:

二維映射到三維,區分就更容易了,這是聚類、分類常用核函數的原因。為什么PCA這樣一個降維算法也用核函數呢?
左圖為原數據,右圖為映射到三維的數據,可以看出:同樣是降到1維,先通過Kernel映射到(Kernel是映射的內積,不要弄亂了)三維,再投影到1維,就容易分離開,這就是Kernel在PCA降維中的應用,本質還是對原有數據增加維度。

既然核函數這么神奇,就看看它的來龍去脈。
二、核函數的意義
A-核函數常見應用
先來看看核函數幾個常用的地方:
1.核感知機
在前面分析感知機時提到:

2.核聚類(Kernel Kmeans)
在前面分析核聚類時提到:

3.核PCA(kernel PCA)
具體定義可以參考wikipedia,根據前文分析的PCA步驟,有一步是利用相關矩陣的特征值分解,看看相關矩陣:

又看到了相乘的形式,自然可以用Kernel:

4.支撐向量機SVM
支撐向量機對偶形式的目標函數:

又看到了
的形式,從而得到SVM的核函數形式:

B-核函數為什么可以映射到高維?
1.為什么不用映射函數
,而用他們的內積形式,即Kernel函數?
因為(x,z)一起出現的時候,
有許多固定的形式可以調用,而不必求解或者關心
的具體形式,這大大簡化了求解。
2.什么樣的函數才可以叫做核函數?
直接給出條件:
具體參考:李航《統計學習方法》p120~122。
3.為什么實現數據映射到高維?
看一個例子:
這就從二維變成了三維,當然還可以更高維:
這里可以粗略理解成:多項式可以實現數據的維度擴增,而高斯核是指數形式,展開就是無窮多的多項式,所以高斯核可以將數據映射到無窮維度。
4.常用核函數
多項式核:

高斯核:

參考:
- 李航《統計學習方法》






