smo 并行算法实现
DESCRIPTION
河北大学. SMO 并行算法实现. 王海波. 河北大学数学与计算机学院 Department of Mathematics and Computer Science Hebei University. SVM 问题描述 C-SVM 分类器 SMO 算法思想 SMO 并行点及实现 总结与展望 参考文献. SVM 问题描述. SVM 线性可分. 给定数据集:. 线性 SVM 就是要找到一个能正确分类所有样例且间隔最大的平面。如果数据集线性可分,则问题可以用下式描述 :. 一般称上面的分类器为线性硬间隔支持向量分类机。. SVM 线性不可分. - PowerPoint PPT PresentationTRANSCRIPT
![Page 1: SMO 并行算法实现](https://reader033.vdocuments.net/reader033/viewer/2022061406/568134e5550346895d9c1bf1/html5/thumbnails/1.jpg)
SMOSMO 并行算法实现并行算法实现
王海波
河北大学数学与计算机学院Department of Mathematics and Computer Science Hebei University
![Page 2: SMO 并行算法实现](https://reader033.vdocuments.net/reader033/viewer/2022061406/568134e5550346895d9c1bf1/html5/thumbnails/2.jpg)
SVM问题描述 C-SVM分类器 SMO算法思想 SMO并行点及实现 总结与展望 参考文献
![Page 3: SMO 并行算法实现](https://reader033.vdocuments.net/reader033/viewer/2022061406/568134e5550346895d9c1bf1/html5/thumbnails/3.jpg)
SVM SVM 问题描述问题描述
2margin=
| |w
![Page 4: SMO 并行算法实现](https://reader033.vdocuments.net/reader033/viewer/2022061406/568134e5550346895d9c1bf1/html5/thumbnails/4.jpg)
给定数据集:
线性 SVM 就是要找到一个能正确分类所有样例且间隔最大的平面。如果数据集线性可分,则问题可以用下式描述 :
SVM SVM 线性可分线性可分
一般称上面的分类器为线性硬间隔支持向量分类机。
![Page 5: SMO 并行算法实现](https://reader033.vdocuments.net/reader033/viewer/2022061406/568134e5550346895d9c1bf1/html5/thumbnails/5.jpg)
但是如果数据集线性不可分,这时通常引入松弛变量ε ,放松约束。这时问题描述改为下面的形式 :
SVM SVM 线性不可分线性不可分
这样的分类器称为线性软间隔支持向量分类机。
![Page 6: SMO 并行算法实现](https://reader033.vdocuments.net/reader033/viewer/2022061406/568134e5550346895d9c1bf1/html5/thumbnails/6.jpg)
SVM SVM 对偶问题对偶问题
原问题:
线性 SVM 和线性可分数据集:
线性 SVM 和线性不可分数据集:
对偶问题:
原问题:
对偶问题:
![Page 7: SMO 并行算法实现](https://reader033.vdocuments.net/reader033/viewer/2022061406/568134e5550346895d9c1bf1/html5/thumbnails/7.jpg)
如果数据集线性不可分,也可以通过引入一个非线性变换 ,将数据影射到特征空间,由于纬数升高,在原来线性不可分的数据,在高纬空间可能变成线性可分。
SVM SVM 特征空间特征空间
1iy1iy
2x
1x
1iy1iy
)(X
特征空间原空间
)(X
![Page 8: SMO 并行算法实现](https://reader033.vdocuments.net/reader033/viewer/2022061406/568134e5550346895d9c1bf1/html5/thumbnails/8.jpg)
一个核就是一个函数 K ,对所有的 有
核函数核函数
Xzx ,
zxzxK ),(
成立。这样,我们就不用去关心到特征空间的映射到底是什么。常用的核函数有以下三个:
kernels sigmoid ))(tanh(),(
functions basis radial ))2(exp(),(
1),(
22
jiji
jiji
d
jiji
xxxxk
xxxxk
polynomialxxxxk
![Page 9: SMO 并行算法实现](https://reader033.vdocuments.net/reader033/viewer/2022061406/568134e5550346895d9c1bf1/html5/thumbnails/9.jpg)
采用软间隔和核函数两种方法所做出的分类器有着更好的适应性。这时的原问题和对偶问题为:
C-SVMC-SVM
原问题:
对偶问题:
这样的分类器称为非线性软间隔支持向量分类机。
![Page 10: SMO 并行算法实现](https://reader033.vdocuments.net/reader033/viewer/2022061406/568134e5550346895d9c1bf1/html5/thumbnails/10.jpg)
算法精髓:每次选取两个 α 进行更新SMO SMO 算法思想算法思想
开始
选择两个 α
更新 F
计算误差
误差 <阈值
结束
更新 α
![Page 11: SMO 并行算法实现](https://reader033.vdocuments.net/reader033/viewer/2022061406/568134e5550346895d9c1bf1/html5/thumbnails/11.jpg)
把训练样例分为五个集合:
SMO SMO 选择两个要更新的选择两个要更新的 αα
选取 Fi 的最小值和最大值,分别记为 bup,blow
其中 , bup,blow 对应的就是要选择的两个 αα
( 1 )
![Page 12: SMO 并行算法实现](https://reader033.vdocuments.net/reader033/viewer/2022061406/568134e5550346895d9c1bf1/html5/thumbnails/12.jpg)
SMO SMO 更新两个更新两个 αα
2 按下式更新 α2
3 如果 Δα2 小于阈值,更新失败。否则,按下式更新 α1
1 计算 α2 的上界 H 和下界 L ,如果 H<=L ,更新失败
![Page 13: SMO 并行算法实现](https://reader033.vdocuments.net/reader033/viewer/2022061406/568134e5550346895d9c1bf1/html5/thumbnails/13.jpg)
SMO SMO 更新更新 FF并计算误差并计算误差
更新所有的 Fi
计算原始问题和对偶问题的误差 DualityGap
如果误差 DualityGap 小于阈值,则算法结束
( 2 )
( 3 )
![Page 14: SMO 并行算法实现](https://reader033.vdocuments.net/reader033/viewer/2022061406/568134e5550346895d9c1bf1/html5/thumbnails/14.jpg)
SMO SMO 并行点并行点
1 公式 (2) 中 F 的更新。在串行 SMO 中 90% 的时间都用在计算 F 上,在更新每个点对应的 Fi 时影响不到其它点对应的 Fi 。
这次算法是基于消息传递接口实现的数据级并行。就是将数据集分割成若干份,每个节点处理一部分数据。
2 公式 (1) 中 Blow,Bup 的寻找。每个节点在自己的数据中找局部最大最小,然后再找出全局最大最小。
3 公式 (3) 中 DualityGap 的计算。每个节点先计算出局部误差和,再把这些局部和相加,得到所有点的误差总和,即全局 DualityGap 。
![Page 15: SMO 并行算法实现](https://reader033.vdocuments.net/reader033/viewer/2022061406/568134e5550346895d9c1bf1/html5/thumbnails/15.jpg)
SMO SMO 并行算法描述并行算法描述1 初始化。节点数为 p ,每个节点样本数为 lk
2 每个节点找到
3 While(DualityGap 大于阈值且更新成功 )
更新 αIup , αIlow
更新 fik
找 计算局部 DualityGapk
找到全局 计算全局 DualityGap
计算局部 DualityGap
k找到全局 计算全局 DualityGap
![Page 16: SMO 并行算法实现](https://reader033.vdocuments.net/reader033/viewer/2022061406/568134e5550346895d9c1bf1/html5/thumbnails/16.jpg)
SMO SMO 并行算法实验结果并行算法实验结果
![Page 17: SMO 并行算法实现](https://reader033.vdocuments.net/reader033/viewer/2022061406/568134e5550346895d9c1bf1/html5/thumbnails/17.jpg)
SMO SMO 并行算法实验结果并行算法实验结果
数据库 训练样例 测试样例 纬数 训练时间 1p 选练时间 2p 测试精度 Tol
heart 189 81 13 0.004 0.028 74.1% 15
Segment 463 189 19 0.005 0.014 100% 15
Satelite 1348 578 36 0.014 0.019 87.9% 900
ijcnn1 49990 91701 22 0.766 0.392 90.5% 50
实验中参数选取: C=1000, eps=0.001. 高斯核 sigma=1. 从上表中可以看到,当数据集很小时, 2 个节点的运行时间反而比一个节点更长,这是由于通讯开销造成的。所以并行算法只有在大数据量时方显出优势。
![Page 18: SMO 并行算法实现](https://reader033.vdocuments.net/reader033/viewer/2022061406/568134e5550346895d9c1bf1/html5/thumbnails/18.jpg)
总结与展望总结与展望
1 参数选择问题。这在串行算法就有,参数选取对测试精度有很大影响, 因此对于不同的数据库,如何选择参数,才能使得到的分类器有更好的泛化能力。2 并行点。目前主要依据论文中的方法,在三个地方采用并行,是否还有其它可并行的地方。
因为我们的最终目标是实现基于最大 margin 的决策树归纳的并行算法,此 SMO 并行算法只是一个锻炼和对机群的熟悉,所以下一步的主要任务是:
1 实现决策树归纳的串行算法。目前算法基本实现,处于调试阶段。2 找到决策树归纳算法的并行点,将其改为并行算法。
![Page 19: SMO 并行算法实现](https://reader033.vdocuments.net/reader033/viewer/2022061406/568134e5550346895d9c1bf1/html5/thumbnails/19.jpg)
参考文献参考文献
1 Platt J.Sequential minimal optimization for SVM.
http://www. citeseer.ist.psu.edu/490796.html.
2 John C. Platt. Sequential Minimal Optimization A Fast Algorithm for Training Support ector Machines. Microsoft Research.
3 L. J. Cao, S. S. Keerthi, Chong-Jin Ong etc. Parallel Sequential Minimal Optimization for the Training of Support Vector Machines. IEEE TRANSACTIONS ON NEURAL NETWORKS,VOL. 17, NO. 4, JULY 2006.
![Page 20: SMO 并行算法实现](https://reader033.vdocuments.net/reader033/viewer/2022061406/568134e5550346895d9c1bf1/html5/thumbnails/20.jpg)
谢谢 !