了解SVM
支持向量机,因其英文名为suport vector machine,故简称SVM,通俗的来讲,它是一种二分类模型,其基本模型定义为:特征空间上的间隔最大的线性分类器,其学习策略是:间隔最大化,最终可以转化为一个凸二次规划问题的求解。
1.1分类标准的起源:Logistic回归
理解SVM,首要问题是理解:线性分类器。
给定一些数据,它们分属于两个不同的类,现在要找到一个线性分类器把这些数据分成两类。
如果用
x
x
x表示数据点,用
y
y
y表示类别(
y
可
以
取
1
或
者
−
1
,
分
别
代
表
了
正
负
样
本
y可以取1或者-1,分别代表了正负样本
y可以取1或者−1,分别代表了正负样本),一个线性分类器的学习目标是在n维空间中找到一个超平面(hyper plane),这个超平面的方程可以表示为(其中w,b是要学习的参数,w抽象为表示n维特征(x向量)上的权重,b为一个偏置值):
w
T
x
+
b
=
0
w^Tx+b=0
wTx+b=0
关于
y
y
y的值为什么取
1
和
−
1
1和-1
1和−1,此问题来源于Logistic回归。
Logistic回归目的是从特征中学习出一个
0
/
1
0/1
0/1分类模型,而这个模型是将特征的线性组合作为自变量,由于自变量的取值范围是负无穷到正无穷。因此,使用Logistic函数(sigmoid函数)将自变量映射到(0,1)上,映射后的值 被认为是属于
y
=
1
y=1
y=1的概率。
假设函数:
h
θ
(
x
)
=
g
(
θ
T
x
)
=
1
1
+
e
−
θ
T
x
h_\theta(x)=g(\theta^Tx)=\frac{1}{1+e^{-\theta ^Tx}}
hθ(x)=g(θTx)=1+e−θTx1
其中x是n维向量,函数g就是Logisitic函数,
θ
为
(
θ
0
,
θ
1
,
θ
2
,
.
.
.
,
θ
n
)
\theta为(\theta_0,\theta_1, \theta_2, ...,\theta_n)
θ为(θ0,θ1,θ2,...,θn)是一组对特征
x
x
x的参数。
其中
g
(
z
)
=
1
1
+
e
−
z
g(z)=\frac{1}{1+e^{-z}}
g(z)=1+e−z1
可以看到,将
x
x
x的所有值都映射到了
(
0
−
1
)
(0-1)
(0−1)之间。
sigmoid函数增加了线性模型的鲁棒性,利用概率的形式避免了难以准确分类的情况。
接下来,尝试把Logistic回归做一个变型,首先将标签y=0变为y=-1,然后将
θ
T
x
=
θ
0
+
θ
1
x
1
+
.
.
.
+
θ
n
x
n
\theta^Tx=\theta_0+\theta_1 x_1+...+\theta_n x_n
θTx=θ0+θ1x1+...+θnxn中的
θ
0
\theta_0
θ0替换为
b
b
b,将后面的
θ
1
x
1
+
.
.
.
+
θ
n
x
n
\theta_1 x_1+...+\theta_n x_n
θ1x1+...+θnxn替换成
w
T
x
w^Tx
wTx,如此就有了
θ
T
x
=
w
T
x
+
b
\theta^Tx=w^Tx+b
θTx=wTx+b,因此除了y的变化,线性分类器和Logistic回归形式表示没有区别。
1.2 线性分类的一个例子
举一个简单的例子作为引入:如图所示,现有一个二维平面,平面上有两种不同的数据,假设这些数据的线性可分的,其中的超平面是一条直线。
这个超平面可以用分类函数
f
(
x
)
=
w
T
+
b
f(x)=w^T+b
f(x)=wT+b表示,当
f
(
x
)
f(x)
f(x)等于0时,x便位于超平面上,而
f
(
x
)
>
0
f(x)>0
f(x)>0对应的点
y
=
1
y=1
y=1,反之
f
(
x
)
<
0
f(x)<0
f(x)<0的点
y
=
−
1
y=-1
y=−1,如图所示: