统计学习方法笔记与习题解答(Chapter7)(二)

本文深入探讨了支持向量机(SVM)及其优化算法SMO的原理与应用,详细解释了SMO算法如何通过二次规划解决SVM中的优化问题,同时介绍了KKT条件在约束最优化问题中的作用。

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

支持向量机

SMO算法

问题描述

min ⁡ α   1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j K ( x i , x j ) − ∑ i = 1 N α i s . t .     ∑ i = 1 N α i y i = 0 0 ⩽ α i ⩽ C , i = 1 , 2 , … , N \begin{aligned} \min_\alpha\ &\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_jK(x_i,x_j)-\sum_{i=1}^N\alpha_i\\ s.t.\ \ \ &\sum_{i=1}^N\alpha_iy_i=0\\ &0\leqslant \alpha_i \leqslant C,i=1,2,\dots,N \end{aligned} αmin s.t.   21i=1Nj=1NαiαjyiyjK(xi,xj)i=1Nαii=1Nαiyi=00αiC,i=1,2,,N

这个问题中,变量是 α \alpha α,一个变量 α i \alpha_i αi对应一个样本点 ( x i , y i ) (x_i,y_i) (xi,yi),变量总数等于 N N N

KKT 条件

  • KKT条件是该最优化问题的充分必要条件
  • 简单来说,约束最优化问题包含 ⩽ 0 \leqslant0 0,和 = 0 =0 =0两种约束条件
    min ⁡ x ∈ R n f ( x ) s . t . c i ( x ) ⩽ 0 , i = 1 , 2 , … , k h j ( x ) = 0 , j = 1 , 2 , … , l \begin{aligned} \min_{x \in R^n}\quad &f(x) \\ s.t.\quad&c_i(x) \leqslant 0 , i=1,2,\ldots,k\\ &h_j(x) = 0 , j=1,2,\ldots,l \end{aligned} xRnmins.t.f(x)ci(x)0,i=1,2,,khj(x)=0,j=1,2,,l
  • 引入广义拉格朗日函数

L ( x , α , β ) = f ( x ) + ∑ i = 0 k α i c i ( x ) + ∑ j = 1 l β j h j ( x ) L(x,\alpha,\beta) = f(x) + \sum_{i=0}^k \alpha_ic_i(x) + \sum_{j=1}^l \beta_jh_j(x) L(x,α,β)=f(x)+i=0kαici(x)+j=1lβjhj(x)

  • 在KKT的条件下,原始问题和对偶问题的最优值相等
    ∇ x L ( x ∗ , α ∗ , β ∗ ) = 0 ∇ α L ( x ∗ , α ∗ , β ∗ ) = 0 ∇ β L ( x ∗ , α ∗ , β ∗ ) = 0 α i ∗ c i ( x ∗ ) = 0 , i = 1 , 2 , … , k c i ( x ∗ ) ≤ 0 , i = 1 , 2 , … , k α i ∗ ≥ 0 , i = 1 , 2 , … , k h j ( x ∗ ) = 0 , j = 1 , 2 , … , l ∇_xL(x^∗,α^∗,β^∗)=0\\ ∇_αL(x^∗,α^∗,β^∗)=0\\ ∇_βL(x^∗,α^∗,β^∗)=0\\ α_i^∗c_i(x^*)=0,i=1,2,…,k\\ c_i(x^*)≤0,i=1,2,…,k\\ α^∗_i≥0,i=1,2,…,k\\ h_j(x^∗)=0,j=1,2,…,l xL(x,α,β)=0αL(x,α,β)=0βL(x,α,β)=0αici(x)=0,i=1,2,,kci(x)0,i=1,2,,kαi0,i=1,2,,khj(x)=0,j=1,2,,l
  • 前面三个条件是由解析函数的知识,对于各个变量的偏导数为0,后面四个条件就是原始问题的约束条件以及拉格朗日乘子需要满足的约束,第四个条件是KKT的对偶互补条件

