核函數粗淺的理解

核函數的定義
設 \mathbb{X} 是 \mathbb{R}^n 中的一個子集,稱定義在 \mathbb{X}\times\mathbb{X} 上的函數 k(x,y) 是核函數,如果存在一個從 \mathbb{X} 到希爾伯特空間(特徵空間) \mathbb{H} 的映射 \phi \ \begin{aligned} \phi : \xi\mapsto\phi(\xi)\in\mathbb{H} \end{aligned}\

使得對任意的 x,y\in\mathbb{X} ,
k(x,y)=(\phi(x),\phi(y))=\phi(x)^T\phi(y)\

都成立。

具體例子
假設 A=(1, 2)^T、B=(3,4)^T,構造一個映射 \phi(\cdot)=(x_1^2,\sqrt{2}x_1x_2,x_2^2)^T,則可知 \begin{aligned} &\phi(A)=(1,2\sqrt{2},4)^T\ &\phi(B)=(9,12\sqrt{2},16)^T \end{aligned}\

因此通過映射 \phi(\cdot) 將點 A、B 從二維平面升維到三維空間。然後計算 \begin{aligned} \phi(A)^T\phi(B)&=1\times9+2\sqrt{2}\times12\sqrt{2}+4\times16\ &=9+48+64\ &=121 \end{aligned}\

上述運算是在映射後的高維空間下做內積,那麼是否能直接在原始的空間中進行相應的運算,使得低維情況下的運算結果等於高維情況下的運算結果呢?答案是肯定的可以通過核函數 k(x,y)=(x^Ty)^2 來實現 \begin{aligned} k(A,B)&=(A^TB)^2\ &=(1\times3+2\times4)^2\ &=121 \end{aligned}\

是不是很神奇,低維空間和高維空間居然通過核函數巧妙的聯通起來了,這樣做最大的優點是避免了維度災難,也就是說高維空間中的運算計算量很大呈指數級別複雜度,難以解決;低維空間中的運算計算量很小但是兩者的最終結果是一致的。例如上述計算過程,高維空間中執行了11次乘法運算、2次根號運算和2次加法運算,低維空間中僅執行了3次乘法運算和1次加法運算,要知道這才二維空間映射到三維空間如果映射到 n 維空間呢?

小結
核函數是二元函數,輸入是映射之前的兩個向量,其輸出等價於兩個向量映射之後的內積。對於 \phi(\cdot) 你並不需要知道具體對應哪種映射,表達式是什麼,你需要知道的是核函數肯定對應於某一種映射 \phi(\cdot) 即可。

https://zhuanlan.zhihu.com/p/47541349

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章