SVM理论基础——原问题及其对偶问题的推导

#原问题提出
给定一个二分类问题的训练样本集 D = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x m , y m ) } , y i ∈ { − 1 , + 1 } D=\{(\boldsymbol{x}_1,y_1),(\boldsymbol{x}_2,y_2),...,(\boldsymbol{x}_m,y_m)\},y_i\in \{-1, +1\} D={(x1,y1),(x2,y2),...,(xm,ym)},yi{1,+1},我们的目标是找到一条分界线/超平面来将两类区分开,如下图:
这里写图片描述
在样本空间中,超平面可以通过以下线性方程来描述:
w T x + b = 0 \boldsymbol{w}^T\boldsymbol{x}+b=0 wTx+b=0
其中, w = ( w 1 , w 2 , . . . , w d ) \boldsymbol{w}=(w_1,w_2,...,w_d) w=(w1,w2,...,wd)为法向量,决定了超平面的方向; b b b为位移项,决定了超平面与原点的距离。

如果一个超平面能够将训练样本正确分类,则我们希望这个超平面具有的性质是,对于 ( x i , y i ) ∈ D (\boldsymbol{x}_i,y_i)\in D (xi,yi)D,有
$$
\boldsymbol{w}^T\boldsymbol{x}+b\left{
\begin{aligned}

0,\ y_i=+1 \
<0,\ y_i=-1
\end{aligned}
\right.
$$
这个式子也是我们在得到超平面之后预测一个新样本的判决条件。

显然,上图中 5 个超平面都满足要求。但是,哪一个是最好的呢?

直观上看,应该去找位于两类训练样本“正中间”的超平面,即上图中最粗的分界线。因为这条线能够在最大程度上容忍两类的数据波动和噪声。

因此,为了能够得到“正中间”位置的超平面,我们将上述条件变得更加严格:
w T x + b { ≥ + 1 ,   y i = + 1 ≤ − 1 ,   y i = − 1 ( 1 ) \boldsymbol{w}^T\boldsymbol{x}+b\left\{ \begin{aligned} \ge+1,\ y_i=+1 \\ \le-1,\ y_i=-1 \end{aligned} \right. \qquad(1) wTx+b{+1, yi=+11, yi=1(1)
显然,条件严格后,靠近样本边缘的一些超平面可能会不符合要求,最后会剩下比较靠中间的几个超平面。
那么,如何选出最“正中间”的那个超平面呢?我们可以给一个具体的量化目标:让超平面与最近的样本的距离最大。

如下图所示,距离超平面最近的这几个样本点可以使得公式 (1) 的等号成立,它们被称为“支持向量”(Support Vector)。
这里写图片描述
样本空间中任意点 x \boldsymbol{x} x到超平面的距离的计算公式为:
r = ∣ w T x + b ∣ ∣ ∣ w ∣ ∣ r=\frac{|\boldsymbol{w}^T\boldsymbol{x}+b|}{||\boldsymbol{w}||} r=wwTx+b
因此,两类的支持向量到超平面的距离之和为
γ = 2 w , \gamma =\frac{2}{\boldsymbol{w}}, γ=w2,
它被称为“间隔”。

如果想找到具有“最大间隔”(maximum margin)的超平面,那么需要最大化 γ \gamma γ,也就是需要最小化 ∣ ∣ w ∣ ∣ 2 ||\boldsymbol{w}||^2 w2。因此,最后需要求解的问题为:
max ⁡ w , b   1 2 ∣ ∣ w ∣ ∣ 2 s . t . y i ( w T x + b ) ≥ 1 , i = 1 , 2 , . . . , m ( 2 ) \begin{aligned} \max_{\boldsymbol{w},b}\ &amp;\quad \frac{1}{2}||\boldsymbol{w}||^2 \\ s.t. &amp;\quad y_i(\boldsymbol{w}^T\boldsymbol{x}+b)\ge1,\quad i=1,2,...,m \end{aligned} \qquad (2) w,bmax s.t.21w2yi(wTx+b)1,i=1,2,...,m(2)
这就是支持向量机(Support Vector Machine,SVM)的基本型。

对偶问题推导

我们希望求解问题 (2) 来得到“正中间”的分界超平面:
f ( x ) = w T x + b f(\boldsymbol x)={\boldsymbol w}^T\boldsymbol x + b f(x)=wTx+b
其中, w \boldsymbol w w b b b 是模型参数,正是问题 (2) 的最优解。问题 (2) 本身是一个凸二次规划问题,可以直接使用现成的优化计算包求解。但我们有更高效的办法,即转为求解其对偶问题,转换过程如下。

根据拉格朗日乘子法,对原问题的每条约束添加拉格朗日乘子 α ≥ 0 \alpha \ge0 α0,则该问题的拉格朗日函数可写为:
L ( w , b , α ) = 1 2 ∣ ∣ w ∣ ∣ T + ∑ i = 1 m α i [ 1 − y i ( w T x i + b ) ] ( 3 ) L(\boldsymbol w,b,\boldsymbol\alpha)=\frac1 2 ||\boldsymbol w||^T+\sum_{i=1}^{m}\alpha_i[1-y_i(\boldsymbol w^T\boldsymbol x_i+b)]\quad(3) L(w,b,α)=21wT+i=1mαi[1yi(wTxi+b)](3)
其中 α = ( α 1 , α 2 , . . . , α m ) 。 \boldsymbol\alpha=(\alpha_1,\alpha_2,...,\alpha_m)。 α=(α1,α2,...,αm)
可发现
α i [ 1 − y i ( w T x i + b ) ] ≤ 0 \alpha_i[1-y_i(\boldsymbol w^T\boldsymbol x_i+b)]\le0 αi[1yi(wTxi+b)]0
所以 L ( w , b , α ) ≤ 1 2 ∣ ∣ w ∣ ∣ T L(\boldsymbol w,b,\boldsymbol\alpha)\le \frac1 2 ||\boldsymbol w||^T L(w,b,α)21wT,即拉格朗日函数是原问题的一个下界。我们要想找到最接近原问题最优值的一个下界,就需要求出下界的最大值。

根据拉格朗日对偶性,原始问题的对偶问题是最大化最小问题:
max ⁡ α min ⁡ w , b L ( w , b , α ) \max_\alpha \min_{\boldsymbol{w},b}L(\boldsymbol w,b,\boldsymbol\alpha) αmaxw,bminL(w,b,α)

首先,求 min ⁡ w , b L ( w , b , α ) \min_{\boldsymbol{w},b}L(\boldsymbol w,b,\boldsymbol\alpha) minw,bL(w,b,α) ,消除掉 w , b \boldsymbol w,b w,b:分别令 w , b \boldsymbol w,b w,b 的偏导为0,可推出
∂ L ∂ w = w + ∑ i = 1 m α i ( − y i x i ) = 0   ⇒ w = ∑ i = 1 m α i y i x i ( 4 ) ∂ L ∂ w = − ∑ i = 1 m α i y i = 0     ⇒ ∑ i = 1 m α i y i = 0   ( 5 ) \begin{aligned} \frac{\partial L}{\partial \boldsymbol w}&amp;=\boldsymbol w + \sum_{i=1}^m \alpha_i(-y_i \boldsymbol x_i)=0 \ \Rightarrow \boldsymbol w=\sum_{i=1}^m \alpha_i y_i \boldsymbol x_i\quad(4)\\ \frac{\partial L}{\partial \boldsymbol w}&amp;= -\sum_{i=1}^m \alpha_i y_i=0 \qquad\quad\ \ \ \Rightarrow \sum_{i=1}^m \alpha_i y_i=0\ \quad(5) \end{aligned} wLwL=w+i=1mαi(yixi)=0 w=i=1mαiyixi(4)=i=1mαiyi=0   i=1mαiyi=0 (5)
将公式(4)(5)带入到拉格朗日函数(3),得到
L ( w , b , α ) = 1 2 ∣ ∣ w ∣ ∣ T + ∑ i = 1 m α i [ 1 − y i ( w T x i + b ) ] = 1 2 w T w + ∑ i = 1 m α i − ∑ i = 1 m α i y i x i T w − ∑ i = 1 m α i y i b = 1 2 w T w + ∑ i = 1 m α i − w T w − 0 = ∑ i = 1 m α i − 1 2 ∑ i = 1 m ∑ j = 1 m α i α j y i y j x i T x j T \begin{aligned} L(\boldsymbol w,b,\boldsymbol\alpha) &amp;=\frac1 2 ||\boldsymbol w||^T+\sum_{i=1}^{m}\alpha_i[1-y_i(\boldsymbol w^T\boldsymbol x_i+b)]\\ &amp;=\frac1 2 \boldsymbol w^T\boldsymbol w +\sum_{i=1}^m\alpha_i -\sum_{i=1}^m\alpha_iy_i\boldsymbol x_i^T\boldsymbol w-\sum_{i=1}^m\alpha_iy_ib\\ &amp;= \frac 1 2\boldsymbol w^T \boldsymbol w+\sum_{i=1}^m\alpha_i-\boldsymbol w^T\boldsymbol w-0\\ &amp;=\sum_{i=1}^m\alpha_i-\frac1 2 \sum_{i=1}^m\sum_{j=1}^m \alpha_i\alpha_jy_iy_j\boldsymbol x_i^T\boldsymbol x_j^T \end{aligned} L(w,b,α)=21wT+i=1mαi[1yi(wTxi+b)]=21wTw+i=1mαii=1mαiyixiTwi=1mαiyib=21wTw+i=1mαiwTw0=i=1mαi21i=1mj=1mαiαjyiyjxiTxjT
因此,问题(2)的对偶问题是
max ⁡ α ∑ i = 1 m α i − 1 2 ∑ i = 1 m ∑ j = 1 m α i α j y i y j x i T x j T ( 6 ) s . t . ∑ i = 1 T α i y i = 0 α i ≥ 0 , i = 1 , 2 , . . . , m . \begin{aligned} \max_\alpha\quad &amp;\sum_{i=1}^m\alpha_i-\frac1 2 \sum_{i=1}^m\sum_{j=1}^m \alpha_i\alpha_jy_iy_j\boldsymbol x_i^T\boldsymbol x_j^T\quad(6)\\ s.t.\quad&amp;\sum_{i=1}^T\alpha_iy_i=0\\ &amp;\alpha_i\ge0,i=1,2,...,m. \end{aligned} αmaxs.t.i=1mαi21i=1mj=1mαiαjyiyjxiTxjT(6)i=1Tαiyi=0αi0,i=1,2,...,m.
解出 α \boldsymbol \alpha α 后,求出 w \boldsymbol w w b b b

(1) w \boldsymbol w w 可以由公式(4)得到。

(2) b b b 可以根据一个支持向量必定会满足的条件得到: y i ( w T x i + b ) = 1 y_i({\boldsymbol w}^T\boldsymbol x_i + b)=1 yi(wTxi+b)=1,因此如果第 k k k 个样本是一个支持向量(即 α k &gt; 0 \alpha_k&gt;0 αk>0),可以得到 b = y k − w T x k b=y_k-{\boldsymbol w}^T\boldsymbol x_k b=ykwTxk。不过,经常会将所有的支持向量都计算出对应的 b b b 来,然后取均值:
b = 1 n s ∑ i = 1 m ( y i − w T x i ) I ( α i &gt; 0 ) b=\frac{1}{n_s}\sum_{i=1}^m(y_i-{\boldsymbol w}^T\boldsymbol x_i)I(\alpha_i&gt;0) b=ns1i=1m(yiwTxi)I(αi>0)
其中, n s n_s ns为支持向量的个数,即 n s = c o u n t ( α i &gt; 0 ) n_s=count(\alpha_i&gt;0) ns=count(αi>0)
综上,可以得到分界线:
f ( x ) = w T x + b = ∑ i = 1 m α i y i x i T x + 1 n s ∑ i = 1 m ( y i − w T x i ) I ( α i &gt; 0 ) \begin{aligned} f(\boldsymbol x)&amp;=\boldsymbol w^T\boldsymbol x + b\\ &amp;=\sum_{i=1}^m\alpha_iy_i\boldsymbol x_i^T\boldsymbol x+\frac{1}{n_s}\sum_{i=1}^m(y_i-{\boldsymbol w}^T\boldsymbol x_i)I(\alpha_i&gt;0) \end{aligned} f(x)=wTx+b=i=1mαiyixiTx+ns1i=1m(yiwTxi)I(αi>0)
需要注意的是,问题(2)有不等式约束,因此对偶问题需要满足KKT条件:
{ α i ≥ 0 y i f ( x i ) − 1 ≥ 0 α i ( y i f ( x i ) − 1 ) = 0 \left\{ \begin{aligned} &amp;\alpha_i\ge0 \\ &amp;y_if(\boldsymbol x_i)-1\ge0\\ &amp;\alpha_i(y_if(\boldsymbol x_i)-1)=0 \end{aligned} \right. αi0yif(xi)10αi(yif(xi)1)=0
因此,对于训练样本 ( x i , y i ) (\boldsymbol x_i,y_i) (xi,yi),总有 α i = 0 \alpha_i=0 αi=0 y i f ( x i ) = 1 y_if(\boldsymbol x_i)=1 yif(xi)=1。若 α i = 0 \alpha_i=0 αi=0,则该样本不会对 f ( x ) f(\boldsymbol x) f(x) 的值有任何影响;若 α i &gt; 0 \alpha_i&gt;0 αi>0,则必有 y i f ( x i ) = 1 y_if(\boldsymbol x_i)=1 yif(xi)=1,所对应的样本点位于最大间隔边界上,是一个支持向量。这显示出支持向量的一个重要性质:训练完成后,大部分的训练样本都不需要保留,最终模型仅与支持向量有关。

  • 4
    点赞
  • 45
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值