SVM(基于李航统计学习方法,包含SMO)

news2024/11/17 9:45:48

文章目录

  • 线性可分SVM和硬间隔最大化
    • 函数间隔和几何间隔
    • 间隔最大化
      • 支持向量
    • 学习的对偶算法
  • 线性SVM和软间隔最大化
    • 支持向量
  • 非线性SVM和核函数
  • SMO算法

线性可分SVM和硬间隔最大化

函数间隔和几何间隔

y ( w x + b ) y(wx+b) y(wx+b) 表示分类的正确性和确信度

  • 函数间隔

    样本点的函数间隔

    γ ^ i = y i ( w x i + b ) \hat\gamma_i=y_i(wx_i+b) γ^i=yi(wxi+b)

    数据集的函数间隔:所有样本点的函数间隔最小值

    γ ^ = min ⁡ i = 1 , ⋯   , N γ ^ i \hat\gamma = \min_{i=1,\cdots, N}\hat\gamma_i γ^=i=1,,Nminγ^i

  • 几何间隔:只要成比例地改变 w, b ,函数间隔就会改变。因此规范化,样本点的几何间隔

    γ i = y i ( w ∣ ∣ w ∣ ∣ ⋅ x i + b ∣ ∣ w ∣ ∣ ) \gamma_i = y_i(\frac{w}{||w||}\cdot x_i+\frac{b}{||w||}) γi=yi(∣∣w∣∣wxi+∣∣w∣∣b)

    这刚好是点到直线的距离

    数据集的几何间隔为

    γ = min ⁡ i = 1 , ⋯   , N γ i \gamma = \min_{i=1,\cdots, N}\gamma_i γ=i=1,,Nminγi

    可得函数间隔和几何间隔的关系

    γ = γ ^ ∣ ∣ w ∣ ∣ \gamma =\frac{\hat\gamma}{||w||} γ=∣∣w∣∣γ^

间隔最大化

SVM学习的基本思想:求解能正确划分训练集并且几何间隔最大的分离超平面

原最优化问题

max ⁡ w , b γ s . t . y i ( w ∣ ∣ w ∣ ∣ ⋅ x i + b ∣ ∣ w ∣ ∣ ) ≥ γ , i = 1 , 2 , ⋯   , N \max_{w, b}\quad \gamma \\ {\rm s.t.}\quad y_i(\frac{w}{||w||}\cdot x_i+\frac{b}{||w||})\geq \gamma,\quad i = 1,2,\cdots, N w,bmaxγs.t.yi(∣∣w∣∣wxi+∣∣w∣∣b)γ,i=1,2,,N

改写为函数间隔的形式

max ⁡ w , b γ ^ ∣ ∣ w ∣ ∣ s . t . y i ( w ⋅ x i + b ) ≥ γ ^ , i = 1 , 2 , ⋯   , N \max_{w, b}\quad \frac{\hat\gamma}{||w||} \\ {\rm s.t.}\quad y_i({w}\cdot x_i+{b})\geq \hat\gamma,\quad i = 1,2,\cdots, N w,bmax∣∣w∣∣γ^s.t.yi(wxi+b)γ^,i=1,2,,N

而函数间隔的取值并不影响最优化问题的解,因此取 1 ,并转换成最小化凸函数的形式(凸优化问题,局部最优解就是全局最优解)

min ⁡ w , b 1 2 ∣ ∣ w ∣ ∣ 2 s . t . y i ( w ⋅ x i + b ) − 1 ≥ 0 , i = 1 , 2 , ⋯   , N \min_{w, b}\quad \frac{1}{2}||w||^2 \\ {\rm s.t.}\quad y_i({w}\cdot x_i+{b})-1\geq 0,\quad i = 1,2,\cdots, N w,bmin21∣∣w2s.t.yi(wxi+b)10,i=1,2,,N

支持向量

在线性可分的情况下,训练数据集的样本点中与分离超平面距离最近的样本点的实例称为支持向量,也就是使约束条件等号成立的向量

y i ( w ⋅ x i + b ) − 1 = 0 y_i({w}\cdot x_i+{b})-1 = 0 yi(wxi+b)1=0

