机器学习07:支持向量机4

Posted developerdaily

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了机器学习07:支持向量机4相关的知识,希望对你有一定的参考价值。

本文来自同步博客

 

前面介绍的SVM,无论是线性可分还是非线性可分,称为Hard Margin SVM,都要求对输入数据进行精确划分。我们不难想到这类SVM存在过拟合这个问题。如果输入数据本身就存在误差,精确划分反而是没意义的。本篇文章就如何处理过拟合问题,介绍即所谓的Soft Margin SVM

数学推导

引入衡量误差的变量 -xi\_i-ξ_i−。-xi\_i-ξ_i−表示不能被正确分类的样本点距离正确一侧边界的距离,距离越大表示错误越大,即-xi\_i-ξ_i−越大。如果样本点能被正确分类,则-xi\_i = 0-ξ_i=0−。故有-xi\_i ge 0-ξ_i0−。

那么,原来能通过求解函数-frac{1}{2}vec{w}^{2}-21?w2−在最小化下的参数-vec{alpha}-α−,如今需要增加能够体现误差的约束条件再求解。

可以如下构造函数来描述误差:
frac{1}{2}vec{w}^{2} + Csum_{i}^{n}{xi\_i}21?w2+Cin?ξ_i

这个函数把所有输入数据的误差叠加在一起,即-sum_{i}^{n}{xi\_i}-in?ξ_i−。然后用参数C来控制所有误差的权重。如果C很大,表示即使有很小的误差出现都会严重影响目标函数。

结合之前文章提到的知识,可以构造拉格朗日方程:

L(vec{w}, b, vec{xi}, vec{alpha}, vec{eta}) = frac{1}{2}vec{w}^{T}vec{w} + Csum_{i}^{n}{xi\_i} - sum\_{i}^{n}{alpha\_i[y\_i(vec{w}^{T}vec{x\_i}+b)-1+xi\_i]} - sum\_{i}^{n}eta\_ixi\_iL(w,b,ξ?,α,β?)=21?wTw+Cin?ξ_i_inα_i[y_i(wTx_i?+b)1+ξ_i]_inβ_iξ_i
其中,
alpha\_i ge 0, eta\_i ge 0, i = 1,2...nα_i0,β_i0,i=1,2...n

然后利用对偶思想求解-vec{w}, b, xi-w,b,ξ−的导数,并让他们等于0。如下:

egin{array}{lcl} frac{partial L}{partial vec{w}} = vec{w} - sum\_{i}^{n}alpha\_{i} y\_{i} vec{x}\_i = 0 \\ frac{partial L}{partial b} = - sum\_{i}^{n}alpha\_{i} y\_{i} = 0 \\ frac{partial L}{partial xi\_{i}} = C - alpha\_{i} - eta\_{i} = 0 end{array}wL?=w_inα_iy_ix_i=0bL?=_inα_iy_i=0ξ_iL?=Cα_iβ_i=0?

代入上面的拉格朗日方程,可以得到二项规划方程。最后求解-vec{alpha}-α−,可得-vec{w}-w−和-b-b−。二项规划方程如下:
公式输入有误

其中-vec{w}-w−如下:
vec{w} = sum\_{i}^{n}alpha\_{i}y\_{i}vec{x}\_{i}w=_inα_iy_ix_i

-b-b−可利用落于边界上的支持向量求解。

比较

看到二项规划那一步,我们可以发现Hard Margin SVMSoft Margin SVM的差别仅仅是-alpha\_i-α_i−的取值范围上有差异。Hard Margin SVM的约束条件是-alpha\_i ge 0-α_i0−;Soft Margin SVM的约束条件是-C ge alpha\_i ge 0-Cα_i0−。

我们知道-alpha\_{i}-α_i−仅在-vec{x}-x−为支持向量时值大于零。而在这里,-alpha\_{i}-α_i−多了一个上限C。因为-C = alpha\_{i} + eta\_{i}-C=α_i+β_i−,所以有下面结论:

如果-alpha\_{i} = 0-α_i=0−,表示该点为非支持向量。

如果- 0 lt alpha\_{i} lt C-0<α_i<C−,则-eta\_{i} gt 0-β_i>0−,对应的-xi\_{i} = 0-ξ_i=0−,表示该点为边界支持向量。如下图:

 
技术分享图片
image.png

 

如果-alpha\_{i} = C-α_i=C−,则-eta\_{i} = 0-β_i=0−,对应的-xi\_{i} gt 0-ξ_i>0−,表示该点违反了最大边界的原则,属于噪声点。

 
技术分享图片
image.png

以上是关于机器学习07:支持向量机4的主要内容,如果未能解决你的问题,请参考以下文章

机器学习三人行(系列七)----支持向量机实践指南(附代码)

机器学习算法及代码实现–支持向量机

机器学习:通俗理解支持向量机SVM及代码实践

机器学习速成宝典模型篇08支持向量机SVM(附python代码)

机器学习基础:通俗理解支持向量机SVM及代码实践

机器学习:基于支持向量机(SVM)进行人脸识别预测