机器学习笔记(十)支持向量机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(蓝色区域)中的点,
保证
系数的稀疏性,
浙公网安备 33010602011771号