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

支持向量机

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}

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

KKT 条件

  • KKT条件是该最优化问题的充分必要条件
  • 简单来说,约束最优化问题包含 0 \leqslant0 ,和 = 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}
  • 引入广义拉格朗日函数

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)

  • 在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
  • 前面三个条件是由解析函数的知识,对于各个变量的偏导数为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}

Part I

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

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. 线性等式约束
  2. 边界约束
  • 根据简单的线性规划可以得出等式约束使得 ( α 1 , α 2 ) (\alpha_1,\alpha_2) 在平行于盒子 [ 0 , C ] × [ 0 , C ] [0,C]\times [0,C] 的对角线的直线上

在这里插入图片描述

  • 首先求沿着约束方向未经剪辑,即不考虑约束 0 α i C 0\leqslant\alpha_i\leqslant C α 2 \alpha_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
    E i E_i 为函数 g ( x ) g(x) 对输入的预测值与真实输出 y i y_i 的差

Part II

  • 变量的选择方法
  1. 第一个变量 α 1 \alpha_1 外层循环,寻找违反KKT条件最严重的样本点
  2. 第二个变量 α 2 \alpha_2 内层循环,希望能使 α 2 \alpha_2 有足够大的变化
  3. 计算阈值 b b 和差值 E i E_i

输入:训练数据集 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)} ,其中 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 ,精度 ϵ \epsilon

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

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

  2. 选取优化变量 α 1 ( k ) , α 2 ( k ) \alpha_1^{(k)},\alpha_2^{(k)} ,解析求解两个变量的最优化问题,求得最优解 α 1 ( k + 1 ) , α 2 ( k + 1 ) \alpha_1^{(k+1)},\alpha_2^{(k+1)} ,更新 α \alpha α k + 1 \alpha^{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 < α i < 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<\alpha_i<C\}\\ \leqslant1,\{x_i|\alpha_i=C\} \end{cases}\\ g(x_i)=\sum_{j=1}^{N}\alpha_jy_jK(x_j,x_i)+b
    则转4,否则, k = k + 1 k=k+1 转2

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

习题解答

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

    • 感知机的对偶形式
      f ( x ) = s i g n ( j = 1 N α j y j x j x + b ) , α = ( α 1 , α 2 ,   , α 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 ) = s i g n ( i = 1 N α i y i x i x + b ) , α = ( α 1 , α 2 ,   , α 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
      感知机学习算法的原始形式和对偶形式与线性可分支持向量机学习算法的原始形式和对偶形式相对应。在线性可分支持向量机的对偶形式中, w w 也是被表示为实例 x i x_i 和标记 y i y_i 的线性组合的形式
      w = i = 1 N α i y i x i w=\sum_{i=1}^{N}\alpha_iy_ix_i
      而它们的偏置 b b 的形式不同,前者 b = i = 1 N α i y i b=\sum_{i=1}^{N}\alpha_iy_i ,而后者 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)
  • 2.已知正例点 x 1 = ( 1 , 2 ) T x_1=(1,2)^T x 2 = ( 2 , 3 ) T x_2=(2,3)^T x 3 = ( 3 , 3 ) T x_3=(3,3)^T ,负例点 x 4 = ( 2 , 1 ) T x_4=(2,1)^T x 5 = ( 3 , 2 ) T x_5=(3,2)^T
    试求最大间隔分离超平面和分类决策函数,并在图上画出分离超平面、间隔边界及支持向量

    • 根据书中算法,计算可得 w 1 = 1 w_1=-1 , w 2 = 2 w_2=2 , b = 2 b=-2 ,即最大间隔分离超平面为
      x ( 1 ) + 2 x ( 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)
      在这里插入图片描述
  • 3.线性支持向量机还可以定义为以下形式:

min w , b , ξ 1 2 w 2 + C i = 1 N ξ i 2 s . t . y i ( w x i + b ) 1 ξ i ,   i = 1 , 2 ,   , N ξ i 0 ,   i = 1 , 2 ,   , 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
试求其对偶形式

  • 首先求得原始化最优问题的拉格朗日函数是:
    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 , α , ξ , μ ) L(w,b,\alpha,\xi,μ) w , b , ξ w,b,\xi 的极小,即对该三项求偏导,得
    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
    将上述带入拉格朗日函数,得
    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
  • 4.证明内积的正整数幂函数 K ( x , z ) = ( x z ) p K(x,z)=(x{\cdot}z)^p 是正定核函数,这里 p p 是正整数, x , z R n x,z{\in}R^n
    • 要证明正整数幂函数是正定核函数,只需证明其对应得Gram矩阵 K = [ K ( x i , x j ) ] m × m K=[K(x_i,x_j)]_{m\times m} 是半正定矩阵

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

      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)\\ =&\sum_{i,j=1}^{m}c_ic_j(x_i\cdot x_j)^p\\ =&(\sum_{i=1}^{m}c_ix_i)(\sum_{j=1}^{m}c_jx_j)(x_ix_j)^{p-1}\\ =&||\sum_{i=1}^{m}c_ix_i||^2(x_ix_j)^{p-1} \end{aligned}

      • 由于p大于等于1,该式子也大于等于0,即Gram矩阵半正定,所以正整数的幂函数是正定核函数
发布了135 篇原创文章 · 获赞 490 · 访问量 6万+

猜你喜欢

转载自blog.csdn.net/lyc44813418/article/details/93852287