算法内容

整个SMO算法包括两部分

  1. 求解两个变量二次规划的解析方法
  2. 选择变量的启发式方法

min ⁡ α   1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j K ( x i , x j ) − ∑ i = 1 N α i s . t .     ∑ i = 1 N α i y i = 0 0 ⩽ α i ⩽ C , i = 1 , 2 , … , N \begin{aligned} \min_\alpha\ &\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_jK(x_i, x_j)-\sum_{i=1}^N\alpha_i\\ s.t.\ \ \ &\sum_{i=1}^N\alpha_iy_i=0\\ &0\leqslant \alpha_i \leqslant C,i=1,2,\dots,N \end{aligned} αmin s.t.   21i=1Nj=1NαiαjyiyjK(xi,xj)i=1Nαii=1Nαiyi=00αiC,i=1,2,,N

Part I
  • 两个变量二次规划求解
  • 选择两个变量 α 1 , α 2 ​ \alpha_1,\alpha_2​ α1,α2,由等式约束可以得到 α 1 = − y 1 ∑ i = 2 N α i y i ​ \alpha_1=-y_1\sum\limits_{i=2}^N\alpha_iy_i​ α1=y1i=2Nαiyi,所以这个问题等价于一个单变量优化问题

min ⁡ α 1 , α 2 W ( α 1 , α 2 ) = 1 2 K 11 α 1 2 + 1 2 K 22 α 2 2 + y 1 y 2 K 12 α 1 α 2 − ( α 1 + α 2 ) + y 1 α 1 ∑ i = 3 N y i α i K i l + y 2 α 2 ∑ i = 3 N y i α i K i 2 s . t .     α 1 y 1 + α 2 y 2 = − ∑ i = 3 N y i α i = ς 0 ⩽ α i ⩽ C , i = 1 , 2 \begin{aligned} \min_{\alpha_1,\alpha_2} W(\alpha_1,\alpha_2)=&\frac{1}{2}K_{11}\alpha_1^2+\frac{1}{2}K_{22}\alpha_2^2+y_1y_2K_{12}\alpha_1\alpha_2\\ &-(\alpha_1+\alpha_2)+y_1\alpha_1\sum_{i=3}^Ny_i\alpha_iK_{il}+y_2\alpha_2\sum_{i=3}^Ny_i\alpha_iK_{i2}\\ s.t. \ \ \ &\alpha_1y_1+\alpha_2y_2=-\sum_{i=3}^Ny_i\alpha_i=\varsigma\\ &0\leqslant\alpha_i\leqslant C, i=1,2 \end{aligned} α1,α2minW(α1,α2)=s.t.   21K11α12+21K22α22+y1y2K12α1α2(α1+α2)+y1α1i=3NyiαiKil+y2α2i=3NyiαiKi2α1y1+α2y2=i=3Nyiαi=ς0αiC,i=1,2

  • 上面存在两个约束:
  1. 线性等式约束
  2. 边界约束
  • 根据简单的线性规划可以得出等式约束使得 ( α 1 , α 2 ) (\alpha_1,\alpha_2) (α1,α2)在平行于盒子 [ 0 , C ] × [ 0 , C ] [0,C]\times [0,C] [0,C]×[0,C]的对角线的直线上

在这里插入图片描述

  • 首先求沿着约束方向未经剪辑,即不考虑约束 0 ⩽ α i ⩽ C 0\leqslant\alpha_i\leqslant C 0αiC α 2 \alpha_2 α2的最优解,然后再求剪辑后的解
    E i = g ( x i ) − y i = ( ∑ j = 1 N α j y j K ( x i , x j ) + b ) − y i , i = 1 , 2 E_i=g(x_i)-y_i=(\sum_{j=1}^N\alpha_jy_jK(x_i, x_j)+b)-y_i,i=1,2 Ei=g(xi)yi=(j=1NαjyjK(xi,xj)+b)yi,i=1,2
    E i E_i Ei为函数 g ( x ) g(x) g(x)对输入的预测值与真实输出 y i y_i yi的差
