核方法的理解
核方法在非線性分類問題上有很好的解決思路,應用于學習器SVM以及降維KPCA上,當然二者路徑也不同,SVM就是從低維不可分映射到高維可分,而KPCA是從低維不可分映射到高維后再降維到低維可分,但都脫離不來這個核方法。
核方法的原理大致是:在將低維映射到高維的過程中,如果在高維空間計算點積,其復雜度可想而知,但通過核函數可以在低維空間內得到高維空間的點積。
理解的核心在于:核函數如何做到這點呢?
通過這個解釋,可以看出選擇一定的核函數,可以實現低維空間計算高維空間的點積。
核函數怎么定義:
對一個二維空間做映射,選擇的新空間是原始空間的所有一階和二階的組合,得到了五個維度;如果原始空間是三維,那么我們會得到 19 維的新空間,隨著維度的增加,非線性組合的數目是呈爆炸性增長,維度無窮無盡。
核函數有如此的好處,但構造核函數本身就是一件不容易的事。
巧妙的核技巧令人垂涎:通過核函數,用低維的計算量得到了高維的結果,沒有增加計算復雜度的同時,得到了性質更好的高維投影。
只要涉及到內積運算,都可運用核函數替代來得到高維投影的內積,于是雖然尋找核函數困難,根據Mercer定理還是有規律可循。
被證明可用的核函數有:
總結:核方法在線性與非線性間架起一座橋梁,通過巧妙地引進核函數,避免了維數災難,沒有增加計算復雜度卻實現了高維點積運算。核函數的定義需滿足Mercer定理,被證明可用的主要有三類線性核、高斯核、多項核。
深入學習:https://www.ics.uci.edu/~welling/teaching/KernelsICS273B/svmintro.pdf
https://arxiv.org/pdf/math/0701907.pdf
總結
- 上一篇: 【Python-ML】SKlearn库特
- 下一篇: 【Python-ML】无监督线性降维PC