西瓜书 - 支持向量机

本文深入探讨了支持向量机(SVM)的基本概念,包括间隔、支持向量、最大间隔分类器的数学推导,以及如何通过引入核函数解决非线性可分问题。文章还介绍了SMO算法在求解SVM中的应用。

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

间隔与支持向量

给定训练样本集D={(x1,y1),(x2,y2),,,,(xm,ym)},yi∈){−1,+1}D=\{(x_1,y_1),(x_2,y_2),,,,(x_m,y_m)\}, y_i\in)\{-1,+1\}D={(x1,y1),(x2,y2),,,,(xm,ym)},yi){1,+1},分类学习最基本的想法就是基于训练集D在样本空间中找到一个划分超平面,将不同类别的样本分开.
在样本空间中,划分超平面可通过如下线性方程来描述:
wTx+b=0(1)w^Tx+b=0 \tag{1}wTx+b=0(1)
其中w=(w1;w2;...;wd)w=(w_1;w_2;...;w_d)w=(w1;w2;...;wd)为法向量,决定了超平面的方向;b为位移项,决定了超平面与原点之间的距离.

法向量定义:垂直于平面的直线所表示的向量为该平面的法向量.

证明如下:
设点x1,x2x_1,x_2x1,x2在超平面中,则有
wTx1+b=0wTx2+b=0\begin{aligned} w^Tx_1+b&=0 \\ w^Tx_2+b&=0 \end{aligned}wTx1+bwTx2+b=0=0
上面两式相减,有:
wT(x1−x2)=0w_T(x_1-x_2)=0 wT(x1x2)=0
上式标明w⊥(x1−x2)w\perp(x_1-x_2)w(x1x2),差矢量x1−x2x_1-x_2x1x2在超平面中,由于x1,x2x_1,x_2x1,x2是超平面中任意两点,所以w垂直于超平面,即为超平面的法向量.
样本空间中任意点x到超平面(w,b)的距离可写为
r=wTx+b∣∣w∣∣(2)r=\frac{w^Tx+b}{||w||} \tag{2}r=wwTx+b(2)
证明:
设p为超平面中任意一点,则点x到超平面的距离为差矢量(x-p)在超平面法向量的投影的绝对值.
r=∣wT∣∣wT∣∣(x−p)∣=1∣∣wT∣∣⋅∣wTx−wTp∣=1∣∣wT∣∣⋅∣wTx+b∣=∣wTx+b∣∣∣w∣∣\begin{aligned} r &= |\frac{w^T}{||w^T||}(x-p)| \\ &= \frac{1}{||w^T||}\cdot |w^Tx-w^Tp| \\ &= \frac{1}{||w^T||}\cdot |w^Tx+b| \\ &= \frac{|w^Tx+b|}{||w||} \end{aligned}r=wTwT(xp)=wT1wTxwTp=wT1wTx+b=wwTx+b
假设超平面(w,b)能将训练样本正确分类,即对于(xi,yi)∈D(x_i,y_i)\in D(xi,yi)D,若yi=+1y_i=+1yi=+1,则有wTx+b>0w^Tx+b>0wTx+b>0;若yi=−1y_i=-1yi=1,则有wTx+b<0w^Tx+b<0wTx+b<0. 令
wTxi+b>=+1,yi=+1wTxi+b<=−1,yi=−1(3)\begin{aligned} w^Tx_i+b&>= +1, y_i=+1 \\ w^Tx_i+b&<= -1, y_i=-1 \tag{3} \end{aligned}wTxi+bwTxi+b>=+1,yi=+1<=1,yi=1(3)
在这里插入图片描述
如上图所示,距离超平面最近的几个训练样本使得式(3)的等号成立,它们被称为"支持向量".两个异类支持向量到超平面的距离之和为
γ=2∣∣w∣∣(4)\gamma = \frac{2}{||w||} \tag{4}γ=w2(4)
它被称为"间隔".
欲找到具有最大间隔的划分超平面,也就是要找到能满足式(3)种约束的参数w和b,使得γ\gammaγ最大,即
w,bmax2∣∣w∣∣(5)_{w,b}^{max} \frac{2}{||w||} \tag{5} w,bmaxw2(5)
yi(wTxi+b)>=1y_i(w^Tx_i+b) >= 1yi(wTxi+b)>=1
显然,为了最大化间隔,仅需最小化||w||.于是,式(5)可重写为
w,bmin12∣∣w∣∣2(6)_{w,b}^{min} \frac{1}{2}||w||^2 \tag{6} w,bmin21w2(6)
yi(wTxi+b)>=1y_i(w^Tx_i+b) >= 1yi(wTxi+b)>=1
这就是支持向量机(Supported Vector Machine)的基本型.

