支援向量機
在機器學習中,支援向量機 (中國大陸稱支持向量机,英語:support vector machine,常簡稱為SVM,又名支援向量網路[1])是在分類與迴歸分析中分析資料的監督式學習模型與相關的學習演算法。給定一組訓練實例,每個訓練實例被標記為屬於兩個類別中的一個或另一個,SVM訓練演算法建立一個將新的實例分配給兩個類別之一的模型,使其成為非概率二元線性分類器。SVM模型是將實例表示為空間中的點,這樣對映就使得單獨類別的實例被儘可能寬的明顯的間隔分開。然後,將新的實例對映到同一空間,並基於它們落在間隔的哪一側來預測所屬類別。
除了進行線性分類之外,SVM還可以使用所謂的核技巧有效地進行非線性分類,將其輸入隱式對映到高維特徵空間中。
當資料未被標記時,不能進行監督式學習,需要用非監督式學習,它會嘗試找出資料到簇的自然聚類,並將新資料對映到這些已形成的簇。將支援向量機改進的聚類演算法被稱為支援向量聚類[2],當資料未被標記或者僅一些資料被標記時,支援向量聚類經常在工業應用中用作分類步驟的預處理。
動機
編輯將資料進行分類是機器學習中的一項常見任務。 假設某些給定的資料點各自屬於兩個類之一,而目標是確定新資料點將在哪個類中。對於支援向量機來說,資料點被視為 維向量,而我們想知道是否可以用 維超平面來分開這些點。這就是所謂的線性分類器。可能有許多超平面可以把資料分類。最佳超平面的一個合理選擇是以最大間隔把兩個類分開的超平面。因此,我們要選擇能夠讓到每邊最近的資料點的距離最大化的超平面。如果存在這樣的超平面,則稱為最大間隔超平面,而其定義的線性分類器被稱為最大間隔分類器,或者叫做最佳穩定性感知器。[來源請求]
定義
編輯更正式地來說,支援向量機在高維或無限維空間中構造超平面或超平面集合,其可以用於分類、回歸或其他任務。直觀來說,分類邊界距離最近的訓練資料點越遠越好,因為這樣可以縮小分類器的泛化誤差。
儘管原始問題可能是在有限維空間中陳述的,但用於區分的集合在該空間中往往線性不可分。為此,有人提出將原有限維空間對映到維數高得多的空間中,在該空間中進行分離可能會更容易。為了保持計算負荷合理,人們選擇適合該問題的核函式 來定義SVM方案使用的對映,以確保用原始空間中的變數可以很容易計算點積。[3] 高維空間中的超平面定義為與該空間中的某向量的點積是常數的點的集合。定義超平面的向量可以選擇在資料集中出現的特徵向量 的圖像的參數 的線性組合。通過選擇超平面,被對映到超平面上的特徵空間中的點集 由以下關係定義: 注意,如果隨著 逐漸遠離 , 變小,則求和中的每一項都是在衡量測試點 與對應的資料基點 的接近程度。這樣,上述核心的總和可以用于衡量每個測試點相對於待分離的集合中的資料點的相對接近度。
應用
編輯- 用於文字和超文字的分類,在歸納和直推方法中都可以顯著減少所需要的有類標的樣本數。
- 用於圖像分類。實驗結果顯示:在經過三到四輪相關回饋之後,比起傳統的查詢最佳化方案,支援向量機能夠取得明顯更高的搜尋準確度。這同樣也適用於圖像分割系統,比如使用Vapnik所建議的使用特權方法的修改版本SVM的那些圖像分割系統。[4][5]
- 用於手寫字型辨識。
- 用於醫學中分類蛋白質,超過90%的化合物能夠被正確分類。基於支援向量機權重的置換測試已被建議作為一種機制,用於解釋的支援向量機模型。[6][7] 支援向量機權重也被用來解釋過去的SVM模型。[8] 為辨識模型用於進行預測的特徵而對支援向量機模型做出事後解釋是在生物科學中具有特殊意義的相對較新的研究領域。
歷史
編輯原始SVM演算法是由蘇聯數學家弗拉基米爾·瓦普尼克和亞歷克塞·澤范蘭傑斯於1963年發明的。1992年,伯恩哈德·E·博瑟(Bernhard E. Boser)、伊莎貝爾·M·蓋昂(Isabelle M. Guyon)和瓦普尼克提出了一種通過將核技巧應用於最大間隔超平面來建立非線性分類器的方法。[9] 當前標準的前身(軟間隔)由科琳娜·科特斯和瓦普尼克於1993年提出,並於1995年發表。[1]
線性SVM
編輯我們考慮以下形式的 點測試集:
其中 是 1 或者 −1,表明點 所屬的類。 中每個都是一個 維實向量。我們要求將 的點集 與 的點集分開的 「最大間隔超平面」,使得超平面與最近的點 之間的距離最大化。
任何超平面都可以寫作滿足下面方程的點集
其中 (不必是歸一化的)是該法向量。參數 決定從原點沿法向量 到超平面的偏移量。
硬間隔
編輯如果這些訓練資料是線性可分的,可以選擇分離兩類資料的兩個平行超平面,使得它們之間的距離儘可能大。在這兩個超平面範圍內的區域稱為「間隔」,最大間隔超平面是位於它們正中間的超平面。這些超平面可以由方程:
或是
來表示。通過幾何不難得到這兩個超平面之間的距離是 ,因此要使兩平面間的距離最大,我們需要最小化 。同時為了使得樣本資料點都在超平面的間隔區以外,我們需要保證對於所有的 滿足其中的一個條件:
- 若
或是
- 若
這些約束表明每個資料點都必須位於間隔的正確一側。
這兩個式子可以寫作:
可以用這個式子一起來得到最佳化問題:
「在 條件下,最小化 ,對於 "
這個問題的解 與 決定了我們的分類器 。
此幾何描述的一個顯而易見卻重要的結果是,最大間隔超平面完全是由最靠近它的那些 確定的。這些 叫做支援向量。
軟間隔
編輯為了將SVM擴充到資料線性不可分的情況,我們引入鉸鏈損失函式,
當約束條件 (1) 滿足時(也就是如果 位於邊距的正確一側)此函式為零。對於間隔的錯誤一側的資料,該函式的值與距間隔的距離成正比。 然後我們希望最小化
其中參數 用來權衡增加間隔大小與確保 位於間隔的正確一側之間的關係。因此,對於足夠小的 值,如果輸入資料是可以線性分類的,則軟間隔SVM與硬間隔SVM將表現相同,但即使不可線性分類,仍能學習出可行的分類規則。
非線性分類
編輯弗拉基米爾·瓦普尼克在1963年提出的原始最大間隔超平面演算法構造了一個線性分類器。而1992年,伯恩哈德·E·博瑟(Bernhard E. Boser)、伊莎貝爾·M·蓋昂(Isabelle M. Guyon)和瓦普尼克提出了一種通過將核技巧(最初由Aizerman et al.[10]提出)應用於最大邊界超平面來建立非線性分類器的方法。[11] 所得到的演算法形式上類似,除了把點積換成了非線性核函式。這就允許演算法在變換後的特徵空間中擬合最大間隔超平面。該變換可以是非線性的,而變換空間是高維的;雖然分類器是變換後的特徵空間中的超平面,但它在原始輸入空間中可以是非線性的。
值得注意的是,更高維的特徵空間增加了支援向量機的泛化誤差,但給定足夠多的樣本,演算法仍能表現良好。[12]
常見的核函式包括:
由等式 ,核函式與變換 有關。變換空間中也有 w 值, 。與 w 的點積也要用核技巧來計算,即 。
計算SVM分類器
編輯計算(軟間隔)SVM分類器等同於使下面表達式最小化
如上所述,由於我們關注的是軟間隔分類器, 選擇足夠小的值就能得到線性可分類輸入資料的硬間隔分類器。下面會詳細介紹將(2)簡化為二次規劃問題的經典方法。之後會討論一些最近才出現的方法,如次梯度下降法和坐標下降法。
原型
編輯最小化(2)可以用下面的方式覆寫為目標函式可微的約束最佳化問題。
對所有 我們引入變數 。注意到 是滿足 的最小非負數。
因此,我們可以將最佳化問題敘述如下
這就叫做原型問題。
對偶型
編輯通過求解上述問題的拉格朗日對偶,得到簡化的問題
這就叫做對偶問題。由於對偶最小化問題是受線性約束的 的二次函式,所以它可以通過二次規劃演算法高效地解出。 這裡,變數 定義為滿足
.
此外,當 恰好在間隔的正確一側時 ,且當 位於間隔的邊界時 。因此, 可以寫為支援向量的線性組合。 可以通過在間隔的邊界上找到一個 並求解
得到偏移量 。(注意由於 因而 。)
核技巧
編輯假設我們要學習與變換後資料點 的線性分類規則對應的非線性分類規則。此外,我們有一個滿足 的核函式 。
我們知道變換空間中的分類向量 滿足
其中 可以通過求解最佳化問題
得到。與前面一樣,可以使用二次規劃來求解係數 。同樣,我們可以找到讓 的索引 ,使得 位於變換空間中間隔的邊界上,然後求解
最後,可以通過計算下式來分類新點
現代方法
編輯用於找到SVM分類器的最近的演算法包括次梯度下降和坐標下降。當處理大的稀疏資料集時,這兩種技術已經被證明有著顯著的優點——當存在許多訓練實例時次梯度法是特別有效的,並且當特徵空間的維度高時,坐標下降特別有效。
次梯度下降
編輯SVM的次梯度下降演算法直接用表達式
注意 是 與 的凸函式。因此,可以採用傳統的梯度下降(或SGD)方法,其中不是在函式梯度的方向上前進,而是在從函式的次梯度中選出的向量的方向上前進。該方法的優點在於,對於某些實現,迭代次數不隨著資料點的數量 而增加或減少。[13]
坐標下降
編輯SVM的坐標下降演算法基於對偶問題
對所有 進行迭代,使係數 的方向與 一致。然後,將所得的係數向量 投影到滿足給定約束的最接近的係數向量。(通常使用歐氏距離。)然後重複該過程,直到獲得接近最佳的係數向量。所得的演算法在實踐中執行非常快,儘管已經證明的效能保證很少。[14]
性質
編輯SVM屬於廣義線性分類器的一族,並且可以解釋為感知器的延伸。它們也可以被認為是吉洪諾夫正則化的特例。它們有一個特別的性質,就是可以同時最小化經驗誤差和最大化幾何邊緣區; 因此它們也被稱為最大間隔分類器。
Meyer、Leisch和Hornik對SVM與其他分類器進行了比較。[15]
參數選擇
編輯SVM的有效性取決於核函式、核參數和軟間隔參數 C 的選擇。 通常會選只有一個參數 的高斯核。C 和 的最佳組合通常通過在 C 和 為指數增長序列下網格搜尋來選取,例如 ; 。通常情況下,使用交叉驗證來檢查參數選擇的每一個組合,並選擇具有最佳交叉驗證精度的參數。或者,最近在貝葉斯最佳化中的工作可以用於選擇C和γ,通常需要評估比網格搜尋少得多的參陣列合。或者,貝葉斯最佳化的最近進展可以用於選擇 C 和 ,通常需要計算的參陣列合比網格搜尋少得多。然後,使用所選擇的參數在整個訓練集上訓練用於測試和分類新資料的最終模型。[16]
問題
編輯SVM的潛在缺點包括以下方面:
- 需要對輸入資料進行完全標記
- 未校準類別成員概率
- SVM僅直接適用於兩類任務。因此,必須應用將多類任務減少到幾個二元問題的演算法;請參閱多類SVM一節。
- 解出的模型的參數很難理解。
延伸
編輯- 支援向量聚類:支援向量聚類是一種建立在核函式上的類似方法,同適用於非監督學習和數據挖掘。它被認為是數據科學中的一種基本方法。
- 轉導支援向量機
- 多元分類支援向量機:SVM演算法最初是為二值分類問題設計的,實現多分類的主要方法是將一個多分類問題轉化為多個二分類問題。常見方法包括「一對多法」和「一對一法」,一對多法是將某個類別的樣本歸為一類,其他剩餘的樣本歸為另一類,這樣k個類別的樣本就構造出了k個二分類SVM;一對一法則是在任意兩類樣本之間設計一個SVM。
- 支援向量回歸
- 結構化支援向量機:支援向量機可以被推廣為結構化的支援向量機,推廣後標籤空間是結構化的並且可能具有無限的大小。
實現
編輯最大間隔超平面的參數是通過求解最佳化得到的。有幾種專門的演算法可用於快速解決由SVM產生的QP問題,它們主要依靠啟發式演算法將問題分解成更小、更易於處理的子問題。
另一種方法是使用內點法,其使用類似牛頓法的迭代找到卡羅需-庫恩-塔克條件下原型和對偶型的解。[17] 這種方法不是去解決一系列分解問題,而是直接完全解決該問題。為了避免求解核矩陣很大的線性系統,在核技巧中經常使用矩陣的低秩近似。
另一個常見的方法是普萊特的序列最小最佳化演算法(SMO),它把問題分成了若干個可以解析求解的二維子問題,這樣就可以避免使用數值最佳化演算法和矩陣儲存。[18]
線性支援向量機的特殊情況可以通過用於最佳化其類似問題邏輯斯諦迴歸的同類演算法更高效求解;這類演算法包括次梯度下降法(如PEGASOS[19])和坐標下降法(如LIBLINEAR[20])。LIBLINEAR有一些引人注目的訓練時間上的特性。每次收斂迭代花費在讀取訓練資料上的時間是線性的,而且這些迭代還具有Q-線性收斂特性,使得演算法非常快。
一般的核SVM也可以用次梯度下降法(P-packSVM[21])更快求解,在允許並列化時求解速度尤其快。
許多機器學習工具包都可以使用核SVM,有LIBSVM、MATLAB、SAS[22]、SVMlight、kernlab[23]、scikit-learn、Shogun、Weka、Shark[24]、JKernelMachines[25]、OpenCV等。
參見
編輯參考文獻
編輯參照
編輯- ^ 1.0 1.1 Cortes, C.; Vapnik, V. Support-vector networks. Machine Learning. 1995, 20 (3): 273–297. doi:10.1007/BF00994018.
- ^ Ben-Hur, Asa, Horn, David, Siegelmann, Hava, and Vapnik, Vladimir; "Support vector clustering" (2001) Journal of Machine Learning Research, 2: 125–137.
- ^ *Press, William H.; Teukolsky, Saul A.; Vetterling, William T.; Flannery, B. P. Section 16.5. Support Vector Machines. Numerical Recipes: The Art of Scientific Computing 3rd. New York: Cambridge University Press. 2007 [2016-11-06]. ISBN 978-0-521-88068-8. (原始內容存檔於2011-08-11).
- ^ Vapnik, V.: Invited Speaker. IPMU Information Processing and Management 2014)
- ^ Barghout, Lauren. "Spatial-Taxon Information Granules as Used in Iterative Fuzzy-Decision-Making for Image Segmentation." Granular Computing and Decision-Making. Springer International Publishing, 2015. 285-318.
- ^ Bilwaj Gaonkar, Christos Davatzikos Analytic estimation of statistical significance maps for support vector machine based multi-variate image analysis and classification
- ^ R. Cuingnet, C. Rosso, M. Chupin, S. Lehéricy, D. Dormont, H. Benali, Y. Samson and O. Colliot, Spatial regularization of SVM for the detection of diffusion alterations associated with stroke outcome, Medical Image Analysis, 2011, 15 (5): 729–737
- ^ Statnikov, A., Hardin, D., & Aliferis, C. (2006). Using SVM weight-based methods to identify causally relevant and non-causally relevant variables. sign, 1, 4.
- ^ Boser, B. E.; Guyon, I. M.; Vapnik, V. N. A training algorithm for optimal margin classifiers. Proceedings of the fifth annual workshop on Computational learning theory – COLT '92. 1992: 144. ISBN 089791497X. doi:10.1145/130385.130401.
- ^ Aizerman, Mark A.; Braverman, Emmanuel M. & Rozonoer, Lev I. Theoretical foundations of the potential function method in pattern recognition learning. Automation and Remote Control. 1964, 25: 821–837.
- ^ Boser, B. E.; Guyon, I. M.; Vapnik, V. N. A training algorithm for optimal margin classifiers. Proceedings of the fifth annual workshop on Computational learning theory – COLT '92. 1992: 144. ISBN 089791497X. doi:10.1145/130385.130401.
- ^ Jin, Chi; Wang, Liwei. Dimensionality dependent PAC-Bayes margin bound. Advances in Neural Information Processing Systems. 2012 [2016-11-06]. (原始內容存檔於2015-04-02).
- ^ Shalev-Shwartz, Shai; Singer, Yoram; Srebro, Nathan; Cotter, Andrew. Pegasos: primal estimated sub-gradient solver for SVM. Mathematical Programming. 2010-10-16, 127 (1): 3–30 [2016-11-06]. ISSN 0025-5610. doi:10.1007/s10107-010-0420-4. (原始內容存檔於2016-08-25).
- ^ Hsieh, Cho-Jui; Chang, Kai-Wei; Lin, Chih-Jen; Keerthi, S. Sathiya; Sundararajan, S. A Dual Coordinate Descent Method for Large-scale Linear SVM. Proceedings of the 25th International Conference on Machine Learning. ICML '08 (New York, NY, USA: ACM). 2008-01-01: 408–415. ISBN 978-1-60558-205-4. doi:10.1145/1390156.1390208.
- ^ Meyer, D.; Leisch, F.; Hornik, K. The support vector machine under test. Neurocomputing. 2003, 55: 169. doi:10.1016/S0925-2312(03)00431-4.
- ^ Hsu, Chih-Wei; Chang, Chih-Chung & Lin, Chih-Jen. A Practical Guide to Support Vector Classification (PDF) (技術報告). Department of Computer Science and Information Engineering, National Taiwan University. 2003 [2016-11-06]. (原始內容存檔 (PDF)於2013-06-25).
- ^ Ferris, M. C.; Munson, T. S. Interior-Point Methods for Massive Support Vector Machines. SIAM Journal on Optimization. 2002, 13 (3): 783. doi:10.1137/S1052623400374379.
- ^ John C. Platt. Sequential Minimal Optimization: A Fast Algorithm for Training Support Vector Machines (PDF). NIPS. 1998 [2016-11-06]. (原始內容存檔 (PDF)於2015-07-02).
- ^ Shai Shalev-Shwartz; Yoram Singer; Nathan Srebro. Pegasos: Primal Estimated sub-GrAdient SOlver for SVM (PDF). ICML. 2007 [2016-11-06]. (原始內容存檔 (PDF)於2013-12-15).
- ^ R.-E. Fan; K.-W. Chang; C.-J. Hsieh; X.-R. Wang; C.-J. Lin. LIBLINEAR: A library for large linear classification. Journal of Machine Learning Research. 2008, 9: 1871–1874.
- ^ Zeyuan Allen Zhu; et al. P-packSVM: Parallel Primal grAdient desCent Kernel SVM (PDF). ICDM. 2009 [2016-11-06]. (原始內容存檔 (PDF)於2014-04-07).
- ^ SAS (頁面存檔備份,存於網際網路檔案館)
- ^ kernlab
- ^ Shark (頁面存檔備份,存於網際網路檔案館)
- ^ JKernelMachines (頁面存檔備份,存於網際網路檔案館)
來源
編輯- Theodoridis, Sergios; and Koutroumbas, Konstantinos; "Pattern Recognition", 4th Edition, Academic Press, 2009, ISBN 978-1-59749-272-0
- Cristianini, Nello; and Shawe-Taylor, John; An Introduction to Support Vector Machines and other kernel-based learning methods, Cambridge University Press, 2000. ISBN 0-521-78019-5 (SVM Book)
- Huang, Te-Ming; Kecman, Vojislav; and Kopriva, Ivica (2006); Kernel Based Algorithms for Mining Huge Data Sets (頁面存檔備份,存於網際網路檔案館), in Supervised, Semi-supervised, and Unsupervised Learning, Springer-Verlag, Berlin, Heidelberg, 260 pp. 96 illus., Hardcover, ISBN 3-540-31681-7
- Kecman, Vojislav; Learning and Soft Computing — Support Vector Machines, Neural Networks, Fuzzy Logic Systems (頁面存檔備份,存於網際網路檔案館), The MIT Press, Cambridge, MA, 2001.
- Schölkopf, Bernhard; and Smola, Alexander J.; Learning with Kernels, MIT Press, Cambridge, MA, 2002. ISBN 0-262-19475-9
- Schölkopf, Bernhard; Burges, Christopher J. C.; and Smola, Alexander J. (editors); Advances in Kernel Methods: Support Vector Learning, MIT Press, Cambridge, MA, 1999. ISBN 0-262-19416-3.
- Shawe-Taylor, John; and Cristianini, Nello; Kernel Methods for Pattern Analysis (頁面存檔備份,存於網際網路檔案館), Cambridge University Press, 2004. ISBN 0-521-81397-2 (Kernel Methods Book)
- Steinwart, Ingo; and Christmann, Andreas; Support Vector Machines, Springer-Verlag, New York, 2008. ISBN 978-0-387-77241-7 (SVM Book)
- Tan, Peter Jing; and Dowe, David L. (頁面存檔備份,存於網際網路檔案館) (2004); MML Inference of Oblique Decision Trees (頁面存檔備份,存於網際網路檔案館), Lecture Notes in Artificial Intelligence (LNAI) 3339, Springer-Verlag, pp. 1082–1088. (This paper uses minimum message length (MML) and actually incorporates probabilistic support vector machines in the leaves of decision trees.)
- Vapnik, Vladimir N.; The Nature of Statistical Learning Theory, Springer-Verlag, 1995. ISBN 0-387-98780-0
- Vapnik, Vladimir N.; and Kotz, Samuel; Estimation of Dependences Based on Empirical Data, Springer, 2006. ISBN 0-387-30865-2, 510 pages [this is a reprint of Vapnik's early book describing philosophy behind SVM approach. The 2006 Appendix describes recent development].
- Fradkin, Dmitriy; and Muchnik, Ilya; Support Vector Machines for Classification in Abello, J.; and Carmode, G. (Eds); Discrete Methods in Epidemiology, DIMACS Series in Discrete Mathematics and Theoretical Computer Science, volume 70, pp. 13–20, 2006. Succinctly describes theoretical ideas behind SVM.
- Bennett, Kristin P.; and Campbell, Colin; Support Vector Machines: Hype or Hallelujah? (頁面存檔備份,存於網際網路檔案館), SIGKDD Explorations, 2, 2, 2000, 1–13. Excellent introduction to SVMs with helpful figures.
- Ivanciuc, Ovidiu; Applications of Support Vector Machines in Chemistry (頁面存檔備份,存於網際網路檔案館), in Reviews in Computational Chemistry, Volume 23, 2007, pp. 291–400.
- Catanzaro, Bryan; Sundaram, Narayanan; and Keutzer, Kurt; Fast Support Vector Machine Training and Classification on Graphics Processors, in International Conference on Machine Learning, 2008
- Campbell, Colin; and Ying, Yiming; Learning with Support Vector Machines (頁面存檔備份,存於網際網路檔案館), 2011, Morgan and Claypool. ISBN 978-1-60845-616-1.
- Ben-Hur, Asa, Horn, David, Siegelmann, Hava, and Vapnik, Vladimir; "Support vector clustering" (2001) Journal of Machine Learning Research, 2: 125–137.
外部連結
編輯- www.support-vector.net The key book about the method, "An Introduction to Support Vector Machines" with online software
- Burges, Christopher J. C.; A Tutorial on Support Vector Machines for Pattern Recognition (頁面存檔備份,存於網際網路檔案館), Data Mining and Knowledge Discovery 2:121–167, 1998
- www.kernel-machines.org (頁面存檔備份,存於網際網路檔案館) (general information and collection of research papers)
- www.support-vector-machines.org (頁面存檔備份,存於網際網路檔案館) (Literature, Review, Software, Links related to Support Vector Machines — Academic Site)
- svmtutorial.online (頁面存檔備份,存於網際網路檔案館) A simple introduction to SVM, easily accessible to anyone with basic background in mathematics
- videolectures.net (頁面存檔備份,存於網際網路檔案館) (SVM-related video lectures)
- Karatzoglou, Alexandros et al.; Support Vector Machines in R (頁面存檔備份,存於網際網路檔案館), Journal of Statistical Software April 2006, Volume 15, Issue 9.
- libsvm (頁面存檔備份,存於網際網路檔案館), LIBSVM is a popular library of SVM learners
- liblinear (頁面存檔備份,存於網際網路檔案館) is a library for large linear classification including some SVMs
- Shark is a C++ machine learning library implementing various types of SVMs
- dlib (頁面存檔備份,存於網際網路檔案館) is a C++ library for working with kernel methods and SVMs
- SVM light is a collection of software tools for learning and classification using SVM
- SVMJS live demo (頁面存檔備份,存於網際網路檔案館) is a GUI demo for JavaScript implementation of SVMs
- Gesture Recognition Toolkit (頁面存檔備份,存於網際網路檔案館) contains an easy to use wrapper for libsvm (頁面存檔備份,存於網際網路檔案館)