1 线性可分的数据集
1.1 超平面
SVM的思想是找到最大间隔的分隔超平面。
在两个分类中,找到能够一条线,以最好地区分这两个分类。这样如果有了新的点,这条线也能很好地做出分类。
这样的线在高维样本中的时候就叫做超平面。
1.2 几何间隔与函数间隔
图中绿线h1效果不好,h2效果还行,h3效果最好。怎么区分效果好不好?
如果超平面
w
.
x
+
b
=
0
w.x+b=0
w.x+b=0已经存在,那么样本点距离超平面的距离能够表示预测的确信程度。
∣
w
.
x
+
b
∣
|w.x+b|
∣w.x+b∣能够相对地表示点x距离超平面的距离。而
w
.
x
+
b
w.x+b
w.x+b的符号与标记y的符号是否一致表示分类是否正确。那么就可以用
y
(
w
.
x
+
b
)
y(w.x+b)
y(w.x+b)表示分类的正确性和确信程度,这就是函数间隔。
函数间隔:超平面(w,b)关于样本点(
x
i
x_i
xi,
y
i
y_i
yi)样本点的函数间隔为:
r
i
^
=
y
i
(
w
.
x
i
+
b
)
\hat{r_i}=y_i(w.x_i+b)
ri^=yi(w.xi+b)
超平面(w,b)关于数据集T的函数间隔,为所有样本点的函数间隔的最小值:
r
^
=
m
i
n
i
=
1
,
2...
N
r
i
^
\hat{r}=min_{i=1,2...N} \hat{r_i}
r^=mini=1,2...Nri^
函数间隔的问题是如果成比例的改变w和b,例如改为2w+2b,超平面不变,函数间隔却变成了原来的两倍。如果规范化之后就会使得间隔是确定的。这时候函数间隔就变成了几何间隔。
几何间隔:对于给定数据集T和超平面(w,b),w是超平面的法向量,样本点(
x
i
x_i
xi,
y
i
y_i
yi)的几何间隔为:
r
i
=
y
i
w
.
x
+
b
∣
∣
w
∣
∣
r_i=y_i\dfrac{w.x+b}{||w||}
ri=yi∣∣w∣∣w.x+b
超平面(w,b)关于数据集T的几何间隔,为所有样本点的几何间隔的最小值: r = m i n i = 1 , 2... N r i r=min_{i=1,2...N} {r_i} r=mini=1,2...Nri
1.3 目标函数
目标函数:最大化几何间隔r:
m
a
x
r
=
m
a
x
r
^
∣
∣
w
∣
∣
max r=max\dfrac{\hat{r}}{||w||}
maxr=max∣∣w∣∣r^
s.t.
y
i
(
w
.
x
i
+
b
)
>
=
r
^
,
i
=
1
,
2
,
3...
N
y_i(w.x_i+b)>=\hat{r},i=1,2,3...N
yi(w.xi+b)>=r^,i=1,2,3...N
令
r
^
=
1
\hat{r}=1
r^=1(这里等于1,没有特别的含义,只是好计算,不影响结果),那么目标函数变为:
m
a
x
1
∣
∣
w
∣
∣
max\dfrac{1}{||w||}
max∣∣w∣∣1,
m
i
n
∣
∣
w
∣
∣
min||w||
min∣∣w∣∣,
m
i
n
1
2
∣
∣
w
∣
∣
2
min\dfrac{1}{2}||w||^2
min21∣∣w∣∣2,
s.t.
y
i
(
w
.
x
i
+
b
)
>
=
r
^
,
i
=
1
,
2
,
3...
N
y_i(w.x_i+b)>=\hat{r},i=1,2,3...N
yi(w.xi+b)>=r^,i=1,2,3...N
用拉格朗日乘子法:
L
(
w
,
b
,
α
)
=
1
2
∣
∣
w
∣
∣
2
−
∑
i
=
1
N
α
i
y
i
(
w
.
x
i
+
b
)
+
∑
i
=
1
N
α
i
L(w,b,\alpha)=\dfrac{1}{2}||w||^2-\sum_{i=1}^N\alpha_iy_i(w.x_i+b) + \sum_{i=1}^N\alpha_i
L(w,b,α)=21∣∣w∣∣2−∑i=1Nαiyi(w.xi+b)+∑i=1Nαi
分别对w、b、求导得到: w = ∑ i = 1 N α i y i x i w=\sum_{i=1}^N\alpha_iy_ix_i w=∑i=1Nαiyixi, ∑ i = 1 N α i y i = 0 \sum_{i=1}^N\alpha_iy_i=0 ∑i=1Nαiyi=0
这样代入上面的式子得到: L ( w , b , α ) = 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j ( x i . x j ) + ∑ i = 1 N α i L(w,b,\alpha)=\dfrac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_j(x_i.x_j)+\sum_{i=1}^N\alpha_i L(w,b,α)=21∑i=1N∑j=1Nαiαjyiyj(xi.xj)+∑i=1Nαi
1.4 支持向量
在线性可分情况下,训练数据集中的样本点中距离分离超平面最近的样本点称为支持向量。
2 线性近似可分
训练样本中有一些点不满足函数间隔>=1的约束。
解决方法:是对每一个样本引入一个松弛变量
ϵ
i
>
=
0
\epsilon_i>=0
ϵi>=0使得函数间隔大于等于1。约束条件变为:
y
i
(
w
.
x
i
+
b
)
>
=
1
−
ϵ
i
y_i(w.x_i+b)>=1-\epsilon_i
yi(w.xi+b)>=1−ϵi
目标函数:min
1
2
∣
∣
w
∣
∣
2
+
C
∑
i
=
1
N
ϵ
i
\dfrac{1}{2}||w||^2+C\sum_{i=1}^{N}\epsilon_i
21∣∣w∣∣2+C∑i=1Nϵi
s.t.
y
i
(
w
.
x
i
+
b
)
>
1
−
ϵ
i
,
i
=
1
,
2
,
3...
N
y_i(w.x_i+b)>1-\epsilon_i, i=1,2,3...N
yi(w.xi+b)>1−ϵi,i=1,2,3...N
ϵ
i
>
=
0
,
i
=
1
,
2
,
3...
N
\epsilon_i>=0, i=1,2,3...N
ϵi>=0,i=1,2,3...N
拉格朗日函数变为: L ( w , b , α , μ ) = 1 2 ∣ ∣ w ∣ ∣ 2 + C ∑ i = 1 N ϵ i − ∑ i = 1 N α i ( y i ( w . x i + b ) − 1 + ϵ i ) + ∑ i = 1 N μ i ϵ i L(w,b,\alpha,\mu)=\dfrac{1}{2}||w||^2 +C\sum_{i=1}^{N}\epsilon_i -\sum_{i=1}^N\alpha_i(y_i(w.x_i+b) -1 +\epsilon_i ) + \sum_{i=1}^N\mu_i\epsilon_i L(w,b,α,μ)=21∣∣w∣∣2+C∑i=1Nϵi−∑i=1Nαi(yi(w.xi+b)−1+ϵi)+∑i=1Nμiϵi
经过求导替换得到: m i n L ( w , b , α , μ , ϵ ) = − 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j ( x i . x j ) + ∑ i = 1 N α i min L(w,b,\alpha,\mu,\epsilon)=-\dfrac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_j(x_i.x_j)+\sum_{i=1}^N\alpha_i minL(w,b,α,μ,ϵ)=−21∑i=1N∑j=1Nαiαjyiyj(xi.xj)+∑i=1Nαi
3 非线性支持向量机与核函数
对于线性不可分的问题通过一个变换,将低纬度的非线性问题变换为高纬度的线性问题。通过变换后的线性问题求解原来的非线性问题。
核函数定义:设X是输入空间,H为特征空间,如果存在一个从X到H的映射,
ϕ
(
X
)
:
X
−
>
H
\phi(X):X->H
ϕ(X):X−>H,使得对所有的
x
,
z
∈
X
x,z \in X
x,z∈X,函数K(x,z)满足条件:
K
(
x
,
z
)
=
ϕ
(
x
)
ϕ
(
z
)
K(x,z)=\phi(x)\phi(z)
K(x,z)=ϕ(x)ϕ(z),则称K(x,z)为核函数,
ϕ
(
x
)
\phi(x)
ϕ(x)为映射函数。
核函数技巧的核心是,只需要定义核函数,而不是定义映射函数。因为通常直接计算K(x,z)更容易,而计算
ϕ
(
x
)
ϕ
(
z
)
\phi(x)\phi(z)
ϕ(x)ϕ(z)不容易,计算量还很大。
所以目标函数变为: L ( w , b , α , μ , ϵ ) = 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j K ( x i . x j ) − ∑ i = 1 N α i L(w,b,\alpha,\mu,\epsilon)=\dfrac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_jK(x_i.x_j)-\sum_{i=1}^N\alpha_i L(w,b,α,μ,ϵ)=21∑i=1N∑j=1NαiαjyiyjK(xi.xj)−∑i=1Nαi
常用核函数为高斯核函数、多项式核函数。
三个类型讨论到后面使用SMO解决问题。