文章目录

  • 引入SMO的背景
  • 两个变量二次规划求解方法
  • 选择两个变量的方法
    • 第一个变量选择
    • 第二个变量选择
    • 计算阈值b和差值EiE_iEi​
  • SMO算法
  • 参考文章:

引入SMO的背景

前面的文章提到,SVM的学习问题可以转成下面的凸二次规划的对偶问题:
min⁡α12∑i=1N∑j=1NαiαjyiyjK(xi,xj)−∑i=1Nαis.t.∑i=1Nαiyi=00≤αi≤C\min\limits_{\alpha} \;\; \frac{1}{2}\sum\limits_{i=1}^{N}\sum\limits_{j=1}^{N}\alpha_i\alpha_jy_iy_jK(x_i,x_j) - \sum\limits_{i=1}^{N}\alpha_i\\ s.t. \; \sum\limits_{i=1}^{N}\alpha_iy_i = 0 \\ 0 \leq \alpha_i \leq C α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​yi​=00≤αi​≤C
上面的式子是关于αi,i=1,2,...N\alpha_i, i=1,2,...Nαi​,i=1,2,...N的函数,由于一个αi\alpha_iαi​对应一个样本,所以变量的个数等于样本的个数。在样本众多的情况下,直接对所有的变量1求全局最优解,计算量太大。

为解决这个问,可以使用序列最小最优化(SMO)算法,基本思路为:如果所有变量的解都满足KKT条件,那么就得到了最优化的解(因为KKT条件是该问题最优化问题的充要条件)。如果不满足KKT条件,那么选择两个αi,αj\alpha_i, \alpha_jαi​,αj​作为变量,其他的作为常量,然后对这两个变量进行优化,那么优化的结果应该更接近KKT条件。整个SMO算法包括两个部分:

  1. 求两个变量的解析解
  2. 选择变量的启发式方法

两个变量二次规划求解方法

