本文其實是為了講核函數,由於核函數比較抽象,就從 余弦相似、內積 開始講起,因為 核函數、內積、余弦相似 本質上都是一種相似性度量 的方式
內積 與 余弦相似度
內積
存在兩個向量
a,b 內積為
余弦相似度
a·b = |a||b|cos(a, b)
cos(a, b) = (a·b) / (|a||b|)
二者關系
1. 從上面公式可以看出,余弦相似性 其實是 內積的 歸一化
2. 余弦相似性只考慮 向量夾角大小,而內積不僅考慮向量夾角大小,也考慮了向量的長度差
比如兩個向量 A 和 B,A=(1,1,0) B=(0, 1, 1),AB余弦相似度為 1/(sqrt(2) * sqrt(2)) = 1/2, 余弦相似度不考慮向量長度,(1,1,0) 和 (0, 3, 3) 的相似度 等於 AB的相似度 但是,如果入股向量的長度對相似性有真實影響,那么 A(1, 1) B(4, 4) C(5, 5) 三個向量,相似度相同,但 BC 內積 大於 AB 內積,故 BC 更相似
核函數
官方定義
設 X 是輸入空間(歐式空間或者離散集合),H 是特征空間(希爾伯特空間),
存在一個從 X 到 H 的映射 φ(X): X→H,
使得對所有的 x、y€X,均有 k(x, y) = φ(x) · φ(y),
則稱 k(x, y) 為核函數
實例解釋
假設 ,構造一個映射
,則可知
因此通過映射 將點
從二維平面升維到三維空間。然后計算
上述運算是在映射后的高維空間下做內積,
那么是否能直接在原始的空間中進行相應的運算,使得低維情況下的運算結果等於高維情況下的運算結果呢?
答案是肯定的。可以通過核函數 來實現
是不是很神奇,低維空間和高維空間居然通過核函數巧妙的聯通起來了
優點
1. 避免了維度災難,也就是說高維空間中的運算計算量很大呈指數級別復雜度,難以解決;低維空間中的運算計算量很小,但是兩者的最終結果是一致的。
例如上述計算過程,高維空間中執行了11次乘法運算、2次根號運算和2次加法運算,低維空間中僅執行了3次乘法運算和1次加法運算,要知道這才二維空間映射到三維空間如果映射到 維空間呢?
2. 核函數使得我們不需要顯式計算每一個 φ(x),甚至不需要知道 φ(·) 長什么樣,就能直接求出 φ(x)Tφ(y)
常用核函數
未完待續...
參考資料:
https://www.cnblogs.com/lzhu/p/10405091.html 內積
https://blog.csdn.net/kyle1314608/article/details/104582467 內積與余弦相似關系
https://www.zhihu.com/question/24627666 知乎 - 核函數的定義和作用是什么?
https://zhuanlan.zhihu.com/p/47541349 核函數粗淺的理解
https://zhuanlan.zhihu.com/p/30445271 專家坐堂:機器學習中對核函數的理解