在機器學習 中,支援向量機
(中國大陸稱支持向量机 ,英語:support vector machine ,常簡稱為SVM ,又名支援向量網絡 [ 1] )是在分類 與迴歸分析 中分析數據的監督式學習 模型與相關的學習演算法 。給定一組訓練實例,每個訓練實例被標記為屬於兩個類別中的一個或另一個,SVM訓練演算法建立一個將新的實例分配給兩個類別之一的模型,使其成為非概率二元 線性分類器 。SVM模型是將實例表示為空間中的點,這樣對映就使得單獨類別的實例被儘可能寬的明顯的間隔分開。然後,將新的實例對映到同一空間,並基於它們落在間隔的哪一側來預測所屬類別。
除了進行線性分類之外,SVM還可以使用所謂的核技巧 有效地進行非線性分類,將其輸入隱式對映到高維特徵空間中。
當數據未被標記時,不能進行監督式學習,需要用非監督式學習 ,它會嘗試找出數據到簇的自然聚類,並將新數據對映到這些已形成的簇。將支援向量機改進的聚類演算法被稱為支援向量聚類 [ 2] ,當數據未被標記或者僅一些數據被標記時,支援向量聚類經常在工業應用中用作分類步驟的預處理。
用於文字和超文字的分類,在歸納和直推方法中都可以顯著減少所需要的有類標的樣本數。
用於圖像分類。實驗結果顯示:在經過三到四輪相關反饋之後,比起傳統的查詢最佳化方案,支援向量機能夠取得明顯更高的搜尋準確度。這同樣也適用於圖像分割系統,比如使用Vapnik所建議的使用特權方法的修改版本SVM的那些圖像分割系統。[ 4] [ 5]
用於手寫字型辨識。
用於醫學中分類蛋白質,超過90%的化合物能夠被正確分類。基於支援向量機權重的置換測試已被建議作為一種機制,用於解釋的支援向量機模型。[ 6] [ 7] 支援向量機權重也被用來解釋過去的SVM模型。[ 8] 為辨識模型用於進行預測的特徵而對支援向量機模型做出事後解釋是在生物科學中具有特殊意義的相對較新的研究領域。
原始SVM演算法是由蘇聯 數學家弗拉基米爾·瓦普尼克 和亞歷克塞·澤范蘭傑斯 於1963年發明的。1992年,伯恩哈德·E·博瑟(Bernhard E. Boser)、伊莎貝爾·M·蓋昂(Isabelle M. Guyon)和瓦普尼克提出了一種通過將核技巧應用於最大間隔超平面來建立非線性分類器的方法。[ 9] 當前標準的前身(軟間隔)由科琳娜·科特斯 和瓦普尼克於1993年提出,並於1995年發表。[ 1]
我們考慮以下形式的
n
{\displaystyle n}
點測試集:
(
x
→
1
,
y
1
)
,
…
,
(
x
→
n
,
y
n
)
{\displaystyle ({\vec {x}}_{1},y_{1}),\,\ldots ,\,({\vec {x}}_{n},y_{n})}
其中
y
i
{\displaystyle y_{i}}
是 1 或者 −1,表明點
x
→
i
{\displaystyle {\vec {x}}_{i}}
所屬的類。
x
→
i
{\displaystyle {\vec {x}}_{i}}
中每個都是一個
p
{\displaystyle p}
維實 向量。我們要求將
y
i
=
1
{\displaystyle y_{i}=1}
的點集
x
→
i
{\displaystyle {\vec {x}}_{i}}
與
y
i
=
−
1
{\displaystyle y_{i}=-1}
的點集分開的 「最大間隔超平面」,使得超平面與最近的點
x
→
i
{\displaystyle {\vec {x}}_{i}}
之間的距離最大化。
任何超平面都可以寫作滿足下面方程的點集
x
→
{\displaystyle {\vec {x}}}
w
→
⋅
x
→
−
b
=
0
,
{\displaystyle {\vec {w}}\cdot {\vec {x}}-b=0,\,}
設樣本屬於兩個類,用該樣本訓練SVM得到的最大間隔超平面。在邊緣上的樣本點稱為支援向量。
其中
w
→
{\displaystyle {\vec {w}}}
(不必是歸一化的)是該法向量 。參數
b
‖
w
→
‖
{\displaystyle {\tfrac {b}{\|{\vec {w}}\|}}}
決定從原點沿法向量
w
→
{\displaystyle {\vec {w}}}
到超平面的偏移量。
如果這些訓練數據是線性可分的,可以選擇分離兩類數據的兩個平行超平面,使得它們之間的距離儘可能大。在這兩個超平面範圍內的區域稱為「間隔」,最大間隔超平面是位於它們正中間的超平面。這些超平面可以由方程:
w
→
⋅
x
→
−
b
=
1
{\displaystyle {\vec {w}}\cdot {\vec {x}}-b=1\,}
或是
w
→
⋅
x
→
−
b
=
−
1.
{\displaystyle {\vec {w}}\cdot {\vec {x}}-b=-1.\,}
來表示。通過幾何不難得到這兩個超平面之間的距離是
2
‖
w
→
‖
{\displaystyle {\tfrac {2}{\|{\vec {w}}\|}}}
,因此要使兩平面間的距離最大,我們需要最小化
‖
w
→
‖
{\displaystyle \|{\vec {w}}\|}
。同時為了使得樣本數據點都在超平面的間隔區以外,我們需要保證對於所有的
i
{\displaystyle i}
滿足其中的一個條件:
w
→
⋅
x
→
i
−
b
≥
1
,
{\displaystyle {\vec {w}}\cdot {\vec {x}}_{i}-b\geq 1,}
若
y
i
=
1
{\displaystyle y_{i}=1}
或是
w
→
⋅
x
→
i
−
b
≤
−
1
,
{\displaystyle {\vec {w}}\cdot {\vec {x}}_{i}-b\leq -1,}
若
y
i
=
−
1.
{\displaystyle y_{i}=-1.}
這些約束表明每個數據點都必須位於間隔的正確一側。
這兩個式子可以寫作:
y
i
(
w
→
⋅
x
→
i
−
b
)
≥
1
,
for all
1
≤
i
≤
n
.
(
1
)
{\displaystyle y_{i}({\vec {w}}\cdot {\vec {x}}_{i}-b)\geq 1,\quad {\text{ for all }}1\leq i\leq n.\qquad \qquad (1)}
可以用這個式子一起來得到最佳化問題:
「在
y
i
(
w
→
⋅
x
i
→
−
b
)
≥
1
{\displaystyle y_{i}({\vec {w}}\cdot {\vec {x_{i}}}-b)\geq 1}
條件下,最小化
‖
w
→
‖
{\displaystyle \|{\vec {w}}\|}
,對於
i
=
1
,
…
,
n
{\displaystyle i=1,\,\ldots ,\,n}
"
這個問題的解
w
→
{\displaystyle {\vec {w}}}
與
b
{\displaystyle b}
決定了我們的分類器
x
→
↦
sgn
(
w
→
⋅
x
→
−
b
)
{\displaystyle {\vec {x}}\mapsto \operatorname {sgn}({\vec {w}}\cdot {\vec {x}}-b)}
。
此幾何描述的一個顯而易見卻重要的結果是,最大間隔超平面完全是由最靠近它的那些
x
→
i
{\displaystyle {\vec {x}}_{i}}
確定的。這些
x
→
i
{\displaystyle {\vec {x}}_{i}}
叫做支援向量 。
為了將SVM擴充到數據線性不可分的情況,我們引入鉸鏈損失 函數,
max
(
0
,
1
−
y
i
(
w
→
⋅
x
i
→
−
b
)
)
.
{\displaystyle \max \left(0,1-y_{i}({\vec {w}}\cdot {\vec {x_{i}}}-b)\right).}
當約束條件 (1) 滿足時(也就是如果
x
→
i
{\displaystyle {\vec {x}}_{i}}
位於邊距的正確一側)此函數為零。對於間隔的錯誤一側的數據,該函數的值與距間隔的距離成正比。
然後我們希望最小化
[
1
n
∑
i
=
1
n
max
(
0
,
1
−
y
i
(
w
→
⋅
x
i
→
−
b
)
)
]
+
λ
‖
w
→
‖
2
,
{\displaystyle \left[{\frac {1}{n}}\sum _{i=1}^{n}\max \left(0,1-y_{i}({\vec {w}}\cdot {\vec {x_{i}}}-b)\right)\right]+\lambda \lVert {\vec {w}}\rVert ^{2},}
其中參數
λ
{\displaystyle \lambda }
用來權衡增加間隔大小與確保
x
→
i
{\displaystyle {\vec {x}}_{i}}
位於間隔的正確一側之間的關係。因此,對於足夠小的
λ
{\displaystyle \lambda }
值,如果輸入數據是可以線性分類的,則軟間隔SVM與硬間隔SVM將表現相同,但即使不可線性分類,仍能學習出可行的分類規則。
核機器,圖中核函數Φ,將低維非線性可分離函數(左)計算成高維線性可分離函數(右)
弗拉基米爾·瓦普尼克 在1963年提出的原始最大間隔超平面演算法構造了一個線性分類器 。而1992年,伯恩哈德·E·博瑟(Bernhard E. Boser)、伊莎貝爾·M·蓋昂(Isabelle M. Guyon)和瓦普尼克提出了一種通過將核技巧 (最初由Aizerman et al.[ 10] 提出)應用於最大邊界超平面來建立非線性分類器的方法。[ 11] 所得到的演算法形式上類似,除了把點積 換成了非線性核 函數。這就允許演算法在變換後的特徵空間 中擬合最大間隔超平面。該變換可以是非線性的,而變換空間是高維的;雖然分類器是變換後的特徵空間中的超平面,但它在原始輸入空間中可以是非線性的。
值得注意的是,更高維的特徵空間增加了支援向量機的泛化誤差 ,但給定足夠多的樣本,演算法仍能表現良好。[ 12]
常見的核函數包括:
齊次多項式 :
k
(
x
i
→
,
x
j
→
)
=
(
x
i
→
⋅
x
j
→
)
d
{\displaystyle k({\vec {x_{i}}},{\vec {x_{j}}})=({\vec {x_{i}}}\cdot {\vec {x_{j}}})^{d}}
非齊次多項式 :
k
(
x
i
→
,
x
j
→
)
=
(
x
i
→
⋅
x
j
→
+
1
)
d
{\displaystyle k({\vec {x_{i}}},{\vec {x_{j}}})=({\vec {x_{i}}}\cdot {\vec {x_{j}}}+1)^{d}}
高斯徑向基函數 :
k
(
x
i
→
,
x
j
→
)
=
exp
(
−
γ
‖
x
i
→
−
x
j
→
‖
2
)
{\displaystyle k({\vec {x_{i}}},{\vec {x_{j}}})=\exp(-\gamma \|{\vec {x_{i}}}-{\vec {x_{j}}}\|^{2})}
,其中
γ
>
0
{\displaystyle \gamma >0}
。有時參數化表示
γ
=
1
/
2
σ
2
{\displaystyle \gamma =1/{2\sigma ^{2}}}
雙曲正切 :
k
(
x
i
→
,
x
j
→
)
=
tanh
(
κ
x
i
→
⋅
x
j
→
+
c
)
{\displaystyle k({\vec {x_{i}}},{\vec {x_{j}}})=\tanh(\kappa {\vec {x_{i}}}\cdot {\vec {x_{j}}}+c)}
,其中一些(而非所有)
κ
>
0
{\displaystyle \kappa >0}
且
c
<
0
{\displaystyle c<0}
由等式
k
(
x
i
→
,
x
j
→
)
=
φ
(
x
i
→
)
⋅
φ
(
x
j
→
)
{\displaystyle k({\vec {x_{i}}},{\vec {x_{j}}})=\varphi ({\vec {x_{i}}})\cdot \varphi ({\vec {x_{j}}})}
,核函數與變換
φ
(
x
i
→
)
{\displaystyle \varphi ({\vec {x_{i}}})}
有關。變換空間中也有 w 值,
w
→
=
∑
i
α
i
y
i
φ
(
x
→
i
)
{\displaystyle \textstyle {\vec {w}}=\sum _{i}\alpha _{i}y_{i}\varphi ({\vec {x}}_{i})}
。與 w 的點積也要用核技巧來計算,即
w
→
⋅
φ
(
x
→
)
=
∑
i
α
i
y
i
k
(
x
→
i
,
x
→
)
{\displaystyle \textstyle {\vec {w}}\cdot \varphi ({\vec {x}})=\sum _{i}\alpha _{i}y_{i}k({\vec {x}}_{i},{\vec {x}})}
。
計算(軟間隔)SVM分類器等同於使下面表達式最小化
[
1
n
∑
i
=
1
n
max
(
0
,
1
−
y
i
(
w
⋅
x
i
+
b
)
)
]
+
λ
‖
w
‖
2
.
(
2
)
{\displaystyle \left[{\frac {1}{n}}\sum _{i=1}^{n}\max \left(0,1-y_{i}(w\cdot x_{i}+b)\right)\right]+\lambda \lVert w\rVert ^{2}.\qquad (2)}
如上所述,由於我們關注的是軟間隔分類器,
λ
{\displaystyle \lambda }
選擇足夠小的值就能得到線性可分類輸入數據的硬間隔分類器。下面會詳細介紹將(2)簡化為二次規劃 問題的經典方法。之後會討論一些最近才出現的方法,如次梯度下降法和坐標下降法。
最小化(2)可以用下面的方式覆寫為目標函數可微的約束最佳化問題。
對所有
i
∈
{
1
,
…
,
n
}
{\displaystyle i\in \{1,\,\ldots ,\,n\}}
我們引入變數
ζ
i
=
max
(
0
,
1
−
y
i
(
w
⋅
x
i
+
b
)
)
{\displaystyle \zeta _{i}=\max \left(0,1-y_{i}(w\cdot x_{i}+b)\right)}
。注意到
ζ
i
{\displaystyle \zeta _{i}}
是滿足
y
i
(
w
⋅
x
i
+
b
)
≥
1
−
ζ
i
{\displaystyle y_{i}(w\cdot x_{i}+b)\geq 1-\zeta _{i}}
的最小非負數。
因此,我們可以將最佳化問題敘述如下
minimize
1
n
∑
i
=
1
n
ζ
i
+
λ
‖
w
‖
2
{\displaystyle {\text{minimize }}{\frac {1}{n}}\sum _{i=1}^{n}\zeta _{i}+\lambda \|w\|^{2}}
subject to
y
i
(
x
i
⋅
w
+
b
)
≥
1
−
ζ
i
and
ζ
i
≥
0
,
for all
i
.
{\displaystyle {\text{subject to }}y_{i}(x_{i}\cdot w+b)\geq 1-\zeta _{i}\,{\text{ and }}\,\zeta _{i}\geq 0,\,{\text{for all }}i.}
這就叫做原型 問題。
假設我們要學習與變換後數據點
φ
(
x
→
i
)
{\displaystyle \varphi ({\vec {x}}_{i})}
的線性分類規則對應的非線性分類規則。此外,我們有一個滿足
k
(
x
→
i
,
x
→
j
)
=
φ
(
x
→
i
)
⋅
φ
(
x
→
j
)
{\displaystyle k({\vec {x}}_{i},{\vec {x}}_{j})=\varphi ({\vec {x}}_{i})\cdot \varphi ({\vec {x}}_{j})}
的核函數
k
{\displaystyle k}
。
我們知道變換空間中的分類向量
w
→
{\displaystyle {\vec {w}}}
滿足
w
→
=
∑
i
=
1
n
c
i
y
i
φ
(
x
→
i
)
,
{\displaystyle {\vec {w}}=\sum _{i=1}^{n}c_{i}y_{i}\varphi ({\vec {x}}_{i}),}
其中
c
i
{\displaystyle c_{i}}
可以通過求解最佳化問題
maximize
f
(
c
1
…
c
n
)
=
∑
i
=
1
n
c
i
−
1
2
∑
i
=
1
n
∑
j
=
1
n
y
i
c
i
(
φ
(
x
→
i
)
⋅
φ
(
x
→
j
)
)
y
j
c
j
=
∑
i
=
1
n
c
i
−
1
2
∑
i
=
1
n
∑
j
=
1
n
y
i
c
i
k
(
x
→
i
,
x
→
j
)
y
j
c
j
{\displaystyle {\begin{aligned}{\text{maximize}}\,\,f(c_{1}\ldots c_{n})&=\sum _{i=1}^{n}c_{i}-{\frac {1}{2}}\sum _{i=1}^{n}\sum _{j=1}^{n}y_{i}c_{i}(\varphi ({\vec {x}}_{i})\cdot \varphi ({\vec {x}}_{j}))y_{j}c_{j}\\&=\sum _{i=1}^{n}c_{i}-{\frac {1}{2}}\sum _{i=1}^{n}\sum _{j=1}^{n}y_{i}c_{i}k({\vec {x}}_{i},{\vec {x}}_{j})y_{j}c_{j}\\\end{aligned}}}
subject to
∑
i
=
1
n
c
i
y
i
=
0
,
and
0
≤
c
i
≤
1
2
n
λ
for all
i
.
{\displaystyle {\text{subject to }}\sum _{i=1}^{n}c_{i}y_{i}=0,\,{\text{and }}0\leq c_{i}\leq {\frac {1}{2n\lambda }}\;{\text{for all }}i.}
得到。與前面一樣,可以使用二次規劃來求解係數
c
i
{\displaystyle c_{i}}
。同樣,我們可以找到讓
0
<
c
i
<
(
2
n
λ
)
−
1
{\displaystyle 0<c_{i}<(2n\lambda )^{-1}}
的索引
i
{\displaystyle i}
,使得
φ
(
x
→
i
)
{\displaystyle \varphi ({\vec {x}}_{i})}
位於變換空間中間隔的邊界上,然後求解
b
=
w
→
⋅
φ
(
x
→
i
)
−
y
i
=
[
∑
k
=
1
n
c
k
y
k
φ
(
x
→
k
)
⋅
φ
(
x
→
i
)
]
−
y
i
=
[
∑
k
=
1
n
c
k
y
k
k
(
x
→
k
,
x
→
i
)
]
−
y
i
.
{\displaystyle {\begin{aligned}b={\vec {w}}\cdot \varphi ({\vec {x}}_{i})-y_{i}&=\left[\sum _{k=1}^{n}c_{k}y_{k}\varphi ({\vec {x}}_{k})\cdot \varphi ({\vec {x}}_{i})\right]-y_{i}\\&=\left[\sum _{k=1}^{n}c_{k}y_{k}k({\vec {x}}_{k},{\vec {x}}_{i})\right]-y_{i}.\end{aligned}}}
最後,可以通過計算下式來分類新點
z
→
↦
sgn
(
w
→
⋅
φ
(
z
→
)
+
b
)
=
sgn
(
[
∑
i
=
1
n
c
i
y
i
k
(
x
→
i
,
z
→
)
]
+
b
)
.
{\displaystyle {\vec {z}}\mapsto \operatorname {sgn}({\vec {w}}\cdot \varphi ({\vec {z}})+b)=\operatorname {sgn} \left(\left[\sum _{i=1}^{n}c_{i}y_{i}k({\vec {x}}_{i},{\vec {z}})\right]+b\right).}
用於找到SVM分類器的最近的演算法包括次梯度下降和坐標下降。當處理大的稀疏數據集時,這兩種技術已經被證明有着顯著的優點——當存在許多訓練實例時次梯度法是特別有效的,並且當特徵空間的維度高時,坐標下降特別有效。
SVM的坐標下降 演算法基於對偶問題
maximize
f
(
c
1
…
c
n
)
=
∑
i
=
1
n
c
i
−
1
2
∑
i
=
1
n
∑
j
=
1
n
y
i
c
i
(
x
i
⋅
x
j
)
y
j
c
j
,
{\displaystyle {\text{maximize}}\,\,f(c_{1}\ldots c_{n})=\sum _{i=1}^{n}c_{i}-{\frac {1}{2}}\sum _{i=1}^{n}\sum _{j=1}^{n}y_{i}c_{i}(x_{i}\cdot x_{j})y_{j}c_{j},}
subject to
∑
i
=
1
n
c
i
y
i
=
0
,
and
0
≤
c
i
≤
1
2
n
λ
for all
i
.
{\displaystyle {\text{subject to }}\sum _{i=1}^{n}c_{i}y_{i}=0,\,{\text{and }}0\leq c_{i}\leq {\frac {1}{2n\lambda }}\;{\text{for all }}i.}
對所有
i
∈
{
1
,
…
,
n
}
{\displaystyle i\in \{1,\,\ldots ,\,n\}}
進行迭代,使係數
c
i
{\displaystyle c_{i}}
的方向與
∂
f
/
∂
c
i
{\displaystyle \partial f/\partial c_{i}}
一致。然後,將所得的係數向量
(
c
1
′
,
…
,
c
n
′
)
{\displaystyle (c_{1}',\,\ldots ,\,c_{n}')}
投影到滿足給定約束的最接近的係數向量。(通常使用歐氏距離。)然後重複該過程,直到獲得接近最佳的係數向量。所得的演算法在實踐中執行非常快,儘管已經證明的效能保證很少。[ 14]
SVM屬於廣義線性分類器 的一族,並且可以解釋為感知器 的延伸。它們也可以被認為是吉洪諾夫正則化 的特例。它們有一個特別的性質,就是可以同時最小化經驗誤差和最大化幾何邊緣區; 因此它們也被稱為最大間隔分類器 。
Meyer、Leisch和Hornik對SVM與其他分類器進行了比較。[ 15]
SVM的有效性取決於核函數、核參數和軟間隔參數 C 的選擇。
通常會選只有一個參數
γ
{\displaystyle \gamma }
的高斯核。C 和
γ
{\displaystyle \gamma }
的最佳組合通常通過在 C 和
γ
{\displaystyle \gamma }
為指數增長序列下網格搜尋 來選取,例如
C
∈
{
2
−
5
,
2
−
3
,
…
,
2
13
,
2
15
}
{\displaystyle C\in \{2^{-5},2^{-3},\dots ,2^{13},2^{15}\}}
;
γ
∈
{
2
−
15
,
2
−
13
,
…
,
2
1
,
2
3
}
{\displaystyle \gamma \in \{2^{-15},2^{-13},\dots ,2^{1},2^{3}\}}
。通常情況下,使用交叉驗證 來檢查參數選擇的每一個組合,並選擇具有最佳交叉驗證精度的參數。或者,最近在貝葉斯最佳化中的工作可以用於選擇C和γ,通常需要評估比網格搜尋少得多的參陣列合。或者,貝葉斯最佳化 的最近進展可以用於選擇 C 和
γ
{\displaystyle \gamma }
,通常需要計算的參陣列合比網格搜尋少得多。然後,使用所選擇的參數在整個訓練集上訓練用於測試和分類新數據的最終模型。[ 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等。
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.
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 .
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 .
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 .
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.
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 (頁面存檔備份 ,存於互聯網檔案館 )