序列最小最优化算法

序列最小最优化算法(sequential minimal optimization,简称SMO)是由Platt在1998年提出,用于解决多变量的凸优化问题。当变量个数很多的时候,一般的最优化算法通常无法有效求解最优解。此时,SMO算法的作用就会体现的淋漓尽致。针对多变量的最优解问题,SMO算法通过从变量集中选取两个变量,剩余的变量视为常量来计算局部最优解,然后再以递进的方式求出全局最优解。

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 \min_{\alpha} \quad \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 αmin​21​i=1∑N​j=1∑N​αi​αj​yi​yj​K(xi​,xj​)−i=1∑N​αi​ s . t . ∑ i = 1 N α i y i = 0 s.t. \qquad \sum_{i=1}^N\alpha_iy_i=0 s.t.i=1∑N​αi​yi​=0 0 ≤ α i ≤ C , i = 1 , 2 , . . . , N 0 \leq \alpha_i \leq C,i=1,2,...,N 0≤αi​≤C,i=1,2,...,N其中,目标函数的变量为 ( α 1 , α 2 , . . . , α N ) (\alpha_1,\alpha_2,...,\alpha_N) (α1​,α2​,...,αN​),每一个实例 ( x i , y i ) (x_i,y_i) (xi​,yi​)对应一个 α i \alpha_i αi​。

SMO算法是一种启发式算法,其基本思路是:如果所有变量的解都满足此最优化问题的KKT条件,那么这个最优化问题的解就得到了。因此KKT条件是该最优化问题的充分必要条件。SMO算法的目标是求解满足KKT条件的 ( α 1 , α 2 , . . . , α N ) (\alpha_1,\alpha_2,...,\alpha_N) (α1​,α2​,...,αN​)。方法是选择两个变量,固定其他变量,针对这两个变量构建一个二次规划的子问题。这个二次规划子问题关于这两个变量的解更接近原始二次规划问题的解,因为这会使得原始二次规划问题的目标函数值变得更小。二次规划子问题有两个变量,一个是主动变量,其为违反KKT条件最严重的那一个,另一个被动变量,由主动变量依据约束条件自动确定。如此,SMO算法将原问题不断分解为子问题并对子问题求解,进而达到求解原问题的目的。

对子问题进行求最优解时,假设 α 1 , α 2 \alpha_1,\alpha_2 α1​,α2​为两个变量,固定 α 3 , α 4 , . . . , α N \alpha_3,\alpha_4,...,\alpha_N α3​,α4​,...,αN​,其满足的约束条件为: α 1 y 1 + α 2 y 2 = − ∑ i = 3 N α i y i = ζ \alpha_1y_1+\alpha_2y_2=-\sum_{i=3}^N\alpha_iy_i=\zeta α1​y1​+α2​y2​=−i=3∑N​αi​yi​=ζ当更新其中一个变量 α 2 \alpha_2 α2​时,相应的 α 1 \alpha_1 α1​也会自动更新,进而求出子问题的最优解。

两个变量二次规划

假设 α 1 , α 2 \alpha_1,\alpha_2 α1​,α2​为两个变量,固定 α 3 , α 4 , . . . , α N \alpha_3,\alpha_4,...,\alpha_N α3​,α4​,...,αN​,那么SMO的最优化问题的子问题表达为: 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 1 + y 2 α 2 ∑ i = 3 N y i α i K i 2 \min_{\alpha_1,\alpha_2} \quad 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_{i1}+y_2\alpha_2\sum_{i=3}^Ny_i\alpha_iK_{i2} α1​,α2​min​W(α1​,α2​)=21​K11​α12​+21​K22​α22​+y1​y2​K12​α1​α2​−(α1​+α2​)+y1​α1​i=3∑N​yi​αi​Ki1​+y2​α2​i=3∑N​yi​αi​Ki2​ s . t . α 1 y 1 + α 2 y 2 = − ∑ i = 3 N α i y i = ζ s.t. \quad \alpha_1y_1+\alpha_2y_2=-\sum_{i=3}^N\alpha_iy_i=\zeta s.t.α1​y1​+α2​y2​=−i=3∑N​αi​yi​=ζ 0 ≤ α i ≤ C , i = 1 , 2 0 \leq \alpha_i\leq C,i=1,2 0≤αi​≤C,i=1,2其中, K i j = K ( x i , x j ) , i , j = 1 , 2 , . . . , N K_{ij}=K(x_i,x_j),i,j=1,2,...,N Kij​=K(xi​,xj​),i,j=1,2,...,N, ζ \zeta ζ为常数。

