百面机器学习 #3 经典算法:01-2 不完全线性可分(软间隔)支撑向量机SVM


假设训练数据集不是线性可分的。通常情况是,训练数据中有一些特异点(outlier),将这些特异点除去后,剩下大部分的样本点组成的集合是线性可分的。

①从原问题到对偶问题

  • 对每个样本点 ( x i , y i ) (x_i,y_i) (xi,yi) 引进一个松弛变量,使函数间隔加上松弛变量大于等于1。约束条件变为
    y i ( w ⋅ x i + b ) ≥ 1 − ξ i , i = 1 , 2 , . . . , N y_i(w\cdot x_i +b)\ge1-\xi_i,\quad i =1,2,...,N yi(wxi+b)1ξi,i=1,2,...,N
    同时,对每个松弛变量,支付一个代价,原优化问题变为凸二次规划(convex quadratic programming)问题:
    min ⁡ w , b , ξ 1 2 ∥ w ∥ 2 + C ∑ i = 1 N ξ i  s.t.  y i ( w ⋅ x i + b ) ⩾ 1 − ξ i , i = 1 , 2 , ⋯   , N ξ i ⩾ 0 , i = 1 , 2 , ⋯   , N \begin{array}{ll} \min \limits_{w, b, \xi} & \frac{1}{2}\|w\|^{2}+C \sum_{i=1}^{N} \xi_{i} \\ \text { s.t. } & y_{i}\left(w \cdot x_{i}+b\right) \geqslant 1-\xi_{i}, \quad i=1,2, \cdots, N \\ & \xi_{i} \geqslant 0, \quad i=1,2, \cdots, N \end{array} w,b,ξmin s.t. 21w2+Ci=1Nξiyi(wxi+b)1ξi,i=1,2,,Nξi0,i=1,2,,N
    C 称为惩罚参数,一般由应用问题决定,C 值大时对误分类的惩罚增大,C值小时对误分类的惩罚减小。最小化目标函数包含两层含义:使 1 2 ∣ ∣ w ∣ ∣ 2 \frac{1}{2}||w||^2 21w2 尽量小即间隔尽量大,同时使误分类点的个数尽量小,C 是调和二者的系数。

  • 原始最优化问题的拉格朗日函数是
    L ( w , b , ξ , α , μ ) ≡ 1 2 ∥ w ∥ 2 + C ∑ i = 1 N ξ i − ∑ i = 1 N α i ( y i ( w ⋅ x i + b ) − 1 + ξ i ) − ∑ i = 1 N μ i ξ i L(w, b, \xi, \alpha, \mu) \equiv \frac{1}{2}\|w\|^{2}+C \sum_{i=1}^{N} \xi_{i}-\sum_{i=1}^{N} \alpha_{i}\left(y_{i}\left(w \cdot x_{i}+b\right)-1+\xi_{i}\right)-\sum_{i=1}^{N} \mu_{i} \xi_{i} L(w,b,ξ,α,μ)21w2+Ci=1Nξii=1Nαi(yi(wxi+b)1+ξi)i=1Nμiξi
    其中 α i ≥ 0 , μ i ≥ 0 \alpha_i\ge0,\mu_i\ge0 αi0,μi0

②对偶问题的解的形式化简