先假设我们已经按照某种方法选择了两个变量α1,α2\alpha_1,\alpha_2α1​,α2​ ,其他变量αi(i=3,4…,N)\alpha_i(i=3,4\ldots,N)αi​(i=3,4…,N) 可以视为常量,在优化函数中可以舍去。于是优化函数可以写成:
min⁡α1,α2W(α1,α2)=12K11α12+12K22α22+y1y2K12α1α2−(α1+α2)+y1α1∑i=3NyiαiKil+y2α2∑i=3NyiαiKi2s.t.α1y1+α2y2=−∑i=3Nyiαi=ς0⩽αi⩽C,i=1,2\begin{aligned} \min_{\alpha_1,\alpha_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_1\sum_{i=3}^Ny_i\alpha_iK_{il}+y_2\alpha_2\sum_{i=3}^Ny_i\alpha_iK_{i2}\\ s.t. \ \ \ &\alpha_1y_1+\alpha_2y_2=-\sum_{i=3}^Ny_i\alpha_i=\varsigma\\ &0\leqslant\alpha_i\leqslant C, i=1,2 \end{aligned} α1​,α2​min​W(α1​,α2​)=s.t.   ​21​K11​α12​+21​K22​α22​+y1​y2​K12​α1​α2​−(α1​+α2​)+y1​α1​i=3∑N​yi​αi​Kil​+y2​α2​i=3∑N​yi​αi​Ki2​α1​y1​+α2​y2​=−i=3∑N​yi​αi​=ς0⩽αi​⩽C,i=1,2​
式子中Kij=K(xi,xj),ςK_{ij}=K(x_i,x_j),\varsigmaKij​=K(xi​,xj​),ς 是常数。约束条件为一个不等式约束和一个等式约束。

根据约束条件:α1y1+α2y2=ς=k,0⩽αi⩽C\alpha_1y_1+\alpha_2y_2=\varsigma=k,0\leqslant\alpha_i\leqslant Cα1​y1​+α2​y2​=ς=k,0⩽αi​⩽C,其中yi∈{−1,1}y_i \in \{-1, 1\}yi​∈{−1,1},可以知道(α1,α2)(\alpha_1,\alpha_2)(α1​,α2​) 在平行于盒子[0,C]×[0,C][0,C]\times [0,C][0,C]×[0,C] 的对角线的线段上。根据不同的y1,y2y_1, y_2y1​,y2​的取值,函数图像如下图所示:

假设原始问题的初始可行解为α1old,α2old\alpha_1^{old},\alpha_2^{old}α1old​,α2old​,本次迭代的最优解为α1new,α2new\alpha_1^{new},\alpha_2^{new}α1new​,α2new​,假设沿着约束方向α2\alpha_2α2​未经剪辑(未考虑不等式约束)的解是α2new,unc\alpha_2^{new,unc}α2new,unc​ 。

由于约束边界的存在,实际上有:
L≤α2new≤HL \leq \alpha_2^{new} \leq H L≤α2new​≤H
其中,L为线段下端点,H为上端点,具体的:

当y1≠y2y_1 \neq y_2y1​​=y2​ 时,如上图(a),则:
L=max(0,α2old−α1old)H=min(C,C+α2old−α1old)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​)
当y1=y2y_1 = y_2y1​=y2​ 时,如上图(b),则:
L=max(0,α2old+α1old−C)H=min(C,α2old+α1old)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​)
所以,最终的α2new\alpha_2^{new}α2new​ 应该要满足以下情况:
α2new={Hα2new,unc>Hα2new,uncL≤α2new,unc≤HLα2new,unc<L\alpha_2^{new}= \begin{cases} H& { \alpha_2^{new,unc} > H}\\ \alpha_2^{new,unc}& {L \leq \alpha_2^{new,unc} \leq H}\\ L& {\alpha_2^{new,unc} < L} \end{cases} α2new​=⎩⎪⎨⎪⎧​Hα2new,unc​L​α2new,unc​>HL≤α2new,unc​≤Hα2new,unc​<L​
那么应该如何求α2new,unc\alpha_2^{new,unc}α2new,unc​ ? 通过对目标函数求导可以解决。

为了精简推导过程冗长的公式,首先用一些简单的变量表达复杂的式子:
g(x)=∑j=1mαj∗yjK(x,xj)+b∗Ei=g(xi)−yi=∑j=1mαj∗yjK(xi,xj)+b−yivi=∑j=3myjαjK(xi,xj)=g(xi)−∑j=12yjαjK(xi,xj)−bg(x) =\sum\limits_{j=1}^{m}\alpha_j^{*}y_jK(x, x_j)+ b^{*}\\E_i = g(x_i)-y_i = \sum\limits_{j=1}^{m}\alpha_j^{*}y_jK(x_i, x_j)+ b - y_i \\ v_i = \sum\limits_{j=3}^{m}y_j\alpha_jK(x_i,x_j) = g(x_i) - \sum\limits_{j=1}^{2}y_j\alpha_jK(x_i,x_j) -b g(x)=j=1∑m​αj∗​yj​K(x,xj​)+b∗Ei​=g(xi​)−yi​=j=1∑m​αj∗​yj​K(xi​,xj​)+b−yi​vi​=j=3∑m​yj​αj​K(xi​,xj​)=g(xi​)−j=1∑2​yj​αj​K(xi​,xj​)−b
将v1,v2v_1,v_2v1​,v2​ 带入,于是目标函数简写为:
W(α1,α2)=12K11α12+12K22α22+y1y2K12α1α2−(α1+α2)+y1α1v1+y2α2v2W(\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​
由于α1y1+α2y2=ς,yi2=1\alpha_1y_1 + \alpha_2y_2 = \varsigma, \quad y_i^2=1α1​y1​+α2​y2​=ς,yi2​=1得:
α1=y1(ς−α2y2)\alpha_1 = y_1(\varsigma - \alpha_2y_2) α1​=y1​(ς−α2​y2​)
带入W(α1,α2)W(\alpha_1,\alpha_2)W(α1​,α2​) 消去α1\alpha_1α1​ ,得:
W(α2)=12K11(ς−α2y2)2+12K22α22+y2K12(ς−α2y2)α2−(ς−α2y2)y1−α2+(ς−α2y2)v1+y2α2v2W(\alpha_2) = \frac{1}{2}K_{11}(\varsigma - \alpha_2y_2)^2 + \frac{1}{2}K_{22}\alpha_2^2 +y_2K_{12}(\varsigma - \alpha_2y_2) \alpha_2 - (\varsigma - \alpha_2y_2)y_1 - \alpha_2 +(\varsigma - \alpha_2y_2)v_1 + y_2\alpha_2v_2 W(α2​)=21​K11​(ς−α2​y2​)2+21​K22​α22​+y2​K12​(ς−α2​y2​)α2​−(ς−α2​y2​)y1​−α2​+(ς−α2​y2​)v1​+y2​α2​v2​
这样就是单变量的优化问题,求导后令等于零即可求得α2new,unc\alpha_2^{new,unc}α2new,unc​ :
∂W∂α2=K11α2+K22α2−2K12α2−K11ςy2+K12ςy2+y1y2−1−v1y2+y2v2=0\frac{\partial W}{\partial \alpha_2} = K_{11}\alpha_2 + K_{22}\alpha_2 -2K_{12}\alpha_2 - K_{11}\varsigma y_2 + K_{12}\varsigma y_2 +y_1y_2 -1 -v_1y_2 +y_2v_2 = 0 ∂α2​∂W​=K11​α2​+K22​α2​−2K12​α2​−K11​ςy2​+K12​ςy2​+y1​y2​−1−v1​y2​+y2​v2​=0
整理后得到:
(K11+K22−2K12)α2=y2(y2−y1+ςK11−ςK12+v1−v2)=y2[y2−y1+ςK11−ςK12+(g(x1)−∑j=12yjαjK(x1,xj)−b)−(g(x2)−∑j=12yjαjK(x2,xj)−b)](K_{11} +K_{22}-2K_{12})\alpha_2 = y_2(y_2-y_1 + \varsigma K_{11} - \varsigma K_{12} + v_1 - v_2) \\ =y_2\left[y_2-y_1 + \varsigma K_{11} - \varsigma K_{12} + \left(g(x_1) - \sum\limits_{j=1}^{2}y_j\alpha_jK(x_1,x_j) -b\right) \\ - \left(g(x_2) - \sum\limits_{j=1}^{2}y_j\alpha_jK(x_2,x_j) -b\right) \right] (K11​+K22​−2K12​)α2​=y2​(y2​−y1​+ςK11​−ςK12​+v1​−v2​)=y2​[y2​−y1​+ςK11​−ςK12​+(g(x1​)−j=1∑2​yj​αj​K(x1​,xj​)−b)−(g(x2​)−j=1∑2​yj​αj​K(x2​,xj​)−b)]

上面的式子的累加符号中还存在α1\alpha_1α1​,故将α1=y1(ς−α2y2)\alpha_1 = y_1(\varsigma - \alpha_2y_2)α1​=y1​(ς−α2​y2​) 带入上式:
(K11+K22−2K12)α2new,unc=y2[y2−y1+g(x1)−g(x2)+(α1y1+α2oldy2)K11−(α1y1+α2oldy2)K12−(y1α1K11+y2α2oldK12)+(y1α1K21+y2α2oldK22)]=y2[(K11+K22−2K12)α2oldy2+y2−y1+g(x1)−g(x2)]=(K11+K22−2K12)α2old+y2(E1−E2)\begin{aligned} (K_{11} +K_{22}-2K_{12})\alpha_2^{new,unc} &=y_2 [ y_2-y_1 +g(x_1)- g(x_2)+(\alpha_1y_1 + \alpha_2^{old}y_2)K_{11}-(\alpha_1y_1 + \alpha_2^{old}y_2 )K_{12}\\ &\quad-(y_1\alpha_1K_{11}+y_2\alpha_2^{old} K_{12})+(y_1\alpha_1K_{21}+y_2\alpha_2 ^{old}K_{22}) ] \\\\&= 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​[y2​−y1​+g(x1​)−g(x2​)+(α1​y1​+α2old​y2​)K11​−(α1​y1​+α2old​y2​)K12​−(y1​α1​K11​+y2​α2old​K12​)+(y1​α1​K21​+y2​α2old​K22​)]=y2​[(K11​+K22​−2K12​)α2old​y2​+y2​−y1​+g(x1​)−g(x2​)]=(K11​+K22​−2K12​)α2old​+y2​(E1​−E2​)​
得到:
α2new,unc=α2old+y2(E1−E2)K11+K22−2K12)\alpha_2^{new,unc} = \alpha_2^{old} + \frac{y_2(E_1-E_2)}{K_{11} +K_{22}-2K_{12})} α2new,unc​=α2old​+K11​+K22​−2K12​)y2​(E1​−E2​)​
最后再考虑约束条件,于是得到:
α2new={Hα2new,unc>Hα2new,uncL≤α2new,unc≤HLα2new,unc<L\alpha_2^{new}= \begin{cases} H& { \alpha_2^{new,unc} > H}\\ \alpha_2^{new,unc}& {L \leq \alpha_2^{new,unc} \leq H}\\ L& {\alpha_2^{new,unc} < L} \end{cases} α2new​=⎩⎪⎨⎪⎧​Hα2new,unc​L​α2new,unc​>HL≤α2new,unc​≤Hα2new,unc​<L​
至于α1new\alpha_1^{new}α1new​的更新,由α1oldy1+α2oldy2=α1newy1+α2newy2=ς\alpha_1^{old}y_1 + \alpha_2^{old}y_2 = \alpha_1^{new}y_1 + \alpha_2^{new}y_2 =\varsigmaα1old​y1​+α2old​y2​=α1new​y1​+α2new​y2​=ς,可得:
α1new=α1old+y1y2(α2old−α2new)\alpha_1^{new} = \alpha_1^{old} + y_1y_2(\alpha_2^{old} - \alpha_2^{new}) α1new​=α1old​+y1​y2​(α2old​−α2new​)
在这一节,我们直接假设选择了α1,α2\alpha_1, \alpha_2α1​,α2​,实际情况中,要如何选择?

选择两个变量的方法

SMO每次选择的两个变量,其中至少一个违反KKT条件。

第一个变量选择

SMO算法首先遍历数据(称之为外层循环),找到训练集中违反KKT条件最严重的样本点,将其作为第一个变量。

为了简化公式的表达,令:
g(x)=∑j=1mαj∗yjK(x,xj)+b∗g(x) =\sum\limits_{j=1}^{m}\alpha_j^{*}y_jK(x, x_j)+ b^{*} g(x)=j=1∑m​αj∗​yj​K(x,xj​)+b∗
外层循环的过程中,要检验是否满足KKT条件。具体而言,在一次外层循环中,首先遍历满足0<αi∗<C⇒yig(xi)=10 <\alpha_{i}^{*} < C \Rightarrow y_ig(x_i) = 10<αi∗​<C⇒yi​g(xi​)=1 的点(在间隔边界上的支持向量点),检验是否满足KKT条件。如果都满足,那么遍历整个训练集合,判断是否满足KKT条件。

第二个变量选择

在确定第一个变量α1\alpha_1α1​的条件下,仍然需要循环(内层循环)查找寻找第二个变量α2\alpha_2α2​。由公式可知:
α2new,unc=α2old+y2(E1−E2)K11+K22−2K12)\alpha_2^{new,unc} = \alpha_2^{old} + \frac{y_2(E_1-E_2)}{K_{11} +K_{22}-2K_{12})} α2new,unc​=α2old​+K11​+K22​−2K12​)y2​(E1​−E2​)​
可知:α2new\alpha_2^{new}α2new​ 依赖于∣E1−E2∣|E_1-E_2|∣E1​−E2​∣ 。为了加快计算速度,一种简单的做法是选择α2\alpha_2α2​使得∣E1−E2∣|E_1-E_2|∣E1​−E2​∣最大。只需要在E1E_{1}E1​为正时,循环样本选择最小的EiE_{i}Ei​作为E2E_{2}E2​,在E1E_{1}E1​为负时,循环样本选择最大的EiE_{i}Ei​作为E2E_{2}E2​, 可以将所有的EiE_{i}Ei​保存下来加快迭代。

