支持向量機(Support Vector Machine,SVM)算法複雜度詳解

關於支持向量機的算法複雜度,因爲SVM在訓練階段的算法較爲複雜,詳細的算法複雜度較爲難以推算且衆說紛紜,與很多因素相關。但是可以根據相應的數據類型大致推算出SVM的算法複雜度。

參考資料:

Burges C J C . A Tutorial on Support Vector Machines for Pattern Recognition[J]. Data Mining and Knowledge Discovery, 1998, 2(2):121-167.

文獻地址:

https://www.researchgate.net/publication/226658534_A_Tutorial_on_Support_Vector_Machines_for_Pattern_Recognition

目錄

一、訓練階段的算法複雜度

1.1 算法複雜度

1.2 參考文獻

二、測試階段的算法複雜度

2.1 算法複雜度

2.2 參考文獻與推導

三、測試階段存儲量分析

3.1 測試階段線性SVM存儲複雜度


一、訓練階段的算法複雜度

1.1 算法複雜度

訓練算法爲Bunch-Kaufman算法,算法複雜度爲:

其中, 爲支持向量的個數, 爲輸入向量的維度, 爲訓練樣本點的個數。上邊界爲Upper Bound。當條件介於以上條件之間時,運算複雜度介於以上運算複雜度之間。

1.2 參考文獻

詳細參見A Tutorial on Support Vector Machines for Pattern Recognition[J] P28

二、測試階段的算法複雜度

2.1 算法複雜度

SVM在測試階段的算法複雜度爲: ,M爲SVM的kernel需要的運算次數,如果RBF核的話並且是點乘的話,M就是

因此對於線性SVM分類器,算法複雜度爲

就是支持向量的個數乘以輸入向量的維度。

2.2 參考文獻與推導

詳細參見A Tutorial on Support Vector Machines for Pattern Recognition[J]  P29

原文:

相應的測試階段的運算公式爲:

三、測試階段存儲量分析

注:第三部分未經過詳細考證,可能有誤,如果有誤歡迎及時留言交流。

3.1 測試階段線性SVM存儲複雜度

假定分類數量爲,也是支持向量的個數,輸入向量維度爲

相當於在維度爲的高維空間上,存儲個高維超平面,用於對每個維度的樣本點進行分類。

線性SVM需要存儲的參數就是這個高維超平面的參數,共個數字需要存儲。

 

相關內容:

博客文章總目錄-邢翔瑞的技術博客

機器學習算法基礎問題(一)PCA|SVM|貝葉斯|過擬合

機器學習算法基礎問題(二)類別不均|尺寸及感受野|Batch Norm|損失函數

概率相關實際問題彙總及解析

比賽競猜投注類問題概率模型

王者榮耀中的數學原理及遊戲策略(一)防禦篇(護甲|魔抗|傷害運算機制)

 

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