Andrew Ng机器学习课程笔记(八)之监督学习之Support Vector Machine(3)

Preface

主要内容:
在前面两篇SVM博客中我们所考虑的都是样本数据可以继续线性划分的情况,在这里我们将介绍非线性划分。
L1 Norm Soft Margin SVM(软间隔SVM)
Coordinate Ascent(坐标上升法)
Sequential Minimal Optimization(序列最小优化算法, SMO)

L1 Norm Soft Margin SVM

在下图中分别展示了两种情况:

  1. 一个离群点(或噪声)可以造成超平面的移动,这可以看出离群点(或噪声)对于超平面的划分造成了不好的影响。
  2. 一个离群点(或噪声)在另外一个类中,这时我们就无法进行线性划分。

Andrew Ng机器学习课程笔记(八)之监督学习之Support Vector Machine(3)
Andrew Ng机器学习课程笔记(八)之监督学习之Support Vector Machine(3)

这时我们的原始问题就可以定义为:
Andrew Ng机器学习课程笔记(八)之监督学习之Support Vector Machine(3)
其中加入离群点(或噪声)的影响因素 Cξi
引入非负参数 ξi(松弛变量),就允许某些样本点的函数间隔小于 1,即在最大间隔区间里面,或者函数间隔是负数,即样本点在对方的区域中。
C 控制参数 ξi 权重大小,C 越大表明离群点对目标函数影响越大,也就是越不希望看到离群点。
按照以前的办法,我们首先够造拉格朗日算子:
Andrew Ng机器学习课程笔记(八)之监督学习之Support Vector Machine(3)
接着我们构造这个原始优化问题的对偶问题:
Andrew Ng机器学习课程笔记(八)之监督学习之Support Vector Machine(3)
继而通过KKT条件,我们得到下述用于求解优化问题最优解的 α 的收敛条件:
Andrew Ng机器学习课程笔记(八)之监督学习之Support Vector Machine(3)

Coordinate Ascent

定义无约束优化问题为:
Andrew Ng机器学习课程笔记(八)之监督学习之Support Vector Machine(3)
现在使用坐标
Andrew Ng机器学习课程笔记(八)之监督学习之Support Vector Machine(3)
对于这个算法的解释为:
最内层循环语句表示的意思是,求除了 αi 之外所有参数都固定的 W(α1,...,αi1,α^i,αi+1,...,αm) 的最大值。
这里我们进行最大化求导的顺序 i 是从 1 到 m,可以通过更改优化顺序来使 W 能够更快地增加并收敛。如果 W 在内循环中能够很快地达到最优,那么坐 标上升法会是一个很高效的求极值方法。
在下图中,我们可以清楚的看出坐标上升法的结果:
Andrew Ng机器学习课程笔记(八)之监督学习之Support Vector Machine(3)
椭圆代表了二次函数的各个等高线,变量数为 2,起始坐标是(2,-2)。图中的直线式迭代优化的路径,可以看到每一步都会向最优值前进一步,而且前进路线是平行于坐标轴的,因为每一步只优化一个变量。先保持 α2 不变,变化 α1 使得函数值最大,记录此时的 α1 ,再保持 α1 ,变化 α2 函数值最大,记录此时的 α2 最后得到收敛点——最大值。

Sequential Minimal Optimization

我们回到解决原始优化问题的对偶问题上来:
Andrew Ng机器学习课程笔记(八)之监督学习之Support Vector Machine(3)
这里我们将使用改变的坐标上升法来解决问题:
按照坐标上升的思路,我们首先固定除 α1 以外的所有参数,然后在 α1 上求最大值。但是只是固定一个 αi 参数,将不能使得还满足约束条件 。所以这里我们使用Sequential Minimal Optimization(序列最小优化算法, SMO)算法来解决问题。即我们固定两个 αi,αj 以外的所有参数,然后此基础上上求最大值,即下图所示:
Andrew Ng机器学习课程笔记(八)之监督学习之Support Vector Machine(3)

接下来我们通过选择 α1,α2 来具体探索SMO算法。
首先我们知道对偶优化问题的约束条件 i=1mαiy(i)=0
所以有:
(1)α1y(1)+α2y(2)=i=3mαiy(i)=ζ
其次对于 0αiC 方形约束条件,我们可以得到:
Andrew Ng机器学习课程笔记(八)之监督学习之Support Vector Machine(3)
所以有:
(2)α1=ζα2y(2)y(1)
所以有:
(2)W(α1,α2,...,αm)=W(ζα2y(2)y(1),α2,...,αm)
由于固定两个 α1,α2 以外的所有参数,所以有得到一个二次函数:
(3)W(α1,α2,...,αm)=aα22+bα2+c
从我们十分容易的得到二次函数的最值。

最后我们需要考虑 0αiC 方形约束条件,
当二次函数的最值的在方形约束条件规定的区域内时,我们无需进行任何工作;
当二次函数的最值的不在方形约束条件规定的区域内时,我们需进行裁剪,使其落在区域内;
总之,二次函数的最值一定在方形约束条件规定的区域内的α1=ζα2y(2)y(1) 线段上。