在这里插入图片描述

H1与H2之间的距离成为间隔,H1, H2称为间隔边界。决定分离超平面时,只有支持向量起作用。移动其他的样本点并不改变所求的解,因此SVM由很少的“重要的”训练样本决定。

学习的对偶算法

有关对偶问题和KKT条件的前导知识可见此篇
简单地说,

  • 原始问题:先求关于算子的极大,再求关于参数的极小
  • 对偶问题:先求关于参数的极小,再求关于算子的极大

线性可分SVM的拉格朗日函数

L ( w , b , α ) = 1 2 ∣ ∣ w ∣ ∣ 2 − ∑ i = 1 N α i y i ( w x i + b ) + ∑ i = 1 N α i L(w,b,\alpha)=\frac{1}{2}||w||^2-\sum_{i=1}^N \alpha_i y_i(wx_i+b)+\sum_{i=1}^N \alpha_i L(w,b,α)=21∣∣w2i=1Nαiyi(wxi+b)+i=1Nαi

对偶问题

max ⁡ α min ⁡ w , b L ( w , b , α ) \max_{\alpha}\min_{w,b} L(w,b,\alpha) αmaxw,bminL(w,b,α)

  1. min ⁡ w , b L ( w , b , α ) \min_{w,b} L(w,b,\alpha) minw,bL(w,b,α)

    w , b w,b w,b 求偏导,得到约束

    w = ∑ i = 1 N α i y i x i ∑ i = 1 N α i y i = 0 w=\sum_{i=1}^N \alpha_i y_i x_i\\ \sum_{i=1}^N \alpha_i y_i=0 w=i=1Nαiyixii=1Nαiyi=0

    代入原式即可。

  2. 求极大(线性可分SVM算法)

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 α i ≥ 0 \max_{\alpha}\quad -\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N \alpha_i\alpha_j y_iy_j(x_i\cdot x_j)+\sum_{i=1}^N\alpha_i \\ {\rm s.t.}\quad \begin{aligned} & \sum_{i=1}^N\alpha_iy_i=0 \\ & \alpha_i\geq 0 \end{aligned} αmax21i=1Nj=1Nαiαjyiyj(xixj)+i=1Nαis.t.i=1Nαiyi=0αi0

由于原始问题满足C.2的条件,原始问题可以转换为对偶问题

提炼一下,

L ( w , b , α ) = 1 2 ∣ ∣ w ∣ ∣ 2 − ∑ i = 1 N α i y i ( w x i + b ) + ∑ i = 1 N α i L(w,b,\alpha)=\frac{1}{2}||w||^2-\sum_{i=1}^N \alpha_i y_i(wx_i+b)+\sum_{i=1}^N \alpha_i L(w,b,α)=21∣∣w2i=1Nαiyi(wxi+b)+i=1Nαi

原始问题

min ⁡ w , b 1 2 ∣ ∣ w ∣ ∣ 2 s . t . y i ( w ⋅ x i + b ) − 1 ≥ 0 , i = 1 , 2 , ⋯   , N \min_{w, b}\quad \frac{1}{2}||w||^2 \\ {\rm s.t.}\quad y_i({w}\cdot x_i+{b})-1\geq 0,\quad i = 1,2,\cdots, N w,bmin21∣∣w2s.t.yi(wxi+b)10,i=1,2,,N

对偶问题

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 α i ≥ 0 \min_{\alpha}\quad \frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N \alpha_i\alpha_j y_iy_j(x_i\cdot x_j)-\sum_{i=1}^N\alpha_i \\ {\rm s.t.}\quad \begin{aligned} & \sum_{i=1}^N\alpha_iy_i=0 \\ & \alpha_i\geq 0 \end{aligned} αmin21i=1Nj=1Nαiαjyiyj(xixj)i=1Nαis.t.i=1Nαiyi=0αi0

带入得到原始最优化问题的解

w ∗ = ∑ i = 1 N α i ∗ y i x i b ∗ = y j − ∑ i = 1 N α i ∗ y i ( x i ⋅ x j ) w^*=\sum_{i=1}^N \alpha_i^* y_i x_i \\ b^*=y_j-\sum_{i=1}^N \alpha_i^*y_i(x_i\cdot x_j) w=i=1Nαiyixib=yji=1Nαiyi(xixj)

