1.SVM的定义
二分类模型
基本模型是定义在特征空间上的最大间隔线性分类器
学习策略是间隔最大化
可转换为一个求解凸二次规划的问题
学习算法是求解凸二次规划的最优化算法
2.SVM问题的数学描述
2.1线性模型
凡是可以用一条直线把训练样本集分开的样本集称为线性样本集,这条直线便是线性模型;如图
定理:若空间中有一条直线可以将线性样本集分开,则有无数条直线可以将其分开
2.2找到最优的直线
如图:我们从无数条直线中选择3条进行分析;
首先我们在直观上感觉2号线的分类效果最好,因为它把样本分的最开。那么,我们需要从数学上描述2号线:
2.3最优直线的数学描述
其实寻找的是评价这些所有能把样本分开的直线的一个共同的性能指标,然后找到在该指标下,性能最优的那条直线;
下图给出该性能指标d:
定义d:对于每一条能够分开圆圈和叉号的线,平行地将其向正负样本的方向移动,直到与样本点相交为止,得到的两条直线的距离为d。
2号线是使得距离d最大的一条直线
但是存在一个问题,如果不再加入其他的限制条件,与2号线平行的直线都满足最优直线,所以为了保证其唯一性,让最优的直线取在d的中间,即到最近的样本点的距离为d/2的直线为最优的直线
2.4最优直线寻找过程的描述
首先定义几个概念:
d: 间隔 (Margin)
支持向量:与平行线相交的向量(Support vectors)
可以看出,做出最优化直线的过程只与支持向量有关,不需要其他向量,所以处理的数据较少,而且可以用小样本训练;
定义:
1.训练数据及标签(
x
1
x_1
x1,
y
1
y_1
y1),(
x
2
x_2
x2,
y
2
y_2
y2)…(
x
N
x_N
xN,
y
N
y_N
yN)
所有的
X
X
X都是N维向量,相当于一个训练样本有n个特征点
Y
Y
Y是标签,
y
i
y_i
yi只能等于±1,表示2分类的两个类别
2.线性模型
二维向量
X
X
X的线性二分类模型是直线
多维向量
X
X
X的线性二分类模型是超平面
定义超平面的模型(Hyperplane)
W
T
X
+
b
=
0
\begin{array}{c} W^{T}X+b =0 \end{array}
WTX+b=0
其中
W
W
W是与
X
X
X维数相同的向量,那么
W
T
X
W^{T}X
WTX是一个数,
b
b
b也是一个数
如果只有一个样本点,则满足该等式的参数
W
W
W和
b
b
b将会有无数个,分类器所做的工作就是要通过这些所有的样本点,找到最优的参数,得到最优的分类模型;
所有的机器学习算法大致有3个步骤
a.限定一个模型,用一个方程来限定,SVM机器学习算法就是限定了这个模型为超平面模型
b.在模型里面留出待定的参数
c.用训练样本和机器学习算法来确定这些参数的取值,得到参数的值后整个机器学习过程完成
3.线性可分的定义
一个训练集
(
X
i
,
Y
i
)
{(X_i,Y_i)}
(Xi,Yi),
(
i
=
(
1
−
N
)
)
(i=(1-N))
(i=(1−N)),存在
W
,
b
W,b
W,b,
s
.
t
s.t
s.t对于任意的
i
i
i,有:(其中
i
i
i为数据集的个数,不是一个样本的特征数)
Y
i
=
s
i
g
n
(
W
T
X
i
+
b
)
\begin{array}{c}Y_i=sign(W^TX_i+b) \end{array}
Yi=sign(WTXi+b)
及当
W
T
X
+
b
>
=
0
,
Y
i
=
+
1
;
\begin{array}{c} W^{T}X+b >=0 \end{array},Yi=+1;
WTX+b>=0,Yi=+1;
W
T
X
+
b
<
0
,
Y
i
=
−
1
;
\begin{array}{c} W^{T}X+b <0 \end{array},Yi=-1;
WTX+b<0,Yi=−1;
由于
Y
i
=
1
或
−
1
Y_i=1或-1
Yi=1或−1,所以可以用一种能够更简单的方式来表示上面的两个式子:
Y
i
∗
[
W
T
X
+
b
]
>
=
0
;
\begin{array}{c} Y_i*[W^{T}X+b]>=0 \end{array};
Yi∗[WTX+b]>=0;
函数间隔的定义
但是存在问题:只要成比例地改变W和b,超平面并没有改变,但是函数间隔却以倍数改变,这样来刻画超平面到样本点之间的距离是不准确的,故我们需要对分离超平面的法向量添加一些约束,或者说使其标准化,这时函数间隔就变成了几何间隔;
几何间隔的定义以及几何间隔最大化
SVM问题的数学描述
这里关于为什么令函数间隔为1,给出如下解释:
1.事实1:
W
T
X
+
b
=
0
与
a
W
T
X
+
a
b
=
0
是
同
一
个
平
面
,
a
为
正
实
数
\begin{array}{c} W^{T}X+b =0 \end{array}与\begin{array}{c} aW^{T}X+ab =0 \end{array}是同一个平面,a为正实数
WTX+b=0与aWTX+ab=0是同一个平面,a为正实数
若(W,b)满足公式
Y
i
∗
[
W
T
X
+
b
]
>
=
0
;
\begin{array}{c} Y_i*[W^{T}X+b]>=0 \end{array};
Yi∗[WTX+b]>=0;
则(aW,ab)也满足该公式;
2.事实2:
点到平面的距离公式:
设平面的方程为:W1X+W2Y+b=0
则(X0,Y0)到此平面的距离为:
d
=
∣
W
1
X
0
+
W
2
Y
0
+
b
∣
/
(
W
1
2
+
W
2
2
)
(
1
/
2
)
\begin{array}{c} d =|W_1X_0+W_2Y_0+b|/(W_1^2+W_2^2)^(1/2)\end{array}
d=∣W1X0+W2Y0+b∣/(W12+W22)(1/2)
向量X0到超平面
W
T
X
+
b
=
0
\begin{array}{c} W^{T}X+b =0 \end{array}
WTX+b=0的距离为:
d
=
∣
W
T
X
0
+
b
∣
/
∣
∣
W
∣
∣
\begin{array}{c} d =|W^TX_0+b |/ ||W||\end{array}
d=∣WTX0+b∣/∣∣W∣∣
我们可以用a去缩放(W,b),得到(aW,ab),最终使得在所有的支持向量X0上,有:
∣
W
T
X
0
+
b
∣
=
1
\begin{array}{c} |W^TX_0+b | =1\end{array}
∣WTX0+b∣=1
此时支持向量与平面的几何距离d=1 / ||w||;到此便得到了函数距离1;根据函数距离的定义便可以得到约束条件(因为最短的函数距离为1,其他的函数距离均会大于等于1),另一种理解方式为支持向量到超平面的函数距离为1;则其他向量到超平面的函数距离必大于1,在w相同的条件下比较;当然如果不取1;取任意一个正实数作为函数距离的值,最终求解出来的W,b只是与原来的相差了一个常数a,而不会影响超平面的选择;
目标函数就是求解最大距离d;(见上图)
最后,稍加整理,便得到了一个优化问题:
至此,SVM最简单的数学模型构建完毕,最终转化成了一个凸优化的问题;正是因为这是一个凸问题,所以求出的W,b的极值一定是唯一的!
下次介绍松弛变量以及非线性样本集引入核函数的概念。