支持向量机原理

本文详细介绍了支持向量机(SVM)的基本原理,包括最大化间隔概念、拉格朗日对偶问题、KKT条件以及SMO算法。SVM旨在找到能最大化类别间隔的超平面,并通过拉格朗日乘子法处理约束条件,通过KKT条件确保等价性。文章还提及了核函数在SVM中的应用以及软间隔的概念,允许模型在部分样本上容忍错误,以提高泛化能力。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

唐老板的高级机器学习课上讲了SVM的原理,对支持向量机的推导和原理又加深了理解。

最大化间隔

支持向量机就是希望超平面能距离两个类别点尽可能的远,也就是最大化间隔的思想。

前面就不说了,目标函数就是最大化“超平面到两部分支持向量距离之和”,也就是左上角的式子,也相当于最小化其倒数。

而γ可以通过改变w的值而约掉,所以没有意义,这种损失函数(Lasso loss function)及约束条件最终变成了下图的最下面。

然后我们可以将上面的优化问题写成拉格朗日形式。那为什么可以这样写呢,以及后续再怎么利用对偶理论呢?接下来做些数学上的说明。

拉格朗日对偶

按着下面的截图,先来看一个基础的优化问题:

要最小化f(x),包含不等式约束g(x)和等式约束h(x)。然后我们定义一个L(x, α,β)函数如下所示,它的约束条件只有α。

然后再考虑θ(x) = max L(x, α,β)。如果有些变量x不满足g(x)的不等式约束或h(x)的等式约束,那么θ(x)就是无穷大,因此,θ(x)可以写成下图的分段函数形式。现在我们再min θ(x),那么根据分段函数来看,其实就等价于原优化问题min f(x)。这样我们就把原来的优化问题用min max问题来表示了出来(注意min max各自下面的自变量)。

接着,我们来推导上图min max优化的对偶形式。对偶形式也就是写成max min的形式。那么为什么可以这样写呢?

通过简单的推导,我们可以证明max min L <= min max L。如果它能满足某些特定的条件(KKT条件,下文再讲),就可以取等号,也就是可以把上图的min max目标函数写成max min的目标函数形式。这就是拉格朗日的对偶形式,但是对于我们的SVM优化目标还没有结束。

求解对偶问题

先把目前为止的思路梳理一下,首先是一个min优化问题,有一个不等式约束条件,然后将其写成拉格朗日形式,然后等价地写成min max形式,如果满足KKT条件,我们就可以写成max min的形式。写成了max min形式后,我们先求解内层的min L(w, b, α)。由于要求最小值,我们可以求对w,对b的偏导,让他们等于0。这样就得到了右图的两个等式。

由于w可以由α和样本值得出,所以将其带回到L(w,b,α)。然后我们神奇的发现,L的目标函数中只剩下α一个变量了(α其实不是一个变量,而是与样本点个数相同的一组变量)!最下面的式子就是原目标函数的对偶问题,我们要max L(α)。

KKT条件

返回来说,需要满足哪些条件,min max才等价于max min问题呢?也就是KKT条件是哪几个呢?

下图的右半部分是一般的拉格朗日的形式,有不等式约束g(x)和等式约束h(x)。KKT条件在右下角的6个。(具体有关KKT的介绍不在这里展开了)。然后他们分别对应SVM问题中的条件,就可以得到左下角的几个条件。

从这些条件中,我们可以发现:对于任意训练样本总有α=0,或者y(wx+b)=1。也就是说,如果某样本点对应的α不等于0,那么该样本点一定在最大间隔的边界上,是一个支持向量。而α=0的样本点,对模型wx+b没有任何影响。所以训练完成后,大部分的训练样本都不需要保留,最终的模型只与支持向量有关。

SMO算法求解

刚才的对偶问题,是一个二次规划问题,该问题的规模正比于训练样本数,所以很多人提出了一些高效的算法,比如SMO算法。

SMO算法每次选择两个变量αi和αj,其他参数不变,然后根据对偶问题的目标函数,得到两个更新后的值,再重复这个过程。

核函数

有核函数和没有核函数的推导过程没有什么区别。

软间隔

上面的推导过程,得到的模型都是把所有的样本点都在超平面上进行正确分割,但是这种情况往往过于理想,所以实际的支持向量机,允许它在某些样本上分类错误,达到泛化的效果。

如果ξ=0,表示样本正确分类,如果大于0,说明y(wx+b)<1,这样就表示该样本划分错误,在其上加一个惩罚项C。

然后仍然按照之前的做法,写成拉格朗日形式,然后写成对偶问题,满足KKT条件。这个推导布置了作业,先不在这里描述了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值