机器学习笔记(十)支持向量机SVM

一、最大分类间隔

为了保证把数据很好的分开,并且增大对噪声的容忍度,最好是距离分类面的最近分类点,到分类面的距离为最大

即求得最大间距的w,并且保证所有点分类正确,还要所有点到分类面的距离和为最小

为了计算距离,把w0和x0从特征向量中分离出来,令b=w0,x0=1就去掉了,变为

假设已经有了一个最大间隔的分类面,分类面上的点x'和x''有

 

则x到平面的距离表示为

对于分类正确的点,去掉绝对值可得距离为

解决目标变为

并且将 1/w 取倒数变为求的最大值,则最终解决条件变为

二、解决问题

以上的解决条件变为解决二次规划的问题,二次规划的标准形式为

要解决的问题表示为,则对应到相应的矩阵为

这是线性可分的 hard-margin 情况下(即所有的数据点都被正确分开,不允许分错)的SVM解决方法,若要应用到非线性的资料则需要进行特征转化

支持向量机和正则化的关系,两者的Ein和约束条件相反,目的是相同的

三、拉格朗日对偶SVM

当SVM应用到非线性数据特征时,需要进行特征转化,投影到线性的空间中,但转化后的特征维度很高,不利于二次规划的求解,怎么消除高维度的影响?由于投影到高纬度的结果,原来的SVM有d+1(投影的维度)个变量和N(资料量)个约束,能不能转化为N个变量和N+1个约束,以此来消除高纬度投影带来的影响?引入拉格朗日函数做变换

写成拉格朗日条件的形式为

变为求解给出一组b和w,调节不同的使拉格朗日函数最大,由不同的b和w,得出不同的朗格朗日函数解,选择最小的一个值,这一组b、w和就是所要求得的解

对于合适的w和b,存在就会小于0,由于所有的都是大于0的,必定小于等于0,要得到一个最大值,的值必须越来越小,直到为0为止,这时的趋向于一个值,不符合条件的w和b会趋于无穷,找不到一个最大值,即为

根据对偶性质,可得到SVM的解决问题变为

,求最小化的问题就是求得梯度等于0的点,对于

可得,即,加上这个条件之后SVM解决的问题变为,可以消除掉关于b的项,则SVM解决问题变为

,对w求梯度为0的点

则w为,加入这个条件SVM求解问题可变为

去掉w项公式可化为,变为了只需要求解合适的的问题

加上负号转化为求解最小值的问题

涉及到y和的约束条件为,这样转化为了一个二次规划问题(QP)

根据二次规划求得,进一步可知,计算的时候,涉及到特征转化的投影空间维度,当投影的维度很大时计算量也非常大,转化后的二次规划问题虽然没有直接涉及到高纬度的变量,但高纬度的计算仍隐含在Q矩阵计算中,没有避免,怎样避免计算这个高纬度的特征转换?

四、核函数

上面转化后的二次规划问题虽然没有直接涉及到高纬度的变量,但高纬度的计算仍隐含在Q矩阵计算中,没有避免,怎样避免计算这个高纬度的特征转换?

特征转化的形式为,先转换到高维空间,然后高维空间之间再做内积,计算量很大,能不能将这两个步骤合起来计算?

以转换特征x向量为二次方项为例,转化后的特征向量为

俩个转化后的特征做内积的结果等同于原向量的内积与原向量内积的平方之和

把这样的转换计算叫做核函数,例如二次项投影转换计算的核函数为

例如,SVM中的Q矩阵可以表示为

常数项b为

判断测试输入x为

五、核函数参数影响

以二次特征转换的核函数为例,核函数一般形式可写为,对于参数来说,不同的对应不同的margin

推广到Q次特征转化的一般形式为,不同的Q次方对应不同的模型复杂度和margin,

例如,一个10次转的复杂度分类曲线为

以上Q次方的转换,当Q很大时转化的维数很高,但也是有限的维度,怎么把特征维度转换到无限多维?利用高斯函数可以做到

对于一个特征向量x,令,对最后一项进行泰勒级数展开可得,拆开之后

其中,x特征向量的转化为,这样就表示转化到了无限维的空间中

高斯核函数可以表示为,也被称为

