Andrew Ng机器学习笔记+Weka相关算法实现(五)SVM最优间隔和核方法

这一章主要讲解Ng的机器学习中SVM的后续内容,主要包括最优间隔分类器求解,核方法。

  • 最优间隔分类器的求解

利用以一篇讲过的的原始对偶问题求解的思路,我们可以将类似思路运用到SVM的求解上来。具体的分析如下:
对于SVM求解的问题:
Andrew Ng机器学习笔记+Weka相关算法实现(五)SVM最优间隔和核方法_第1张图片
我们把约束条件稍微变形一下:

只有函数间隔是1的点才能使上式取等号,也就是有意义的,如下图:
Andrew Ng机器学习笔记+Weka相关算法实现(五)SVM最优间隔和核方法_第2张图片
叉叉和圈圈分别代表正反例,可以看出,只有落在边缘的点的α≠0,这些点才是支持向量。其他的点α=0,对分割超平面没有意义。上图的支持向量一共有3个。
写出拉格朗日表达式:
这里写图片描述
根据对偶问题求解思路:
解对偶问题时,首先要固定α,以 w,b 为变量,最小化 L;
最小化 L 时,求解 L 对 w和 b 的偏导,并将导数设为 0,可以得到:


解出来:
这里写图片描述
代入原始的拉格朗日表达式:
这里写图片描述
部分推导过程如下(感谢大神分享):

Andrew Ng机器学习笔记+Weka相关算法实现(五)SVM最优间隔和核方法_第3张图片

最后一项是0,原式化简为:
这里写图片描述
注意到:这里写图片描述是向量的内积,我们可以进一步简化书写。此时的拉格朗日函数只包含了变量α,我们求出了α就可以得到b和w。
接下来极大化最小值:
Andrew Ng机器学习笔记+Weka相关算法实现(五)SVM最优间隔和核方法_第4张图片
这里的目标函数和线性约束都是凸函数,不存在等式约束 h。存在 w使得对于所有的 i,gi(W)< 0。因此,一定存在w∗, α∗使
得w∗是原问题的解, α∗是对偶问题的解。接下来就是求得α。
然后就可以得到:

也可以得到W:
这里写图片描述
即离超平面最近的正的函数间隔要等于离超平面最近的负的函数间隔。这个不难理解,就是只有是平分线时候才离两侧都最远。
求得W后,我们得到:
Andrew Ng机器学习笔记+Weka相关算法实现(五)SVM最优间隔和核方法_第5张图片
对于如何求得α,在下一篇博客中介绍。

  • 核方法

对于开始时提出来的房屋价格与面积的关系问题,设XY分别是房屋面积和价格,假设我们知道x和y满足三次函数关系,那么我们就可以使用三次多项式拟合x和y的关系。但是我们首先要将特征扩展到(x,x^2,x^3),这个过程叫做特征映射。我们表示为φ,在这个问题中:

如果我们希望将映射后的特征用于SVM的分类,就要将内积这里写图片描述
映射为:这里写图片描述
如果样例可能存在线性不可分的情况,而将特征映射到高维空间后,往往就可分了。
我们定义核函数:

我们只需要做计算,就可以完成映射,但是这样做复杂度很高。比如最初的特征是 n 维的,我们将其映射到n^2维,然后再计算,这样需要O(n^2)的时间。我们考虑简化方法:
对于一个特例:假设 x 和 z 都是 n 维的,
这里写图片描述
展开后:
Andrew Ng机器学习笔记+Weka相关算法实现(五)SVM最优间隔和核方法_第6张图片

不难看出,这个时候发现我们可以只计算原始特征 x 和 z 内积的平方,就等价与计算映射后特征的内积。此时:
这里写图片描述
对于另一个相似的核函数:

我们可以表示为:
Andrew Ng机器学习笔记+Weka相关算法实现(五)SVM最优间隔和核方法_第7张图片
更一般的表示,对于一个形如:这里写图片描述
的核函数,其映射后的特征是 维度。 向量中每个元素都是最高为 d 阶的变量的组合。如果直接计算核函数的值,其复杂度均为 O(n),这就避免了直接计算内积结果的复杂度。

如果ϕ(x)和ϕ(z)在其对应的维度空间中位置接近,那么内积值 K 会很大,
反之则内积会小,这有点类似两个向量的乘积。这意味着核函数 K 是一个度量向量 x 和向量 z接近程度的指标 。
如果 x 和 z 相差很大( ||x − z|| ≫ 0),那么核函数值约等于 0。
这里写图片描述
由于这个函数类似于高斯分布,因此称为高斯核
函数,也叫做径向基函数(Radial Basis Function 简称 RBF)。它能够把原始特征映射到无穷维(泰勒展开式有无穷项多项式)。
使用了核函数后,原始的这里写图片描述 变成了,我们不必求解核函数表达式,只需要将内积替换为 即可。

那么什么样的函数才能作为核函数呢?
给定一个函数K,是否存在φ,使得这里写图片描述 对所有的x和z都成立?也就是说,如果核函数合法,那么必然能写成两个映射函数乘积的形式。
首先定义核矩阵。对于一个数据集这里写图片描述, 定义一个
m*m 的矩阵 K( K 既代表核函数也代表核矩阵), K 中的每个元素定义如下:
这样可以计算出 m*m 的核函数矩阵( Kernel Matrix)。
根据核函数定义,有下式子:

这里写图片描述
也就是说,矩阵K是对称的,我们令这里写图片描述 代表矩阵K的第k维,那么对于任意的向量Z,我们得到:

从这个公式我们可以看出,如果 K 是个有效的核函数,那么,在训练集上得到的核函数矩阵 K 应该是半正定的( K ≥ 0)。结合以前的结论,K矩阵应该是对称半正定的。
这个条件也是充分的,由 Mercer 定理来表达:

核函数不仅仅用在 SVM 上,只要是计算中有内积出现,就可以替换为核函数。

  • 不可分情况的处理

对于低维不可分问题,我们可以通过核函数映射到高维,一般就可以线性可分,但是仍然不能保证一定可以线性可分,那么我们应该采用零哟中思路找到一个最合适的超平面进行分割,如下图所示:

第二图因为一个噪声点可能会造成分割平面移动甚至线性不可分。我们应该允许一些点游离在我们定义的规则之外,此时的条件如下:
Andrew Ng机器学习笔记+Weka相关算法实现(五)SVM最优间隔和核方法_第8张图片
原有的问题加入了非负参数ξ,但是放松限制条件后,我们需
要重新调整目标函数,以对离群点进行处罚,也就是加入了惩罚项C,C越大,代表越不希望出现离群点。
可以得到改动后的拉格朗日表达式:
这里写图片描述
按照之前的求解思路:
Andrew Ng机器学习笔记+Weka相关算法实现(五)SVM最优间隔和核方法_第9张图片
可以看到公式并没有什么变化,只是多了一个限制条件。但是其实b的求解也会发生变化,具体到SMO算法的时候再讲解。
KKT条件也会发生变化:

你可能感兴趣的:(机器学习,SVM)