隨機傅里葉特征(Random Fourier Features)
作者:凱魯嘎吉 - 博客園 http://www.cnblogs.com/kailugaji/
1. 基本知識
1.1 傅里葉變換與逆傅里葉變換
1.2 平移不變性核
具有平移不變性的核有:
1.3 Bochner定理
2. 介紹
隨機傅里葉特征方法是一種近似核函數的方法,旨在找到一個低階的映射函數z(x),將D維原始數據映射到d維隨機特征空間中,隨機特征空間中兩個特征的內積約等於核函數,即z(x)’z(y)≈k(x,y)=k(x-y)
算法具體流程:
注:我的表述與算法流程中的不一樣,我的表述是z:從D->d維。
3. 具體推導
給定一個平移不變性的核,怎樣找到這樣的映射z(x)呢?
(1)平移不變性
(2)傅里葉變換與逆傅里葉變換
(3)w~p(w)
(4)e-iθ=cos(θ)-i*sin(θ),只取實部
(5)具體推導過程
(6)蒙特卡洛方法
4. 結論
至此,找到隨機映射z(x),使得原始數據x映射到d維隨機特征空間中。
我的理解:
原先支持向量機(SVM)通過核函數將樣本從原始空間映射到一個更高維的特征空間,使得樣本在這個特征空間內線性可分,而問題是這個映射函數沒法顯式地求出具體表達式,這個特征空間維度不確定,可能很高,甚至是無窮維,為了避免計算映射函數,於是用兩個樣本在特征空間的內積等於它們在原始樣本空間通過函數k(xi,xj)計算的結果來進行計算,這樣就不用直接去計算高維甚至無窮維特征空間中的內積。但是當訓練樣本個數很大時,用SVM求解時間復雜度很高。
現在是找一個映射函數z來近似原先的映射函數,找到的映射函數z有顯式的表達式,z的維度是可以人為控制的,是已知的,這個映射函數與原先的SVM的映射函數相比,維度要低,並且在新的特征空間中訓練線性學習器,計算復雜度也比原先的低,在大規模數據集上可以有效提高計算效率。但是隨機特征空間維度d的選擇是一個值得思考的問題,實驗表明,隨着隨機特征維度的增加,結果越好,這是因為高維度的隨機特征能夠更好地近似核函數,但維度升高也會導致時間復雜度增加,因此如何在保證結果較好的情況下,又不會使時間復雜度很高,如何選擇d,能對我們的結果有利,是一個值得研究的問題。
文獻截圖中的-j就是我這里的i。
5. 參考文獻
[1] Rahimi and B. Recht, “Random features for large-scale kernel machines,” in Advances in Neural Information Processing Systems 20, pp. 1177–1184, Curran Associates, Inc., 2008.
代碼:https://github.com/kma32527/Random-Fourier-Features
[2] Random Fourier Features http://gregorygundersen.com/blog/2019/12/23/random-fourier-features
[3] Karris S T. Signals and systems with MATLAB computing and Simulink modeling[M]. Orchard publications, 2007.
[4] 王迎旭. 基於隨機特征的多核分布式協同模糊聚類算法研究[D].濟南大學,2019.