其中, j j j 满足 α j ∗ > 0 \alpha_j^*>0 αj>0 ,事实上也就是支持向量

线性SVM和软间隔最大化

假设训练数据集不是线性可分的,通常情况是有一些特异点,去除了这些特异点之后数据集就线性可分了。引入一个松弛变量,使得函数间隔加上松弛变量大于等于1

y i ( w x i + b ) ≥ 1 − ξ i y_i(wx_i+b)\geq 1-\xi_i yi(wxi+b)1ξi

改变目标函数
提炼一下,

1 2 ∣ ∣ w ∣ ∣ 2 + C ∑ i = 1 N ξ i \frac{1}{2}||w||^2+C\sum_{i=1}^N\xi_i 21∣∣w2+Ci=1Nξi

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)=\frac{1}{2}||w||^2+C\sum_{i=1}^N\xi_i-\sum_{i=1}^N \alpha_i (y_i(wx_i+b)-1+\xi_i)-\sum_{i=1}^N \mu_i\xi_i L(w,b,ξ,α,μ)=21∣∣w2+Ci=1Nξii=1Nαi(yi(wxi+b)1+ξi)i=1Nμiξi

原始问题

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 \min_{w, b}\quad \frac{1}{2}|| w||^2+C\sum_{i=1}^N\xi_i \\ {\rm s.t.}\quad \begin{aligned} & y_i({w}\cdot x_i+{b})\geq 1-\xi_i,\quad i = 1,2,\cdots, N \\ & \xi_i\geq 0, \quad i = 1,2,\cdots, N \end{aligned} w,bmin21∣∣w2+Ci=1Nξis.t.yi(wxi+b)1ξi,i=1,2,,Nξi0,i=1,2,,N

对偶问题

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 \min_{\alpha}\quad \frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N \alpha_i\alpha_j y_iy_j(x_i\cdot x_j)-\sum_{i=1}^N\alpha_i \\ {\rm s.t.}\quad \begin{aligned} & \sum_{i=1}^N\alpha_iy_i=0 \\ & 0\leq\alpha_i\leq C \end{aligned} αmin21i=1Nj=1Nαiαjyiyj(xixj)i=1Nαis.t.i=1Nαiyi=00αiC

线性SVM的对偶问题和线性可分SVM的对偶问题差不多,只在最后一条约束里有改动,这是在对参数求 min ⁡ \min min ξ i \xi_i ξi 那项带来的。

w , b w, b w,b 的计算过程和线性可分SVM的一样。

支持向量

在线性不可分的情况下,将对偶问题的解中对应 α i ∗ > 0 \alpha_i^*>0 αi>0 的样本点的实例作为支持向量

在这里插入图片描述

  • α i ∗ < C \alpha_i^*<C αi<C :由KKT条件,此时 ξ i = 0 \xi_i=0 ξi=0 ,支持向量恰好落在间隔边界上

    μ i ∗ = C − α i ∗ > 0 , μ i ∗ ξ i = 0 \mu_i^*=C-\alpha_i^*>0, \mu_i^*\xi_i=0 μi=Cαi>0,μiξi=0

  • α i ∗ = C \alpha_i^*=C αi=C :由KKT条件, ξ i > 0 \xi_i>0 ξi>0

    • 0 < ξ i < 1 0<\xi_i<1 0<ξi<1 :支持向量落在间隔边界和超平面之间,分类正确
    • ξ i = 1 \xi_i=1 ξi=1 :支持向量落在超平面上
    • ξ i > 1 \xi_i>1 ξi>1 :支持向量落在误分类一侧

上述关系可由线性SVM的KKT条件得到,
在这里插入图片描述

非线性SVM和核函数

采取非线性变换,将非线性问题转化为线性问题

核函数的大义