对偶问题

我们希望求解式(6)来得到大间隔划分超平面对应的模型
f(x)=wTx+b(7)f(x)=w^Tx+b \tag{7}f(x)=wTx+b(7)
其中w和b是模型参数.
对式(6)使用拉格朗日乘子法可得到其"对偶问题".具体来说,对式(6)的每条约束添加拉格朗日乘子αi≥0\alpha_i\ge0αi0,则该问题的拉格朗日函数可写为
L(w,b,α)=12∣∣w∣∣2+∑i=1mαi(1−yi(wTxi+b))(8)L(w,b,\alpha) = \frac{1}{2}||w||^2+\sum_{i=1}^m\alpha_i(1-y_i(w^Tx_i+b)) \tag{8}L(w,b,α)=21w2+i=1mαi(1yi(wTxi+b))(8)
其中α=(α1;α2;...;αm)\alpha = (\alpha_1;\alpha_2;...;\alpha_m)α=(α1;α2;...;αm).令L(w,b,α)L(w,b,\alpha)L(w,b,α)对w和b的偏导为零可得:
∂L∂w=w−∑i=1mαiyixi=0(9)\frac{\partial L}{\partial w} = w - \sum_{i=1}^m \alpha_iy_ix_i = 0 \tag{9}wL=wi=1mαiyixi=0(9)
∂L∂b=∑i=1mαiyi=0(10)\frac{\partial L}{\partial b} = \sum_{i=1}^m \alpha_iy_i = 0 \tag{10}bL=i=1mαiyi=0(10)
将式(9)(10)带入式(8),有:
L(w,b,α)=12∣∣w∣∣2+∑i=1mαi(1−yi(wTxi+b))=12(∑i=1mαiyixi)2+∑i=1mαi(1−yi(∑i=1mαiyixiTxi+b))=12∑i=1m∑j=1mαiαjyiyjxiTxj+∑i=1mαi−∑i=1mαiyi∑i=1mαiyixiTxi−∑i=1mαiyib=∑i=1mαi−12∑i=1m∑j=1mαiαjyiyjxiTxj\begin{aligned} L(w,b,\alpha) &= \frac{1}{2}||w||^2+\sum_{i=1}^m\alpha_i(1-y_i(w^Tx_i+b)) \\ &= \frac{1}{2}(\sum_{i=1}^m \alpha_iy_ix_i)^2 + \sum_{i=1}^m\alpha_i(1-y_i(\sum_{i=1}^m \alpha_iy_ix_i^Tx_i+b)) \\ &= \frac{1}{2}\sum_{i=1}^m\sum_{j=1}^m \alpha_i \alpha_j y_i y_j x_i^T x_j +\sum_{i=1}^m\alpha_i - \sum_{i=1}^m \alpha_i y_i \sum_{i=1}^m \alpha_iy_ix_i^Tx_i -\sum_{i=1}^m \alpha_i y_i b \\ &= \sum_{i=1}^m \alpha_i - \frac{1}{2}\sum_{i=1}^m\sum_{j=1}^m \alpha_i \alpha_j y_i y_j x_i^T x_j \end{aligned}L(w,b,α)=21w2+i=1mαi(1yi(wTxi+b))=21(i=1mαiyixi)2+i=1mαi(1yi(i=1mαiyixiTxi+b))=21i=1mj=1mαiαjyiyjxiTxj+i=1mαii=1mαiyii=1mαiyixiTxii=1mαiyib=i=1mαi21i=1mj=1mαiαjyiyjxiTxj
则将问题转换为式(6)的对偶问题:

αmax∑i=1mαi−12∑i=1m∑j=1mαiαjyiyjxiTxj(11) _\alpha^{max} \sum_{i=1}^m \alpha_i - \frac{1}{2}\sum_{i=1}^m\sum_{j=1}^m \alpha_i \alpha_j y_i y_j x_i^T x_j \tag{11}αmaxi=1mαi21i=1mj=1mαiαjyiyjxiTxj(11)
s.t.∑i=1mαiyi=0,αi≥0 s.t. \sum_{i=1}^m \alpha_i y_i =0 , \quad \alpha_i \ge 0s.t.i=1mαiyi=0,αi0

