线性支持向量机

线性支持向量机(SVM)通过找到最大间隔的超平面进行分类,目标是最大化间隔并确保所有数据点正确分类。对偶理论将原问题转换为对偶问题,简化了求解过程。SMO算法是解决线性SVM对偶问题的有效方法,通过迭代选择两个变量进行优化,提高了求解效率。

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

1. 线性SVM模型

线性支持向量机的思想非常朴素:用一个超平面将两类数据分割开来。
在这里插入图片描述

如上图,这样的超平面有无数个,选择哪个超平面更好呢?从上图可以看出,平面①会将红色的两个数据分错,平面②则不会,这是因为平面②将两边的间隔分得更大。所以,我们应该选择将两边间隔分割得最大的超平面。

设超平面为wTx+b=0w^Tx+b=0wTx+b=0,类别标记yi∈[−1,1]y_i\in[-1,1]yi[1,1]。现将超平面上下平移,直到有数据穿过为止,此时wTxi+b=1或wTxi+b=−1w^Tx_i+b=1或w^Tx_i+b=-1wTxi+b=1wTxi+b=1。如下图:
在这里插入图片描述
被穿过的数据xix_ixi称为支持向量,而某支持向量到超平面的距离的2倍称为间隔margin=2∣∣w∣∣margin=\cfrac{2}{||w||}margin=w2,要最大化间隔可以最小化∣∣w∣∣||w||w。并且,所有数据满足:
{ wTxi+b≥+1,yi=+1wTxi+b≤−1,yi=−1即:yi(wTxi+b)≥1,i=1,2,...,m \begin{aligned} \begin{cases} w^Tx_i+b \geq +1& , y_i=+1 \\ w^Tx_i+b \leq -1 & , y_i=-1 \end{cases} \\ \\ 即:y_i(w^Tx_i+b) \geq 1,i=1,2,...,m \end{aligned} { wTxi+b+1wTxi+b1,yi=+1,yi=1yi(wTxi+b)1,i=1,2,...,m
上述不等式表达的意思是:所有数据点都要分类正确。

总之,线性SVM模型目标在于求解w,bw,bw,b,使得数据点均分类正确的情况下,同时间隔要最大化,即:

min[w,b]12∣∣w∣∣2s.t.yi(wTxi+b)≥1,i=1,2,...,m \begin{aligned} & min_{[w,b]} \enspace \frac{1}{2}||w||^2 \\ \\ &s.t. \enspace y_i(w^Tx_i+b) \geq 1,i=1,2,...,m \end{aligned} min[w,b]21w2s.t.yi(wTxi+b)1,i=1,2,...,m

这就是线性支持向量机的模型。它是一个凸二次规划问题,关于这类问题有很多方法可以求解,有兴趣的可以去学习凸优化理论。然而,伟大的数学家发明出了更高效的方法(对偶问题)来求解。

2. 对偶理论

一般的优化问题如下:

min[x]g(x)s.t.fi(x)≤0,i=1,2,...,mhi(x)=0,i=1,2,...,q \begin{aligned} &min_{[x]} \enspace g(x) \\ \\ &s.t. \enspace f_i(x)\leq 0,i=1,2,...,m \\ & \qquad h_i(x)= 0,i=1,2,...,q \end{aligned} min[x]g(x)s.t.fi(x)0,i=1,2,...,mhi(x)=0,i=1,2,...,q
构造拉格朗日辅助函数:L(x,α,v)=g(x)+∑i=1mαifi(x)+∑i=1qvihi(x),(αi≥0)L(x,\alpha,v)=g(x)+\sum_{i=1}^m \alpha_if_i(x)+\sum_{i=1}^qv_ih_i(x),(\alpha_i\geq0)L(x,α,v)=g(x)+i=1mαifi(x)+i=1qvihi(x),(αi0)

现在我们对L最大化α,v\alpha,vα,v得:
max[α,v]L(x,α,v)=g(x)+max{ ∑i=1mαifi(x)+∑i=1qvihi(x)} \begin{aligned} max_{[\alpha,v]} \enspace L(x,\alpha,v)=g(x)+max\{\sum_{i=1}^m \alpha_if_i(x)+\sum_{i=1}^qv_ih_i(x)\} \end{aligned} max[α,v]L(x,α,v)=g(x)+max{ i=1mαifi(x)+i=1qvihi(x)}
由于fi(x)≤=0且αi≥0f_i(x)\leq=0且\alpha_i\geq0fi(x)=0αi0,则 αifi(x)\alpha_if_i(x)αifi(x)的取值为负无穷到0,得到max∑i=1mαifi(x)=0max\enspace \sum_{i=1}^m \alpha_if_i(x)=0maxi=1mαifi(x)=0;又hi(x)=0,则max∑i=1qvihi(x)=0h_i(x)=0,则max\enspace \sum_{i=1}^qv_ih_i(x)=0hi(x)=0,maxi=1qvihi(x)=0。故推导出:
g(x)=max[α,v]L(x,α,v) \begin{aligned} g(x)= max_{[\alpha,v]} \enspace L(x,\alpha,v) \end{aligned} g(x)=max[α,v]L(x,α,v)
那么原问题可以表达为:p∗=min[x]max[α,v]L(x,α,v)p^*=min_{[x]} max_{[\alpha,v]} \enspace L(x,\alpha,v)p=min[x]max[α,v]L(x,α,v)

其对偶问题为:d∗=max[α,v]min[x]L(x,α,v)d^*= max_{[\alpha,v]}min_{[x]}\enspace L(x,\alpha,v)d=max[α,v]min[x]L(x,α,v) (强对偶条件成立时)

观察原问题和对偶问题的表达式,其实就是交换了一下求解次序。这样做的意义在于:直接求解p∗p^*p 是非常困难的。但是交换了次序后,先求解min[x]L(x,α,v)min_{[x]}\enspace L(x,\alpha,v)min[x]L(x,α,v)可能非常简单,再求解max[α,v]max_{[\alpha,v]}max[α,v]也可能非常简单。

我们现在看d*是如何推导出来的

设拉格朗日对偶函数:h(α,v)=min[x]L(x,α,v)h(\alpha,v)=min_{[x]}L(x,\alpha,v)h(α,v)=min[x]L(x,α,v)。再任取x0x_0x0是原问题可行的点,即满足fi(x0)≤0,hi(x0)=0f_i(x_0)\leq0,h_i(x_0)=0fi(x0)0,hi(x0)=0,有:
由于αi≥0,则∑i=1mαifi(x0)+∑i=1qvihi(x0)≤0L(x0,α,v)=g(x0)+∑i=1mαifi(x0)+∑i=1qvihi(x0)≤g(x0)h(α,v)=min[x]L(x,α,v)≤L(x0,α,v)≤g(x0) \begin{aligned} 由于\alpha_i\geq 0,则\sum_{i=1}^m \alpha_if_i(x_0)+\sum_{i=1}^qv_ih_i(x_0) &\leq 0 \\ L(x_0,\alpha,v)=g(x_0)+\sum_{i=1}^m \alpha_if_i(x_0)+\sum_{i=1}^qv_ih_i(x_0)&\leq g(x_0) \\ h(\alpha,v)=min_{[x]}L(x,\alpha,v)\leq L(x_0,\alpha,v)&\leq g(x_0) \end{aligned} αi0,i=1mαifi(x0)+i=1qvihi(x0)L(x0,α,v)=g(x0)+i=1mαifi(x0)+i=1qvihi(x0)h(α,v)=min[x]L(x,α,v)L(x0,α,v)0g(x0)g(x0)
即,h(α,v)h(\alpha,v)h(α,v)恒小于等于g(x)g(x)g(x),有:
max[α,v]h(α,v)≤min[x]g(x)即,d∗≤p∗ \begin{aligned} &max_{[\alpha,v]}h(\alpha,v)\leq min_{[x]}g(x) &\\ \\ &即 ,d^*\leq p^* \end{aligned} max[α,v]h(α,v)m

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值