支持向量机(SVM)后篇 核函数(Kernels)线性不可分情况 SMO算法——机器学习

时间:2024-04-03 18:46:54

六 核函数(Kernels)

例如,对于二分问题,某些数据的结果需从一维映射到高维,才能线性可分,简而言之就是可以用超平面划分。比如,在线性回归单一特征的例子中,我们将唯一的特征x,映射到三维,分别为x,x^2,x^3。定义一个关于特征向量x的函数列向量φ(x),这被称为特征映射,其中每一行代表映射的结果,比如上例的特征映射函数为

支持向量机(SVM)后篇 核函数(Kernels)线性不可分情况 SMO算法——机器学习

SVM前篇的末尾中给出了超平面划分函数的表达式,其中含有训练数据与输入数据的内积一项,那么原内积支持向量机(SVM)后篇 核函数(Kernels)线性不可分情况 SMO算法——机器学习变为支持向量机(SVM)后篇 核函数(Kernels)线性不可分情况 SMO算法——机器学习。为了形式化定义核函数,若原始特征内积为支持向量机(SVM)后篇 核函数(Kernels)线性不可分情况 SMO算法——机器学习,那么映射后的内积为支持向量机(SVM)后篇 核函数(Kernels)线性不可分情况 SMO算法——机器学习,那么映射后的内积被称为核函数(Kernel),具体形式如下

支持向量机(SVM)后篇 核函数(Kernels)线性不可分情况 SMO算法——机器学习

那么映射后的划分函数中的内积就可替换为支持向量机(SVM)后篇 核函数(Kernels)线性不可分情况 SMO算法——机器学习

 例如,若核函数为支持向量机(SVM)后篇 核函数(Kernels)线性不可分情况 SMO算法——机器学习,那么展开后的具体形式为

支持向量机(SVM)后篇 核函数(Kernels)线性不可分情况 SMO算法——机器学习

据此得出,特征映射函数φ的表达式为下

支持向量机(SVM)后篇 核函数(Kernels)线性不可分情况 SMO算法——机器学习

那么为了计算变换过的内积,若根据上面的展开式计算,可知,复杂度为O(n^2)。但若通过(x^Tz)^2,可知复杂度为O(n)。所以若根据核函数的形式然后求出特征映射函数,可降低复杂度。

再如,若有如下核函数

支持向量机(SVM)后篇 核函数(Kernels)线性不可分情况 SMO算法——机器学习

可得φx为

支持向量机(SVM)后篇 核函数(Kernels)线性不可分情况 SMO算法——机器学习

更一般地,核函数支持向量机(SVM)后篇 核函数(Kernels)线性不可分情况 SMO算法——机器学习将原特征映射到支持向量机(SVM)后篇 核函数(Kernels)线性不可分情况 SMO算法——机器学习维的特征空间。

接着有如下核函数

支持向量机(SVM)后篇 核函数(Kernels)线性不可分情况 SMO算法——机器学习

若x与z值很接近,那么K值接近1;若x与z相差很远,那么K值接近0。由于此形式与高斯分布很相似,故此称为高斯核函数,也叫径向基函数(Radial Basis Function RBF)。RBF可讲特征映射到无限维,根据泰勒展式可有

支持向量机(SVM)后篇 核函数(Kernels)线性不可分情况 SMO算法——机器学习

可知,特征被映射到了无限维。更多解释可以到知乎搜索。

 

七 核函数有效性判定

下面的问题是如何判定核函数是否可用,对于给定的K能否找到对应的φ。

对于核函数K,易得有支持向量机(SVM)后篇 核函数(Kernels)线性不可分情况 SMO算法——机器学习

可知其为一个对称阵,那么对于核函数矩阵K,根据矩阵半正定的定义,有如下式子

支持向量机(SVM)后篇 核函数(Kernels)线性不可分情况 SMO算法——机器学习

可知K是半正定矩阵,可知K为有效的核函数,那么K为半正定矩阵。而这个结论反过来也是正确的,这样就有了Mercer定理,简单用一句话说就是:

Mercer定理:任何半正定的函数都可以作为函数

Mercer定理的完整证明,这里不赘述,可查阅相关资料。

 

八 规则化和不可分情况处理(Regularization and the non-separable case)

看如下图

支持向量机(SVM)后篇 核函数(Kernels)线性不可分情况 SMO算法——机器学习

右图中加入的点(可称为噪声)会使超平面移动,会使总体判定水平下降,因此采用软间隔,改变问题为如下

支持向量机(SVM)后篇 核函数(Kernels)线性不可分情况 SMO算法——机器学习

松弛变量εi是针对那些影响判定的明显噪声点,如上图,该点据原超平面的距离为负,因此加入松弛变量后,原函数距离的限制从1变为了1-εi,表示允许部分距离小于1(包括负)。而放松限制条件后,我们需要重新调整目标函数,以对离群点进行处罚,目标函数后面加上CΣεi就表示离群点越多,离群越远对目标函数影响越大,C表示离群点的权重。

模型修改后,拉格朗日公式如下修改:

支持向量机(SVM)后篇 核函数(Kernels)线性不可分情况 SMO算法——机器学习

这里的αi和ri都是拉格朗日乘子,回想之前拉格朗日对偶中提到的求法,先写出拉格朗日公式,然后将其看作是w和b的函数,分别对其求偏导,然后得到w和b有关的表达式。然后带入公式中,求带如后公式的极大值。过程略过,最后结果为

支持向量机(SVM)后篇 核函数(Kernels)线性不可分情况 SMO算法——机器学习