如果内层循环找到的点不能让目标函数有足够的下降, 可以采用遍历支持向量点来做α2α_2α2​,直到目标函数有足够的下降, 如果所有的支持向量做α2α_2α2​都不能让目标函数有足够的下降,可以跳出循环,重新选择α1α_1α1​。

计算阈值b和差值EiE_iEi​

每次完成两个变量的优化后,都要重新计算阈值bbb。当0<α1new<C0<\alpha_1^{new}<C0<α1new​<C 时,由KKT条件:0<αi∗<C⇒yig(xi)=10 <\alpha_{i}^{*} < C \Rightarrow y_ig(x_i) = 10<αi∗​<C⇒yi​g(xi​)=1 可知:
y1=∑i=1NαiyiKi1+b1y_1 = \sum\limits_{i=1}^{N}\alpha_iy_iK_{i1} +b_1 y1​=i=1∑N​αi​yi​Ki1​+b1​
所以:
b1new=y1−∑i=3NαiyiKi1−α1newy1K11−α2newy2K21b_1^{new} = y_1 - \sum\limits_{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​
由E1E_1E1​ 的定义式得:
E1=g(x1)−y1=∑i=3NαiyiKi1+α1oldy1K11+α2oldy2K21+bold−y1E_1 = g(x_1) - y_1 = \sum\limits_{i=3}^{N}\alpha_iy_iK_{i1} + \alpha_{1}^{old}y_1K_{11} + \alpha_{2}^{old}y_2K_{21} + b^{old} -y_1 E1​=g(x1​)−y1​=i=3∑N​αi​yi​Ki1​+α1old​y1​K11​+α2old​y2​K21​+bold−y1​
所以:
y1−∑i=3NαiyiKi1=α1oldy1K11+α2oldy2K21+bold−E1y_1 - \sum\limits_{i=3}^{N}\alpha_iy_iK_{i1} = \alpha_{1}^{old}y_1K_{11} + \alpha_{2}^{old}y_2K_{21} + b^{old} - E_1 y1​−i=3∑N​αi​yi​Ki1​=α1old​y1​K11​+α2old​y2​K21​+bold−E1​
带入b1newb_1^{new}b1new​ 的式子得:
b1new=−E1−y1K11(α1new−α1old)−y2K21(α2new−α2old)+boldb_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<α2new<C0<\alpha_2^{new}<C0<α2new​<C 时,同理可得:
b2new=−E2−y1K12(α1new−α1old)−y2K22(α2new−α2old)+boldb_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
所以:
bnew=b1new+b2new2b^{new} = \frac{b_1^{new} + b_2^{new}}{2} bnew=2b1new​+b2new​​
更新EiE_iEi​:
Ei=∑SyjαjK(xi,xj)+bnew−yiE_i = \sum\limits_{S}y_j\alpha_jK(x_i,x_j) + b^{new} -y_i Ei​=S∑​yj​αj​K(xi​,xj​)+bnew−yi​
其中,SSS 是所有支持向量得集合。

SMO算法

输入:m个样本(x1,y1),(x2,y2),...,(xm,ym),{(x_1,y_1), (x_2,y_2), ..., (x_m,y_m),}(x1​,y1​),(x2​,y2​),...,(xm​,ym​), 其中,$x_i \in \mathcal X = \mathbf R^n $ ,yi∈Y=−1,+1,i=1,2…,Ny_i \in \mathcal Y = {-1,+1},i=1,2\ldots,Nyi​∈Y=−1,+1,i=1,2…,N,精度ε\varepsilonε ;

输出:近似解α^\hat \alphaα^

(1)取初值α(0)=0\alpha^{(0)}=0α(0)=0 ,令k=0k=0k=0 。

(2) 选取优化变量α1k,α2k\alpha_1^{k},\alpha_2^{k}α1k​,α2k​,解析求解两个变量的最优化问题,求解得最优解α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 。

(3)若在精度ε\varepsilonε 范围内满足停机条件:
∑i=1mαiyi=00≤αi≤C,i=1,2...mαik+1=0⇒yig(xi)≥10<αik+1<C⇒yig(xi)=1αik+1=C⇒yig(xi)≤1\sum\limits_{i=1}^{m}\alpha_iy_i = 0 \\ \quad 0 \leq \alpha_i \leq C, i =1,2...m \\\alpha_{i}^{k+1} = 0 \Rightarrow y_ig(x_i) \geq 1 \\0 <\alpha_{i}^{k+1} < C \Rightarrow y_ig(x_i) = 1 \\\alpha_{i}^{k+1}= C \Rightarrow y_ig(x_i) \leq 1 i=1∑m​αi​yi​=00≤αi​≤C,i=1,2...mαik+1​=0⇒yi​g(xi​)≥10<αik+1​<C⇒yi​g(xi​)=1αik+1​=C⇒yi​g(xi​)≤1
其中:
g(x)=∑j=1mαj∗yjK(x,xj)+b∗g(x) =\sum\limits_{j=1}^{m}\alpha_j^{*}y_jK(x, x_j)+ b^{*} g(x)=j=1∑m​αj∗​yj​K(x,xj​)+b∗
则转(4),否则令k=k+1k=k+1k=k+1 ,转(2);

(4)取 α^=α(k+1)\hat \alpha = \alpha^{(k+1)}α^=α(k+1)

参考文章:

《统计学习方法 第二版》

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

支持向量机器—SMO算法相关推荐

  1. 机器学习算法——支持向量机SVM4(SMO算法及KTT条件)

    上节中我们得出了原问题的对偶问题为:  公式(4.1) 那如何求解公式4.1呢?即解出,求出w和b即可得到原型:(公式4.2) 显然,公式4.1是二次规划(QP)问题,可使用二次规划算法进行求解.然而 ...

  2. 支持向量机之SMO算法

    一.SMO算法 序列最小化优化算法(Sequential minimal optimization,SMO)是一种用于解决支持向量机训练过程中所产生优化问题的算法.SMO由微软研究院的约翰·普莱特在1 ...

  3. 支持向量机(SVM) SMO算法详解

    1.寻找最大间隔 训练样本集:D = { (x1, y1) ,  (x2, y2) , ... ,(xm, ym) } , yi ϵ { -1, +1} 划分超平面的线性方程:wTx + b = 0( ...

  4. SVM问题的求解方法SMO算法

    西瓜书学习笔记:支持向量机(6.1-6.2)笔记 1.SMO算法思路讲解 列表就是西瓜书上面的公式6.11 2.SMO算法简单实现 的点就是支持向量机上面的点. 30:43分钟开始讲code exam ...

  5. 机器学习之利用SMO算法求解支持向量机—基于python

    大家好,我是带我去滑雪! 本期将讨论支持向量机的实现问题,我们知道支持向量机的学习问题可以化为求解凸二次规划问题.这样的凸二次规划问题具有全局最优解,并且有许多最优化算法可以用于这一问题的求解.但是当 ...

  6. 支持向量机(SVM):超平面及最大间隔化、支持向量机的数学模型、软间隔与硬间隔、线性可分支持向量机、线性支持向量机、非线性支持向量机、核函数、核函数选择、SMO算法、SVM vs LR、优缺点

    支持向量机(SVM):超平面及最大间隔化.支持向量机的数学模型.软间隔与硬间隔.线性可分支持向量机.线性支持向量机.非线性支持向量机.核函数.核函数选择.SMO算法.SVM vs LR.优缺点 目录

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

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

  8. 机器学习--支持向量机(四)SMO算法详解

    上篇我们讲到,线性和非线性都转化为求解的问题即: 求解的方法就是SMO算法,下面详细介绍SMO算法: 在讲解SMO算法之前先说明一下讲解思路,首先先帮助大家理解这个式子,说明推倒的过程细节,然后和原论 ...

  9. 支持向量机smo matlab,理解支持向量机(三)SMO算法

    在支持向量机模型的求解中,我们用到了SMO算法来求解向量α. 那么什么是SMO算法?在讲SMO算法之前.我们须要先了解下面坐标上升法. 1.坐标上升法 如果有优化问题: W是α向量的函数.利用坐标上升 ...

最新文章

  1. Linux之复制、移动文件及目录命令
  2. zabbix监控利用Python脚本发邮件
  3. [linux]unixODBC的安装配置说明
  4. jQuery deferred应用dom加载完毕详细源码分析(三)
  5. 交换系统接媒体服务器,基于软交换的媒体服务器的设计与实现
  6. 《计算机科学概论》—第3章3.3节文本表示法
  7. 个人觉的不错的文章[来自CSDN]
  8. Django登陆以后重定向到请求登陆的页面
  9. JavaScript学习(七十四)—递归函数
  10. iText 实践的目录(the content of iText in Action)
  11. MyBatis集合Spring(四)之使用Spring处理事务
  12. ISM模型由自相关矩阵SSIM计算获得可达矩阵
  13. .net6智能提示设置为中文
  14. 写作能赚钱吗?不,写作的首要目的,是认识自己
  15. homebrew安装常见错误解决
  16. 微信小程序使用slot踩坑
  17. vue项目内存溢出的解决
  18. dbeaver 离线安装驱动
  19. 分享实录|区块链技术如何快速落地
  20. CMT2380F32模块开发6-flash例程

热门文章

  1. 神经网络 tensorflow :损失函数
  2. OpenGL函数:wglCreateContext
  3. linux关于mysql_Linux关于MySQL的常用操作
  4. fortran求解雷诺方程_方程的计算机处理94(5)_Cvs
  5. java.sql.SQLSyntaxErrorException: Unknown database ‘spring‘
  6. C#中oracle数据库的连接方法
  7. bzoj 1670 [Usaco2006 Oct]Building the Moat护城河的挖掘——凸包
  8. PHP无限极分类原理
  9. 短视频APP开发:短视频特效SDK功能火爆来袭!
  10. Winform开发框架之通用短信邮件通知模块