支持向量机-理论推导


支持向量机


基础部分-思维导图

1. 间隔与支持向量

1.1 几个概念

支持向量机与感知机类似,都是在样本空间中找到划分超平面,将不同类别的样本分开。在样本空间中,划分超平面可以使用线性方程进行描述:
0 = w T x + b (1.1) \begin{aligned} 0=\boldsymbol{w}^T \boldsymbol{x}+b\tag{1.1} \end{aligned} 0=wTx+b(1.1)
其中, w = [ w 1 , w 2 , . . . , w m ] \boldsymbol{w}=[w_1, w_2, ..., w_m] w=[w1,w2,...,wm]为法向量,决定了超平面的方向 b b b位移项,决定了超平面距离原点的位置

一般来说, ∣ w T x i + b ∣ | \boldsymbol{w}^T \boldsymbol{x_i}+b| wTxi+b决定了点 x i x_i xi到超平面的距离; w T x i + b \boldsymbol{w}^T \boldsymbol{x_i}+b wTxi+b y i y_i yi的符号是否一致决定了分类是否正确。

另外,做以下定义:函数间隔、几何间隔、间隔、支持向量。

1.1.1函数间隔 γ ^ \hat \gamma γ^

对于给定的训练数据集 T = [ ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x N , y N ) ] T=[(\boldsymbol{x_1}, y_1), (\boldsymbol{x_2}, y_2), ..., (\boldsymbol{x_N}, y_N)] T=[(x1,y1),(x2,y2),...,(xN,yN)]和超平面 ( w , b ) (\boldsymbol{w}, b) (w,b),定义超平面 ( w , b ) (\boldsymbol{w}, b) (w,b)关于样本点 ( x i , y i ) (\boldsymbol{x_i}, y_i) (xi,yi)的函数间隔为
γ ^ i = y i ( w T x i + b ) (1.2-1) \begin{aligned} \hat \gamma_i = y_i(\boldsymbol{w}^T \boldsymbol{x_i}+b)\tag{1.2-1} \end{aligned} γ^i=yi(wTxi+b)(1.2-1)
令:
γ ^ = min ⁡ i = 1 , 2 , . . . , N γ i (1.2-2) \begin{aligned} \hat \gamma =\min_{i=1,2,...,N} \gamma_i \tag{1.2-2} \end{aligned} γ^=i=1,2,...,Nminγi(1.2-2)

1.1.2 几何间隔 γ \gamma γ

当我们成比例的改变 w w w b b b时,函数间隔也会发生等比例的变化,因此,对分离超平面的法向量 w w w规范化,令其模长为1,使得间隔确定,此时称为几何间隔

1.1.3 支持向量

间隔 γ \gamma γ越大,说明不同类分的越开,因此可以把目标理解为:
max ⁡ w , b γ = γ ^ ∣ ∣ w ∣ ∣ s . t .   y i ( w T ⋅ x i + b ) ≥ γ ^ (1.3) \max _{w, b} \gamma=\frac{\hat \gamma}{||\boldsymbol{w}||}\\ s.t. \ y_i(\boldsymbol{w}^T·\boldsymbol{x_i}+b) \geq \hat \gamma \tag{1.3} w,bmaxγ=wγ^s.t. yi(wTxi+b)γ^(1.3)
而在公式(1.5)中, γ ^ \hat \gamma γ^为何值并不影响最后的求解,因为 γ ^ \hat \gamma γ^ w , b \boldsymbol{w},b w,b成比例变化。因此,取 γ ^ = 1 \hat \gamma=1 γ^=1
那么,若存在 x k , k = 1 , 2 , . . . , l ; l < N \boldsymbol{x_k}, k=1,2,...,l; l<N xk,k=1,2,...,l;l<N,距离超平面最近,有 y k ( w T x k + b ) = 1 y_k(\boldsymbol{w}^T \boldsymbol{x_k}+b)=1 yk(wTxk+b)=1,那么这 k k k个训练样本点被称为支持向量。其中两个异类支持向量到超平面的距离之和为: 2 γ = 2 ∣ ∣ w ∣ ∣ 2\gamma=\frac{2}{||\boldsymbol{w}||} 2γ=w2

西瓜书-122

1.2 小结

  • 其实这一部分与感知机没啥区别,就是定义了几个概念:函数间隔几何间隔支持向量
  • 观察图6.2可知,决定参数 w , b \boldsymbol{w},b w,b的其实就只有支持向量这 l l l个点,其他的点你皮任你皮,对我模型结果毫无影响。
    写了半天,没啥有用的东西。。。