解出α\alphaα后,求出w和b即可得到模型:
f(x)=wTx+b=∑i=1mαiyixiTx+b(12)f(x)=w^Tx_+b=\sum_{i=1}^m\alpha_i y_i x_i^Tx+b \tag{12}f(x)=wTx+b=i=1mαiyixiTx+b(12)
从对偶问题解除的α\alphaα是式(8)中的拉格朗日乘子,它对应着训练样本(xi,yi)(x_i,y_i)(xi,yi).注意到式(6)中有不等式约束,因此上述过程需满足KKT要求,即:
{αi≥0yif(xi)−1≥0αi(yif(xi)−1)=0(13) \begin{cases} \alpha_i \ge 0 \\ y_if(x_i)-1 \ge 0 \\ \alpha_i (y_if(x_i)-1) = 0 \tag{13} \end{cases} αi0yif(xi)10αi(yif(xi)1)=0(13)
于是,对任意训练样本(xi,yi)(x_i,y_i)(xi,yi),总有αi=0\alpha_i=0αi=0yif(xi)=1y_if(x_i)=1yif(xi)=1.
αi=0\alpha_i=0αi=0,则该样本不会在式(12)的求和中出现,也就不会对f(x)有任何影响;若αi>0\alpha_i>0αi>0,则必有yif(xi)=1y_if(x_i)=1yif(xi)=1,所对应的样本点位于最大间隔边界上.
这显示出支持向量机的一个重要性质:训练完成后,大部分的训练样本都不需保留,最终模型仅与支持向量有关.

SMO算法

如果求解式(11), SMO(Sequential Minimal Optimization)是其中一个著名高效算法.
SMO的基本思路是先固定αi\alpha_iαi之外的所有参数,然后求αi\alpha_iαi上的极值.由于存在约束∑i=1mαiyi=0\sum_{i=1}^m\alpha_i y_i =0i=1mαiyi=0,若固定αi\alpha_iαi之外的其它变量,则αi\alpha_iαi可由其它变量导出.
于是,SMO每次选择两个变量αi\alpha_iαiαj\alpha_jαj,并固定其它参数.这样,在参数初始化后,SMO不断执行如下两个步骤直至收敛:

  • 选取一对需更新的变量αi\alpha_iαiαj\alpha_jαj
  • 固定αi\alpha_iαiαj\alpha_jαj以外的参数,求解式(11)获得更新后的αi\alpha_iαiαj\alpha_jαj

SMO算法之所以高效,恰由于在固定其它参数后,仅优化两个参数的过程能做到非常高效.具体来说,仅考虑αi\alpha_iαiαj\alpha_jαj时,式(11)的约束可重写为
αi+αj=c,αi≥0,αj≥0(14)\alpha_i+\alpha_j =c , \quad \alpha_i \ge 0, \quad \alpha_j \ge 0 \tag{14}αi+αj=c,αi0,αj0(14)
其中
c=−∑k≠i,jαkyk(15)c = -\sum_{k\neq i,j}\alpha_ky_k \tag{15}c=k=i,jαkyk(15)
是使∑i=1mαiyi=0\sum_{i=1}^m\alpha_iy_i=0i=1mαiyi=0成立的常数.用式(14)消除式子(11)中的变量αj\alpha_jαj,则得到一个关于αi\alpha_iαi的单变量二次规划问题,仅有的约束是αi≥0\alpha_i \ge 0αi0.可高效的计算出更新后的αi\alpha_iαiαj\alpha_jαj.
**如何确定偏移项b?**注意到对任意支持向量(xs,ys)(x_s,y_s)(xs,ys)都有ysf(xs)=1y_sf(x_s)=1ysf(xs)=1,即:
ys(∑i∈SαiyixiTxs+b)=1y_s(\sum_{i\in S}\alpha_iy_ix_i^Tx_s+b)=1ys(iSαiyixiTxs+b)=1
其中S为所有支持向量的下标集.b的求解通常使用所有支持向量求解的平均值:
b=1∣S∣∑s∈S(1ys−∑i∈SαiyixiTxs)b =\frac{1}{|S|}\sum_{s\in S}(\frac{1}{y_s}-\sum_{i\in S}\alpha_iy_ix_i^Tx_s)b=S1sS(ys1iSαiyixiTxs)

核函数

在前面的讨论中,我们假设样本是线性可分的,即存在一个划分超平面能将训练样本正确分类.然而在现实任务中,原始样本空间内也许并不存在一个能正确划分两类样本的超平面.
对于这样的问题,可将样本从原始空间映射到一个更高维的特征空间,是的样本在这个特征空间内线性可分.
ϕ(x)\phi(x)ϕ(x)表示将x映射后的特征向量,于是,在特征空间中划分超平面所对应的模型可表示为
f(x)=wTϕ(x)+b(19)f(x)=w^T\phi(x)+b \tag{19}f(x)=wTϕ(x)+b(19)
其中w和b是模型参数,类似于式(6),有:
w,bmin12∣∣w∣∣2(20)_{w,b}^{min} \frac{1}{2}||w||^2 \tag{20} w,bmin21w2(20)
yi(wTϕ(xi)+b)>=1y_i(w^T\phi(x_i)+b) >= 1yi(wTϕ(xi)+b)>=1
其对偶问题是:

αmax∑i=1mαi−12∑i=1m∑j=1mαiαjyiyjϕ(xi)Tϕ(xj)(21) _\alpha^{max} \sum_{i=1}^m \alpha_i - \frac{1}{2}\sum_{i=1}^m\sum_{j=1}^m \alpha_i \alpha_j y_i y_j \phi(x_i)^T \phi(x_j) \tag{21}αmaxi=1mαi21i=1mj=1mαiαjyiyjϕ(xi)Tϕ(xj)(21)
s.t.∑i=1mαiyi=0,αi≥0 s.t. \sum_{i=1}^m \alpha_i y_i =0 , \quad \alpha_i \ge 0s.t.i=1mαiyi=0,αi0

求解式(21)涉及到计算ϕ(xi)Tϕ(xj)\phi(x_i)^T \phi(x_j)ϕ(xi)Tϕ(xj),这是样本xix_ixixjx_jxj映射到特征空间之后的内积.由于特征空间维数可能很高,甚至可能是无穷维,因此直接计算ϕ(xi)Tϕ(xj)\phi(x_i)^T \phi(x_j)ϕ(xi)Tϕ(xj)通常是苦难的.为了避开这个障碍,可以设想这样一个函数:
β(xi,xj)=<ϕ(xi),ϕ(xj)>=ϕ(xi)Tϕ(xj)(22)\beta(x_i,x_j)=<\phi(x_i),\phi(x_j)>=\phi(x_i)^T\phi(x_j) \tag{22}β(xi,xj)=<ϕ(xi),ϕ(xj)>=ϕ(xi)Tϕ(xj)(22)
xix_ixixjx_jxj在特征空间的内积等于它们在原始样本空间通过函数β(.,.)\beta(.,.)β(.,.)计算的结果.有了这样的函数,我们就不必直接去计算高维甚至无穷维特征空间中的内积,于是式(21)可重写为:

αmax∑i=1mαi−12∑i=1m∑j=1mαiαjyiyjβ(xi,xj)(23) _\alpha^{max} \sum_{i=1}^m \alpha_i - \frac{1}{2}\sum_{i=1}^m\sum_{j=1}^m \alpha_i \alpha_j y_i y_j \beta(x_i,x_j) \tag{23}αmaxi=1mαi21i=1mj=1mαiαjyiyjβ(xi,xj)(23)
s.t.∑i=1mαiyi=0,αi≥0 s.t. \sum_{i=1}^m \alpha_i y_i =0 , \quad \alpha_i \ge 0s.t.i=1mαiyi=0,αi0

求解后即可得到:

f(x)=wTϕ(x)+b=∑i=1mαiyiϕ(xi)Tϕ(x)+b=∑i=1mαiyiβ(x,xi)+b(24)\begin{aligned} f(x)&= w^T\phi(x)+b \\ &= \sum_{i=1}^m\alpha_i y_i \phi(x_i)^T\phi(x)+b \\ &= \sum_{i=1}^m\alpha_i y_i \beta(x,x_i)+b \tag{24} \end{aligned}f(x)=wTϕ(x)+b=i=1mαiyiϕ(xi)Tϕ(x)+b=i=1mαiyiβ(x,xi)+b(24)

这里的函数β(.,.)\beta(.,.)β(.,.)就是"核函数".

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值