在机器学习 中,支持向量机
(台湾称支援向量機 ,英语: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 (页面存档备份 ,存于互联网档案馆 )