非线性支持向量机与核函数
一、非线性分类
非线性分类问题指的是通过利用非线性模型才能很好地进行分类的问题。
用线性分类方法求解非线性分类问题的一般思想
先使用一个变换将原空间的数据映射到新空间,
然后在新空间里用线性分类学习方法。
二、核函数的引入
设
X
X
是输入空间,为特征空间,如果存在一个从
X
X
到的映射
使得对所有的 x,z∈X x , z ∈ X ,函数 K(x,z) K ( x , z ) 满足条件
则称 K(x,z) K ( x , z ) 为核函数, ϕ(x) ϕ ( x ) 为映射函数。
线性SVM的对偶问题
KKT条件得到的原始问题的解为
分类决策函数
目标函数和分类决策函数都只涉及输入实例与实例之间的内积,将内积用核函数替换就得到非线性SVM。
这等价于经过映射函数将原来的输入空间变换到一个新的特征空间,将输入空间中的内积 xi⋅xj x i ⋅ x j 变换为特征空间中的内积 ϕ(xi)ϕ(xj) ϕ ( x i ) ϕ ( x j ) ,在新的特征空间中学习线性支持向量机。
学习是隐式地在特征空间中进行,不需要显式地定义特征空间和映射函数。
三、核函数的介绍
对于从低维到高维的映射,核函数不止一个。那么什么样的函数才可以当做核函数呢?
通常我们说的核函数就是正定核函数。
定理(正定核的充要条件)设
K:X×X→R
K
:
X
×
X
→
R
是对称函数,则
K(x,z)
K
(
x
,
z
)
为正定核函数的充要条件是对任意
xi∈X,i=1,2,...m
x
i
∈
X
,
i
=
1
,
2
,
.
.
.
m
,
K(x,z)
K
(
x
,
z
)
对应的Gram矩阵
是半正定矩阵。
常用核函数
1.多项式核函数
2.高斯核函数(Gaussian Kernel)
在SVM中也称为径向基核函数(Radial Basis Function,RBF),它是非线性分类SVM最主流的核函数。libsvm默认的核函数
3. Sigmoid核函数
疑问
1. 为什么高维或者无穷维一定? 线性可分
2. 没有内积还能用核函数?
3. 如果输入空间本身就是高维的, SVM 还适用吗