不同的对应不同的模型复杂度,以下为不同对应的二分类的曲线,太高的高斯函数图像会变得很尖,在分类上就会表现出过拟合

若要使用其他的核函数(或者是自己定义的),要证明这个核函数的正确性,需要计算出核函数矩阵K,

为半正定矩阵。

 六、soft-margin svm

对于hard-margin svm,所有的数据点都要求分类正确,,这对于线性不可分的数据(或者存在噪声的数据),线性的分类模型不能做到,必须进行高次方的特征转换,这样分类模型的复杂度会变高,会容易发生过拟合的线性,为了避免这种现象,采用soft-margin svm,对一些分错的点具有一定容忍度,并且要保证分类错误的点越少越好,这样能够降低模型的复杂度,soft-margin svm可表示为

,但这个公式,并且不能对分错的点进行错误大小的衡量,改变公式加入一个错误恒量的变量,来表达离正确的点有多远(例如点为+1,计算出y*(w*zn+b)为大于等于1则分类正确,等于0,若计算为大于0小于1,表示分类正确,但在margin之内,有错误恒量,若小于0,假如为-2,表示点分类错误,则为1-y*(w*zn+b)),所以公式可表示为

写成拉格朗日条件的形式为

拉格朗日对偶问题为,最小值点为梯度为0的值,则可得,由于,推导出,则最终的公式变为

,变为了约束条件不同的hard-margin svm的形式,对可得

,对可得,则变为二次规划求解问题为

用二次规划求得,由于,由,得出,若,则

可知最终的b值为,x为一些支撑向量的点

不同的参数C对应的二分类的曲线图如下

过大的C值会造成很小,也会造成过拟合,相当于会很少容忍错误的点发生

同样的用高斯核函数作出的模型,不同的C和会对应不同的模型复杂度,以二分类模型曲线为例,从左到右C依次增大,从下到上依次增大

,对于这样的情况怎么选择参数?利用验证的方法

七、svm logistics regression和kernel logistics regression

对于soft-margin svm来说,违反margin的量,没有违反的情况为,约束条件总体可表示为,则计算公式可化为,写成错误最小的形式为

类似于正则化问题,化为L2正则化问题为,但SVM化为这种方式不能做,第一因为不是QP问题,对偶、核函数的方法不能被用上,转化到高次特征空间计算很麻烦,第二max()的错误问题不能被求导,很难解决,SVM和正则的关系为

,对于三种错误的表现曲线如下所示

把SVM和logistics regression结合的最小化损失函数为,由以上介绍无论是SVM,还是PLA都可以把权重w表示为特征向量的线性组合(无论是原向量还是转换到高纬度的),,所以可以通过SVM进行特征的转化,然后通过逻辑回归学习,通常

算法可表示为 

 若只是单独的核函数思想应用到逻辑回归,由于权重可表示为特征向量的线性组合的方式,则可以把L2正则化的逻辑回归函数写成,这其中的核函数做了特征转化和正则化,和SVM不同的是求得的系数通常都不是0,而SVM在margin之外的点的系数都是0

 八、kernel ridge regression

解决 linear/ridge regression 的平方错误为,加上正则化项变为解决ridge regression的问题,由于权重W可以表示为特征向量的线性组合,带入可得,要解决出的最小值,需要求得梯度为0的点,求导得到梯度为,由于核矩阵K为半正定的,不可能为0,所以必须括号内的内容为0,则可得,加上核函数的二分类曲线,以及适用的条件如下所示

同样的,求得的值很多都不是0,预测验证时会相对较慢,怎么解决这一问题?利用一个tube regression的方法

,我们把在蓝色区域内的点不算错误,区域之外的点算错误,蓝色部分高度的一半作为变量,|s-y|为预测和实际的距离,则可知点的错误为,加上L2正则可以得到稀疏的值,,写成类似SVM的形式为,max|.| 问题不是QP,引入可变为

,去掉绝对值可得

这种方法被称为,其中参数作用为

转为对偶形式,和SVM对比如下

可得,对于在tube(蓝色区域)中的点,

保证系数的稀疏性,

 

posted on 2017-05-13 20:36  水涵空  阅读(331)  评论(0)    收藏  举报