2. 问题优化

2.1 确定目标

公式(1.5)就可以理解为:即要求(2只是一个系数,不用过分在意)
max ⁡ w , b 2 ∣ ∣ w ∣ ∣ ⇔ min ⁡ w , b 1 2 ∣ ∣ w ∣ ∣ 2 s . t .   y i ( w T ⋅ x i + b ) ≥ 1 (2.1) \begin{aligned} \max _{w, b} \frac{2}{||\boldsymbol{w}||} \Leftrightarrow \min _{w, b} \frac{1}{2} ||\boldsymbol{w}||^2 \\ s.t. \ y_i(\boldsymbol{w}^T·\boldsymbol{x_i}+b) \geq 1 \tag{2.1} \end{aligned} w,bmaxw2w,bmin21w2s.t. yi(wTxi+b)1(2.1)
引入拉格朗日乘子,构造拉格朗日函数,借助对偶问题(啥是对偶问题?),有:
L ( w , b , α ) = 1 2 ∣ ∣ w ∣ ∣ 2 + ∑ i = 1 N α i ( 1 − y i ( w T ⋅ x i + b ) ) (2.2) \begin{aligned} L(w,b,\alpha) = \frac{1}{2}||\boldsymbol{w}||^2+\sum_{i=1}^{N}\alpha_i (1-y_i(\boldsymbol{w}^T·\boldsymbol{x_i}+b)) \tag{2.2} \end{aligned} L(w,b,α)=21w2+i=1Nαi(1yi(wTxi+b))(2.2)
分别计算 L ( w , b , α ) L(\boldsymbol{w},b,\alpha) L(w,b,α) w w w b b b求导,并令其为 0 0 0
{ w = ∑ i = 1 N α i y i x i 0 = ∑ i = 1 N α i y i (2.3) \left\{\begin{matrix} \boldsymbol{w} =& \sum_{i=1}^{N}\alpha_i y_i \boldsymbol{x_i} \\ 0=& \sum_{i=1}^{N}\alpha_i y_i \end{matrix}\right. \tag{2.3} {w=0=i=1Nαiyixii=1Nαiyi(2.3)
将(2.3)代入(2.2),则有:
max ⁡ α L ( w , b , α ) = 1 2 ∑ i = 1 N α i y i x i ∑ j = 1 N α j y j x j + ∑ i = 1 N α i ( 1 − y i ( ∑ j = 1 N α j y j x j T ⋅ x i + b ) ) = 1 2 ∑ i = 1 N α i y i x i ∑ j = 1 N α j y j x j − ∑ i = 1 N α i y i x i ∑ j = 1 N α j y j x j + ∑ i = 1 N α i y i b + ∑ i = 1 N α i = ∑ i = 1 N α i − 1 2 ∑ i = 1 N α i y i x i ∑ j = 1 N α j y j x j = ∑ i = 1 N α i − 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j x i T x j s . t ∑ i = 1 N α i y i = 0 , α i ≥ 0 (2.4) \begin{aligned} \max _{\alpha} L(w,b,\alpha) &= \frac{1}{2} \sum_{i=1}^{N}\alpha_i y_i \boldsymbol{x_i}\sum_{j=1}^{N}\alpha_j y_j \boldsymbol{x_j} + \sum_{i=1}^{N}\alpha_i (1-y_i(\sum_{j=1}^{N}\alpha_j y_j \boldsymbol{x_j^T}·\boldsymbol{x_i}+b)) \\ &=\frac{1}{2} \sum_{i=1}^{N}\alpha_i y_i \boldsymbol{x_i}\sum_{j=1}^{N}\alpha_j y_j \boldsymbol{x_j} - \sum_{i=1}^{N}\alpha_i y_i \boldsymbol{x_i}\sum_{j=1}^{N}\alpha_j y_j \boldsymbol{x_j} + \sum_{i=1}^{N}\alpha_i y_ib+\sum_{i=1}^{N}\alpha_i \\ &=\sum_{i=1}^{N}\alpha_i - \frac{1}{2} \sum_{i=1}^{N}\alpha_i y_i \boldsymbol{x_i}\sum_{j=1}^{N}\alpha_j y_j \boldsymbol{x_j}\\ &=\sum_{i=1}^{N}\alpha_i - \frac{1}{2} \sum_{i=1}^{N}\sum_{j=1}^{N}\alpha_i \alpha_j y_i y_j \boldsymbol{x_i^T}\boldsymbol{x_j} \tag{2.4} \\ s.t \sum_{i=1}^{N} \alpha_i y_i=0, \\ \alpha_i \geq 0 \end{aligned} αmaxL(w,b,α)s.ti=1Nαiyi=0,αi0=21i=1Nαiyixij=1Nαjyjxj+i=1Nαi(1yi(j=1NαjyjxjTxi+b))=21i=1Nαiyixij=1Nαjyjxji=1Nαiyixij=1Nαjyjxj+i=1Nαiyib+i=1Nαi=i=1Nαi21i=1Nαiyixij=1Nαjyjxj=i=1Nαi21i=1Nj=1NαiαjyiyjxiTxj(2.4)

根据(啥是对偶问题?)可知,公式(2.4)的KKT条件为:
{ α i ≥ 0 1 − y i ( w T ⋅ x i + b ) ≤ 0 α i ( 1 − y i ( w T ⋅ x i + b ) ) = 0 , i = 1 , 2 , . . . , N (2.4.1) \left\{\begin{matrix} \alpha_i \geq 0 \\ 1-y_i(\boldsymbol{w}^T·\boldsymbol{x_i}+b) \leq 0 \\ \alpha_i (1-y_i(\boldsymbol{w}^T·\boldsymbol{x_i}+b)) = 0, i=1,2,...,N \end{matrix}\right. \tag{2.4.1} αi01yi(wTxi+b)0αi(1yi(wTxi+b))=0,i=1,2,...,N(2.4.1)

2.2 换个角度

求公式(2.4)的最大等价于求公式(2.5)的最小:
min ⁡ α L ( w , b , α ) = 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j x i T x j − ∑ i = 1 N α i s . t ∑ i = 1 N α i y i = 0 , α i ≥ 0 (2.5) \begin{aligned} \min_{\alpha} L(w,b,\alpha) &=\frac{1}{2} \sum_{i=1}^{N}\sum_{j=1}^{N}\alpha_i \alpha_j y_i y_j \boldsymbol{x_i^T}\boldsymbol{x_j} - \sum_{i=1}^{N}\alpha_i \tag{2.5} \\ s.t \sum_{i=1}^{N} \alpha_i y_i=0, \\ \alpha_i \geq 0 \end{aligned} αminL(w,b,α)s.ti=1Nαiyi=0,αi0=21i=1Nj=1NαiαjyiyjxiTxji=1Nαi(2.5)

接下来,如果解出每一个 α \alpha α就可以算出 w \boldsymbol{w} w。具体怎么求,稍后再说。

又因为前面提过:若存在 x k , k = 1 , 2 , . . . , l ; l < N \boldsymbol{x_k}, k=1,2,...,l; l<N xk,k=1,2,...,l;l<N,距离超平面最近,有 y k ( w T x k + b ) = 1 y_k(\boldsymbol{w}^T \boldsymbol{x_k}+b)=1 yk(wTxk+b)=1,那么这 k k k个训练样本点被称为支持向量。其中两个异类支持向量到超平面的距离之和为: 2 γ = 2 ∣ ∣ w ∣ ∣ 2\gamma=\frac{2}{||\boldsymbol{\boldsymbol{w}}||} 2γ=w2

所以,在已知了每一个 α \alpha α之后,可以计算出 w , b \boldsymbol{w}, b w,b分别为:
{ w = ∑ i = 1 N α i y i x i b = y k − w T x k (2.6) \left\{\begin{matrix} \boldsymbol{w} =& \sum_{i=1}^{N}\alpha_i y_i \boldsymbol{x_i} \\ b =& y_k-\boldsymbol{w}^T\boldsymbol{x_k} \end{matrix}\right. \tag{2.6} {w=b=i=1NαiyixiykwTxk(2.6)
其中 x k \boldsymbol{x_k} xk支持向量样本中的任意一个值。为了保持鲁棒性, b b b使用所有支持向量计算其均值,因此:
{ w = ∑ i = 1 N α i y i x i b = 1 l ∑ k = 1 l ( y k − w T x k ) (2.7) \left\{\begin{matrix} \boldsymbol{w} =& \sum_{i=1}^{N}\alpha_i y_i \boldsymbol{x_i} \\ b =& \frac{1}{l}\sum_{k=1}^{l} (y_k-\boldsymbol{w}^T\boldsymbol{x_k}) \end{matrix}\right. \tag{2.7} {w=b=i=1Nαiyixil1k=1l(ykwTxk)(2.7)
其中, N N N样本空间的大小, l l l为所有支持向量组成的样本空间大小, w \boldsymbol{w} w是一个 1 ∗ d 1*d 1d维的向量。

留疑!!!

  • 问题1:到目前为止,计算出的 w \boldsymbol{w} w b b b都没有体现:
    决定参数 w , b \boldsymbol{w},b w,b的其实就只有支持向量这 l l l个点,其他的点你皮任你皮,对我模型结果毫无影响。
    的合理性,不知道最后算法计算后的 α \alpha α结果是不是能体现。。。
  • 问题2:西瓜书中的 b b b的计算,个人感觉西瓜书125页公式(6.17)是有点奇怪的。书中的 w \boldsymbol{w} w是在整个样本空间上计算得出的(这个没问题),但是 b b b却通过支持向量计算得出的 w \boldsymbol{w} w代入公式(2.6)计算得出。
    西瓜书-125页

满肚子的疑问,我很心塞。。。

解答:

  • 问题1:记 α = ( α 1 , α 2 , . . . , α N ) \boldsymbol{\alpha}=(\alpha_1, \alpha_2, ..., \alpha_N) α=(α1,α2,...,αN)为最后的计算结果,在这个计算结果中,一定有一个值(记为 α k ′ \alpha_{k'} αk)满足 α k ′ > 0 \alpha_{k'}>0 αk>0,而且有其所对应的 ( x k ′ , y k ′ ) (\boldsymbol{x_{k'}}, y_{k'}) (xk,yk)正好满足 y k ′ ( w T x k ′ + b ) = 1 y_{k'}(\boldsymbol{w}^T \boldsymbol{x_{k'}}+b)=1 yk(wTxk+b)=1
    1. 为什么一定有一个 α k ′ > 0 \alpha_{k'}>0 αk>0?
      反证法:假设 α = 0 \boldsymbol{\alpha}=\boldsymbol{0} α=0,那么根据公式(2.6),有 w = 0 \boldsymbol{w}=\boldsymbol{0} w=0,在拉格朗日乘子、KKT条件与对偶问题中提到过,如果拉格朗日乘子为0,说明所有的点都在限制条件所构成函数边界的内部,也就不存在什么支持向量了。所以,一定有一个 α k ′ > 0 \alpha_{k'}>0 αk>0
    2. 为什么 y k ′ ( w T x k ′ + b ) = 1 y_{k'}(\boldsymbol{w}^T \boldsymbol{x_{k'}}+b)=1 yk(wTxk+b)=1
      KKT的互补条件(公式2.4.1): α i ( 1 − y i ( w T x i + b ) ) = 0 \alpha_i(1-y_i(\boldsymbol{w}^T \boldsymbol{x_i}+b))=0 αi(1yi(wTxi+b))=0,那么,在 α k ′ > 0 \alpha_{k'}>0 αk>0的情况下,要满足条件,只能有 y k ′ ( w T x k ′ + b ) = 1 y_{k'}(\boldsymbol{w}^T \boldsymbol{x_{k'}}+b)=1 yk(wTxk+b)=1。这不就是支持向量吗!!!
  • 问题2:《统计学习方法》里面是整个样本空间,不是支持向量构成的样本空间,而且西瓜书里没交代 m m m是什么鬼,所以单方面宣布是笔误好了qwq。
    贼吉儿开心~~~

3. 线性支持向量机和软间隔最大化

3.1 线性支持向量机

训练集中总有数据(记为 ( x u , y u ) (\boldsymbol{x_u}, y_u) (xu,yu))不能满足 y u ( w T x u + b ) ≥ 1 y_u(\boldsymbol{w}^T \boldsymbol{x_u}+b) \geq 1 yu(wTxu+b)1这个条件(红圈中的点),删又不能删,只好帮他一把,修改一下底线,引入松弛变量 ξ ≥ 0 \xi \geq 0 ξ0。这种修改底线的做法,叫做软间隔,原先叫做硬间隔

这样,就有了:线性支持向量机(我要吐槽一句,不知道谁取的名字,误导性炒鸡强,人家本意原来是:数据集为线性不可分时的线性支持向量机。。。
找事……

为了使软间隔最大化,限制条件变为:
  y i ( w T ⋅ x i + b ) ≥ 1 − ξ i (3.1) \begin{aligned} \ y_i(\boldsymbol{w}^T·\boldsymbol{x_i}+b) \geq 1-\xi_i \tag{3.1} \end{aligned}  yi(wTxi+b)1ξi(3.1)

目标函数变为,

min ⁡ w , b 1 2 ∣ ∣ w ∣ ∣ 2 + C ∑ i = 1 N ξ i s . t .   y i ( w T ⋅ x i + b ) ≥ 1 − ξ i , i = 1 , 2 , . . . , N ξ i ≥ 0 , i = 1 , 2 , . . . , N (3.2) \begin{aligned} &\min _{w, b} \frac{1}{2} ||\boldsymbol{w}||^2 + C\sum_{i=1}^{N}\xi_i\\ s.t. &\ y_i(\boldsymbol{w}^T·\boldsymbol{x_i}+b) \geq 1-\xi_i, i=1,2,...,N \\ &\xi_i \geq 0, i=1,2,...,N \tag{3.2} \end{aligned} s.t.w,bmin21w2+Ci=1Nξi yi(wTxi+b)1ξi,i=1,2,...,Nξi0,i=1,2,...,N(3.2)

其中,这里, C > 0 C>0 C>0称为惩罚参数,一般由应用问题决定, C C C值大时对误分类的惩罚增大, C C C值小时对误分类的惩罚减小。最小化目标函数(1.2)包含两层含义:

  • 1 2 ∣ ∣ w ∣ ∣ \frac{1}{2}||\boldsymbol{w}|| 21w尽量小,即间隔尽量大。
  • 使误分类点的个数尽量小,C是调和二者的系数。

3.2 确定目标

引入拉格朗日乘子,构造朗格朗日函数:
L ( w , b , ξ , α , μ ) = 1 2 ∣ ∣ w ∣ ∣ 2 + C ∑ i = 1 N ξ i − ∑ i = 1 N α i ( y i ( w T ⋅ x i + b ) − 1 + ξ i ) − ∑ i = 1 N μ i ξ i (3.3) \begin{aligned} L(\boldsymbol{w}, b, \xi, \alpha, \mu) = \frac{1}{2}||\boldsymbol{w}||^2 + C\sum_{i=1}^{N}\xi_i - \sum_{i=1}^{N} \alpha_i (y_i(\boldsymbol{w}^T·\boldsymbol{x_i}+b)-1+\xi_i) - \sum_{i=1}^{N} \mu_i \xi_i\tag{3.3} \end{aligned} L(w,b,ξ,α,μ)=21w2+Ci=1Nξii=1Nαi(yi(wTxi+b)1+ξi)i=1Nμiξi(3.3)
公式(3.3)分别对 w , b , ξ \boldsymbol{w}, b, \xi w,b,ξ 求导:
{ ▽ w L ( w , b , ξ , α , μ ) = w − ∑ i = 1 N α i y i x i ▽ b L ( w , b , ξ , α , μ ) = ∑ i = 1 N α i y i ▽ ξ i L ( w , b , ξ , α , μ ) = C − α i − μ i (3.4) \left\{\begin{matrix} \triangledown_{\boldsymbol{w}}L(\boldsymbol{w}, b, \xi, \alpha, \mu) =& \boldsymbol{w} - \sum_{i=1}^{N} \alpha_i y_i \boldsymbol{x_i} \\ \triangledown_{b}L(\boldsymbol{w}, b, \xi, \alpha, \mu) =& \sum_{i=1}^{N}\alpha_i y_i \\ \triangledown_{\xi_i}L(\boldsymbol{w}, b, \xi, \alpha, \mu) =& C-\alpha_i-\mu_i \\ \end{matrix}\right. \tag{3.4} wL(w,b,ξ,α,μ)=bL(w,b,ξ,α,μ)=ξiL(w,b,ξ,α,μ)=wi=1Nαiyixii=1NαiyiCαiμi(3.4)
令(3.4)中三式均为0,代入公式(3.3)中有:
min ⁡ α L ( w , b , α ) = 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j x i T x j − ∑ i = 1 N α i s . t . ∑ i = 1 N α i y i = 0 , C − α i − μ i = 0 , α i ≥ 0 , μ i ≥ 0 , i = 1 , 2 , . . . , N (3.5) \begin{aligned} \min_{\alpha} L(w,b,\alpha) &=\frac{1}{2} \sum_{i=1}^{N}\sum_{j=1}^{N}\alpha_i \alpha_j y_i y_j \boldsymbol{x_i^T}\boldsymbol{x_j} - \sum_{i=1}^{N}\alpha_i \tag{3.5} \\ s.t. &\sum_{i=1}^{N} \alpha_i y_i=0, \\ & C-\alpha_i-\mu_i=0, \\ &\alpha_i \geq 0, \\ &\mu_i \geq 0, i=1,2,...,N \end{aligned} αminL(w,b,α)s.t.=21i=1Nj=1NαiαjyiyjxiTxji=1Nαii=1Nαiyi=0,Cαiμi=0,αi0,μi0,i=1,2,...,N(3.5)

因为我们的重点是求 α \alpha α,所以对 α \alpha α的限制条件越多越好,所以公式(3.5)又可以写成
min ⁡ α L ( w , b , α ) = 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j x i T x j − ∑ i = 1 N α i s . t . ∑ i = 1 N α i y i = 0 , C ≥ α i ≥ 0 , i = 1 , 2 , . . . , N (3.6) \begin{aligned} \min_{\alpha} L(w,b,\alpha) &=\frac{1}{2} \sum_{i=1}^{N}\sum_{j=1}^{N}\alpha_i \alpha_j y_i y_j \boldsymbol{x_i^T}\boldsymbol{x_j} - \sum_{i=1}^{N}\alpha_i \tag{3.6}\\ s.t. &\sum_{i=1}^{N} \alpha_i y_i=0, \\ & C \geq \alpha_i \geq 0, i=1,2,...,N \end{aligned} αminL(w,b,α)s.t.=21i=1Nj=1NαiαjyiyjxiTxji=1Nαii=1Nαiyi=0,Cαi0,i=1,2,...,N(3.6)

3.3 线性支持向量机的支持向量

在下图中,分离超平面由实线表示,间隔边界由虚线表示,正例点由“。”表示,负例点由“×”表示。
操碎了心啊……

留疑!!!
abcd这些点与 α i \alpha_i αi之间的对应状态是怎样的?

解答
先看看公式(2.2)和公式(3.3):
L ( w , b , α ) = 1 2 ∣ ∣ w ∣ ∣ 2 + ∑ i = 1 N α i ( 1 − y i ( w T ⋅ x i + b ) ) = 1 2 ∣ ∣ w ∣ ∣ 2 − ∑ i = 1 N α i y i ( w T ⋅ x i + b ) + ∑ i = 1 N α i (2.2) \begin{aligned} L(w,b,\alpha) =& \frac{1}{2}||\boldsymbol{w}||^2 + \sum_{i=1}^{N}\alpha_i (1-y_i(\boldsymbol{w}^T·\boldsymbol{x_i}+b)) \\ =& \frac{1}{2}||\boldsymbol{w}||^2 - \sum_{i=1}^{N}\alpha_iy_i(\boldsymbol{w}^T·\boldsymbol{x_i}+b) + \sum_{i=1}^{N}\alpha_i \tag{2.2} \end{aligned} L(w,b,α)==21w2+i=1Nαi(1yi(wTxi+b))21w2i=1Nαiyi(wTxi+b)+i=1Nαi(2.2)
L ( w , b , ξ , α , μ ) = 1 2 ∣ ∣ w ∣ ∣ 2 + C ∑ i = 1 N ξ i − ∑ i = 1 N α i ( y i ( w T ⋅ x i + b ) − 1 + ξ i ) − ∑ i = 1 N μ i ξ i = 1 2 ∣ ∣ w ∣ ∣ 2 − ∑ i = 1 N α i y i ( w T ⋅ x i + b ) + ∑ i = 1 N α i + ( C − α i − μ i ) ∑ i = 1 N ξ i (3.3) \begin{aligned} L(\boldsymbol{w}, b, \xi, \alpha, \mu) =& \frac{1}{2}||\boldsymbol{w}||^2 + C\sum_{i=1}^{N}\xi_i - \sum_{i=1}^{N} \alpha_i (y_i(\boldsymbol{w}^T·\boldsymbol{x_i}+b)-1+\xi_i) - \sum_{i=1}^{N} \mu_i \xi_i \\ =&\frac{1}{2}||\boldsymbol{w}||^2-\sum_{i=1}^{N} \alpha_i y_i(\boldsymbol{w}^T·\boldsymbol{x_i}+b)+\sum_{i=1}^{N} \alpha_i+(C-\alpha_i-\mu_i)\sum_{i=1}^{N}\xi_i \tag{3.3} \end{aligned} L(w,b,ξ,α,μ)==21w2+Ci=1Nξii=1Nαi(yi(wTxi+b)1+ξi)i=1Nμiξi21w2i=1Nαiyi(wTxi+b)+i=1Nαi+(Cαiμi)i=1Nξi(3.3)
其KKT条件为:
{ α i ≥ 0 , μ i ≥ 0 y i ( w T ⋅ x i + b ) − 1 + ξ i ≥ 0 α i ( y i ( w T ⋅ x i + b ) − 1 + ξ i ) = 0 ξ i ≥ 0 , μ i ξ i = 0 \left\{\begin{matrix} \alpha_i \geq 0, \mu_i \geq 0 \\ y_i(\boldsymbol{w}^T·\boldsymbol{x_i}+b)-1+\xi_i \geq 0\\ \alpha_i(y_i(\boldsymbol{w}^T·\boldsymbol{x_i}+b)-1+\xi_i) = 0 \\ \xi_i \geq 0,\mu_i \xi_i=0 \end{matrix}\right. αi0,μi0yi(wTxi+b)1+ξi0αi(yi(wTxi+b)1+ξi)=0ξi0,μiξi=0
根据(啥是对偶问题?)可知:

  • α = 0 \alpha=0 α=0则点不会对 ( w T ⋅ x i + b ) (\boldsymbol{w}^T·\boldsymbol{x_i}+b) (wTxi+b)有影响,故而是大部分远离支持向量且正确分类的点,有 y i ( w T ⋅ x i + b ) > 1 − ξ i y_i(\boldsymbol{w}^T·\boldsymbol{x_i}+b) > 1-\xi_i yi(wTxi+b)>1ξi
  • α > 0 \alpha>0 α>0,则说明必有 y i ( w T ⋅ x i + b ) = 1 − ξ i y_i(\boldsymbol{w}^T·\boldsymbol{x_i}+b)=1-\xi_i yi(wTxi+b)=1ξi
    • C > α > 0 C>\alpha>0 C>α>0,因为 C = α i + μ i C=\alpha_i+\mu_i C=αi+μi,所以 μ i > 0 \mu_i>0 μi>0,则 ξ i = 0 \xi_i=0 ξi=0,此时为支持向量,如b点。
    • C = α C=\alpha C=α,因为 C = α i + μ i C=\alpha_i+\mu_i C=αi+μi,所以 μ i = 0 \mu_i=0 μi=0,则有:
      • 1 ≥ ξ i > 0 1\geq \xi_i>0 1ξi>0,此时落在最大间隔内部,如c点。
      • ξ i > 1 \xi_i>1 ξi>1,此时误分类,如a,d点。

4. 核技巧

4.1 核技巧之劳动改造

上面的数据集都有一个要求:那就是数据集线性可分,再不济也要基本可分(即大部分的点要线性可分),但是,如果数据集超出了容忍的底线怎么办?比如过像这样,下图这类数据集就GG了。
啊怪物!!!

对于这种不听话的数据集,我们需要对其进行改造:具体咋改造呢?请参见核技巧。改造之后的数据集如何使用呢?观察到在公式(3.6)中,
min ⁡ α L ( w , b , α ) = 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j x i T x j − ∑ i = 1 N α i s . t . ∑ i = 1 N α i y i = 0 , C ≥ α i ≥ 0 , i = 1 , 2 , . . . , N (3.6) \begin{aligned} \min_{\alpha} L(w,b,\alpha) &=\frac{1}{2} \sum_{i=1}^{N}\sum_{j=1}^{N}\alpha_i \alpha_j y_i y_j \boldsymbol{x_i^T}\boldsymbol{x_j} - \sum_{i=1}^{N}\alpha_i \tag{3.6} \\ s.t. &\sum_{i=1}^{N} \alpha_i y_i=0,\\ & C \geq \alpha_i \geq 0, i=1,2,...,N \end{aligned} αminL(w,b,α)s.t.=21i=1Nj=1NαiαjyiyjxiTxji=1Nαii=1Nαiyi=0,Cαi0,i=1,2,...,N(3.6)
只涉及输入实例与实例之间的内积。因此,可以用使用核函数 K ( x i , x j ) = ( ϕ ( x i ) , ϕ ( x j ) ) K(x_i,x_j)=(\phi(x_i),\phi(x_j)) K(xi,xj)=(ϕ(xi),ϕ(xj))代替,此时,公式(3.6)变为
min ⁡ α L ( w , b , α ) = 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 , C ≥ α i ≥ 0 , i = 1 , 2 , . . . , N (4.1) \begin{aligned} \min_{\alpha} L(w,b,\alpha) &=\frac{1}{2} \sum_{i=1}^{N}\sum_{j=1}^{N}\alpha_i \alpha_j y_i y_j K(\boldsymbol{x_i}, \boldsymbol{x_j}) - \sum_{i=1}^{N}\alpha_i \tag{4.1} \\ s.t. &\sum_{i=1}^{N} \alpha_i y_i=0, \\ & C \geq \alpha_i \geq 0, i=1,2,...,N \end{aligned} αminL(w,b,α)s.t.=21i=1Nj=1NαiαjyiyjK(xi,xj)i=1Nαii=1Nαiyi=0,Cαi0,i=1,2,...,N(4.1)

这样,经过映射函数将原来的输入空间变换到一个新的特征空间,将输入空间中的内积 ( x i T ⋅ x j ) (\boldsymbol{x_i^T}·\boldsymbol{x_j}) (xiTxj),变换为特征空间中的内积 K ( x i , x j ) K(\boldsymbol{x_i}, \boldsymbol{x_j}) K(xi,xj),在新的特征空间里从训练样本中学习线性支持向量机。当映射函数是非线性函数时,学习到的含有核函数的支持向量机是非线性分类模型。

4.2 核技巧之重返社会

牛皮牛皮!


5. 问题求解

观察公式(2.5)和公式(4.1),可知,该问题是一个二次规划问题1,使用Sequential Minimal Optimization(SMO)算法求解。

5.1 SMO基本思路

先固定除了 α u 1 \alpha_{u_1} αu1之外的所有参数值,求 α u 1 \alpha_{u_1} αu1上的极值,由于有 ∑ i = 1 N α i y i = 0 \sum_{i=1}^{N} \alpha_i y_i=0 i=1Nαiyi=0的约束条件,因此,另一个参数值 α u 2 \alpha_{u_2} αu2也可以用 α u 1 \alpha_{u_1} αu1表示,因此,SMO方法一次可以优化两个参数 α u 1 \alpha_{u_1} αu1 α u 2 \alpha_{u_2} αu2,并固定其他参数。

5.2 基本流程:

  • 选取一对待更新的变量 α u 1 \alpha_{u_1} αu1 α u 2 \alpha_{u_2} αu2
  • 固定 α u 1 \alpha_{u_1} αu1 α u 2 \alpha_{u_2} αu2之外的所有变量,求解公式(3.7)。

书上的简单例题。

统计学习方法——例题P107

为什么你们把SMO说的那么简单。。。


6. 小结

线性支持向量机的算法总结流程图如下:
统计学习方法


7. 参考文献

《统计学习方法》
《西瓜书》


  1. 注脚——凸二次规划问题:
    李航-统计学习方法
    仿射函数即由 1 阶多项式构成的函数,一般形式为 f ( x ) = A T x + b f(x)=\boldsymbol{A^Tx+b} f(x)=ATx+b,这里, A \boldsymbol{A} A是一个 m × k m×k m×k 矩阵, x \boldsymbol{x} x 是一个 k k k维向量, b \boldsymbol{b} b是一个 m m m维向量,实际上反映了一种从 k k k维到 m m m维的空间映射关系。 ↩︎

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
支持向量机(SVM,Support Vector Machine)是一种监督学习模型,特别适合于分类和回归分析。其核心思想是找到最优超平面,这个超平面可以最大化样本点到它两边的距离,也就是所谓的间隔(Margin)。对于线性不可分的数据,SVM通过核函数将数据映射到高维空间,在那里寻找一个能够最好分开两类数据的超平面。 SVM的具体算法理论推导涉及以下几个关键步骤: 1. **优化问题**: SVM的目标函数通常是最大化间隔,即找到使得分类错误最少的支持向量(Margin),同时最小化模型的复杂度。数学上表现为求解一个凸二次规划问题: \[ \min_{\mathbf{w}, b} \frac{1}{2}\|\mathbf{w}\|^2 + C \sum_i \xi_i \] 其中,$\mathbf{w}$是权重向量,$b$是偏置,$\xi_i$是松弛变量(允许一些样本点落在错误的一边),$C$是惩罚系数控制过拟合。 2. **拉格朗日乘数法**: 为了求解这个问题,通常会引入拉格朗日乘数$\alpha_i$,然后转化为拉格朗日函数的极值问题。通过KKT条件(Karush-Kuhn-Tucker conditions),我们得到对偶问题,这是一个更简单的形式: \[ \max_{\boldsymbol{\alpha}} \quad \sum_i \alpha_i - \frac{1}{2}\sum_{i,j} y_i y_j \alpha_i \alpha_j K(\mathbf{x}_i, \mathbf{x}_j) \] 这里$K(\cdot, \cdot)$是内积在特征空间的表示,也称为核函数。 3. **最大间隔分类**: 最终,决策边界由$\mathbf{w}$给出,可以用以下公式表示: \[ f(\mathbf{x}) = sign(\sum_i \alpha_i y_i K(\mathbf{x}_i, \mathbf{x}) + b) \] 4. **核技巧(Kernel Trick)**: 当数据非线性可分时,SVM可以通过选择适当的核函数(如线性、多项式、径向基函数RBF等)避免显式地计算高维特征,简化计算。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值