在看过很多大佬的博客,知乎还有两本机器学习的书籍后总结出的关于支持向量机(SVM)的相关知识,大一学生第一次发博客,请多多指教。
1.引言
什么是SVM?我们要用SVM干嘛?
我们先看下面这个问题:用一个小木棍分割不同种类的小球,那么要如何去分呢?
现在有A,B完成了这项任务(如下图)
那么问题来了,如何判断哪种分割方法更好呢?
由上图可知,在添加其他随机的小球时,A的小木棍还是可以准确将不同种的小球划分开来的;而B的小木棍就会产生错误分类的情况。我们把这种适应未知数据的能力称之为容忍能力。
我们是否可以找到一个最优的线,使得其容忍能力最强呢?
这个工作实际上就是SVM的目标,即找到一个特殊超平面距离最近的数据点最远,而该平面称之为最优超平面。(二维叫线,三维叫面,三维以上为超平面)
用于分离的超平面形式的决策曲面方程:
w
T
x
+
b
=
0
\bm{w}^{T}\bm{x}+b=0
wTx+b=0
2.详解
后面都是公式推导了,我已将详细的推导过程整理出来,自己推一遍比看很多文章要有效。
我们将采集到的样本表示为{(
x
i
,
d
i
x_{i},d_{i}
xi,di)},
x
i
x_{i}
xi表示数据,
d
i
d_{i}
di表示数据类别。
那么我们假设
{
w
T
x
i
+
b
≥
0
当
d
i
=
+
1
w
T
x
i
+
b
<
0
当
d
i
=
−
1
\left\{ \begin{aligned} \bm{w}^{T}\bm{x_{i}}+b\geq0当d_{i}=+1\\ \bm{w}^{T}\bm{x_{i}}+b<0 当d_{i}=-1\\ \end{aligned} \right.
{wTxi+b≥0当di=+1wTxi+b<0当di=−1
我们把距离线最近的点称之为支持向量点,支持向量机的名字也由此而来。
如图可知支持向量点
x
x
x到线距离
r
r
r小于等于任意样本点
x
1
x_{1}
x1到线距离
w
T
x
i
+
b
∣
∣
w
∣
∣
{\frac{\bm{w}^{T}\bm{x_{i}}+b}{||\bm{w}||}}
∣∣w∣∣wTxi+b
则有
{
w
T
x
i
+
b
∣
∣
w
∣
∣
≥
+
r
当
d
i
=
+
1
w
T
x
i
+
b
∣
∣
w
∣
∣
≤
−
r
当
d
i
=
−
1
\left\{ \begin{aligned} \frac{\bm{w}^{T}\bm{x_{i}}+b}{||\bm{w}||}\geq+r当d_{i}=+1\\ \frac{\bm{w}^{T}\bm{x_{i}}+b}{||\bm{w}||}\leq-r 当d_{i}=-1\\ \end{aligned} \right.
⎩⎪⎪⎪⎨⎪⎪⎪⎧∣∣w∣∣wTxi+b≥+r当di=+1∣∣w∣∣wTxi+b≤−r当di=−1
化简得
{
w
r
T
x
i
+
b
r
≥
+
1
当
d
i
=
+
1
w
r
T
x
i
+
b
r
≤
−
1
当
d
i
=
−
1
\left\{ \begin{aligned} \bm{w_{r}}^{T}\bm{x_{i}}+b_{r}\geq+1当d_{i}=+1\\ \bm{w_{r}}^{T}\bm{x_{i}}+b_{r}\leq-1 当d_{i}=-1\\ \end{aligned} \right.
{wrTxi+br≥+1当di=+1wrTxi+br≤−1当di=−1
上式是我们的约束关系
引言中说道我们的目的就是找到一个特殊超平面距离最近的数据点最远,那么