支持向量机简单数学推导(1)

**

简介

**
支持向量机(support vector machine),一般简称为SVM,是一种二分类模型,学习策略是间隔最大化,最终转化为二次规划的求解问题。
假设有数据集 T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , … , ( x n , y n ) } T=\lbrace(x_1,y_1 ),(x_2,y_2 ),…,(x_n, y_n )\rbrace T={(x1,y1),(x2,y2),,(xn,yn)},其中 x i x_i xi表示第i个实例, y i y_i yi表示数据的类标记,y∈{+1,-1},当y=+1时表示案例属于正类,y=-1时表示案例属于负类。再假设数据集线性可分。
学习的目标就是在特征空间中找到一个超平面 ω ∗ x + b = 0 ω*x+b=0 ωx+b=0,将数据集分为正负两类。
找出超平面之后,要通过决策函数对数据类型进行判断,本文采用决策函数为 f ( x ) = s i g n ( ω ∗ x + b ) f(x)=sign(ω*x+b) f(x)=sign(ωx+b)
f ( x ) = { 1 , if  x &gt; = 0   0 , if  x &lt; 0   f(x)= \begin{cases} 1, &amp; \text {if $x&gt;=0$ } \\ 0, &amp; \text{if $x&lt;0$ } \end{cases} f(x)={1,0,if x>=if x<

函数间隔和几何间隔

一般情况下,某点距超平面的距离可以表示分类的确信程度,在超平面 ω ∗ x + b = 0 ω*x+b=0 ωx+b=0确定的情况下, ∣ ω ∗ x + b ∣ |ω*x+b| ωx+b可以表示该点到平面的距离。对点 ( x i , y i ) (x_i,y_i) (xi,yi) ( ω ∗ x i + b ) (ω*x_i+b) (ωxi+b) y i y_i yi的符号可以判断分类是否正确,此时定义该点的函数间隔为: ι i = y i ∗ ( ω ∗ x i + b ) \iota_i=y_i*(ω*x_i+b) ιi=yi(ωxi+b)
定义超平面(ω,b)关于数据集T的函数间隔为所有实例点的函数间隔的最小值,即:
ι = m i n ( ⁡ ι i ) \iota=min(⁡\iota_i ) ι=min(ιi)
函数间隔可以表示分类的正确性,但是只要成比例的改变超平面的参数,函数间隔会发生改变但是分类结果保持不变,所以需要对函数间隔加一些约束,例如规范化超平面的法向量, ∣ ∣ ω ∣ ∣ = 1 ||ω||=1 ω=1,这使得间隔时确定的,此时函数间隔变为几何间隔。
定义数据集中点 ( x i , y i ) (x_i,y_i) (xi,yi)的几何间隔为:
γ = y i ∗ ( w ∣ ∣ ω ∣ ∣ ∗ w + b ∣ ∣ ω ∣ ∣ ) \gamma=y_i*(\frac{w}{||ω||}*w+\frac{b}{||ω||}) γ=yi(ωww+ωb)
与函数间隔相似的是定义超平面(ω,b)关于数据集T的几何间隔为所有实例点的几何间隔的最小值,即: γ = m i n ⁡ ( γ i ) \gamma=min⁡(γ_i ) γ=min(γi)
根据两者的定义,函数间隔和几何关系有如下关系:
ι = γ ∗ ∣ ( ∣ ω ∣ ) ∣ \iota=γ*|(|ω|)| ι=γ(ω)
其中 ∣ ∣ ω ∣ ∣ ||ω|| ω是ω的 L 2 L_2 L2范式,就是内积。

(硬)间隔最大化

支持向量机的基本思路就是找到可以把数据分为正负两类的超平面,对于数据集T来说在分类精度不确定的情况下可以找到无数个超平面,为了让分类准确,我们让几何间隔保持最大,也就是说最难分的点(靠近超平面的点)也有足够的确信度将其分开,此时超平面对未知的新实例具有较好的分类作用。
将几何间隔最大化问题写成如下方程:
m a x γ w , b max \quad\gamma_{w,b} maxγw,b
s . t . y i ( w ∣ ∣ ω ∣ ∣ ∗ w + b ∣ ∣ ω ∣ ∣ ) ≥ γ i = 1 , 2 , … , n s.t.\qquad y_i (\frac{w}{||ω||}*w+\frac{b}{||ω||})≥γ\qquad i=1,2,…,n s.t.yi(ωww+ωb)γi=1,2,,n
方程表示我们希望最大化几何间隔γ,而数据集中所有点的几何间隔至少为γ。考虑到几何间隔和函数间隔的关系,方程用函数间隔表示为:
m a x ι ∣ ∣ w ∣ ∣ max\quad\frac{\iota}{||w||} maxwι
s . t . y i ∗ ( w ∗ x i + b ) ≥ ι i i = 1 , 2 , . . . , n s.t.\quad y_i*(w*x_i+b)≥\iota_i\quad i=1,2,...,n s.t.yi(wxi+b)ιii=1,2,...,n
此时可以看出来γ ̌的取值与最优化问题无关,我们将 ι \iota ι取值为1,而最大化 1 ∣ ∣ w ∣ ∣ \frac{1}{||w||} w1的问题相当于最小化 1 2 ∣ ∣ w ∣ ∣ 2 \frac{1}{2}||w||^2 21w2,此时将上述方程整理为:
m i n 1 2 ∣ ∣ w ∣ ∣ w , b 2 min \quad\frac{1}{2}||w||^2_{w,b} min21ww,b2
s . t . y i ∗ ( w ∗ x i + b ) ≥ 1 i = 1 , 2 , … , n s.t. \quad y_i *(w*x_i+b)≥1\quad i=1,2,…,n s.t.yi(wxi+b)1i=1,2,,n
这是一个凸二次规划问题,可以采用拉格朗日对偶法进行进一步计算。此时给出支持向量的概念,优化问题的提出基础是最难分的点也要保证较好的分类效果,最难分的点就是超平面附近的点,在超平面两端,各有点在约束条件上,以正数集为例。点A ( x a , y a ) (x_a,y_a) (xa,ya)位于正数据,则 y a = 1 y_a=1 ya=1,同时有 w ∗ x a + b = 1 w*x_a+b=1 wxa+b=1,这样的点就是支持向量。在优化问题中,支持向量的位置决定最终的结果,除支持向量以外,其他点位置变动或直接删除没有影响。

拉格朗日对偶法

假设一个约束条件优化问题,方程如下:
m i n f ( x ) x min\quad f(x)_x minf(x)x
s . t . g i ( x ) ≤ 0 , i = 1 , 2 , … , n ; h j ( x ) = 0 , j = 1 , 2 , … , m s.t.\quad g_i (x)≤0,i=1,2,…,n; h_j (x)=0,j=1,2,…,m s.t.gi(x)0,i=1,2,,n;hj(x)=0,j=1,2,,m
构建拉格朗日函数为:
L ( x , α , β ) = f ( x ) + ∑ i = 1 n α i g i + ∑ j = 1 m β j h j L(x,α,β)=f(x)+\sum_{i=1}^{n}\alpha_ig_i+\sum_{j=1}^{m}\beta_jh_j L(x,α,β)=f(x)+i=1nαigi+j=1mβjhj
s . t . α i ≥ 0 , i = 1 , 2 , … , n s.t. α_i≥0,i=1,2,…,n s.t.αi0,i=1,2,,n
考虑x的函数, p ( x ) = m a x α , β ; α i ≥ 0 L ( x , α , β ) p(x)=max_{α,β;α_i≥0} \quad L(x,α,β) p(x)=maxα,β;αi0L(x,α,β)
当x不满足原本的约束条件时,即出现 g i ( x ) &gt; 0 g_i (x)&gt;0 gi(x)>0或者 β i ≠ 0 β_i≠0 βi̸=0,就令 α i α_i αi β i β_i βi趋向无穷大,则有p(x)也趋向于无穷大;当x满足约束条件时,p(x)=f(x)。
可以整理为:
p ( x ) = { f ( x ) ,  满足约束条件  ∞ , 不满足约束条件  p(x)= \begin{cases} f(x), &amp; \text { 满足约束条件 } \\ ∞, &amp; \text{不满足约束条件 } \end{cases} p(x)={f(x),, 满足约束条件 不满足约束条件 
此时原本的极小化问题表示为:
m i n x m a x α , β ; α i &gt; 0 L ( x , α , β ) min_x\quad max_{α,β;α_i&gt;0 } \quad L(x,α,β) minxmaxα,β;αi>0L(x,α,β)
定义为拉格朗日函数的极小极大问题。
m a x α , β ; α i &gt; 0 m i n x L ( x , α , β ) max_{α,β;α_i&gt;0}\quad min_x\quad L(x,α,β) maxα,β;αi>0minxL(x,α,β)
是原本优化问题的对偶问题,而且对偶问题在某些条件下最优值相等。

间隔最大化的对偶计算

原问题为
m i n w , b 1 2 ∣ ∣ w ∣ ∣ 2 min_{w,b} \quad\frac{1}{2} ||w||^2 minw,b21w2
s . t . y i ( w x i + b ) ≥ 1 i = 1 , 2 , … , n s.t. y_i (wx_i+b)≥1\quad i=1,2,…,n s.t.yi(wxi+b)1i=1,2,,n
拉格朗日函数为:
(1) L ( w , b , x ) = 1 2 ∣ ∣ w ∣ ∣ 2 − ∑ i = 1 n α i y i ( y i ( w x i + b ) ) + ∑ i = 1 n α i L(w,b,x)=\frac{1}{2}||w||^2-\sum_{i=1}^{n}\alpha_iy_i(y_i (wx_i+b))+\sum_{i=1}^{n}\alpha_i\tag{1} L(w,b,x)=21w2i=1nαiyi(yi(wxi+b))+i=1nαi(1)
s . t . α i &gt; 0 s.t.\quad α_i&gt;0 s.t.αi>0
原问题可以整理为:
m i n w , b m a x α L ( w , b , α ) min_{w,b}\quad max_\alpha \quad L(w,b,α) minw,bmaxαL(w,b,α)
对偶问题为:
m a x α m i n w , b L ( w , b , α ) max_α\quad min_{w,b} \quad L(w,b,α) maxαminw,bL(w,b,α)
求解过程如下:
先求 m i n w , b L ( w , b , α ) min_{w,b}\quad L(w,b,α) minw,bL(w,b,α)
(1) { d L d w = w − ∑ i = 1 n α i y i x i = 0 ,   d L d b = ∑ i = 1 n α i y i 0 ,   \begin{cases} \frac{dL}{dw}=w-\sum_{i=1}^{n}\alpha_iy_ix_i=0, &amp; \text { } \\\frac{dL}{db}=\sum_{i=1}^{n}\alpha_iy_i0, &amp; \text{ } \end{cases} \tag{1} {dwdL=wi=1nαiyixi=0,dbdL=i=1nαiyi0,  (1)
把2式代入1整理则有
L ( w , b , α ) = 1 2 ∣ ∣ w ∣ ∣ 2 − ∑ i = 1 n α i y i ( w T x i + b ) + ∑ i = 1 n α i L(w,b,α)=\frac{1}{2} ||w||^2-\sum_{i=1}^{n}\alpha_iy_i(w^Tx_i+b)+\sum_{i=1}^{n}\alpha_i L(w,b,α)=21w2i=1nαiyi(wTxi+b)+i=1nαi
= 1 2 w T w − ∑ i = 1 n α i y i w T x i − ∑ i = 1 n α i y i b + ∑ i = 1 n α i =\frac{1}{2}w^Tw-\sum_{i=1}^{n}\alpha_iy_iw^Tx_i-\sum_{i=1}^{n}\alpha_iy_ib+\sum_{i=1}^{n}\alpha_i =21wTwi=1nαiyiwTxii=1nαiyib+i=1nαi
= 1 2 w T ∑ i = 1 n α i y i x i − ∑ i = 1 n α i y i w T x i + ∑ i = 1 n α i y i b + ∑ i = 1 n α i =\frac{1}{2}w^T \sum_{i=1}^{n}\alpha_iy_ix_i-\sum_{i=1}^{n}\alpha_iy_iw^Tx_i+\sum_{i=1}^{n}\alpha_iy_ib+\sum_{i=1}^{n}\alpha_i =21wTi=1nαiyixii=1nαiyiwTxi+i=1nαiyib+i=1nαi
= 1 2 w T ∑ i = 1 n α i y i x i − w T ∑ i = 1 n α i y i x i + ∑ i = 1 n α i =\frac{1}{2}w^T\sum_{i=1}^{n}\alpha_iy_ix_i-w^T \sum_{i=1}^{n}\alpha_iy_ix_i+\sum_{i=1}^{n}\alpha_i =21wTi=1nαiyixiwTi=1nαiyixi+i=1nαi
= − 1 2 w T ∑ i = 1 n α i y i x i + ∑ i = 1 n α i =-\frac{1}{2}w^T \sum_{i=1}^{n}\alpha_iy_ix_i+\sum_{i=1}^{n}\alpha_i =21wTi=1nαiyixi+i=1nαi
= − 1 2 ∑ i = 1 n ∑ j = 1 n α i α j y i y j ( x i ∙ x j ) + ∑ i = 1 n α i =-\frac{1}{2}\sum_{i=1}^{n}\sum_{j=1}^{n}\alpha_i\alpha_jy_iy_j(x_i∙x_j)+\sum_{i=1}^{n}\alpha_i =21i=1nj=1nαiαjyiyj(xixj)+i=1nαi
问题转换为:
m a x α − 1 2 ∑ i = 1 n ∑ j = 1 n α i α j y i y j ( x i ∙ x j ) + ∑ i = 1 n α i max_α\quad-\frac{1}{2}\sum_{i=1}^{n}\sum_{j=1}^{n}\alpha_i\alpha_jy_iy_j(x_i∙x_j)+\sum_{i=1}^{n}\alpha_i maxα21i=1nj=1nαiαjyiyj(xixj)+i=1nαi
s . t . ∑ i = 1 n α i y i = 0 , α i ≥ 0 s.t. \sum_{i=1}^{n}\alpha_iy_i=0, α_i≥0 s.t.i=1nαiyi=0,αi0
对上式求出最优解 α ∗ = ( α 1 , α 2 , … , α n ) α^*=(α_1,α_2,…,α_n) α=(α1,α2,,αn)
计算 w ∗ = ∑ i = 1 n x i y i α i , b ∗ = y j − ∑ i = 1 n α i y i ( x i ∙ x j ) w^*=\sum_{i=1}^{n}x_iy_i\alpha_i,b^*=y_j-\sum_{i=1}^{n}\alpha_iy_i(x_i∙x_j) w=i=1nxiyiαib=yji=1nαiyi(xixj)
(未完)

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值