ϕ ( x ) = X → H ,   K ( x , z ) = ϕ ( x ) ⋅ ϕ ( z ) \phi(x)=\mathcal{X}\to\mathcal{H},\ K(x,z)=\phi(x)\cdot\phi(z) ϕ(x)=XH, K(x,z)=ϕ(x)ϕ(z)

  • 对于给定的核 K K K ,特征空间 H \mathcal{H} H 和映射 ϕ \phi ϕ 的取法不唯一

因为特征向量 x x x 可能有很多维,可以修改线性SVM的对偶问题

W ( α ) = 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j K ( x i ⋅ x j ) − ∑ i = 1 N α i W(\alpha)=\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N \alpha_i\alpha_j y_iy_jK(x_i\cdot x_j)-\sum_{i=1}^N\alpha_i W(α)=21i=1Nj=1NαiαjyiyjK(xixj)i=1Nαi

分类决策函数中的内积也可以换

f ( x ) = s i g n ( ∑ i = 1 N α i ∗ y i K ( x i , x ) + b ∗ ) b ∗ = y j − ∑ i = 1 N α i ∗ y i K ( x i , x ) f(x)={\rm sign}(\sum_{i=1}^N \alpha_i^*y_iK(x_i, x)+b^*)\\ b^*=y_j-\sum_{i=1}^N \alpha_i^*y_iK(x_i, x) f(x)=sign(i=1NαiyiK(xi,x)+b)b=yji=1NαiyiK(xi,x)
提炼一下,

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 \min_{\alpha}\quad \frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N \alpha_i\alpha_j y_iy_jK(x_i\cdot x_j)-\sum_{i=1}^N\alpha_i \\ {\rm s.t.}\quad \begin{aligned} & \sum_{i=1}^N\alpha_iy_i=0 \\ & 0\leq\alpha_i\leq C,\quad i = 1,2,\cdots, N \end{aligned} αmin21i=1Nj=1NαiαjyiyjK(xixj)i=1Nαis.t.i=1Nαiyi=00αiC,i=1,2,,N

  • 常用的核函数
    在这里插入图片描述

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 \min_{\alpha}\quad \frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N \alpha_i\alpha_j y_iy_jK(x_i\cdot x_j)-\sum_{i=1}^N\alpha_i \\ {\rm s.t.}\quad \begin{aligned} & \sum_{i=1}^N\alpha_iy_i=0 \\ & 0\leq\alpha_i\leq C,\quad i = 1,2,\cdots, N \end{aligned} αmin21i=1Nj=1NαiαjyiyjK(xixj)i=1Nαis.t.i=1Nαiyi=00αiC,i=1,2,,N

变量有 N N N 个,太多了。如果每个变量都满足KKT就好了,所以每次选取两个变量去让它们接近于满足KKT条件

求解二次规划

启发算法,一次选择两个变量,固定其他变量,求解二次规划子问题,这个二次规划问题关于这两个变量的解应该更接近原始二次规划问题的解。
选取一个违反KKT条件最严重的变量,另一个自动确定(因为在固定 n − 2 n-2 n2 个变量之后,也就固定了 y 1 α 1 + y 2 α 2 y_1\alpha_1+y_2\alpha_2 y1α1+y2α2 的值,那么 α 1 \alpha_1 α1 确定时 α 2 \alpha_2 α2 也确定了)

从原始对偶问题中抽出和选出变量 α 1 , α 2 \alpha_1, \alpha_2 α1,α2 相关的部分,可以得到子问题

min ⁡ α 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 α i y i K i 1 − y 2 α 2 ∑ i = 3 N α i y i K i 2 s . t . y 1 α 1 + y 2 α 2 = − ∑ i = 3 N α i y i = ς 0 ≤ α i ≤ C , i = 1 , 2 \min_{\alpha}\quad \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}^N \alpha_i y_iK_{i1}-y_2\alpha_2\sum_{i=3}^N \alpha_i y_iK_{i2} \\ \begin{aligned} {\rm s.t.}\quad& y_1\alpha_1+y_2\alpha_2=-\sum_{i=3}^N\alpha_iy_i=\varsigma \\ & 0\leq\alpha_i\leq C,\quad i = 1,2 \end{aligned} αmin21K11α12+21K22α22+y1y2K12α1α2(α1+α2)+y1α1i=3NαiyiKi1y2α2i=3NαiyiKi2s.t.y1α1+y2α2=i=3Nαiyi=ς0αiC,i=1,2

