非线性支持向量机与核函数
一、核技巧
1、非线性分类问题是指通过非线性模型才能很好的进行分类的问题。如下图所示:
很显然,不能通过直线(线性模型)将图示实例点进行分离,只能通过一条椭圆曲线。
在实际问题中,非线性问题往往很难求解,然而,如果我们可以先将其变成线性问题,再进行求解,那么问题就得到了解决。
使用线性分类方法求解非线性问题的步骤:首先使用一个变换将原空间的数据映射到新空间,然后在新空间用线性分类学习方法进行分类。核技巧就是这样的方法。
所谓的核技巧实际就是使用核函数的方法,将其应用到向量机,其实质就是通过一个非线性变换将输入空间(欧式空间)对应到一个特征空间(希尔伯特空间),使得在输入空间中的超曲面模型对于特征空间中的超平面空间。
2、核函数
定义:设
X
X
是输入空间,又设
H
H
为特征空间,如果存在一个映射:
ϕ(x):X→H
ϕ
(
x
)
:
X
→
H
使得对所有的
x,z∈X
x
,
z
∈
X
,函数
K(x,z)
K
(
x
,
z
)
满足条件
K(x,z)=ϕ(x)⋅ϕ(z)
K
(
x
,
z
)
=
ϕ
(
x
)
⋅
ϕ
(
z
)
则称
K(x,z)
K
(
x
,
z
)
为核函数
核技巧的想法是通常只定义核函数,而不显式的定义映射函数。
3、核技巧在线性支持向量机中的应用
在对偶问题的目标函数中的内积
xi⋅xj
x
i
⋅
x
j
用核函数
K(xi,zj)=ϕ(xi)⋅ϕ(zj)
K
(
x
i
,
z
j
)
=
ϕ
(
x
i
)
⋅
ϕ
(
z
j
)
代替,此时,对偶问题的目标函数变为:
W(α)=12∑i=1N∑j=1NαiαjyiyjK(xi,zj)−∑i=1Nαi
W
(
α
)
=
1
2
∑
i
=
1
N
∑
j
=
1
N
α
i
α
j
y
i
y
j
K
(
x
i
,
z
j
)
−
∑
i
=
1
N
α
i
二、正定核
通常所说的核函数就是指正定核
假设
K(x,z)
K
(
x
,
z
)
是定义在
X×X
X
×
X
的对称函数,对于任意的
x1,x2,⋯,xm∈X
x
1
,
x
2
,
⋯
,
x
m
∈
X
,
K(x,z)
K
(
x
,
z
)
关于
x1,x2,⋯,xm
x
1
,
x
2
,
⋯
,
x
m
的Gram矩阵是半正定的,可以依据函数
K(x,z)
K
(
x
,
z
)
构造一个希尔伯特空间,其步骤是,首先定义映射
ϕ
ϕ
构成向量空间
S
S
,然后在上面定义内积称为内积空间,最后将其完备化构成希尔伯特空间。
先定义映射:
ϕ:x→K(⋅,x)
ϕ
:
x
→
K
(
⋅
,
x
)
根据这一映射定义线性组合:
f(⋅)=∑i=1mαiK(⋅,xi)
f
(
⋅
)
=
∑
i
=
1
m
α
i
K
(
⋅
,
x
i
)
之后在上面定义内积,使其称为内积空间
f(⋅)=∑i=1mαiK(⋅,xi)
f
(
⋅
)
=
∑
i
=
1
m
α
i
K
(
⋅
,
x
i
)
g(⋅)=∑j=1lβjK(⋅,zj)
g
(
⋅
)
=
∑
j
=
1
l
β
j
K
(
⋅
,
z
j
)
定义运算*:
f∗g=∑i=1m∑j=1lαiβjK(xi,zj)
f
∗
g
=
∑
i
=
1
m
∑
j
=
1
l
α
i
β
j
K
(
x
i
,
z
j
)
将其完备化为希尔伯特空间
由于核K具有再生性,即满足:
K(⋅,x)⋅f=f(x)
K
(
⋅
,
x
)
⋅
f
=
f
(
x
)
K(⋅,x)⋅K(⋅,z)=K(x,z)
K
(
⋅
,
x
)
⋅
K
(
⋅
,
z
)
=
K
(
x
,
z
)
三、常用核函数
多项式核函数:
K(x,z)=(x⋅z+1)p
K
(
x
,
z
)
=
(
x
⋅
z
+
1
)
p
高斯核函数:
K(x,z)=exp(−||x−z||22σ2)
K
(
x
,
z
)
=
exp
(
−
|
|
x
−
z
|
|
2
2
σ
2
)
字符串核函数
序列最小最优化算法
算法提出的原因:训练样本容量很大时,许多最优化算法非常低效,由此导致了SMO算法的提出。
算法的思路:SMO算法是一种启发式算法,如果所有变量的解满足最优化问题的KKT条件,则这个最优化的解就可以得到了,因为KKT条件是最优化问题的充分必要条件,如果不满足KKT条件,此时选择两个变量,固定其他变量,针对这两个变量构造一个二次规划问题,这个二次规划问题的解应该更接近于原始二次规划问题的解,因为这会使得原始二次规划问题目标函数的值更小,且此时子问题可以通过解析方法求解。子问题共有两个变量,一个是违反KKT条件最严重的那个,另一个则是由约束条件自动确定。
整个SMO算法共包括两个部分:求解两个变量的二次规划的解析方法以及选择变量的启发方法
一、两个变量二次规划的求解方法
子问题写为:
s.t.α1y1+α2y2=−∑i=3Nyiαi=ς s . t . α 1 y 1 + α 2 y 2 = − ∑ i = 3 N y i α i = ς
对其求解即可
二、变量的选择方法
1、第一个变量的选择:选择违反KKT条件最严重的样本点
2、第二个变量的选择:选择 |E1−E2| | E 1 − E 2 | 最大时所对应的点
3、计算阈值和差值