【机器学习】SVM关键点解析

给定训练样本集 D = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x m , y m ) } , y i ∈ { − 1 , 1 } D=\{(x_1, y_1), (x_2, y_2), ..., (x_m, y_m)\},y_i \in \{-1, 1\} D={(x1,y1),(x2,y2),...,(xm,ym)},yi{1,1}

y只是一个label,标记{-1,1}来区分正类和负类。

当然也可以标记为{0,300},只不过此时分正类的标准变为(y-150)*f(x)>0。

超平面方程

f ( x ) = w T x + b f(x) = w^Tx+b f(x)=wTx+b

  • f(x)=0,超平面上的点。
  • f(x)>0,分类为1的点。
  • f(x)<0,分类为-1的点。

任意点到超平面的距离为
∣ w T x i + b ∣ ∣ ∣ w ∣ ∣ \frac{|w^Tx_i+b|}{||w||} ∣∣w∣∣wTxi+b
实际上,对于 f ( x ) = w T x + b f(x)=w^Tx+b f(x)=wTx+b这个超平面,我们可以等比例的放大/缩小w和b,其分类结果不变。因此,我们可以约束距离超平面最近的点满足
w T x i + b = ± 1 , w^Tx_i+b=±1, wTxi+b=±1

y i ( w T x i + b ) ≥ 1 y_i(w^Tx_i+b) \geq 1 yi(wTxi+b)1

也可以用函数间隔和几何间隔来理解。

因此,为了使超平面的抗扰动效果最好,即超平面离两边的数据间隔最大,目标为
max ⁡ 2 ∣ ∣ w ∣ ∣ s . t . y i ( w T x i + b ) ≥ 1 \max \frac{2}{||w||} \\ s.t. \quad y_i(w^Tx_i+b) \geq 1 max∣∣w∣∣2s.t.yi(wTxi+b)1

SVM的基本型

min ⁡ 1 2 ∣ ∣ w ∣ ∣ 2 s . t . y i ( w T x i + b ) ≥ 1 \min \frac{1}{2}||w||^2 \\ s.t. \quad y_i(w^Tx_i+b) \geq 1 min21∣∣w2s.t.yi(wTxi+b)1

凸二次规划

这个问题可以用现成的QP (Quadratic Programming) 优化包进行求解。

但若利用“对偶问题”来求解会更高效;而且可以自然地引入核函数,进而推广到非线性分类问题。

目标函数约束条件问题分类
线性函数线性约束线性规划
二次函数线性约束二次规划
非线性函数非线性约束非线性规划

对偶问题

拉格朗日乘子法