Part II
  • 变量的选择方法
  1. 第一个变量 α 1 \alpha_1 α1外层循环,寻找违反KKT条件最严重的样本点
  2. 第二个变量 α 2 \alpha_2 α2内层循环,希望能使 α 2 \alpha_2 α2有足够大的变化
  3. 计算阈值 b b b和差值 E i E_i Ei

输入:训练数据集 T = ( x 1 , y 1 ) , ( x 2 , y 2 ) , … , ( x N , y N ) T={(x_1,y_1),(x_2,y_2),\dots, (x_N,y_N)} T=(x1,y1),(x2,y2),,(xN,yN),其中 x i ∈ X = R n , y i ∈ Y = { − 1 , + 1 } , i = 1 , 2 , … , N x_i\in\mathcal X=\bf R^n, y_i\in\mathcal Y=\{-1,+1\}, i=1,2,\dots,N xiX=Rn,yiY={1,+1},i=1,2,,N,精度 ϵ \epsilon ϵ

输出:近似解 α ^ \hat\alpha α^

  1. 取初值 α 0 = 0 \alpha_0=0 α0=0,令 k = 0 k=0 k=0

  2. 选取优化变量 α 1 ( k ) , α 2 ( k ) \alpha_1^{(k)},\alpha_2^{(k)} α1(k),α2(k),解析求解两个变量的最优化问题,求得最优解 α 1 ( k + 1 ) , α 2 ( k + 1 ) \alpha_1^{(k+1)},\alpha_2^{(k+1)} α1(k+1),α2(k+1),更新 α \alpha α α k + 1 \alpha^{k+1} αk+1

  3. 若在精度 ϵ \epsilon ϵ范围内满足停止条件
    ∑ i = 1 N α i y i = 0 0 ⩽ α i ⩽ C , i = 1 , 2 , … , N y i ⋅ g ( x i ) = { ⩾ 1 , { x i ∣ α i = 0 } = 1 , { x i ∣ 0 &lt; α i &lt; C } ⩽ 1 , { x i ∣ α i = C } g ( x i ) = ∑ j = 1 N α j y j K ( x j , x i ) + b \sum_{i=1}^{N}\alpha_iy_i=0\\ 0\leqslant\alpha_i\leqslant C,i=1,2,\dots,N\\ y_i\cdot g(x_i)= \begin{cases} \geqslant1,\{x_i|\alpha_i=0\}\\ =1,\{x_i|0&lt;\alpha_i&lt;C\}\\ \leqslant1,\{x_i|\alpha_i=C\} \end{cases}\\ g(x_i)=\sum_{j=1}^{N}\alpha_jy_jK(x_j,x_i)+b i=1Nαiyi=00αiC,i=1,2,,Nyig(xi)=1,{xiαi=0}=1,{xi0<αi<C}1,{xiαi=C}g(xi)=j=1NαjyjK(xj,xi)+b
    则转4,否则, k = k + 1 k=k+1 k=k+1转2

  4. α ^ = α ( k + 1 ) \hat\alpha=\alpha^{(k+1)} α^=α(k+1)

习题解答

  • 1.比较感知机的对偶形式与线性可分支持向量机的对偶形式

    • 感知机的对偶形式
      f ( x ) = s i g n ( ∑ j = 1 N α j y j x j ⋅ x + b ) , α = ( α 1 , α 2 , ⋯ &ThinSpace; , α N ) T f(x)=sign\left(\sum_{j=1}^N\alpha_jy_jx_j\cdot x+b\right), \alpha=(\alpha_1,\alpha_2,\cdots,\alpha_N)^T f(x)=sign(j=1Nαjyjxjx+b),α=(α1,α2,,αN)T
    • 线性可分支持向量机的对偶形式
      f ( x ) = s i g n ( ∑ i = 1 N α i ∗ y i x i ⋅ x + b ∗ ) , α ∗ = ( α 1 ∗ , α 2 ∗ , ⋯ &ThinSpace; , α N ∗ ) T f(x)=sign\left(\sum_{i=1}^N\alpha_i^*y_ix_i\cdot x+b^*\right), \alpha^*=(\alpha_1^*,\alpha_2^*,\cdots,\alpha_N^*)^T f(x)=sign(i=1Nαiyixix+b),α=(α1,α2,,αN)T
      感知机学习算法的原始形式和对偶形式与线性可分支持向量机学习算法的原始形式和对偶形式相对应。在线性可分支持向量机的对偶形式中, w w w也是被表示为实例 x i x_i xi和标记 y i y_i yi的线性组合的形式
      w = ∑ i = 1 N α i y i x i w=\sum_{i=1}^{N}\alpha_iy_ix_i w=i=1Nαiyixi
      而它们的偏置 b b b的形式不同,前者 b = ∑ i = 1 N α i y i b=\sum_{i=1}^{N}\alpha_iy_i b=i=1Nαiyi,而后者 b ∗ = y j − ∑ i = 1 N α i ∗ y i ( x i ⋅ x j ) b^*=y_j\color{black}-\sum_{i=1}^{N}\alpha_i^*y_i(x_i\cdot x_j) b=yji=1Nαiyi(xixj)
  • 2.已知正例点 x 1 = ( 1 , 2 ) T x_1=(1,2)^T x1=(1,2)T x 2 = ( 2 , 3 ) T x_2=(2,3)^T x2=(2,3)T x 3 = ( 3 , 3 ) T x_3=(3,3)^T x3=(3,3)T,负例点 x 4 = ( 2 , 1 ) T x_4=(2,1)^T x4=(2,1)T x 5 = ( 3 , 2 ) T x_5=(3,2)^T x5=(3,2)T
    试求最大间隔分离超平面和分类决策函数,并在图上画出分离超平面、间隔边界及支持向量

    • 根据书中算法,计算可得 w 1 = − 1 w_1=-1 w1=1, w 2 = 2 w_2=2 w2=2, b = − 2 b=-2 b=2,即最大间隔分离超平面为
      − x ( 1 ) + 2 x ( 2 ) − 2 = 0 -x^{(1)}+2x^{(2)}-2=0 x(1)+2x(2)2=0
      分类决策函数为
      f ( x ) = s i g n ( − x ( 1 ) + 2 x ( 2 ) − 2 ) f(x)=sign(-x^{(1)}+2x^{(2)}-2) f(x)=sign(x(1)+2x(2)2)
      在这里插入图片描述
  • 3.线性支持向量机还可以定义为以下形式:

min ⁡ w , b , ξ 1 2 ∥ w ∥ 2 + C ∑ i = 1 N ξ i 2 s . t . y i ( w ⋅ x i + b ) ≥ 1 − ξ i , &ThinSpace; i = 1 , 2 , ⋯ &ThinSpace; , N ξ i ≥ 0 , &ThinSpace; i = 1 , 2 , ⋯ &ThinSpace; , N \min_{w,b,\xi}{\frac{1}{2}\|w\|^2}+C\sum^N_{i=1}\xi_i^2\\s.t.{\quad}y_i(w{\cdot}x_i+b)\ge1-\xi_i,\,i=1,2,\cdots,N\\\xi_i\ge0,\,i=1,2,\cdots,N w,b,ξmin21w2+Ci=1Nξi2s.t.yi(wxi+b)1ξi,i=1,2,,Nξi0,i=1,2,,N
试求其对偶形式

  • 首先求得原始化最优问题的拉格朗日函数是:
    L ( w , b , α , ξ , μ ) = 1 2 ∥ w ∥ 2 + C ∑ i = 1 N ξ i 2 − ∑ i = 1 N α i ( y i ( w ⋅ x i + b − 1 ) + ξ i ) − ∑ i = 1 N μ i ξ i L(w,b,\alpha,\xi,μ)=\frac{1}{2}\left\|w\right\|^2+C\sum_{i=1}^N\xi_i^2-\sum_{i=1}^N\alpha_i(y_i(w\cdot x_i+b-1)+\xi_i)-\sum_{i=1}^Nμ_i\xi_i L(w,b,α,ξ,μ)=21w2+Ci=1Nξi2i=1Nαi(yi(wxi+b1)+ξi)i=1Nμiξi
  • 对偶问题是拉格朗日的极大极小问题。首先求 L ( w , b , α , ξ , μ ) L(w,b,\alpha,\xi,μ) L(w,b,α,ξ,μ) w , b , ξ w,b,\xi w,b,ξ的极小,即对该三项求偏导,得
    w = ∑ i = 1 N α i y i x i ∑ i = 1 N α i y i = 0 2 C ξ i − α i − μ i = 0 w=\sum_{i=1}^{N}\alpha_iy_ix_i\\ \sum_{i=1}^N\alpha_iy_i=0\\ 2C\xi_i-\alpha_i-μ_i=0 w=i=1Nαiyixii=1Nαiyi=02Cξiαiμi=0
    将上述带入拉格朗日函数,得
    − 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j ( x i ⋅ x j ) − C ∑ i = 1 N ξ i 2 + ∑ i = 1 N α i − 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j ( x i ⋅ x j ) − 1 4 C ∑ i = 1 N ( α i + μ i ) 2 + ∑ i = 1 N α i -\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_j(x_i\cdot x_j)-C\sum_{i=1}^N\xi_i^2+\sum_{i=1}^N\alpha_i\\ -\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_j(x_i\cdot x_j)-\frac{1}{4C}\sum_{i=1}^N(\alpha_i+μ_i)^2+\sum_{i=1}^N\alpha_i 21i=1Nj=1Nαiαjyiyj(xixj)Ci=1Nξi2+i=1Nαi21i=1Nj=1Nαiαjyiyj(xixj)4C1i=1N(αi+μi)2+i=1Nαi
  • 4.证明内积的正整数幂函数 K ( x , z ) = ( x ⋅ z ) p K(x,z)=(x{\cdot}z)^p K(x,z)=(xz)p是正定核函数,这里 p p p是正整数, x , z ∈ R n x,z{\in}R^n x,zRn
    • 要证明正整数幂函数是正定核函数,只需证明其对应得Gram矩阵 K = [ K ( x i , x j ) ] m × m K=[K(x_i,x_j)]_{m\times m} K=[K(xi,xj)]m×m是半正定矩阵

    • 对任意 c 1 , c 2 … c m ∈ R c_1,c_2…c_m\in R c1,c2cmR,有

      ∑ i , j = 1 m c i c j K ( x i , x j ) = ∑ i , j = 1 m c i c j ( x i ⋅ x j ) p = ( ∑ i = 1 m c i x i ) ( ∑ j = 1 m c j x j ) ( x i x j ) p − 1 = ∣ ∣ ∑ i = 1 m c i x i ∣ ∣ 2 ( x i x j ) p − 1 \begin{aligned} \sum_{i,j=1}^{m}c_ic_jK(x_i,x_j)\\ =&amp;\sum_{i,j=1}^{m}c_ic_j(x_i\cdot x_j)^p\\ =&amp;(\sum_{i=1}^{m}c_ix_i)(\sum_{j=1}^{m}c_jx_j)(x_ix_j)^{p-1}\\ =&amp;||\sum_{i=1}^{m}c_ix_i||^2(x_ix_j)^{p-1} \end{aligned} i,j=1mcicjK(xi,xj)===i,j=1mcicj(xixj)p(i=1mcixi)(j=1mcjxj)(xixj)p1i=1mcixi2(xixj)p1

      • 由于p大于等于1,该式子也大于等于0,即Gram矩阵半正定,所以正整数的幂函数是正定核函数
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值