为了解决两个变量的最优化问题,首先分析约束条件,找出变量满足的取值范围,并在此范围内求解最优解。

依据变量的上述等式约束和不等式约束, α 1 , α 2 \alpha_1,\alpha_2 α1​,α2​都在 [ 0 , C ] [0,C] [0,C]范围内,并且 α 1 , α 2 \alpha_1,\alpha_2 α1​,α2​满足的直线平行于盒子范围的对角线。如果 y 1 = ̸ y 2 y_1=\not y_2 y1​≠​y2​时,则 L = m a x ( 0 , α 2 o l d − α 1 o l d ) , H = m i n ( C , C + α 2 o l d − α 1 o l d ) L=max(0,\alpha_2^{old}-\alpha_1^{old}),H=min(C,C+\alpha_2^{old}-\alpha_1^{old}) L=max(0,α2old​−α1old​),H=min(C,C+α2old​−α1old​);如果 y 1 = y 2 y_1= y_2 y1​=y2​时,则 L = m a x ( 0 , α 2 o l d + α 1 o l d − C ) , H = m i n ( C , α 2 o l d + α 1 o l d ) L=max(0,\alpha_2^{old}+\alpha_1^{old}-C),H=min(C,\alpha_2^{old}+\alpha_1^{old}) L=max(0,α2old​+α1old​−C),H=min(C,α2old​+α1old​)。计算的新解 α 1 n e w , α 2 n e w \alpha_1^{new},\alpha_2^{new} α1new​,α2new​必须满足 [ L , H ] [L,H] [L,H]这一范围,即 L ≤ α 2 n e w ≤ H L\leq \alpha_2^{new}\leq H L≤α2new​≤H,接下来两个变量的最优化问题实质上是单变量的最优化问题,因为上述的等式约束,不妨考虑为变量 α 2 \alpha_2 α2​的最优化问题。

首先求沿着约束方向不考虑取值范围时的 α 2 \alpha_2 α2​的最优解 α 2 n e w , u n c \alpha_2^{new,unc} α2new,unc​;然后再求剪辑后 α 2 \alpha_2 α2​的解 α 2 n e w \alpha_2^{new} α2new​。在此之前,先计算每个实例 x i x_i xi​的误差 g ( x ) = ∑ i = 1 N α i y i K ( x i , x ) + b g(x)=\sum_{i=1}^N\alpha_iy_iK(x_i,x)+b g(x)=i=1∑N​αi​yi​K(xi​,x)+b E i = g ( x i ) − y i = ( ∑ i = 1 N α i y i K ( x i , x ) + b ) − y i , i = 1 , 2 E_i=g(x_i)-y_i=(\sum_{i=1}^N\alpha_iy_iK(x_i,x)+b)-y_i,i=1,2 Ei​=g(xi​)−yi​=(i=1∑N​αi​yi​K(xi​,x)+b)−yi​,i=1,2上式中, g ( x i ) g(x_i) g(xi​)为实例 x i x_i xi​的预测值, E i E_i Ei​为实例 x i x_i xi​的误差。

