3 核函数与非线性支持向量机
3.1 核函数
如果训练数据本身是非线性的,比如按下图分布:
那么此时原输入空间没有超平面能将训练集很好地分离开,但存在这样的超曲面。而我们仍然希望用求解线性分类问题的方法求解非线性问题。这时可以将原输入空间中的数据点通过非线性变换,映射到新特征空间去,在此特征空间中,训练集是线性可分的,这时可以使用线性分类的方法找解决分类问题。比如上图中,将左边的原始输入空间映射到右边的新特征空间中去,然后用线性分类器在新空间中解决分类问题。
核函数
设 X 是输入空间(欧式空间 Rn 的子集或者离散集合),设 H 为特征空间(希尔伯特空间),如果存在一个从 X 到 H 的映射ϕ(x):X→H使得对所有的 x,z∈X ,函数 K(x,z) 满足条件
K(x,z)=ϕ(x)⋅ϕ(z)
则称 K(x,z) 为核函数, ϕ(x)为映射函数。
但是, ϕ 是输入空间 Rn 到特征空间 H 的映射,而 H 一般是高维的甚至是无穷维的,所以直接求 ϕ(x) 是比较困难的。核技巧的想法是,只定义核函数 K(x,z) ,而不显示定义非线性映射函数 ϕ ,这对支持向量机来说再合适不过了,因为无论是支持向量机的优化问题还是其最优超平面,都只涉及变换后的内积,而并不需要变换值。(这里多提一句,对于确定的核函数 K(x,z) ,其对应的特征空间 H 和映射 ϕ 并不唯一。)
3.2 非线性支持向量机
于是在特征空间中的支持向量机优化问题为:
对应的最优超平面为:
3.3 常用核函数
核函数并不好构造,不过有几个常用的核函数:
多项式核
K(x,z)=(x⋅z+1)p高斯核
K(x,z)=exp(−||x−z||22σ2)
又称为径向基核函数,可以将数据映射到无穷维空间。
核函数有如下性质:
- 如果 K1 和 K2 为核函数,那么对于任意正数 γ1,γ2 ,线性组合
K(x,z)=γ1K1+γ2K2也是核函数。- 如果 K1 和 K2 为核函数,那么核函数的乘积也是核函数:
K(x,z)=K1(x,z)K2(x,z)- 如果 K1 为核函数,那么对于任意函数 g(x) ,
K(x,z)=g(x)K1(x,z)g(z)也是核函数。