声明:
1,本篇为个人对《2012.李航.统计学习方法.pdf》的学习总结,不得用作商用,欢迎转载,但请注明出处(即:本帖地址)。
2,由于本人在学习初始时有很多数学知识都已忘记,所以为了弄懂其中的内容查阅了很多资料,所以里面应该会有引用其他帖子的小部分内容,如果原作者看到可以私信我,我会将您的帖子的地址付到下面。
3,如果有内容错误或不准确欢迎大家指正。
4,如果能帮到你,那真是太好了。
这里开始总结如何处理非线性的分类问题。
在“支持向量机 - 1 -准备知识和介绍”中已经介绍了核技巧和核函数,这里再总结一下。
1,核技巧:
而上面这个就是核技巧的主要思想,即:
1,使用一个变换将原空间的数据通过提升维度的方法映射到新空间;
2,在新空间中用线性分类学习方法从训练数据中学习分类模型。
若把核技巧应用到支持向量机中的话,其基本想法就是:
通过一个非线性变换将输入空间(欧式空间Rn或离散集合)对应于一个特征空间(希尔伯特空间),使得在输入空间中的超曲面模型对应于特征空间中的超平面模型(支持向量机)。
这样,分类问题的学习任务通过在特征空间中求解线性支持向量机就可以完成。
好了,核技巧讲完了,接着我们来看看核函数。
2,核函数:
定义:
设X是输入空间(欧式空间Rn或离散集合),又设H为特征空间(希尔伯特空间),如何存在一个从X到H的映射:
Ф(x): X --> H
使得对所有的x, z∈X,函数K(x, z)满足条件:
K(x,z) =Ф(x)·Ф(z)
那么就成K(x, z)为核函数,Ф(x)为映射函数,式中Ф(x)·Ф(z)为Ф(x)和Ф(z)的内积。
在使用时,一般只定义核函数K(x,z),而不显式的定义映射函数Ф,因为,通常直接计算K(x,z)容易,而通过Ф(x)和Ф(z)计算K(x,z)有点困难。
下面举个例子来说明核函数和映射函数的关系。
例:
假设输入空间时R2,核函数是K(x, z)= (x·z)2,试找出其相关的特征空间H和映射Ф(x):R2--> H。
解:
取特征空间H=R3,记x = (x1,x2)T,z = (z1, z2)T,由于
(x·z)2= (x1z1 + x2z2)2 = (x1z1)2 + 2 x1z1x2z2 + (x2z2)2
所以可以取映射
容易验证:Ф(x)·Ф(z) = K(x, z)
注意:原来的空间时R2,而用核技巧之后的空间时R3,这实际上是升维了。
同样还有另外两种取法:
H=R3时:
H=R4时:
3,核技巧在支持向量机中的应用:
在线性支持向量机的对偶问题中,无论是目标函数还是决策函数(分离超平面)都只涉及输入实例与实例之间的内积。于是在对偶问题的目标函数
中的内积xi·xj可以用核函数K(xi,xj) =Ф(xi)·Ф(xj)来代替。此时对偶问题的目标函数成为:
同样分类决策函数中的内积也可以用核函数代替,而分类决策函数式成为:
这样一来,原来输入空间中的内积xi·xj经过映射函数Ф转换为了特征空间的内积Ф(xi)·Ф(xj),并在新的特征空间里学习线性支持向量机。而若这个映射函数Ф是从非线性到线性的映射的话,那经过映射就可以利用解线性分类问题的方法来求解非线性分类问题的支持向量机了。
当然,在实际应用中,往往依赖领域知识直接选择核函数。
4,正定核 – 核函数的另一定义
因为书上没给出例子,所以我对这个定义理解的不太深,于是下面直接放上定义作为记录。
这个定义在构造核函数时很有用,但实际问题中往往应用已有的核函数,于是在使用时大家根据需要搜索吧。
非线性支持向量机的学习算法总结如下。
输入:
训练数据集T ={(x1, y1), (x2, y2), ..., (xN, yN)},其中xi∈X = Rn,yi∈Y={-1, +1},i=1, 2, ...,N;
输出:
分类决策函数
解:
1,选取适当的核函数K(x,z)和适当的参数C,构造并求解最优化问题
求得最优解a* = (a1*,a2*, ..., aN*)T。
2,选择a*的一个正分量0 <aj* < C,计算
3,构造决策函数:
当K(x, z)是正定核函数时,问题7.95~ 7.97是凸二次规划问题,解是存在的。