用于解决有等式约束的优化问题。
min ⁡ f s . t . g = 0 \min f \\ s.t. g=0 minfs.t.g=0
引入 λ ≥ 0 \lambda \geq 0 λ0,定义 F = f + λ g F=f+\lambda g F=f+λg,求解
{ δ F δ x i = 0 δ F δ λ = 0 \begin{cases} \frac{\delta F}{\delta x_i} &= 0 \\ \frac{\delta F}{\delta \lambda} &= 0 \end{cases} {δxiδFδλδF=0=0

KKT条件

用于解决有不等式约束的优化问题。
min ⁡ f s . t . g = 0 , h ≤ 0 \min f \\ s.t. g=0,h\leq 0 minfs.t.g=0,h0
引入 λ , μ ≥ 0 \lambda, \mu \geq 0 λ,μ0,定义 L = f + λ g + μ h L=f+\lambda g + \mu h L=f+λg+μh,求解
{ δ L δ x i = 0 δ L δ λ = 0 ∑ μ ⋅ h = 0 \begin{cases} \frac{\delta L}{\delta x_i} &= 0 \\ \frac{\delta L}{\delta \lambda} &= 0 \\ \sum \mu·h &= 0 \end{cases} δxiδLδλδLμh=0=0=0

SVM的拉格朗日函数

L ( w , b , α ) = 1 2 ∥ w ∥ 2 + ∑ i = 1 m α i ( 1 − y i ( w T x i + b ) ) L(w, b, \alpha)=\frac{1}{2}\|w\|^{2}+\sum_{i=1}^{m} \alpha_{i}\left(1-y_{i}\left(w^{T} x_{i}+b\right)\right) L(w,b,α)=21w2+i=1mαi(1yi(wTxi+b))

目标函数表示为
min ⁡ w , b max ⁡ α i ≥ 0 L \min_{w,b} \max_{\alpha_i \geq 0} L w,bminαi0maxL

  • y i ( w T x i + b ) < 1 y_i(w^Tx_i+b)<1 yi(wTxi+b)<1,即不满足约束时, max ⁡ L → ∞ \max L \rightarrow \infin maxL
  • y i ( w T x i + b ) ≥ 1 y_i(w^Tx_i + b) \geq 1 yi(wTxi+b)1,即满足约束时, max ⁡ L = 1 2 ∣ ∣ w ∣ ∣ 2 \max L = \frac{1}{2}||w||^2 maxL=21∣∣w2

因此转化后的问题包含了原优化问题。

进一步,当满足KKT条件时,我们得到SVM的对偶问题
max ⁡ α i ≥ 0 min ⁡ w , b L \max_{\alpha_i \geq 0} \min_{w,b} L αi0maxw,bminL
因此,下面我们计算KKT条件约束。
{ δ L δ w = 0 δ L δ b = 0 ∑ α i ( 1 − y i ( w T x i + b ) ) = 0 \begin{cases} \frac{\delta L}{\delta w} &= 0 \\ \frac{\delta L}{\delta b} &= 0 \\ \sum \alpha_i(1-y_i(w^Tx_i+b)) &= 0 \end{cases} δwδLδbδLαi(1yi(wTxi+b))=0=0=0
化简可得
{ w = ∑ α i y i x i 0 = ∑ α i y i \begin{cases} w &= \sum \alpha_iy_ix_i \\ 0 &= \sum \alpha_iy_i \end{cases} {w0=αiyixi=αiyi
代入L可得
max ⁡ α i ≥ 0 { ∑ i = 1 m α i − 1 2 ∑ i , j = 1 m α i α j y i y j x i T x j } \max_{\alpha_i \geq 0}\{\sum_{i=1}^{m} \alpha_{i}-\frac{1}{2} \sum_{i, j=1}^{m} \alpha_{i} \alpha_{j} y_{i} y_{j} x_{i}^{T} x_{j}\} αi0max{i=1mαi21i,j=1mαiαjyiyjxiTxj}
且满足约束
{ α i ≥ 0 1 − y i ( w T x i + b ) ≤ 0 α i ( 1 − y i ( w T x i + b ) ) = 0 \begin{cases} \alpha_i &\geq 0 \\ 1-y_i(w^Tx_i+b) &\leq 0 \\ \alpha_i(1-y_i(w^Tx_i+b)) &= 0 \end{cases} αi1yi(wTxi+b)αi(1yi(wTxi+b))00=0

  • α i = 0 \alpha_i=0 αi=0 α i ( 1 − y i ( w T x i + b ) ) = 0 \alpha_i(1-y_i(w^Tx_i+b))=0 αi(1yi(wTxi+b))=0必然成立;
  • α i > 0 \alpha_i>0 αi>0,则要求 1 − y i ( w T x i + b ) = 0 1-y_i(w^Tx_i+b)=0 1yi(wTxi+b)=0,此时 α i \alpha_i αi对应的向量在最大间隔的边缘上,即是支持向量

面对线性不可分问题,可加入松弛因子 ϵ i ≥ 0 \epsilon_i \geq 0 ϵi0

原始目标函数变为
min ⁡ 1 2 ∣ ∣ w ∣ ∣ 2 + C ∑ ϵ i \min \frac{1}{2}||w||^2+C\sum\epsilon_i min21∣∣w2+Cϵi
经KKT条件转变过的对偶问题的目标函数仍为
max ⁡ α i ≥ 0 { ∑ i = 1 m α i − 1 2 ∑ i , j = 1 m α i α j y i y j x i T x j } \max_{\alpha_i \geq 0}\{\sum_{i=1}^{m} \alpha_{i}-\frac{1}{2} \sum_{i, j=1}^{m} \alpha_{i} \alpha_{j} y_{i} y_{j} x_{i}^{T} x_{j}\} αi0max{i=1mαi21i,j=1mαiαjyiyjxiTxj}
同时第一个约束条件变为 0 < α i < C 0<\alpha_i<C 0<αi<C

如何求解 α \alpha α

SMO算法

SMO 算法的基本思想是将原问题求解 ( α 1 , α 2 , . . . , α N ) (\alpha_1, \alpha_2,..., \alpha_N) (α1,α2,...,αN)这 N 个参数的问题分解成多个子二次规划的问题分别求解,每个子问题只需要求解其中的 2 个参数,每次通过启发式选择两个变量进行优化,不断循环,直到达到函数的最优值。

为什么不能仅将一个作为参数?因为 α i \alpha_i αi之间满足约束 ∑ α i y i = 0 \sum\alpha_iy_i=0 αiyi=0,一旦其他 α \alpha α确定,最后剩下的 α \alpha α也将唯一确定。

化简对偶问题的目标函数

α 1 , α 2 \alpha_1, \alpha_2 α1,α2视作变量,
min ⁡ Ψ ( α 1 , α 2 ) = 1 2 K 11 α 1 2 y 1 2 + 1 2 K 22 α 2 2 y 2 2 + 1 2 K 12 α 1 α 2 y 1 y 2 + 1 2 K 21 α 2 α 1 y 2 y 1 − ( α 1 + α 2 ) + y 1 v 1 α 1 + y 2 v 2 α 2 + P \begin{aligned} \min \Psi\left(\alpha_{1}, \alpha_{2}\right)=& \frac{1}{2} K_{11} \alpha_{1}^{2} y_{1}^{2}+\frac{1}{2} K_{22} \alpha_{2}^{2} y_{2}^{2} \\ &+\frac{1}{2} K_{12} \alpha_{1} \alpha_{2} y_{1} y_{2}+\frac{1}{2} K_{21} \alpha_{2} \alpha_{1} y_{2} y_{1} \\ &-\left(\alpha_{1}+\alpha_{2}\right)+y_{1} v_{1} \alpha_{1}+y_{2} v_{2} \alpha_{2}+P \end{aligned} minΨ(α1,α2)=21K11α12y12+21K22α22y22+21K12α1α2y1y2+21K21α2α1y2y1(α1+α2)+y1v1α1+y2v2α2+P
由于, y 2 = 1 , K i j = K j i y^2=1, K_{ij}=K_{ji} y2=1,Kij=Kji,化简可得:
min ⁡ Ψ ( α 1 , α 2 ) = 1 2 K 11 α 1 2 + 1 2 K 22 α 2 2 + K 12 α 1 α 2 y 1 y 2 − ( α 1 + α 2 ) + y 1 v 1 α 1 + y 2 v 2 α 2 + P \begin{aligned} \min \Psi\left(\alpha_{1}, \alpha_{2}\right)=& \frac{1}{2} K_{11} \alpha_{1}^{2}+\frac{1}{2} K_{22} \alpha_{2}^{2}+K_{12} \alpha_{1} \alpha_{2} y_{1} y_{2} \\ &-\left(\alpha_{1}+\alpha_{2}\right)+y_{1} v_{1} \alpha_{1}+y_{2} v_{2} \alpha_{2}+P \end{aligned} minΨ(α1,α2)=21K11α12+21K22α22+K12α1α2y1y2(α1+α2)+y1v1α1+y2v2α2+P
其中, K i j K_{ij} Kij为核函数, v i = ∑ j = 3 N α j y j K i j = 0 v_{i}=\sum_{j=3}^{N} \alpha_{j} y_{j} K_{i j}=0 vi=j=3NαjyjKij=0 P P P为常数。

α 2 表示 α 1 \alpha_2表示\alpha_1 α2表示α1

∑ α i y i = 0 ∑\alpha_iy_i=0 αiyi=0 得:
α 1 y 1 + α 2 y 2 = − ∑ i = 3 N α i y i = ζ \alpha_{1} y_{1}+\alpha_{2} y_{2}=-\sum_{i=3}^{N} \alpha_{i} y_{i}=\zeta α1y1+α2y2=i=3Nαiyi=ζ
等式两边同乘 y 1 y_1 y1 y i 2 = 1 y_i^2=1 yi2=1)可得:
α 1 = ( ζ − y 2 α 2 ) y 1 \alpha_{1}=\left(\zeta-y_{2} \alpha_{2}\right) y_{1} α1=(ζy2α2)y1
代入目标函数消去 α 1 \alpha_1 α1可得:
Ψ ( α 2 ) = 1 2 K 11 ( ζ − α 2 y 2 ) 2 y 1 2 + 1 2 K 22 α 2 2 + K 12 ( ζ − α 2 y 2 ) α 2 y 1 2 y 2 − ( ζ − α 2 y 2 ) y 1 − α 2 + v 1 ( ζ − α 2 y 2 ) y 1 2 + y 2 v 2 α 2 + P \begin{aligned} \Psi\left(\alpha_{2}\right)=& \frac{1}{2} K_{11}\left(\zeta-\alpha_{2} y_{2}\right)^{2} y_{1}^{2}+\frac{1}{2} K_{22} \alpha_{2}^{2}+K_{12}\left(\zeta-\alpha_{2} y_{2}\right) \alpha_{2} y_{1}^{2} y_{2} \\ &-\left(\zeta-\alpha_{2} y_{2}\right) y_{1}-\alpha_{2}+v_{1}\left(\zeta-\alpha_{2} y_{2}\right) y_{1}^{2}+y_{2} v_{2} \alpha_{2}+P \end{aligned} Ψ(α2)=21K11(ζα2y2)2y12+21K22α22+K12(ζα2y2)α2y12y2(ζα2y2)y1α2+v1(ζα2y2)y12+y2v2α2+P

α 2 \alpha_2 α2求极值

∂ Ψ ( α 2 ) ∂ α 2 = ( K 11 + K 22 − 2 K 12 ) α 2 − K 11 ζ y 2 + K 12 ζ y 2 + y 1 y 2 − 1 − v 1 y 2 + v 2 y 2 = 0 \begin{aligned} \frac{\partial \Psi\left(\alpha_{2}\right)}{\partial \alpha_{2}}=&\left(K_{11}+K_{22}-2 K_{12}\right) \alpha_{2}-K_{11} \zeta y_{2}+K_{12} \zeta y_{2} +y_{1} y_{2}-1-v_{1} y_{2}+v_{2} y_{2} = 0 \end{aligned} α2Ψ(α2)=(K11+K222K12)α2K11ζy2+K12ζy2+y1y21v1y2+v2y2=0

SMO 的思想是一个迭代求解的思想,所以必须构造出 α n e w \alpha_{new} αnew α o l d \alpha_{old} αold 之间的关系:
α 1 n e w y 1 + α 2 new  y 2 = α 1 old  y 1 + α 2 old  y 2 = ζ \alpha_{1}^{n e w} y_{1}+\alpha_{2}^{\text {new }} y_{2}=\alpha_{1}^{\text {old }} y_{1}+\alpha_{2}^{\text {old }} y_{2}=\zeta α1newy1+α2new y2=α1old y1+α2old y2=ζ
最终化简可得
α 2 new  = α 2 o l d + y 2 ( E 1 − E 2 ) η \alpha_{2}^{\text {new }}=\alpha_{2}^{o l d}+\frac{y_{2}\left(E_{1}-E_{2}\right)}{\eta} α2new =α2old+ηy2(E1E2)
其中,

  • α n e w \alpha_{new} αnew表示本次迭代的计算值, α o l d \alpha_{old} αold为上次的迭代值。
  • E i = f ( x i ) − y i E_{i}=f\left(x_{i}\right)-y_{i} Ei=f(xi)yi 表示预测值与真实值的差。
  • η = K 11 + K 22 − 2 K 12 \eta=K_{11}+K_{22}-2 K_{12} η=K11+K222K12
α 2 n e w \alpha_2^{new} α2new的约束

上面通过求导的方式计算出的 α n e w \alpha_{new} αnew 是未经过约束的,即计算出来的值可能不满足约定的条件
{ 0 ≤ α i ≤ C α 1 y 1 + α 2 y 2 = ζ \left\{\begin{array}{l} 0 \leq \alpha_{i} \leq C \\ \alpha_{1} y_{1}+\alpha_{2} y_{2}=\zeta \end{array}\right. {0αiCα1y1+α2y2=ζ
这两个约束条件可以在二维平面上进行直观的展示

α n e w \alpha_{new} αnew 必须要在方框内和斜线上取值,其最大最小值一定是其交点,所以有 L ≤ α 2 new  ≤ H L \leq \alpha_{2}^{\text {new }} \leq H Lα2new H

  1. y 1 ≠ y 2 y_{1} \neq y_{2} y1=y2 时, L = max ⁡ ( 0 , α 2 old  − α 1 old  ) ; H = min ⁡ ( C , C + α 2 old  − α 1 old  ) L=\max \left(0, \alpha_{2}^{\text {old }}-\alpha_{1}^{\text {old }}\right) ; H=\min \left(C, C+\alpha_{2}^{\text {old }}-\alpha_{1}^{\text {old }}\right) L=max(0,α2old α1old );H=min(C,C+α2old α1old )
  2. y 1 = y 2 y_{1}=y_{2} y1=y2 时, L = max ⁡ ( 0 , α 1 old  + α 2 old  − C ) ; H = min ⁡ ( C , α 2 old  + α 1 old  ) L=\max \left(0, \alpha_{1}^{\text {old }}+\alpha_{2}^{\text {old }}-C\right) ; H=\min \left(C, \alpha_{2}^{\text {old }}+\alpha_{1}^{\text {old }}\right) L=max(0,α1old +α2old C);H=min(C,α2old +α1old )

α 2 new  = { H , α 2 n e w , u n c > H α 2 new  , u n c , L ≤ α 2 new  , u n c ≤ H L , α 2 new  , u n c < L \alpha_{2}^{\text {new }}=\left\{\begin{array}{l} H, \alpha_{2}^{n e w, u n c}>H \\ \alpha_{2}^{\text {new }, u n c}, L \leq \alpha_{2}^{\text {new }, u n c} \leq H \\ L, \alpha_{2}^{\text {new }, u n c}<L \end{array}\right. α2new = H,α2new,unc>Hα2new ,unc,Lα2new ,uncHL,α2new ,unc<L

其中, α n e w , u n c \alpha_{new,unc} αnew,unc 表示 α n e w \alpha_{new} αnew 未经约束的结果(上述通过求导的结果)。

求解 α 1 n e w \alpha_1^{new} α1new

α 1 n e w = α 1 o l d + y 1 y 2 ( α 2 o l d − α 2 n e w ) \alpha_{1}^{n e w}=\alpha_{1}^{o l d}+y_{1} y_{2}\left(\alpha_{2}^{o l d}-\alpha_{2}^{n e w}\right) α1new=α1old+y1y2(α2oldα2new)

SMO变量的选取

第一个变量的选择称为外循环,首先遍历整个样本然后选择违反 KKT 条件的 α i \alpha_i αi作为第一个变量,其 KKT 条件如下:
α i = 0 ⇒ y i ( w T x i + b ) ≥ 1 α i = C ⇒ y i ( w T x i + b ) ≤ 1 0 < α i < C ⇒ y i ( w T x i + b ) = 1 \begin{array}{r} \alpha_{i}=0 \Rightarrow y_{i}\left(w^{T} x_{i}+b\right) \geq 1 \\ \alpha_{i}=C \Rightarrow y_{i}\left(w^{T} x_{i}+b\right) \leq 1 \\ 0<\alpha_{i}<C \Rightarrow y_{i}\left(w^{T} x_{i}+b\right)=1 \end{array} αi=0yi(wTxi+b)1αi=Cyi(wTxi+b)10<αi<Cyi(wTxi+b)=1

一般而言,首选选择违反 0 < α i < C ⇒ y i ( w T x i + b ) = 1 0<\alpha_i<C⇒y_i(w^Tx_i+b)=1 0<αi<Cyi(wTxi+b)=1 这个条件点。

如果支持向量都满足 KKT 条件,再选择 α i = 0 ⇒ y i ( w T x i + b ) ≥ 1 \alpha_i=0⇒y_i(w^Tx_i+b)≥1 αi=0yi(wTxi+b)1 α i = C ⇒ y i ( w T x i + b ) ≤ 1 \alpha_i=C⇒y_i(w^Tx_i+b)≤1 αi=Cyi(wTxi+b)1 这两个条件点。

第二个变量选择的过程为内循环,选择 ∣ E 1 − E 2 ∣ |E_1−E_2| E1E2 取得最大值的 α 2 \alpha_2 α2

如果内循环中找不到点能够使目标函数有足够的下降,则可遍历支持向量来做 α 2 \alpha_2 α2

如果所有支持向量均不能使得目标函数有足够的下降,则跳出循环,重新选择 α 1 \alpha_1 α1

SMO 阈值 b 的计算

  1. 0 < α 1 new  < C 0<\alpha_{1}^{\text {new }}<C 0<α1new <C, 则

y 1 = ( ω T x 1 + b ) = ∑ i = 1 N K i 1 α i y i + b y_{1}=\left(\omega^{T} x_{1}+b\right)=\sum_{i=1}^{N} K_{i 1} \alpha_{i} y_{i}+b y1=(ωTx1+b)=i=1NKi1αiyi+b 得:
b 1 n e w = y 1 − ∑ i = 3 N K i 1 α i y i − K 11 α 1 n e w y 1 − K 21 α 2 n e w y 2 b_{1}^{n e w}=y_{1}-\sum_{i=3}^{N} K_{i 1} \alpha_{i} y_{i}-K_{11} \alpha_{1}^{n e w} y_{1}-K_{21} \alpha_{2}^{n e w} y_{2} b1new=y1i=3NKi1αiyiK11α1newy1K21α2newy2

y 1 − ∑ i = 3 N K i 1 α i y i = y 1 − f ( x 1 ) + K 11 α 1 o l d y 1 + K 21 α 2 o l d y 2 + b o l d y_{1}-\sum_{i=3}^{N} K_{i 1} \alpha_{i} y_{i}=y_{1}-f\left(x_{1}\right)+K_{11} \alpha_{1}^{o l d} y_{1}+K_{21} \alpha_{2}^{o l d} y_{2}+b^{o l d} y1i=3NKi1αiyi=y1f(x1)+K11α1oldy1+K21α2oldy2+bold
代入可得:
b 1 n e w = y 1 − f ( x 1 ) + K 11 α 1 old  y 1 + K 21 α 2 old  y 2 + b old  − α 1 new  y 1 K 11 − α 2 new  y 2 K 21 \begin{gathered} b_{1}^{n e w}=y_{1}-f\left(x_{1}\right)+K_{11} \alpha_{1}^{\text {old }} y_{1}+K_{21} \alpha_{2}^{\text {old }} y_{2}+b^{\text {old }} -\alpha_{1}^{\text {new }} y_{1} K_{11}-\alpha_{2}^{\text {new }} y_{2} K_{21} \end{gathered} b1new=y1f(x1)+K11α1old y1+K21α2old y2+bold α1new y1K11α2new y2K21
E i = f ( x i ) − y i E_{i}=f\left(x_{i}\right)-y_{i} Ei=f(xi)yi 化简可得:
b new  = b 1 new  = − E 1 − y 1 K 11 ( α 1 n e w − α 1 o l d ) − y 2 K 21 ( α 2 new  − α 2 old  ) + b o l d b^{\text {new }}=b_{1}^{\text {new }}=-E_{1}-y_{1} K_{11}\left(\alpha_{1}^{n e w}-\alpha_{1}^{o l d}\right)-y_{2} K_{21}\left(\alpha_{2}^{\text {new }}-\alpha_{2}^{\text {old }}\right)+b^{o l d} bnew =b1new =E1y1K11(α1newα1old)y2K21(α2new α2old )+bold

  1. 0 < α 2 n e w < C 0<\alpha_{2}^{n e w}<C 0<α2new<C, 则
    b new  = b 2 new  = − E 2 − y 1 K 12 ( α 1 new  − α 1 old  ) − y 2 K 22 ( α 2 new  − α 2 old  ) + b o l d b^{\text {new }}=b_{2}^{\text {new }}=-E_{2}-y_{1} K_{12}\left(\alpha_{1}^{\text {new }}-\alpha_{1}^{\text {old }}\right)-y_{2} K_{22}\left(\alpha_{2}^{\text {new }}-\alpha_{2}^{\text {old }}\right)+b^{o l d} bnew =b2new =E2y1K12(α1new α1old )y2K22(α2new α2old )+bold

  2. 若同时满足 0 < α i n e w < C 0<\alpha_{i}^{n e w}<C 0<αinew<C, 则
    b n e w = b 1 n e w = b 2 n e w b^{n e w}=b_{1}^{n e w}=b_{2}^{n e w} bnew=b1new=b2new

  3. 若不同时满足 0 < α i n e w < C 0<\alpha_{i}^{n e w}<C 0<αinew<C, 则
    b new  = b 1 new  + b 2 new  2 b^{\text {new }}=\frac{b_{1}^{\text {new }}+b_{2}^{\text {new }}}{2} bnew =2b1new +b2new 

总结

求解步骤:

  1. 取初值 α = 0 , t = 0 \alpha=0, t=0 α=0,t=0
  2. 选择变量 α 1 t \alpha_{1}^{t} α1t α 2 t \alpha_{2}^{t} α2t, 根据公式求解出 α 2 t + 1 \alpha_{2}^{t+1} α2t+1
  3. 利用 α 1 t + 1 \alpha_{1}^{t+1} α1t+1 α 1 t , α 2 t , α 2 t + 1 \alpha_{1}^{t}, \alpha_{2}^{t}, \alpha_{2}^{t+1} α1t,α2t,α2t+1 的关系求解出 α 1 t + 1 \alpha_{1}^{t+1} α1t+1
  4. 通过 α 1 t + 1 \alpha_{1}^{t+1} α1t+1 α 2 t + 1 \alpha_{2}^{t+1} α2t+1 的满足的 K K T \mathrm{KKT} KKT 条件关系求出 b t + 1 b^{t+1} bt+1
  5. 检查 E i E_{i} Ei 是否在允许的精度 e e e 之内
  6. 检查求出的 α 1 t + 1 \alpha_{1}^{t+1} α1t+1 α 2 t + 1 \alpha_{2}^{t+1} α2t+1 是否满足 K K T \mathrm{KKT} KKT 条件
  7. 如果上面两个条件都满足则返回 α 1 t + 1 \alpha_{1}^{t+1} α1t+1 α 2 t + 1 \alpha_{2}^{t+1} α2t+1, 否则跳转到第 2 步

参考文献:

【ML】支持向量机(SVM)从入门到放弃再到掌握

支持向量机SVM通俗理解(python代码实现)

支持向量机通俗导论(理解SVM的三层境界)

学习SVM,这篇文章就够了!(附详细代码)

SMO 算法超详细解析

SMO 算法的代码实现

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值