现在我们要解的原问题的变量从两个 w , b w,b w,b变成了三个 w , b , ξ w,b,\xi w,b,ξ,同样原始问题等价于对拉格朗日函数的min-max问题,对偶问题是拉格朗日函数的max-min问题,其中min针对问题变量,max针对约束参数。对偶问题的内层min问题,对问题变量求导有
∇ w L ( w , b , ξ , α , μ ) = w − ∑ i = 1 N α i y i x i = 0 ∇ b L ( w , b , ξ , α , μ ) = − ∑ i = 1 N α i y i = 0 ∇ ξ i L ( w , b , ξ , α , μ ) = C − α i − μ i = 0 \begin{array}{l} \nabla_{w} L(w, b, \xi, \alpha, \mu)=w-\sum_{i=1}^{N} \alpha_{i} y_{i} x_{i}=0 \\ \nabla_{b} L(w, b, \xi, \alpha, \mu)=-\sum_{i=1}^{N} \alpha_{i} y_{i}=0 \\ \nabla_{\xi_{i}} L(w, b, \xi, \alpha, \mu)=C-\alpha_{i}-\mu_{i}=0 \end{array} wL(w,b,ξ,α,μ)=wi=1Nαiyixi=0bL(w,b,ξ,α,μ)=i=1Nαiyi=0ξiL(w,b,ξ,α,μ)=Cαiμi=0
化简得
w = ∑ i = 1 N α i y i x i ∑ i = 1 N α i y i = 0 C − α i − μ i = 0 \begin{array}{c} w=\sum_{i=1}^{N} \alpha_{i} y_{i} x_{i} \\ \sum_{i=1}^{N} \alpha_{i} y_{i}=0 \\ C-\alpha_{i}-\mu_{i}=0 \end{array} w=i=1Nαiyixii=1Nαiyi=0Cαiμi=0
代回拉格朗日函数,得到对偶问题:
max ⁡ α − 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j ( x i ⋅ 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 \begin{array}{ll} \max \limits_{\alpha} & -\frac{1}{2} \sum_{i=1}^{N} \sum_{j=1}^{N} \alpha_{i} \alpha_{j} y_{i} y_{j}\left(x_{i} \cdot x_{j}\right)+\sum_{i=1}^{N} \alpha_{i} \\ \text { s.t. } & \sum_{i=1}^{N} \alpha_{i} y_{i}=0 \\ & C-\alpha_{i}-\mu_{i}=0 \\ & \alpha_{i} \geqslant 0 \\ & \mu_{i} \geqslant 0, \quad i=1,2, \cdots, N \end{array} αmax s.t. 21i=1Nj=1Nαiαjyiyj(xixj)+i=1Nαii=1Nαiyi=0Cαiμi=0αi0μi0,i=1,2,,N
再将对目标函数求极大转换为求极小,消去变量 μ i \mu_i μi,得到对偶问题如下,可以看到只是约束参数 α i \alpha_i αi的范围多了一个C
min ⁡ α 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j ( 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{array}{ll} \min \limits_{\alpha} & \frac{1}{2} \sum_{i=1}^{N} \sum_{j=1}^{N} \alpha_{i} \alpha_{j} y_{i} y_{j}\left(x_{i} \cdot x_{j}\right)-\sum_{i=1}^{N} \alpha_{i} \\ \text { s.t. } & \sum_{i=1}^{N} \alpha_{i} y_{i}=0 \\ & 0 \leqslant \alpha_{i} \leqslant C, \quad i=1,2, \cdots, N \end{array} αmin s.t. 21i=1Nj=1Nαiαjyiyj(xixj)i=1Nαii=1Nαiyi=00αiC,i=1,2,,N
可以通过求解对偶问题而得到原始问题的解,进而确定分离超平面和决策函数。

③从对偶问题的解到原问题的解

假设对偶问题的解 α ∗ \alpha^* α已经知道,(对原问题)用KKT条件得
∇ w L ( w ∗ , b ∗ , ξ ∗ , α ∗ , μ ∗ ) = w ∗ − ∑ i = 1 N α i ∗ y i x i = 0 ∇ b L ( w ∗ , b ∗ , ξ ∗ , α ∗ , μ ∗ ) = − ∑ i = 1 N α i ∗ y i = 0 ∇ ξ L ( w ∗ , b ∗ , ξ ∗ , α ∗ , μ ∗ ) = C − α ∗ − μ ∗ = 0 α i ∗ ( y i ( w ∗ ⋅ x i + b ∗ ) − 1 + ξ i ∗ ) = 0 μ i ∗ ξ i ∗ = 0 y i ( w ∗ ⋅ x i + b ∗ ) − 1 + ξ i ∗ ⩾ 0 ξ i ∗ ⩾ 0 α i ∗ ⩾ 0 μ i ∗ ⩾ 0 , i = 1 , 2 , ⋯   , N \begin{array}{l} \nabla_{w} L\left(w^{*}, b^{*}, \xi^{*}, \alpha^{*}, \mu^{*}\right)=w^{*}-\sum_{i=1}^{N} \alpha_{i}^{*} y_{i} x_{i}=0 \\ \nabla_{b} L\left(w^{*}, b^{*}, \xi^{*}, \alpha^{*}, \mu^{*}\right)=-\sum_{i=1}^{N} \alpha_{i}^{*} y_{i}=0 \\ \nabla_{\xi} L\left(w^{*}, b^{*}, \xi^{*}, \alpha^{*}, \mu^{*}\right)=C-\alpha^{*}-\mu^{*}=0 \\ \alpha_{i}^{*}\left(y_{i}\left(w^{*} \cdot x_{i}+b^{*}\right)-1+\xi_{i}^{*}\right)=0 \\ \mu_{i}^{*} \xi_{i}^{*}=0 y_{i}\left(w^{*} \cdot x_{i}+b^{*}\right)-1+\xi_{i}^{*} \geqslant 0 \\ \xi_{i}^{*} \geqslant 0 \\ \alpha_{i}^{*} \geqslant 0 \\ \mu_{i}^{*} \geqslant 0, \quad i=1,2, \cdots, N \end{array} wL(w,b,ξ,α,μ)=wi=1Nαiyixi=0bL(w,b,ξ,α,μ)=i=1Nαiyi=0ξL(w,b,ξ,α,μ)=Cαμ=0αi(yi(wxi+b)1+ξi)=0μiξi=0yi(wxi+b)1+ξi0ξi0αi0μi0,i=1,2,,N
第一个式子容易得到
w ∗ = ∑ i = 1 N α i ∗ y i x i w^{*}=\sum_{i=1}^{N} \alpha_{i}^{*} y_{i} x_{i} w=i=1Nαiyixi

至少有一个(不是要求的,是求解问题的时候,发现至少一个非零才是合理的,否则都为0,根据第一个式子w也为0) α j ∗ > 0 \alpha_j^*>0 αj>0,任选其一, y j ( w ∗ ⋅ x j + b ∗ ) − 1 = 0 y_{j}\left(w^{*} \cdot x_{j}+b^{*}\right)-1=0 yj(wxj+b)1=0

注意到 y j 2 = 1 y_{j}^{2}=1 yj2=1,联立上述二式得

b ∗ = 1 y j − w ∗ ⋅ x j = y j − ∑ i = 1 N α i ∗ y i x i x j b^*=\frac{1}{y_j}-w^*\cdot x_j=y_j-\sum_{i=1}^{N} \alpha_{i}^{*} y_{i} x_{i}x_j b=yj1wxj=yji=1Nαiyixixj

和前述硬间隔的结果一样。

④从原问题的解到分离超平面、决策函数、支撑向量

进一步,分离超平面可以写成
∑ i = 1 N α i ∗ y i ( x ⋅ x i ) + b ∗ = 0 \sum_{i=1}^{N} \alpha_{i}^{*} y_{i}\left(x \cdot x_{i}\right)+b^{*}=0 i=1Nαiyi(xxi)+b=0
分类决策函数可以写成
f ( x ) = s i g n ( ∑ i = 1 N α i ∗ y i ( x ⋅ x i ) + b ∗ ) f(x)=sign\left(\sum_{i=1}^{N} \alpha_{i}^{*} y_{i}\left(x \cdot x_{i}\right)+b^{*}\right) f(x)=sign(i=1Nαiyi(xxi)+b)
可以看到, w ∗ , b ∗ w^*,b^* w,b只依赖于那些 α j ∗ > 0 \alpha_j^*>0 αj>0的样本,这样的对应的训练样本我们就称之为支撑向量

注:

每次任选一个符合条件的非0的 α j \alpha_j αj就可求得w和b,但是这样的结果可能由于j不一样而不唯一。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值