本讲大纲:
1.核(kernels)
2.软边界(soft margin)
3.SMO算法(SMO algorithm)
1.核
属性(attributes):原始的输入值(房价的例子中,x,住房的面积)
特征(features):由原始数据映射的一些数据
用来表示特征映射,例如:
用代替x.
定义核为:
是很容易计算的,即使计算的代价很大(高维向量). 在这种设定中,在算法中用一个很高效的方法计算,我们可以让SVM在高维特征中学习,而不用显示的表示出.
假设,
可以写成,
以n=3为例,
直观上来说,如果和很近,我们可能认为很大,相反,如果很远–几近正交,则很小. 因此,我们可以认为可以看作是和相似度的一种测量. 例如,或许选择,,这是一种合理的测量方法,当x和z很近时值接近于1,很远时值接近0. 在特定的例子中是可以作为SVM的核的. (这个核叫做高斯核 Gaussian kernel,映射到一个无限维的特征)
定理(Mercer):给定K,是给定的,对于一个确定的核,它的充分必要条件是相应的核矩阵式对称半正定的.
利用核的例子:
数字的识别,分类字符
2.软边界
正则化和不可分的例子(regularization and the non-separable case)
到目前为止,我们讨论SVM时认为数据是线性可分的, 把数据映射到高维空间一般会增加线性可分的可能性,但是我们不能保证一定可以.
左图显示的是一个最优间隔分类器,但是如果在左上区域加上一个异常值,决定边界线会发生剧烈的变化,
导致分类器有更小的边界.
为了使算法能够处理非线性可分的数据集并且对异常值不会这么敏感, 修订优化问题如下:
因此,样本现在允许边界小于1.
3.SMO算法
SMO(sequential minimal optimization)算法起源于SVM, John Platt起初了一个高效解决对偶问题的方法.
坐标上升(Coordinate ascend)
对于没有限制的优化问题:
,除了用梯度上升和牛顿方法,还能使用坐标上升算法:
下图是坐标上升执行的一个过程:
这是我们要解决的对偶问题:
这里不能直接使用坐标上升算法,因此(19)的限制. 因此我们至少要同时改变两个才能满足限制. 因此:
SMO算法之所以高效是能够很高效的计算出ai,aj.
以改变a1,a2为例,(常数),a1、a2的限制如下图所示:
得到:
之后计算出a1的值.