SVM(2)-- Kernel
对于非线性分类,SVM一般有两种选择:
1. 容忍错误分类,即引入soft margin
2. 利用kernel trick,对input space做feature expansion,形成feature space,即把数据映射到高维中去。
这里谈谈kernel。
核技巧(kernel trick):
学习是隐式地在特征空间下进行的,不需要显式地定义特征空间(feature space)和映射函数(
在线性可分支持向量机的对偶问题中,无论是目标函数还是决策函数都只涉及输入样本与样本之间的内积,从头到尾都是在做内积运算。如果为了让数据线性可分,将数据映射到高维的特征空间,在特征空间计算内积就很麻烦了,而且也没有必要。
minα(12∑i=1m∑j=1mαiαjyiyjϕ(xi)ϕ(xj)−∑i=1mαi)
这个时候有个定理出现了,叫Mercer Theorem。
这个定理说明:那些原始维度的内积转换到高维空间的内积就等于把数据带入核函数的结果。即
将内积用核函数代替。
对偶问题的目标函数转化成:
minα(12∑i=1m∑j=1mαiαjyiyjK(xi,xj)−∑i=1mαi) s.t.∑i=1mαiyi=0 αi≥0,i=1,2,...,m
如果我已知了一个核函数
小结:经过映射函数
函数K(x,z) 满足什么条件才能成为核函数?
通常所说的核函数就是正定核函数,正定核函数的充要条件是
任何一个核函数都定义了一个再生核希尔伯特空间(Reproducing Kernel Hilbert Space, RKHS)。
常用核函数:
1. 线性核:主要用于线性可分的情况,参数少,速度快。
2. 多项式核
3. 高斯核函数(RBF):主要用于线性不可分的情况,参数多,分类结果非常依赖参数。
4. Sigmoid核函数