在機器學習中，zhcn 支援向量機；zhtw 支援向量機；zhhk 支援向量機； （zhcn 臺灣稱支援向量機；zhtw 中國大陸稱支援向量機，，常簡稱為 SVM，又名支援向量網路）是在分類與迴歸分析中分析資料的監督式學習模型與相關的學習演算法。給定一組訓練例項，每個訓練例項被標記為屬於兩個類別中的一個或另一個，SVM 訓練演算法建立一個將新的例項分配給兩個類別之一的模型，使其成為非機率線性分類器。SVM 模型是將例項表示為空間中的點，這樣對映就使得單獨類別的例項被儘可能寬的明顯的間隔分開。然後，將新的例項對映到同一空間，並基於它們落在間隔的哪一側來預測所屬類別。 除了進行線性分類之外，SVM 還可以使用所謂的有效地進行非線性分類，將其輸入隱式對映到高維特徵空間中。 當資料未被標記時，不能進行監督式學習，需要用非監督式學習，它會嘗試找出資料到簇的自然聚類，並將新資料對映到這些已形成的簇。將支援向量機改進的聚類演算法被稱為支援向量聚類 BenHur Asa Horn David Siegelmann Hava and Vapnik Vladimir Support vector clustering 2001 Journal of Machine Learning Research 2 125137，當資料未被標記或者僅一些資料被標記時，支援向量聚類經常在工業應用中用作分類步驟的預處理。 動機 將資料進行分類是機器學習中的一項常見任務。 假設某些給定的資料點各自屬於兩個類之一，而目標是確定新資料點將在哪個類中。對於支援向量機來說，資料點被視為 p 維向量，而我們想知道是否可以用 p1 維超平面來分開這些點。這就是所謂的線性分類器。可能有許多超平面可以把資料分類。最佳超平面的一個合理選擇是以最大間隔把兩個類分開的超平面。因此，我們要選擇能夠讓到每邊最近的資料點的距離最大化的超平面。如果存在這樣的超平面，則稱為最大間隔超平面，而其定義的線性分類器被稱為最大，或者叫做最佳穩定性感知器。 定義 更正式地來說，支援向量機在高維或無限維空間中構造超平面或超平面集合，其可以用於分類、迴歸或其他任務。直觀來說，分類邊界距離最近的訓練資料點越遠越好，因為這樣可以縮小分類器的泛化誤差。 儘管原始問題可能是在有限維空間中陳述的，但用於區分的集合在該空間中往往。為此，有人提出將原有限維空間對映到維數高得多的空間中，在該空間中進行分離可能會更容易。為了保持計算負荷合理，人們選擇適合該問題的 k xy 來定義 SVM 方案使用的對映，以確保用原始空間中的變數可以很容易計算點積。 高維空間中的超平面定義為與該空間中的某向量的點積是常數的點的集合。定義超平面的向量可以選擇在資料集中出現的特徵向量 x_i 的影像的引數 alpha_i 的線性組合。透過選擇超平面，被對映到超平面上的特徵空間中的點集 x 由以下關係定義：textstylesum_i alpha_i k x_ix mathrm constant 注意，如果隨著 y 逐漸遠離 x，k xy 變小，則求和中的每一項都是在衡量測試點 x 與對應的資料基點 x_i 的接近程度。這樣，上述核心的總和可以用於衡量每個測試點相對於待分離的集合中的資料點的相對接近度。 應用 用於文字和超文字的分類，在歸納和直推方法中都可以顯著減少所需要的有類標的樣本數。 用於影像分類。實驗結果顯示：在經過三到四輪相關反饋之後，比起傳統的查詢最佳化方案，支援向量機能夠取得明顯更高的搜尋準確度。這同樣也適用於影像分割系統，比如使用 Vapnik 所建議的使用特權方法的修改版本 SVM 的那些影像分割系統。Vapnik V Invited Speaker IPMU Information Processing and Management 2014 Barghout Lauren SpatialTaxon Information Granules as Used in Iterative FuzzyDecisionMaking for Image Segmentation Granular Computing and DecisionMaking Springer International Publishing 2015 285318 用於手寫字型識別。 用於醫學中分類蛋白質，超過 90 的化合物能夠被正確分類。基於支援向量機權重的置換測試已被建議作為一種機制，用於解釋的支援向量機模型。Bilwaj Gaonkar Christos Davatzikos Analytic estimation of statistical significance maps for support vector machine based multivariate image analysis and classificationR 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 729737 支援向量機權重也被用來解釋過去的 SVM 模型。Statnikov A Hardin D Aliferis C 2006 Using SVM weightbased methods to identify causally relevant and noncausally relevant variables sign 1 4 為識別模型用於進行預測的特徵而對支援向量機模型做出事後解釋是在生物科學中具有特殊意義的相對較新的研究領域。 歷史 原始 SVM 演算法是由蘇聯數學家弗拉基米爾瓦普尼克和亞歷克塞澤範蘭傑斯於 1963 年發明的。1992 年，伯恩哈德E博瑟（Bernhard E Boser）、伊莎貝爾M蓋昂（Isabelle M Guyon）和瓦普尼克提出了一種透過將核技巧應用於最大間隔超平面來建立非線性分類器的方法。 當前標準的前身（軟間隔）由科琳娜科特斯和瓦普尼克於 1993 年提出，並於 1995 年發表。 線性 SVM 我們考慮以下形式的 n 點測試集： vec x_1 y_1 ldots vec x_n y_n 其中 y_i 是 1 或者 1，表明點 vec x_i 所屬的類。 vec x_i 中每個都是一個 p 維實向量。我們要求將 y_i1 的點集 vec x_i 與 y_i1 的點集分開的 最大間隔超平面，使得超平面與最近的點 vec x_i 之間的距離最大化。 任何超平面都可以寫作滿足下面方程的點集 vec x vec wcdotvec x b0 其中 vec w（不必是歸一化的）是該法向量。引數 tfrac bvec w 決定從原點沿法向量 vec w 到超平面的偏移量。 硬間隔 如果這些訓練資料是線性可分的，可以選擇分離兩類資料的兩個平行超平面，使得它們之間的距離儘可能大。在這兩個超平面範圍內的區域稱為 間隔，最大間隔超平面是位於它們正中間的超平面。這些超平面可以由方程： vec wcdotvec x b1 或是 vec wcdotvec x b1 來表示。通過幾何不難得到這兩個超平面之間的距離是 tfrac 2vec w，因此要使兩平面間的距離最大，我們需要最小化 vec w。同時為了使得樣本資料點都在超平面的間隔區以外，我們需要保證對於所有的 i 滿足其中的一個條件： vec wcdotvec x_i b ge 1 若 y_i 1 或是 vec wcdotvec x_i b le 1 若 y_i 1 這些約束表明每個資料點都必須位於間隔的正確一側。 這兩個式子可以寫作： y_i vec wcdotvec x_i b ge 1 quad text for all 1 le i le nqquadqquad 1 可以用這個式子一起來得到最佳化問題：在 y_i vec wcdotvec x_i b ge 1 條件下，最小化 vec w，對於 i 1ldotsn 這個問題的解 vec w 與 b 決定了我們的分類器 vec x mapsto sgn vec w cdot vec x b。 此幾何描述的一個顯而易見卻重要的結果是，最大間隔超平面完全是由最靠近它的那些 vec x_i 確定的。這些 vec x_i 叫做支援向量。 軟間隔 為了將 SVM 擴充套件到資料線性不可分的情況，我們引入鉸鏈損失函式，maxleft 0 1y_i vec wcdotvec x_i bright 當約束條件 1 滿足時（也就是如果 vec x_i 位於邊距的正確一側）此函式為零。對於間隔的錯誤一側的資料，該函式的值與距間隔的距離成正比。 然後我們希望最小化 left frac 1 n sum_i1n maxleft 0 1 y_i vec wcdot vec x_i bright right lambdalVert vec w rVert2 其中引數 lambda 用來權衡增加間隔大小與確保 vec x_i 位於間隔的正確一側之間的關係。因此，對於足夠小的 lambda 值，如果輸入資料是可以線性分類的，則軟間隔 SVM 與硬間隔 SVM 將表現相同，但即使不可線性分類，仍能學習出可行的分類規則。 非線性分類 弗拉基米爾瓦普尼克在 1963 年提出的原始最大間隔超平面演算法構造了一個線性分類器。而 1992 年，伯恩哈德E博瑟（Bernhard E Boser）、伊莎貝爾M蓋昂（Isabelle M Guyon）和瓦普尼克提出了一種透過將（最初由 Aizerman et al 提出）應用於最大邊界超平面來建立非線性分類器的方法。 所得到的演算法形式上類似，除了把點積換成了非線性核函式。這就允許演算法在變換後的特徵空間中擬合最大間隔超平面。該變換可以是非線性的，而變換空間是高維的；雖然分類器是變換後的特徵空間中的超平面，但它在原始輸入空間中可以是非線性的。 值得注意的是，更高維的特徵空間增加了支援向量機的泛化誤差，但給定足夠多的樣本，演算法仍能表現良好。 常見的核函式包括： 齊次多項式：k vec x_ivec x_jvec x_i cdot vec x_jd ：k vec x_ivec x_jvec x_i cdot vec x_j 1d 高斯徑向基函式：k vec x_ivec x_jexp gamma vec x_i vec x_j2，其中 gamma 0。有時引數化表示 gamma12 sigma2 雙曲正切：k vec x_ivec x_jtanh kappa vec x_i cdot vec x_jc，其中一些（而非所有）kappa 0 且 c 0 由等式 k vec x_i vec x_j varphi vec x_icdot varphi vec x_j，核函式與變換 varphi vec x_i 有關。變換空間中也有 w 值，textstylevec w sum_i alpha_i y_i varphi vec x_i。與 w 的點積也要用核技巧來計算，即 textstyle vec wcdotvarphi vec x sum_i alpha_i y_i k vec x_i vec x。 計算 SVM 分類器 計算（軟間隔）SVM 分類器等同於使下面表示式最小化 left frac 1 n sum_i1n maxleft 0 1 y_i wcdot x_i bright right lambdalVert w rVert2 qquad 2 如上所述，由於我們關注的是軟間隔分類器，lambda 選擇足夠小的值就能得到線性可分類輸入資料的硬間隔分類器。下面會詳細介紹將 2 簡化為二次規劃問題的經典方法。之後會討論一些最近才出現的方法，如次梯度下降法和座標下降法。 原型 最小化 2 可以用下面的方式改寫為目標函式可微的約束最佳化問題。 對所有 i in 1ldotsn 我們引入變數 zeta_i maxleft 0 1 y_i wcdot x_i bright。注意到 zeta_i 是滿足 y_i wcdot x_i b geq 1 zeta_i 的最小非負數。 因此，我們可以將最佳化問題敘述如下 text minimize frac 1 n sum_i1n zeta_i lambdaw2 text subject to y_i x_i cdot w b geq 1 zeta_i text andzeta_i geq 0text for all i 這就叫做原型問題。 對偶型 透過求解上述問題的，得到簡化的問題 text maximize f c_1 ldots c_n sum_i1n c_i frac 1 2 sum_i1nsum_j1n y_ic_i x_i cdot x_j y_jc_j text subject to sum_i1n c_iy_i 0text and 0 leq c_i leq frac 12nlambdatext for all i 這就叫做對偶問題。由於對偶最小化問題是受線性約束的 c_i 的二次函式，所以它可以透過二次規劃演算法高效地解出。 這裡，變數 c_i 定義為滿足 vec w sum_i1n c_iy_i vec x_i 此外，當 vec x_i 恰好在間隔的正確一側時 c_i 0，且當 vec x_i 位於間隔的邊界時 0 c_i 2nlambda1。因此， vec w 可以寫為支援向量的線性組合。 可以透過在間隔的邊界上找到一個 vec x_i 並求解 y_i vec w cdot vec x_i b 1 iff b y_i vec w cdot vec x_i 得到偏移量 b。（注意由於 y_ipm 1 因而 y_i1y_i。） 核技巧 假設我們要學習與變換後資料點 varphi vec x_i 的線性分類規則對應的非線性分類規則。此外，我們有一個滿足 k vec x_i vec x_j varphi vec x_i cdot varphi vec x_j 的核函式 k。 我們知道變換空間中的分類向量 vec w 滿足 vec w sum_i1n c_iy_ivarphi vec x_i 其中 c_i 可以透過求解最佳化問題 begin align text maximize f c_1 ldots c_n sum_i1n c_i frac 1 2 sum_i1nsum_j1n y_ic_i varphi vec x_i cdot varphi vec x_j y_jc_j sum_i1n c_i frac 1 2 sum_i1nsum_j1n y_ic_ik vec x_ivec x_j y_jc_j end align text subject to sum_i1n c_iy_i 0text and 0 leq c_i leq frac 12nlambdatext for all i 得到。與前面一樣，可以使用二次規劃來求解係數 c_i。同樣，我們可以找到讓 0 c_i 2nlambda1 的索引 i，使得 varphi vec x_i 位於變換空間中間隔的邊界上，然後求解 begin align b vec w cdot varphi vec x_i y_i left sum_k1n c_ky_kvarphi vec x_kcdotvarphi vec x_iright y_i left sum_k1n c_ky_kk vec x_k vec x_iright y_i end align 最後，可以透過計算下式來分類新點 vec z mapsto sgn vec w cdot varphi vec z b sgnleft left sum_i1n c_iy_ik vec x_i vec zright bright 現代方法 用於找到 SVM 分類器的最近的演算法包括次梯度下降和座標下降。當處理大的稀疏資料集時，這兩種技術已經被證明有著顯著的優點 當存在許多訓練例項時次梯度法是特別有效的，並且當特徵空間的維度高時，座標下降特別有效。 次梯度下降 SVM 的次梯度下降演算法直接用表示式 f vec w b left frac 1 n sum_i1n maxleft 0 1 y_i wcdot x_i bright right lambdalVert w rVert2 注意 f 是 vec w 與 b 的凸函式。因此，可以採用傳統的梯度下降（或）方法，其中不是在函式梯度的方向上前進，而是在從函式的次梯度中選出的向量的方向上前進。該方法的優點在於，對於某些實現，迭代次數不隨著資料點的數量 n 而增加或減少。 座標下降 SVM 的座標下降演算法基於對偶問題 text maximize f c_1 ldots c_n sum_i1n c_i frac 1 2 sum_i1nsum_j1n y_ic_i x_i cdot x_j y_jc_j text subject to sum_i1n c_iy_i 0text and 0 leq c_i leq frac 12nlambdatext for all i 對所有 i in 1 ldots n 進行迭代，使係數 c_i 的方向與 partial f partial c_i 一致。然後，將所得的係數向量 c_1ldotsc_n 投影到滿足給定約束的最接近的係數向量。（通常使用歐氏距離。）然後重複該過程，直到獲得接近最佳的係數向量。所得的演算法在實踐中執行非常快，儘管已經證明的效能保證很少。 性質 SVM 屬於廣義線性分類器的一族，並且可以解釋為感知器的延伸。它們也可以被認為是吉洪諾夫正則化的特例。它們有一個特別的性質，就是可以同時最小化經驗誤差和最大化幾何邊緣區；因此它們也被稱為最大間隔分類器。 Meyer、Leisch 和 Hornik 對 SVM 與其他分類器進行了比較。 引數選擇 SVM 的有效性取決於核函式、核引數和軟間隔引數 C 的選擇。 通常會選只有一個引數 gamma 的高斯核。C 和 gamma 的最佳組合通常透過在 C 和 gamma 為指數增長序列下來選取，例如 C in 25 23 dots 213215 gamma in 215213 dots 2123 。通常情況下，使用交叉驗證來檢查引數選擇的每一個組合，並選擇具有最佳交叉驗證精度的引數。或者，最近在貝葉斯最佳化中的工作可以用於選擇 C 和 γ，通常需要評估比網格搜尋少得多的引數組合。或者，的最近進展可以用於選擇 C 和 gamma，通常需要計算的引數組合比網格搜尋少得多。然後，使用所選擇的引數在整個訓練集上訓練用於測試和分類新資料的最終模型。 問題 SVM 的潛在缺點包括以下方面： 需要對輸入資料進行完全標記 未校準類成員機率 SVM 僅直接適用於兩類任務。因此，必須應用將多類任務減少到幾個二元問題的演算法；請參閱多類 SVM 一節。 解出的模型的引數很難理解。 延伸 支援向量聚類：支援向量聚類是一種建立在核函式上的類似方法，同適用於非監督學習和資料探勘。它被認為是資料科學中的一種基本方法。 轉導支援向量機 多元分類支援向量機：SVM 演算法最初是為二值分類問題設計的，實現多分類的主要方法是將一個多分類問題轉化為多個二分類問題。常見方法包括 一對多法 和 一對一法，一對多法是將某個類別的樣本歸為一類，其他剩餘的樣本歸為另一類，這樣 k 個類別的樣本就構造出了 k 個二分類 SVM；一對一法則是在任意兩類樣本之間設計一個 SVM。 支援向量回歸 結構化支援向量機：支援向量機可以被推廣為結構化的支援向量機，推廣後標籤空間是結構化的並且可能具有無限的大小。 實現 最大間隔超平面的引數是透過求解最佳化得到的。有幾種專門的演算法可用於快速解決由 SVM 產生的 QP 問題，它們主要依靠啟發式演算法將問題分解成更小、更易於處理的子問題。 另一種方法是使用內點法，其使用類似牛頓法的迭代找到卡羅需－庫恩－塔克條件下原型和對偶型的解。 這種方法不是去解決一系列分解問題，而是直接完全解決該問題。為了避免求解核矩陣很大的線性系統，在核技巧中經常使用矩陣的低秩近似。 另一個常見的方法是普萊特的序列最小最佳化演算法（SMO），它把問題分成了若干個可以解析求解的二維子問題，這樣就可以避免使用數值最佳化演算法和矩陣儲存。 線性支援向量機的特殊情況可以透過用於最佳化其類似問題邏輯斯諦迴歸的同類演算法更高效求解；這類演算法包括次梯度下降法（如 PEGASOS）和座標下降法（如 LIBLINEAR）。LIBLINEAR 有一些引人注目的訓練時間上的特性。每次收斂迭代花費在讀取訓練資料上的時間是線性的，而且這些迭代還具有特性，使得演算法非常快。 一般的核 SVM 也可以用次梯度下降法（PpackSVM）更快求解，在允許並行化時求解速度尤其快。 許多機器學習工具包都可以使用核 SVM，有、MATLAB、SASSAS 、SVMlight、kernlabkernlab、scikitlearn、、Weka、SharkShark 、JKernelMachinesJKernelMachines 、OpenCV 等。 參見 預測分析 相關向量機，函式形式與 SVM 相同的機率稀疏核模型 序列最小最佳化演算法 參考文獻 引用 來源 Theodoridis Sergios and Koutroumbas Konstantinos Pattern Recognition 4th Edition Academic Press 2009 ISBN 9781597492720 Cristianini Nello and ShaweTaylor John An Introduction to Support Vector Machines and other kernelbased learning methods Cambridge University Press 2000 ISBN 0521780195 SVM Book Huang TeMing Kecman Vojislav and Kopriva Ivica 2006 Kernel Based Algorithms for Mining Huge Data Sets in Supervised Semisupervised and Unsupervised Learning SpringerVerlag Berlin Heidelberg 260 pp 96 illus Hardcover ISBN 3540316817 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 0262194759 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 0262194163 ShaweTaylor John and Cristianini Nello Kernel Methods for Pattern Analysis Cambridge University Press 2004 ISBN 0521813972 Kernel Methods Book Steinwart Ingo and Christmann Andreas Support Vector Machines SpringerVerlag New York 2008 ISBN 9780387772417 SVM Book Tan Peter Jing and Dowe David L 2004 MML Inference of Oblique Decision Trees Lecture Notes in Artificial Intelligence LNAI 3339 SpringerVerlag pp 10821088 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 SpringerVerlag 1995 ISBN 0387987800 Vapnik Vladimir N and Kotz Samuel Estimation of Dependences Based on Empirical Data Springer 2006 ISBN 0387308652 510 pages this is a reprint of Vapniks 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 1320 2006 Succinctly describes theoretical ideas behind SVM Bennett Kristin P and Campbell Colin Support Vector Machines Hype or Hallelujah SIGKDD Explorations 2 2 2000 113 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 291400 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 9781608456161 BenHur Asa Horn David Siegelmann Hava and Vapnik Vladimir Support vector clustering 2001 Journal of Machine Learning Research 2 125137 外部連結 wwwsupportvectornet 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 2121167 1998 wwwkernelmachinesorg general information and collection of research papers wwwsupportvectormachinesorg Literature Review Software Links related to Support Vector Machines Academic Site svmtutorialonline A simple introduction to SVM easily accessible to anyone with basic background in mathematics videolecturesnet SVMrelated 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 Category 分類演演算法 Category 統計分類