最优化问题沿着约束方向不考虑取值范围的解为: α 2 n e w , u n c = α 2 o l d + y 2 ( E 1 − E 2 ) η \alpha_2^{new,unc}=\alpha_2^{old}+\frac{y_2(E_1-E_2)}{\eta} α2new,unc​=α2old​+ηy2​(E1​−E2​)​那么,这个公式是怎么推导出来的呢?接下来就是推导公式的详细步骤: v i = ∑ j = 3 N α j y j K ( x i , x j ) = g ( x i ) − ∑ j = 1 2 α j y j K ( x i , x j ) − b , i = 1 , 2 v_i=\sum_{j=3}^N\alpha_jy_jK(x_i,x_j)=g(x_i)-\sum_{j=1}^2\alpha_jy_jK(x_i,x_j)-b,i=1,2 vi​=j=3∑N​αj​yj​K(xi​,xj​)=g(xi​)−j=1∑2​αj​yj​K(xi​,xj​)−b,i=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 v 1 + y 2 α 2 v 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_1v_1+y_2\alpha_2v_2 W(α1​,α2​)=21​K11​α12​+21​K22​α22​+y1​y2​K12​α1​α2​−(α1​+α2​)+y1​α1​v1​+y2​α2​v2​由 α 1 y 1 = ζ − α 2 y 2 \alpha_1y_1=\zeta-\alpha_2y_2 α1​y1​=ζ−α2​y2​及 y i 2 = 1 y_i^2=1 yi2​=1,可将 α 1 \alpha_1 α1​表示为 α 1 = ( ζ − α 2 y 2 ) y 1 \alpha_1=(\zeta-\alpha_2y_2)y_1 α1​=(ζ−α2​y2​)y1​代入到上式中,得到只要一个变量 α 2 \alpha_2 α2​的目标函数 W ( α 2 ) = 1 2 K 11 ( ζ − α 2 y 2 ) 2 + 1 2 K 22 α 2 2 + y 2 K 12 ( ζ − α 2 y 2 ) α 2 − ( ζ − α 2 y 2 ) y 1 − α 2 + v 1 ( ζ − α 2 y 2 ) + y 2 v 2 α 2 W(\alpha_2)=\frac{1}{2}K_{11}(\zeta-\alpha_2y_2)^2+\frac{1}{2}K_{22}\alpha_2^2+y_2K_{12}(\zeta-\alpha_2y_2)\alpha_2-(\zeta-\alpha_2y_2)y_1-\alpha_2+v_1(\zeta-\alpha_2y_2)+y_2v_2\alpha_2 W(α2​)=21​K11​(ζ−α2​y2​)2+21​K22​α22​+y2​K12​(ζ−α2​y2​)α2​−(ζ−α2​y2​)y1​−α2​+v1​(ζ−α2​y2​)+y2​v2​α2​对 α 2 \alpha_2 α2​求导数 ∂ W ∂ α 2 = K 11 α 2 + K 22 α 2 − 2 K 12 α 2 − K 11 ζ y 2 + K 12 ζ y 2 + y 1 y 2 − 1 − v 1 y 2 + y 2 v 2 \frac{\partial W}{\partial \alpha_2}=K_{11}\alpha_2+K_{22}\alpha_2-2K_{12}\alpha_2-K_{11}\zeta y_2+K_{12}\zeta y_2+y_1y_2-1-v_1y_2+y_2v_2 ∂α2​∂W​=K11​α2​+K22​α2​−2K12​α2​−K11​ζy2​+K12​ζy2​+y1​y2​−1−v1​y2​+y2​v2​令其为0,即 ( K 11 + K 22 − 2 K 12 ) α 2 = y 2 ( y 2 − y 1 + ζ K 11 − ζ K 12 + v 1 − v 2 ) = y 2 [ y 2 − y 1 + ζ K 11 − ζ K 12 + ( g ( x i ) − ∑ j = 1 2 y j α j K 1 j − b ) − ( g ( x 2 − ∑ j = 1 2 y j α j K 2 j − b ) ] (K_{11}+K_{22}-2K_{12})\alpha_2=y_2(y_2-y_1+\zeta K_{11}-\zeta K_{12}+v_1-v_2)\\ =y_2\left[y_2-y_1+\zeta K_{11} - \zeta K_{12} +(g(x_i)-\sum_{j=1}^2y_j\alpha_jK_{1j}-b)-(g(x_2-\sum_{j=1}^2y_j\alpha_jK_{2j}-b)\right] (K11​+K22​−2K12​)α2​=y2​(y2​−y1​+ζK11​−ζK12​+v1​−v2​)=y2​[y2​−y1​+ζK11​−ζK12​+(g(xi​)−j=1∑2​yj​αj​K1j​−b)−(g(x2​−j=1∑2​yj​αj​K2j​−b)]将 ζ = α 1 o l d y 1 + α 2 o l d y 2 \zeta=\alpha_1^{old}y_1+\alpha_2^{old}y_2 ζ=α1old​y1​+α2old​y2​代入,得到 ( K 11 + K 22 − 2 K 12 ) α 2 n e w , u n c = y 2 ( ( K 11 + K 22 − 2 K 12 ) α 2 o l d y 2 + y 2 − y 1 + g ( x 1 ) − g ( x 2 ) ) = ( K 11 + K 22 − 2 K 12 ) α 2 o l d + y 2 ( E 1 − E 2 ) \begin{aligned}(K_{11}+K_{22}-2K_{12})\alpha_2^{new,unc} &= y_2((K_{11}+K_{22}-2K_{12})\alpha_2^{old}y_2+y_2-y_1+g(x_1)-g(x_2)) \\ &=(K_{11}+K_{22}-2K_{12})\alpha_2^{old}+y_2(E_1-E_2)\end{aligned} (K11​+K22​−2K12​)α2new,unc​​=y2​((K11​+K22​−2K12​)α2old​y2​+y2​−y1​+g(x1​)−g(x2​))=(K11​+K22​−2K12​)α2old​+y2​(E1​−E2​)​令 η = K 11 + K 22 − 2 K 12 \eta=K_{11}+K_{22}-2K_{12} η=K11​+K22​−2K12​代入,得到 α 2 n e w , u n c = α 2 o l d + y 2 ( E 1 − E 2 ) η \alpha_2^{new,unc}=\alpha_2^{old}+\frac{y_2(E_1-E_2)}{\eta} α2new,unc​=α2old​+ηy2​(E1​−E2​)​

然后,经过范围的约束得到的新解为
α 2 n e w = { H , α 2 n e w , u n c &gt; H α 2 n e w , u n c , L ≤ α 2 n e w , u n c ≤ H L , α 2 n e w , u n c &lt; L \alpha_2^{new} = \begin{cases} H \qquad, \alpha_2^{new,unc}&gt;H \\ \alpha_2^{new,unc}, L \leq \alpha_2^{new,unc} \leq H \\ L \qquad, \alpha_2^{new,unc} &lt; L \end{cases} α2new​=⎩⎪⎨⎪⎧​H,α2new,unc​>Hα2new,unc​,L≤α2new,unc​≤HL,α2new,unc​<L​
由 α 2 n e w \alpha_2^{new} α2new​计算得到 α 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​+y1​y2​(α2old​−α2new​)

计算截距b和误差 E i E_i Ei​

每次完成两个变量的更新优化后,都要重新计算截距b。当 0 &lt; α 1 n e w &lt; C 0&lt;\alpha_1^{new}&lt;C 0<α1new​<C时,由KKT条件可知: ∑ i = 1 N α i y i K i 1 + b = y 1 \sum_{i=1}^N\alpha_iy_iK_{i1}+b=y_1 i=1∑N​αi​yi​Ki1​+b=y1​于是得到: b 1 n e w = y 1 − ∑ i = 3 N α i y i K i 1 − α 1 n e w y 1 K 11 − α 2 n e w y 2 K 21 b_1^{new}=y_1-\sum_{i=3}^N\alpha_iy_iK_{i1}-\alpha_1^{new}y_1K_{11}-\alpha_2^{new}y_2K_{21} b1new​=y1​−i=3∑N​αi​yi​Ki1​−α1new​y1​K11​−α2new​y2​K21​由 E 1 E_1 E1​的定义: E 1 = ∑ i = 3 N α i y i K i 1 − α 1 o l d y 1 K 11 − α 2 o l d y 2 K 21 + b o l d − y 1 E1=\sum_{i=3}^N\alpha_iy_iK_{i1}-\alpha_1^{old}y_1K_{11}-\alpha_2^{old}y_2K_{21}+b^{old}-y_1 E1=i=3∑N​αi​yi​Ki1​−α1old​y1​K11​−α2old​y2​K21​+bold−y1​将上式代入到 E 1 E_1 E1​中得到: b 1 n e w = − E 1 − y 1 K 11 ( α 1 n e w − α 1 o l d ) − y 2 K 21 ( α 2 n e w − α 2 o l d ) + b o l d b_1^{new}=-E_1-y_1K_{11}(\alpha_1^{new}-\alpha_1^{old})-y_2K_{21}(\alpha_2^{new}-\alpha_2^{old})+b^{old} b1new​=−E1​−y1​K11​(α1new​−α1old​)−y2​K21​(α2new​−α2old​)+bold同理,如果 0 &lt; α 2 n e w &lt; C 0&lt;\alpha_2^{new}&lt;C 0<α2new​<C,那么 b 2 n e w = − E 2 − y 1 K 12 ( α 1 n e w − α 1 o l d ) − y 2 K 22 ( α 2 n e w − α 2 o l d ) + b o l d b_2^{new}=-E_2-y_1K_{12}(\alpha_1^{new}-\alpha_1^{old})-y_2K_{22}(\alpha_2^{new}-\alpha_2^{old})+b^{old} b2new​=−E2​−y1​K12​(α1new​−α1old​)−y2​K22​(α2new​−α2old​)+bold如果 α 1 n e w , α 2 n e w \alpha_1^{new},\alpha_2^{new} α1new​,α2new​是0或者C,那么 b n e w = b 1 n e w + b 2 n e w 2 b^{new}=\frac{b_1^{new}+b_2^{new}}{2} bnew=2b1new​+b2new​​。

更新 b n e w b^{new} bnew之后,还要更新对应的 E i E_i Ei​: E i n e w = ∑ j = 1 N y j α j K ( x i , x j ) + b n e w − y i E_i^{new}=\sum_{j=1}^Ny_j\alpha_jK(x_i,x_j)+b^{new}-y_i Einew​=j=1∑N​yj​αj​K(xi​,xj​)+bnew−yi​

SMO算法

输入:线性可分训练集 T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x N , y N ) } T=\left\{(x_1,y_1),(x_2,y_2),...,(x_N,y_N)\right\} T={(x1​,y1​),(x2​,y2​),...,(xN​,yN​)},其中, x i ∈ X = R n , y i ∈ Y = { + 1 , − 1 } , i = 1 , 2 , . . . , N x_i\in \mathcal {X}=R^n,y_i \in \mathcal {Y}=\left\{+1,-1\right\},i=1,2,...,N xi​∈X=Rn,yi​∈Y={+1,−1},i=1,2,...,N,精度 ε \varepsilon ε
输出:近似解 α \alpha α

  • 取初值 α ( 0 ) = 0 \alpha^{(0)}=0 α(0)=0,令k=0
  • 选取优化变量 α 1 ( k ) , α 2 ( k ) \alpha_1^{(k)},\alpha_2^{(k)} α1(k)​,α2(k)​,解析求解两个变量的最优化问题,求得最优解 α 1 ( k + 1 ) , α 2 ( k + 1 ) \alpha_1^{(k+1)},\alpha_2^{(k+1)} α1(k+1)​,α2(k+1)​,更新 α \alpha α为 α ( k + 1 ) \alpha^{(k+1)} α(k+1)
  • 若在精度 ε \varepsilon ε范围内满足停止条件 ∑ i = 1 N α i y i = 0 \sum_{i=1}^N\alpha_iy_i=0 i=1∑N​αi​yi​=0 0 ≤ α i ≤ C , i = 1 , 2 , . . . , N 0\leq \alpha_i \leq C,i=1,2,...,N 0≤αi​≤C,i=1,2,...,N y . g ( x i ) = { ≥ 1 , { x i ∣ α i = 0 } = 1 , { x i ∣ 0 &lt; α i &lt; C } ≤ 1 , { x i ∣ α i = C } y.g(x_i)=\begin{cases} \ge 1, \left\{x_i|\alpha_i=0\right\} \\ =1, \left\{x_i|0 &lt; \alpha_i &lt; C\right\} \\ \leq 1, \left\{x_i|\alpha_i=C\right\} \end{cases} y.g(xi​)=⎩⎪⎨⎪⎧​≥1,{xi​∣αi​=0}=1,{xi​∣0<αi​<C}≤1,{xi​∣αi​=C}​其中 g ( x i ) = ∑ j = 1 N α j y j K ( x i , x j ) + b g(x_i)=\sum_{j=1}^N\alpha_jy_jK(x_i,x_j)+b g(xi​)=j=1∑N​αj​yj​K(xi​,xj​)+b则转到下一步,否则令k=k+1,转到第2步;
  • 取 α = α ( k + 1 ) \alpha=\alpha^{(k+1)} α=α(k+1)

变量的选择

  1. 第一个变量的选择
    KKT条件: α i = 0 ⇔ y i g ( x i ) ≥ 1 \alpha_i=0\Leftrightarrow y_ig(x_i)\ge 1 αi​=0⇔yi​g(xi​)≥1 0 &lt; α i &lt; C ⇔ y i g ( x i ) = 1 0&lt;\alpha_i&lt;C\Leftrightarrow y_ig(x_i)= 1 0<αi​<C⇔yi​g(xi​)=1 α i = C ⇔ y i g ( x i ) ≤ 1 \alpha_i=C\Leftrightarrow y_ig(x_i)\leq 1 αi​=C⇔yi​g(xi​)≤1SMO选择第1个变量的过程称为外层循环。外层循环在训练样本中选取违反KKT条件最严重的样本点,并将其对应的变量作为第1个变量。该检验是在 ε \varepsilon ε范围内进行的。检验过程中,外层循环首先遍历所有满足条件的 0 &lt; α i &lt; C 0 &lt; \alpha_i &lt; C 0<αi​<C的样本点,检验它们是否满足KKT条件。如果这些样本点都不满足KKT条件,那么遍历整个训练集,检验它们是否满足KKT条件。
  2. 第2个变量的选择
    SMO选择第2个变量的过程称为内层循环。假设外层循环找到第1个变量 α 1 \alpha_1 α1​,现在在内层循环中找到第2个变量 α 2 \alpha_2 α2​。第2个变量的选择标准是使 ∣ α 1 − α 2 ∣ |\alpha_1-\alpha_2| ∣α1​−α2​∣有足够大的变化。因为 α 2 n e w \alpha_2^{new} α2new​是依赖于 ∣ α 1 − α 2 ∣ |\alpha_1-\alpha_2| ∣α1​−α2​∣,选择一个 α 2 \alpha_2 α2​,使得 ∣ α 1 − α 2 ∣ |\alpha_1-\alpha_2| ∣α1​−α2​∣尽可能的大,从而加快计算速度。如果 E 1 E_1 E1​是正的,那么选择最小的 E i E_i Ei​作为 E 2 E_2 E2​;如果 E 1 E_1 E1​是负的,那么选择最大的 E i E_i Ei​作为 E 2 E_2 E2​。

参考文献

  • 李航 《统计学习方法》

支持向量机SVM之-SMO算法相关推荐

  1. 支持向量机原理(四)SMO算法原理

    支持向量机原理(一) 线性支持向量机 支持向量机原理(二) 线性支持向量机的软间隔最大化模型 支持向量机原理(三)线性不可分支持向量机与核函数 支持向量机原理(四)SMO算法原理 支持向量机原理(五) ...

  2. 经典SVM之SMO算法实现

    经典SVM之SMO算法实现 一.浅谈理论 (1)原始问题部分        对于理论不做过深的解释和讨论.原因有两个.第一,我也不会.第二,写公式符号太头疼!所以,只是简单 给出 一些最重要的公式或者 ...

  3. OpenCV支持向量机SVM和SDG算法的实例(附完整代码)

    OpenCV支持向量机SVM和SDG算法的实例 OpenCV支持向量机SVM和SDG算法的实例 OpenCV支持向量机SVM和SDG算法的实例 #include "opencv2/core. ...

  4. ML之mlxtend:基于iris鸢尾花数据集利用逻辑回归LoR/随机森林RF/支持向量机SVM/集成学习算法结合mlxtend库实现模型可解释性(决策边界可视化)

    ML之mlxtend:基于iris鸢尾花数据集利用逻辑回归LoR/随机森林RF/支持向量机SVM/集成学习算法结合mlxtend库实现模型可解释性(决策边界可视化) 目录 相关文章 ML之mlxten ...

  5. 基于SVM和SMO算法的向量机训练算法研究

    目 录 绪论 1 1.1支持向量机的研究背景.意义 1 1.2 SVM算法研究现状 2 1.3 论文内容及结构安排 4 统计学习理论基础 4 2.1 学习问题的表示 4 2.2 期望风险.经验风险 5 ...

  6. 手推SVM及SMO算法实现

    本文的SMO算法实现主要是参看博文[机器学习详解]SMO算法剖析 以下是我自己手写的SVM实现过程和SMO推导,以作学习理解以及日后巩固之用

  7. 【机器学习算法-python实现】svm支持向量机(2)—简化版SMO算法

    (转载请注明出处:http://blog.csdn.net/buptgshengod) 1.背景知识      通过上一节我们通过引入拉格朗日乗子得到支持向量机变形公式.详细变法可以参考这位大神的博客 ...

  8. 支持向量机SVM序列最小优化算法SMO

    支持向量机(Support Vector Machine)由V.N. Vapnik,A.Y. Chervonenkis,C. Cortes 等在1964年提出.序列最小优化算法(Sequential ...

  9. 支持向量机器—SMO算法

    文章目录 引入SMO的背景 两个变量二次规划求解方法 选择两个变量的方法 第一个变量选择 第二个变量选择 计算阈值b和差值EiE_iEi​ SMO算法 参考文章: 引入SMO的背景 前面的文章提到,S ...

最新文章

  1. 学写网站(一)前端配置之安装nvm、node、npm
  2. win7查看某个端口被占用的解决方法
  3. java返回特定下标元素_java基础--输出数组中指定元素的下标
  4. Java—File类详解及实践
  5. css选择器([class*= icon-], [class^=icon-] 的区别)
  6. 【vue】vue中element表格导出为excel表格
  7. 电脑屏幕蓝光过滤护眼工具:f.lux for Mac
  8. 二维码美化策略——QArt Codes
  9. 4.3寸TFTLCD显示JPG图片
  10. 云计算与虚拟化技术课堂零碎(一)
  11. Praat脚本-004 | 替换标注内容
  12. 白帽专访丨大家好,我们是渊龙Sec安全团队
  13. 搭建属于自己的数字IC EDA环境(六):开机自动激活 Synopsys license
  14. vue3:父子组件传值
  15. CentOS7 安装 CMake 解决 cmake command not found 问题
  16. java 之file文件/目录创建
  17. 精品基于Uniapp+SSM实现的Android的校园新闻管理系统实现的App
  18. [附源码]Python计算机毕业设计JAVA医院信息管理系统
  19. Cisco Packet Tracer 7.2
  20. 2023计算机毕业设计-基于springnoot的医院门诊挂号缴费药品管理系统HTML-JAVA(论文+开题报告+运行)

热门文章

  1. xpath命令following-sibling用法
  2. Linux kernel 的一个panic问题定位
  3. 微信小程序pc端点击授权登录没反应
  4. mysql基础 Task03:复杂一点的查询
  5. 关于图像降噪的学习笔记
  6. php优缺点ppt,ppt的作用是什么
  7. iOS 归档 解档 unexpected class 问题
  8. Struts2学习笔记__其他表单标签checkboxlist
  9. 蛋白质ph稳定性计算机模拟,蛋白质折叠的荧光测定和计算机模拟
  10. Git常用操作(Gitlab)