令人头秃的支持向量机SVM(一)SVM分类

任务

  • 有一天老师分配给我们一项任务:给定训练样本集,样本集包含不同类别,可能是二分类,可能是多分类,这里我们以二分类为例,训练集如下:
    ( x 1 , y 1 ) , ( x 2 , y 2 ) , … ( x n , y n ) (x_1,y_1),(x_2,y_2),\ldots(x_n,y_n) (x1,y1),(x2,y2),(xn,yn)
    这里 x 1 , … , x n x_1,\ldots ,x_n x1,,xn为向量, y 1 , … , y n y_1,\ldots ,y_n y1,,yn为标签
    在这里插入图片描述
    上图是40个样本经过SVM分类的结果。
  • 从图中我们看到这样几个关键信息:两条虚线一条实线蓝色点棕色点虚线上的点

概念

对于线性可分训练集来说,我们想将样本分成两类,在平面坐标系上是找一条直线将样本分开,但我们样本向量 x n x_n xn的维度即特征数目可能有很多个,这时我们需要找到一个超平面(图中的实线)将样本分开,

1.超平面

超平面的表达式为:
w T x + b = 0 w^Tx+b=0 wTx+b=0
w \bf{w} w为向量, x \bf{x} x也为向量, w T x w^Tx wTx为一个数,b也为数。

仅仅只是为了将样本分开肯定是不行的,我们应该找到泛化能力最强的超平面,即对训练样本的局部扰动的容忍性最好,所以我们得使用评估指标来去定量分析模型好坏。

2.距离

  • 首先,先回顾下点到平面的距离:
    平面: w 1 x + w 2 y + b = 0 w_1x+w_2y+b=0 w1x+w2y+b=0,则( x 0 , y 0 x_0,y_0 x0,y0)到平面的距离:
    d = ∣ w 1 x + w 2 y + b ∣ w 1 2 + w 2 2 d=\frac{\lvert w_1x+w_2y+b\rvert}{\sqrt{w_1^2+w_2^2}} d=w12+w22 w1x+w2y+b

训练样本上任意一个点到超平面的距离我们都能够计算出来:

  • x 0 x_0 x0到超平面距离(几何间隔):
    d = ∣ w T x 0 + b ∣ w 1 2 + w 2 2 + … + x n 2 = ∣ w T x 0 + b ∣ ∥ w ∥ d=\frac{\lvert w^Tx_0+b\rvert}{\sqrt{w_1^2+w_2^2+\ldots+x_n^2}}=\frac{\lvert w^Tx_0+b\rvert}{\lVert w\lVert} d=w12+w22++xn2 wTx0+b=wwTx0+b

距离(几何间隔)有大有小,几何间隔肯定是有一个最大值,怎么让几何间隔最大化呢?

3.支持向量

我们将图中的实线像两边“平移”得到两条虚线,当虚线碰到样本点时,该点就为支持向量,从图中我们可以看到有一个蓝色的支持向量和两个棕色的支持向量。
两个异类支持向量到超平面的距离之和:
r = 2 ∥ w ∥ r=\frac{2}{\lVert w\lVert} r=w2

  • 最大化间隔 r r r是我们的优化目标

4.优化目标

  • 将最大化 r r r变为最小化 ∥ w ∥ \lVert w\lVert w,

  • 满足最大化间隔的前提是要满足将样本分类的要求,即对 w w w b b b要有约束,

  • 具体优化目标和限制条件如下:

m i n w , b    1 2 ∥ w ∥ 2 min_w,_b \ \ \frac{1}{2}{\lVert w\lVert}^2 minw,b  21w2 s . t .   y i ( w T x i + b ) ≥ 1 (公式1) s.t. \ y_i(w^Tx_i+b)\geq 1\tag{公式1} s.t. yi(wTxi+b)1(1)

解得w,b

对于公式1我们想要去求得约束条件w和b的值,由于目标函数 1 2 ∥ w ∥ 2 \frac{1}{2}{\lVert w\lVert}^2 21w2是涉及到二次项,而限制条件是一次项,这是一个二次规划问题。我们可以使用更高效,更聪明的方法,就是对于公式1使用拉格朗日乘子法将其变成对偶问题。
关于原始问题和对偶问题的数学关系其实理解比较复杂,包括一些疑问:
原始问题和对偶问题的关系
原始问题的解是否一定等于对偶问题的解?
关于这部分不懂的可以看看:
视频课浙江大学胡浩基(机器学习-原问题与对偶问题)
李航-统计学习方法-附录C