在这里插入图片描述
该二次规划问题又可以转换为单变量优化问题,因为 y i y_i yi 的取值只能是 ± 1 \pm1 ±1
s . t . y 1 α 1 + y 2 α 2 = − ∑ i = 3 N α i y i = ς 0 ≤ α i ≤ C , i = 1 , 2 \begin{aligned} {\rm s.t.}\quad& y_1\alpha_1+y_2\alpha_2=-\sum_{i=3}^N\alpha_iy_i=\varsigma \\ & 0\leq\alpha_i\leq C,\quad i = 1,2 \end{aligned} s.t.y1α1+y2α2=i=3Nαiyi=ς0αiC,i=1,2
在这里插入图片描述

那么固定 α 1 n e w \alpha_1^{new} α1new ,限定 α 2 n e w \alpha_2^{new} α2new 的取值范围为 L ≤ α 2 n e w ≤ H L\leq\alpha_2^{new}\leq H Lα2newH ,其中

  • y 1 ≠ y 2 y_1\neq y_2 y1=y2
    • α 2 o l d − α 1 o l d ≤ 0 \alpha_2^{old}-\alpha_1^{old}\leq0 α2oldα1old0 L = 0 , H = C + α 2 o l d − α 1 o l d L=0, H=C+\alpha_2^{old}-\alpha_1^{old} L=0,H=C+α2oldα1old
    • α 2 o l d − α 1 o l d > 0 \alpha_2^{old}-\alpha_1^{old}>0 α2oldα1old>0 L = α 2 o l d − α 1 o l d , H = C L=\alpha_2^{old}-\alpha_1^{old}, H=C L=α2oldα1old,H=C
  • y 1 = y 2 y_1=y_2 y1=y2
    • α 1 o l d + α 2 o l d ≤ C \alpha_1^{old}+\alpha_2^{old}\leq C α1old+α2oldC L = 0 , H = α 1 o l d + α 2 o l d L=0, H=\alpha_1^{old}+\alpha_2^{old} L=0,H=α1old+α2old
    • α 1 o l d + α 2 o l d > C \alpha_1^{old}+\alpha_2^{old}> C α1old+α2old>C L = α 1 o l d + α 2 o l d − C , H = C L=\alpha_1^{old}+\alpha_2^{old}-C, H=C L=α1old+α2oldC,H=C

在这里插入图片描述

子问题沿着约束方向未经剪辑(指没考虑7.103,最后一行)的解是

α 2 n e w , u n c = α 2 o l d + y 2 ( E 1 − E 2 ) η η = K 11 + K 22 − 2 K 12 = ∣ ∣ ϕ ( x 1 ) − ϕ ( x 2 ) ∣ ∣ 2 (7.106) \alpha_2^{new, unc}=\alpha_2^{old}+\frac{y_2(E_1-E_2)}{\eta}\tag{7.106}\\ \eta=K_{11}+K_{22}-2K_{12}=||\phi(x_1)-\phi(x_2)||^2 α2new,unc=α2old+ηy2(E1E2)η=K11+K222K12=∣∣ϕ(x1)ϕ(x2)2(7.106)

可以根据此得到 α 1 n e w , α 2 n e w \alpha_1^{new}, \alpha_2^{new} α1new,α2new

如果 α 2 n e w , u n c \alpha_2^{new, unc} α2new,unc 夹在 L , H L, H L,H 的范围内,就直接那它作为 α 2 n e w \alpha_2^{new} α2new 的值,否则就按需取 L L L H H H

根据 y 1 α 1 + y 2 α 2 = − ∑ i = 3 N α i y i = ς y_1\alpha_1+y_2\alpha_2=-\sum_{i=3}^N\alpha_iy_i=\varsigma y1α1+y2α2=i=3Nαiyi=ς ,可以得到如下等式

