關於支持向量機的算法複雜度,因爲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.
文獻地址:
目錄
一、訓練階段的算法複雜度
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需要存儲的參數就是這個高維超平面的參數,共個數字需要存儲。
相關內容:
機器學習算法基礎問題(二)類別不均|尺寸及感受野|Batch Norm|損失函數
- linux操作系統基礎知識
- 谷歌論文Weight Agnostic Neural Networks(WANN)權重無關神經網絡
- Unet論文詳解U-Net:Convolutional Networks for Biomedical Image Segmentation
- Text to image基於GAN的文本生成圖像GAN-INT-CLS解析
- 眼底血管分割MICCAI 2019論文詳解Multi-task Neural Networks with Spatial Activation for Retinal Vessel...
王者榮耀中的數學原理及遊戲策略(一)防禦篇(護甲|魔抗|傷害運算機制)