对偶问题

首先建立拉格朗日函数,引入拉格朗日乘子 α i ≥ 0 , i = 1 , 2 , … , N , \alpha_i\geq 0,i=1,2,\ldots,N, αi0,i=1,2,,N,,定义拉格朗日函数:
L ( w , b , α ) = 1 2 ∥ w ∥ 2 + ∑ i = 1 N α i ( 1 − y i ( w T x i + b ) (公式2) L(w,b,\alpha)=\frac{1}{2}{\lVert w\lVert}^2+\sum_{i=1}^N\alpha_i(1-y_i(w^Tx_i+b)\tag{公式2} L(w,b,α)=21w2+i=1Nαi(1yi(wTxi+b)(2)
**原始问题的对偶问题是极大极小问题:,即先求 L ( w , b , α ) L(w,b,\alpha) L(w,b,α) w , b w,b w,b的极小,再求对 α \alpha α的极大值: m a x α m i n w , b L ( w , b , α ) max_\alpha min_w,_bL(w,b,\alpha) maxαminw,bL(w,b,α)

  1. m i n w , b L ( w , b , α ) min_w,_bL(w,b,\alpha) minw,bL(w,b,α)
    L ( w , b , α ) L(w,b,\alpha) L(w,b,α) w , b w,b w,b求偏导,然后令偏导数为0:
    关于范数怎么求导:范数求导
    ∇ w   L ( w , b , α ) = w − ∑ i = 1 N α i y i x i = 0 \nabla_w\ L(w,b,\alpha)=w-\sum_{i=1}^N\alpha_iy_ix_i=0 w L(w,b,α)=wi=1Nαiyixi=0 ∇ b   L ( w , b , α ) = − ∑ i = 1 N α i y i = 0 (公式3) \nabla_b\ L(w,b,\alpha)=-\sum_{i=1}^N\alpha_iy_i=0\tag{公式3} b L(w,b,α)=i=1Nαiyi=0(3)
    得:
    w = ∑ i = 1 N α i y i x i w=\sum_{i=1}^N\alpha_iy_ix_i w=i=1Nαiyixi ∑ i = 1 N α i y i = 0 (公式4) \sum_{i=1}^N\alpha_iy_i=0\tag{公式4} i=1Nαiyi=0(4)
    将公式4代入拉格朗日函数(公式2)中,即得:
    L ( w , b , α ) = ∑ i = 1 N α i − 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i u j x i T x j (公式5) L(w,b,\alpha)=\sum_{i=1}^N\alpha_i-\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iu_jx_i^Tx_j\tag{公式5} L(w,b,α)=i=1Nαi21i=1Nj=1NαiαjyiujxiTxj(5)
    公式5表示将 w , b w,b w,b代入公式消掉后得到 L ( w , b , α ) L(w,b,\alpha) L(w,b,α) α \alpha α的关系式,即转化为:
    m i n w , b L ( w , b , α ) = ∑ i = 1 N α i − 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i u j x i T x j (公式6) min_w,_bL(w,b,\alpha)=\sum_{i=1}^N\alpha_i-\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iu_jx_i^Tx_j\tag{公式6} minw,bL(w,b,α)=i=1Nαi21i=1Nj=1NαiαjyiujxiTxj(6)
    注:我们直接解 w , b w,b w,b是不好解的,必须通过先解出 α \alpha α再得到 w , b w,b w,b
  2. 再求 m i n w , b L ( w , b , α ) min_w,_bL(w,b,\alpha) minw,bL(w,b,α) α \alpha α的极大:
    m a x α L ( w , b , α ) = ∑ i = 1 N α i − 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i u j x i T x j max_\alpha L(w,b,\alpha)=\sum_{i=1}^N\alpha_i-\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iu_jx_i^Tx_j maxαL(w,b,α)=i=1Nαi21i=1Nj=1NαiαjyiujxiTxj s . t . ∑ i = 1 N α i y i = 0 s.t.\sum_{i=1}^N\alpha_iy_i=0 s.t.i=1Nαiyi=0 α i ≥ 0 , i = 1 , 2 , … , N (公式7) \alpha_i\geq 0,i=1,2,\ldots,N\tag{公式7} αi0,i=1,2,,N(7)
    下面仔细看!!!最妙的部分来了!!!
    对公式7中的目标函数乘个负号,将 m a x α L ( w , b , α ) = ∑ i = 1 N α i − 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i u j x i T x j max_\alpha L(w,b,\alpha)=\sum_{i=1}^N\alpha_i-\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iu_jx_i^Tx_j maxαL(w,b,α)=i=1Nαi21i=1Nj=1NαiαjyiujxiTxj
    变为:
    m i n α L ( w , b , α ) = 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i u j x i T x j − ∑ i = 1 N α i min_\alpha L(w,b,\alpha)=\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iu_jx_i^Tx_j-\sum_{i=1}^N\alpha_i minαL(w,b,α)=21i=1Nj=1NαiαjyiujxiTxji=1Nαi
    这样问题就变为:
    m i n α 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i u j x i T x j − ∑ i = 1 N α i min_\alpha\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iu_jx_i^Tx_j-\sum_{i=1}^N\alpha_i minα21i=1Nj=1NαiαjyiujxiTxji=1Nαi s . t . ∑ i = 1 N α i y i = 0 s.t.\sum_{i=1}^N\alpha_iy_i=0 s.t.i=1Nαiyi=0 α i ≥ 0 , i = 1 , 2 , … , N (公式8) \alpha_i\geq 0,i=1,2,\ldots,N\tag{公式8} αi0,i=1,2,,N(8)
    将公式8与公式1对比会发现,我们将求解原始问题转化为对偶问题,完美的将求解 w , b w,b w,b的问题转变为先求解 α \alpha α再根据 w , b w,b w,b α \alpha α的关系求解 w , b w,b w,b。当时看到这里真的豁然开朗,不知道你有没有类似的感觉。
  3. 例:训练数据有三个点:正例点 x 1 = ( 3 , 3 ) T , x 2 = ( 4 , 3 ) T , x_1=(3,3)^T,x_2=(4,3)^T, x1=(3,3)T,x2=(4,3)T负例点是 x 3 = ( 1 , 1 ) T x_3=(1,1)^T x3=(1,1)T,求线性可分支持向量机。
    根据所给数据,对偶问题是:
    m i n α 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i u j x i T x j − ∑ i = 1 N α i min_\alpha\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iu_jx_i^Tx_j-\sum_{i=1}^N\alpha_i minα21i=1Nj=1NαiαjyiujxiTxji=1Nαi = 1 2 ( α 1 ∗ α 1 ∗ 1 ∗ 1 ∗ 18 + α 2 ∗ α 2 ∗ 1 ∗ 1 ∗ 25 + α 3 ∗ α 3 ∗ ( − 1 ) ∗ ( − 1 ) ∗ 2 =\frac{1}{2}(\alpha_1* \alpha_1*1*1*18+\alpha_2* \alpha_2*1*1*25+\alpha_3* \alpha_3*(-1)*(-1)*2 =21(α1α11118+α2α21125+α3α3(1)(1)2 + α 1 ∗ α 2 ∗ 1 ∗ 1 ∗ 21 ∗ 2 + α 1 ∗ α 3 ∗ 1 ∗ ( − 1 ) ∗ 6 ∗ 2 + α 2 ∗ α 3 ∗ 1 ∗ ( − 1 ) ∗ 7 ∗ 2 ) +\alpha_1* \alpha_2*1*1*21*2+\alpha_1* \alpha_3*1*(-1)*6*2+\alpha_2* \alpha_3*1*(-1)*7*2) +α1α211212+α1α31(1)62+α2α31(1)72) − ( α 1 + α 2 + α 3 ) -(\alpha_1+\alpha_2+\alpha_3) (α1+α2+α3) = 1 2 ( 18 α 1 2 + 25 α 2 2 + 2 α 3 2 + 42 α 1 α 2 − 12 α 1 α 2 − 14 α 2 α 3 ) − ( α 1 + α 2 + α 3 ) =\frac{1}{2}(18\alpha_1^2+25\alpha_2^2+2\alpha_3^2+42\alpha_1\alpha_2-12\alpha_1\alpha_2-14\alpha_2\alpha_3)-(\alpha_1+\alpha_2+\alpha_3) =21(18α12+25α22+2α32+42α1α212α1α214α2α3)(α1+α2+α3) s t .   α 1 + α 2 − α 3 = 0 st.\ \alpha_1+\alpha_2-\alpha_3=0 st. α1+α2α3=0 α i ≥ 0 , i = 1 , 2 , 3 \alpha_i\geq 0,i=1,2,3 αi0,i=1,2,3
    从现在这个目标函数和限制条件我们可以看出目标函数是关于未知量 α \alpha α的表达式,限制条件也是关于 α \alpha α的表达式。
    所以要解决这个最优化问题,将 α 3 = α 1 + α 2 \alpha_3=\alpha_1+\alpha_2 α3=α1+α2代入目标函数得到:
    s ( α 1 , α 2 ) = 4 α 1 2 + 13 2 α 2 2 + 10 α 1 α 2 − 2 α 1 − 2 α 2 s(\alpha_1,\alpha_2)=4\alpha_1^2+\frac{13}{2}\alpha_2^2+10\alpha_1\alpha_2-2\alpha_1-2\alpha_2 s(α1,α2)=4α12+213α22+10α1α22α12α2
    有两个未知量 α 1 \alpha_1 α1, α 2 \alpha_2 α2,分别对其求偏导数令导数为0,得到极值点 ( 3 2 , − 1 ) (\frac{3}{2},-1) (23,1),但我们要求 α i ≥ 0 \alpha_i\geq 0 αi0,所以最小值应该在边界上取到。
    α 1 = 0 \alpha_1=0 α1=0时, s ( α 1 , α 2 ) = 13 2 α 2 2 − 2 α 2 s(\alpha_1,\alpha_2)=\frac{13}{2}\alpha_2^2-2\alpha_2 s(α1,α2)=213α222α2,最小值为 s ( 0 , 2 13 ) = − 2 13 s(0,\frac{2}{13})=-\frac{2}{13} s(0,132)=132
    α 2 = 0 \alpha_2=0 α2=0时, s ( α 1 , α 2 ) = 4 α 1 2 − 2 α 1 s(\alpha_1,\alpha_2)=4\alpha_1^2-2\alpha_1 s(α1,α2)=4α122α1,最小值 s ( 1 4 , 0 ) = − 1 4 s(\frac{1}{4},0)=-\frac{1}{4} s(41,0)=41
    综上所述 α 1 = 1 4 , α 2 = 0 \alpha_1=\frac{1}{4},\alpha_2=0 α1=41,α2=0达到最小,此时 α 3 = α 1 + α 2 = 1 4 \alpha_3=\alpha_1+\alpha_2=\frac{1}{4} α3=α1+α2=41
    解得所有的 α 1 , α 2 , α 3 \alpha_1,\alpha_2,\alpha_3 α1,α2,α3后求 w , b w,b w,b,
    公式4我们可以得到:
    w = α 1 y 1 x 1 + α 2 y 2 x 2 + α 3 y 3 x 3 w=\alpha_1y_1x_1+\alpha_2 y_2 x_2+\alpha_3y_3x_3 w=α1y1x1+α2y2x2+α3y3x3 = 1 4 × 1 × x 1 + 0 + 1 4 × ( − 1 ) × x 3 = ( 1 2 , 1 2 ) T =\frac{1}{4}×1×x_1+0+\frac{1}{4}×(-1)×x_3=(\frac{1}{2},\frac{1}{2})^T =41×1×x1+0+41×(1)×x3=(21,21)T
    b = 1 − 1 2 ( 3 + 3 ) = − 2 b=1-\frac{1}{2}(3+3)=-2 b=121(3+3)=2
    分离超平面为:
    1 2 x 1 + 1 2 x 2 − 2 = 0 \frac{1}{2}x^1+\frac{1}{2}x^2-2=0 21x1+21x22=0
    分类决策函数为:
    f ( x ) = s i g n ( 1 2 x 1 + 1 2 x 2 − 2 ) f(x)=sign(\frac{1}{2}x^1+\frac{1}{2}x^2-2) f(x)=sign(21x1+21x22)

总结

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值