y 1 α 1 o l d + y 2 α 2 o l d = y 1 α 1 n e w + y 2 α 2 n e w y_1\alpha_1^{old}+y_2\alpha_2^{old}=y_1\alpha_1^{new}+y_2\alpha_2^{new} y1α1old+y2α2old=y1α1new+y2α2new

由于 y 1 ⋅ y 1 = 1 y_1\cdot y_1=1 y1y1=1 ,等式两边同乘 y 1 y_1 y1 , α 1 n e w = α 1 o l d + y 1 y 2 ( α 2 o l d − α 2 n e w ) \alpha_1^{new} = \alpha_1^{old}+y_1y_2(\alpha_2^{old}-\alpha_2^{new}) α1new=α1old+y1y2(α2oldα2new)

选择变量

第一个变量

外层循环,选择违反KKT条件最严重的样本点 α 1 \alpha_1 α1 。首先遍历间隔边界上 0 < α i < C 0<\alpha_i<C 0<αi<C )的支持向量点,如果这些点都满足KKT条件,就遍历整个训练集。

由KKT条件( 线性SVM的KKT条件在支持向量小节的图片中有列出),可知 0 < α i < C 0<\alpha_i<C 0<αi<C μ i > 0 \mu_i>0 μi>0 ,则松弛变量 ξ i = 0 \xi_i=0 ξi=0 ,所以 0 < α i < C 0<\alpha_i<C 0<αi<C 意味着该点在间隔边界上

KKT条件如下

α i = 0 ⇔ y i g ( x i ) ≥ 1 0 < α i < C ⇔ y i g ( x i ) = 1 α i = C ⇔ y i g ( x i ) ≤ 1 \begin{aligned} \alpha_i=0 &\Leftrightarrow y_ig(x_i)\geq 1 \\ 0<\alpha_i<C &\Leftrightarrow y_ig(x_i)= 1 \\ \alpha_i=C &\Leftrightarrow y_ig(x_i)\leq 1 \\ \end{aligned} αi=00<αi<Cαi=Cyig(xi)1yig(xi)=1yig(xi)1

由于 E i = g ( x i ) − y i E_i=g(x_i)-y_i Ei=g(xi)yi ,上式可以改写为

α i = 0 ⇔ y i E i ≥ 0 0 < α i < C ⇔ y i E i = 0 α i = C ⇔ y i E i ≤ 0 \begin{aligned} \alpha_i=0 &\Leftrightarrow y_iE_i\geq 0 \\ 0<\alpha_i<C &\Leftrightarrow y_iE_i= 0 \\ \alpha_i=C &\Leftrightarrow y_iE_i\leq 0 \\ \end{aligned} αi=00<αi<Cαi=CyiEi0yiEi=0yiEi0

违反KKT条件的检验应在 ε \varepsilon ε 范围内进行,

α i < C ⇔ y i E i ≥ 0 ⇔ y i E i < ϵ 则违反 K K T 条件 α i > 0 ⇔ y i E i ≤ 0 ⇔ y i E i > ϵ 则违反 K K T 条件 \begin{aligned} \alpha_i<C\Leftrightarrow y_iE_i\geq 0\Leftrightarrow y_iE_i<\epsilon则违反KKT条件\\ \alpha_i>0\Leftrightarrow y_iE_i\leq 0\Leftrightarrow y_iE_i>\epsilon则违反KKT条件 \end{aligned} αi<CyiEi0yiEi<ϵ则违反KKT条件αi>0yiEi0yiEi>ϵ则违反KKT条件

第二个变量

内层循环,选择能发生足够大变化的 α 2 \alpha_2 α2 。由(7.106)知 α 2 n e w \alpha_2^{new} α2new 依赖于 ∣ E 1 − E 2 ∣ |E_1-E_2| E1E2

  • 直观做法,由于 α 1 , E 1 \alpha_1, E_1 α1,E1 确定,直接选和 E 1 E_1 E1 相差最远的 E i E_i Ei 作为 E 2 E_2 E2
  • 启发方法,如果变化不够大,就随机用间隔边界上的支持向量
  • 还不行就从整个训练集里挑一个

计算 b b b E i E_i Ei

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/496825.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

C++11多线程:std::thread创建线程和std::async创建异步任务的区别,std::async创建异步任务后没有被推迟执行。