此时,我们发现没有了参数εi,与之前模型唯一不同在于αi又多了αi<=C的限制条件。需要提醒的是,b的求职公式也发生了改变,改变结果在SMO算法里面介绍。那么KKT条件变为:

支持向量机(SVM)后篇 核函数(Kernels)线性不可分情况 SMO算法——机器学习

第一个式子表明在两条间隔线外的样本点前面的系数为 0,离群样本点前面的系数为 C, 而支持向量(也就是在超平面两边的最大间隔线上)的样本点前面系数在(0,C)上。通过 KKT 条件可知,某些在最大间隔线上的样本点也不是支持向量,相反也可能是离群点。

 

九 坐标上升法(Coordinate ascent)

在最后讨论maxW(α)的求解,即SMO算法之前,我们先看看坐标上升法的基本原理。

假设求解以下优化问题:

支持向量机(SVM)后篇 核函数(Kernels)线性不可分情况 SMO算法——机器学习

同梯度下降法与牛顿法一样,坐标上升法也是一种求解最值的优化算法(求解最小值问题时,称为坐标下降法,原理一样)

梯度上升法遵循以下方法:

支持向量机(SVM)后篇 核函数(Kernels)线性不可分情况 SMO算法——机器学习

更新过程为每次固定除αi以外的参数,求得满足条件的αi,直到算法收敛。求单个参数的最大值,无非是对此参数求导,具体有如下例子,比如求下列函数的最值:

支持向量机(SVM)后篇 核函数(Kernels)线性不可分情况 SMO算法——机器学习

在迭代的过程中,每次固定x2 更新x1 ,在确定了x1 的条件下,固定x1 ,更新x2 ,即:

支持向量机(SVM)后篇 核函数(Kernels)线性不可分情况 SMO算法——机器学习

令其为0,得到:

支持向量机(SVM)后篇 核函数(Kernels)线性不可分情况 SMO算法——机器学习

再固定x2 ,得到:

支持向量机(SVM)后篇 核函数(Kernels)线性不可分情况 SMO算法——机器学习

得到:

支持向量机(SVM)后篇 核函数(Kernels)线性不可分情况 SMO算法——机器学习

不断按照上述的过程,直到算法收敛。下图是算法在整个过程中的更新曲线:

支持向量机(SVM)后篇 核函数(Kernels)线性不可分情况 SMO算法——机器学习

具体来说,上图是以x1=2为起点,那么只看x1的话,它的值变化为:2,2/3,2/9,2/27,...直至趋近与0,达到最大值。

 

十 SMO优化算法(Sequential minimal optimization)

我们上面提到,对偶函数的优化问题,由SMO算法解决,即如下问题:

支持向量机(SVM)后篇 核函数(Kernels)线性不可分情况 SMO算法——机器学习

其中αi为参数,x(i),y(i)均这些训练数据为已知数,权重C由我们预先设定,也是已知数。

若直接采用坐标上升法,比如对于i=1,α1为参数,固定其它αi,但这样α1将会被直接求出,因为有第二个限制条件。因此,我们改为选取两个参数优化,比如对于α1,α2,固定其它αi,那么α1可以用α2和其它αi表示,这样带回到W中,W就只是关于α2的函数了。

因此SMO的主要步骤如下

支持向量机(SVM)后篇 核函数(Kernels)线性不可分情况 SMO算法——机器学习

第一步中的启发式算法不予叙述,相见John C. Plat的《 Sequential Minimal Optimization A Fast Algorithm for Training Support Vector Machines》。

固定两个参数后,易知有如下:

支持向量机(SVM)后篇 核函数(Kernels)线性不可分情况 SMO算法——机器学习

因为等式右边项为固定的αi,那么可看作常数,所以写成:

支持向量机(SVM)后篇 核函数(Kernels)线性不可分情况 SMO算法——机器学习

当y(1)和y(2)异号时,也就是一个为 1,一个为-1 时,他们可以表示成一条直线,斜率为 1。如下图

支持向量机(SVM)后篇 核函数(Kernels)线性不可分情况 SMO算法——机器学习

这两条线分别代表支持向量机(SVM)后篇 核函数(Kernels)线性不可分情况 SMO算法——机器学习分别为正和负值时的直线情况。

α1与α2在直线上,是因为满足两者之间和的等式;α1和α2在矩形方框内,是因为满足0<=αi<=C的不等式。因此,对于α2的上界H与下界有如下取值:

支持向量机(SVM)后篇 核函数(Kernels)线性不可分情况 SMO算法——机器学习

当y(1)与y(2)异号时,同理有:

支持向量机(SVM)后篇 核函数(Kernels)线性不可分情况 SMO算法——机器学习

如果将α2用α1表示,那么有:

支持向量机(SVM)后篇 核函数(Kernels)线性不可分情况 SMO算法——机器学习

最后反代如W,得到:

支持向量机(SVM)后篇 核函数(Kernels)线性不可分情况 SMO算法——机器学习

展开后,W可以表示成关于α2的二次函数形式,这样可以通过对W进行求导,得到使W最大的α2,不过注意α2存在取值区间[L,H],那么我们用支持向量机(SVM)后篇 核函数(Kernels)线性不可分情况 SMO算法——机器学习表示求导出来的α2,那么对于最终的α2,支持向量机(SVM)后篇 核函数(Kernels)线性不可分情况 SMO算法——机器学习,有

支持向量机(SVM)后篇 核函数(Kernels)线性不可分情况 SMO算法——机器学习

那么根据α1关于α2的表达式,可以求出支持向量机(SVM)后篇 核函数(Kernels)线性不可分情况 SMO算法——机器学习