系列文章目录 文章目录 系列文章目录前言一、thread和async的区别1.1 新线程和异步任务1.2 std::async和std::thread最明显的不同&#xff0c;就是async有时候并不创建新线程。1.3 std::async和std::thread的区别1.4 std::async不确定性问题的解决 二、使用方法2.1 std::async创…

js基础内容

第一种,几乎完全不用 <a href"#" onclick"alert(百度一下)">百度一下</a>第二种,写在script内 <body><a class"baidu" href"#">百度一下</a><script>var baiduAEldocument.querySelector("…

ChatGPT-5即将发布,上千名人士却紧急叫停

ChatGPT4还没有好好体验&#xff0c;比GPT4强大1000倍的ChatGPT5又即将发布&#xff01;届时将彻底改变人工智能领域&#xff0c;并改变我们现有的世界 【ChatGPT 5简介】 OpenAI计划在2023年12月发布其最新且最强大的人工智能模型——ChatGPT 5。该模型具备人工通用智能的能力…

中文大模型安全性哪家强?清华团队新发布

当前大型语言模型的火爆程度我们不用再进行赘述了&#xff0c;伴随着百度文心一言打响国内商业大模型第一枪&#xff0c;华为盘古&#xff0c;阿里通义千问&#xff0c;智谱ChatGLM,科大讯飞星火等国内公司纷纷开始布局。 另一方面由于众所周知的政策原因&#xff0c;和如火如荼…

Threejs进阶之十三:CSS3DRenderer与Tween.js实现粒子小球按规律变化

今天我们使用CSS3DRendererTween.js实现Threejs官方示例中的粒子小球按规律变化的效果&#xff0c;先看下最终实现的效果 先来分析下&#xff0c;这个页面的动画效果是由512个小球组合起来的四种不同变化&#xff0c;分别是曲面、立方体、随机和圆球四种变化&#xff1b;下面我…

Linux——进程间通信(管道)

目录 进程通信的目的 管道 见见猪跑(举个例子) 文件描述符fd与管道的关系(深度理解管道) 什么是管道&#xff1f; 匿名管道 pipe函数概述 父子进程通信时与文件描述符的关系图(理解pipe函数的关键) pipe函数的使用 管道读写规则 管道的大小 自测 使用man 7 pipe查看 …

Unity Timeline使用

Unity Timeline使用 1.创建Timeline&#xff1a;打开面板Window->Sequencing->Timeline (1.1)选择一个要添加 Timeline 的物体&#xff0c;我创建一个物体就叫 Timeline(可以随意命名)&#xff0c;选择Timeline&#xff0c;然后在面板上显示 Create 按钮&#xff0c;如…

Arduino_STM32 之Arduino IDE开发配置

前言 由于选了物联网作为选修课&#xff0c;老师喜欢使用Arduino进行编程&#xff0c;但是也要教我们使用STM32。于是他就让我们使用Arduino IDE开发STM32&#xff08;用Keil 不好吗&#xff1f;&#xff1f;&#xff1f;&#xff09;。 第一章 软件下载 安装Arduino IDE&…

springboot请求响应

SpringBootWeb请求响应 前言 在上一次的课程中&#xff0c;我们开发了springbootweb的入门程序。 基于SpringBoot的方式开发一个web应用&#xff0c;浏览器发起请求 /hello 后 &#xff0c;给浏览器返回字符串 “Hello World ~”。 其实呢&#xff0c;是我们在浏览器发起请求…

环形链表 力扣

题目描述 题目要求 判断一个单链表是不是环形链表&#xff0c;是就返回true 不是就返回false 思路 要搞清楚环形链表长啥样环形链表有哪些特征 环形链表顾名思义就是在链表中有一个类似环形的结构&#xff0c; 它和普通单链表的区别就是 你用遍历普通单链表的法子遍历一个环…

k8s基础5——Pod常用命令、资源共享机制、重启策略和健康检查、环境变量、初始化容器、静态pod

文章目录 一、基本了解二、管理命令三、yaml文件参数大全四、创建pod的工作流程五、资源共享机制5.1 共享网络5.2 共享存储 六、生命周期重启策略健康检查七、环境变量八、Init Containe初始化容器九、静态Pod 一、基本了解 概念&#xff1a; Pod是一个逻辑抽象概念&#xff0c…

Vben Admin 自学记录 —— Table组件的基本使用及练习(持续更新中...)

Table 表格 对 antv 的 table 组件进行封装 table相关使用及概念 练习 —— 画一个简单的包含增删改查的表格静态页面&#xff08;不包含相关逻辑和处理&#xff09; 之前相关记录&#xff1a; Vben Admin 自学记录 —— 介绍及使用 1.在之前添加的新路由模块中添加一个表…

TCP/IP网络编程(三)

TCP/IP网络编程读书笔记 第14章 多播与广播14.1 多播14.1.1 多播的数据传输方式及流量方面的优点14.1.2 路由&#xff08;Routing&#xff09;和 TTL&#xff08;Time to Live&#xff0c;生存时间&#xff09;&#xff0c;以及加入组的办法14.1.3 实现多播 Sender 和 Receiver…

使用mybatisX逆向生成数据表实体类(pojo,dao),mapper,service

先看使用mybatisX后生成的文件。 1.先在idea安装mybatisX插件&#xff0c;在file->setting->plugins&#xff0c;搜索mybatisX插件&#xff0c;重新启动idea即可。 2.在idea编辑器右侧点击Database&#xff0c;点击“”链接你的数据库类型&#xff0c;这里我选mysql。 输…

Vue核心 列表渲染 数据监视

1.13.列表渲染 1.13.1.基本列表 v-for指令 用于展示列表数据语法&#xff1a;&#xff0c;这里key可以是index&#xff0c;更好的是遍历对象的唯一标识可遍历&#xff1a;数组、对象、字符串&#xff08;用的少&#xff09;、指定次数&#xff08;用的少&#xff09; <!…

尚硅谷大数据技术NiFi教程-笔记01【NiFi(基本概念、安装、使用)】

视频地址&#xff1a;尚硅谷大数据NiFi教程&#xff08;从部署到开发&#xff09;_哔哩哔哩_bilibili 尚硅谷大数据技术NiFi教程-笔记01【NiFi&#xff08;基本概念、安装、使用&#xff09;】尚硅谷大数据技术NiFi教程-笔记02【NiFi&#xff08;使用案例&#xff0c;同步文件、…

Kafka 权威指南

Kafka 权威指南 这本书于 2021 年看完&#xff0c;2022 年又看了一遍&#xff0c;感觉书读百遍&#xff0c;其义自现。 这本书侧重于 Kafka 的理论知识&#xff0c;虽然书有点老&#xff0c;但是其中关于 Kafka 的基础知识的章节讲得确实不错&#xff0c;适合学习 Kafka 的新手…

深入篇【C++】类与对象:运算符重载详解 -上

深入篇【C】类与对象&#xff1a;运算符重载详解 -上 ⏰.运算符重载&#x1f553;Ⅰ.<运算符重载&#x1f550;Ⅱ.>运算符重载&#x1f552;Ⅲ.运算符重载&#x1f551;Ⅳ.运算符重载①.格式1.改进12.改进2 ②.默认成员函数1.功能2.不足 ⏰.运算符重载 内置类型(int /do…

二分法相关使用

文章目录 1. 在一个有序数组中,找某个数是否存在2. 在一个有序数组中,找大于等于某个数最左侧的位置3. 在一个有序数组中, 找小于等于某个数最右侧的位置4. 局部最大值问题 1. 在一个有序数组中,找某个数是否存在 在线OJ&#xff1a;704. 二分查找 有序数组下的二分思路如下:…

亚马逊:分布式计算宣言

文章目录 分布式计算宣言背景关键概念基于服务的模型基于工作流的模型和数据域应用概念跟踪状态变化对进行中的工作流程元素进行更改工作流程和 DC 客户订单处理 分布式计算宣言 创建时间&#xff1a; 1998 年 5 月 24 日 修订日期&#xff1a; 1998 年 7 月 10 日 背景 很…