1 / 20

SMO 并行算法实现

河北大学. SMO 并行算法实现. 王海波. 河北大学数学与计算机学院 Department of Mathematics and Computer Science Hebei University. SVM 问题描述 C-SVM 分类器 SMO 算法思想 SMO 并行点及实现 总结与展望 参考文献. SVM 问题描述. SVM 线性可分. 给定数据集:. 线性 SVM 就是要找到一个能正确分类所有样例且间隔最大的平面。如果数据集线性可分,则问题可以用下式描述 :. 一般称上面的分类器为线性硬间隔支持向量分类机。. SVM 线性不可分.

samson-lee
Download Presentation

SMO 并行算法实现

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 河北大学 SMO并行算法实现 王海波 河北大学数学与计算机学院 Department of Mathematics and Computer Science Hebei University

  2. SVM问题描述 • C-SVM分类器 • SMO算法思想 • SMO并行点及实现 • 总结与展望 • 参考文献

  3. SVM 问题描述

  4. SVM 线性可分 给定数据集: 线性SVM就是要找到一个能正确分类所有样例且间隔最大的平面。如果数据集线性可分,则问题可以用下式描述: 一般称上面的分类器为线性硬间隔支持向量分类机。

  5. SVM 线性不可分 但是如果数据集线性不可分,这时通常引入松弛变量ε,放松约束。这时问题描述改为下面的形式: 这样的分类器称为线性软间隔支持向量分类机。

  6. SVM 对偶问题 线性 SVM 和线性可分数据集: • 原问题: • 对偶问题: 线性 SVM 和线性不可分数据集: • 原问题: • 对偶问题:

  7. SVM 特征空间 如果数据集线性不可分,也可以通过引入一个非线性变换 ,将数据影射到特征空间,由于纬数升高,在原来线性不可分的数据,在高纬空间可能变成线性可分。 特征空间 原空间

  8. 核函数 一个核就是一个函数K,对所有的 有 成立。这样,我们就不用去关心到特征空间的映射到底是什么。常用的核函数有以下三个:

  9. C-SVM 采用软间隔和核函数两种方法所做出的分类器有着更好的适应性。这时的原问题和对偶问题为: • 原问题: • 对偶问题: 这样的分类器称为非线性软间隔支持向量分类机。

  10. 开始 选择两个α 失败 更新α 成功 更新F 计算误差 N 误差<阈值 Y 结束 SMO 算法思想 算法精髓:每次选取两个α进行更新

  11. SMO 选择两个要更新的α 把训练样例分为五个集合: 选取Fi的最小值和最大值,分别记为bup,blow (1) 其中 , bup,blow对应的就是要选择的两个α

  12. SMO 更新两个α 1 计算α2 的上界H和下界L,如果H<=L,更新失败 2 按下式更新α2 3 如果Δα2小于阈值,更新失败。否则,按下式更新α1

  13. SMO 更新F并计算误差 更新所有的Fi (2) 计算原始问题和对偶问题的误差DualityGap (3) 如果误差DualityGap小于阈值,则算法结束

  14. SMO 并行点 这次算法是基于消息传递接口实现的数据级并行。就是将数据集分割成若干份,每个节点处理一部分数据。 1 公式(2)中F的更新。在串行SMO中90%的时间都用在计算F上,在更新每个点对应的Fi时影响不到其它点对应的Fi。 2 公式(1)中Blow,Bup的寻找。每个节点在自己的数据中找局部最大最小,然后再找出全局最大最小。 3 公式(3)中DualityGap的计算。每个节点先计算出局部误差和,再把这些局部和相加,得到所有点的误差总和,即全局DualityGap。

  15. SMO 并行算法描述 1 初始化。节点数为p,每个节点样本数为lk 2 每个节点找到 计算局部DualityGapk 找到全局 计算全局DualityGap 3 While(DualityGap大于阈值且更新成功) 更新αIup,αIlow 更新fik 找 计算局部DualityGapk 找到全局 计算全局DualityGap

  16. SMO 并行算法实验结果

  17. SMO 并行算法实验结果 实验中参数选取:C=1000, eps=0.001. 高斯核sigma=1. 从上表中可以看到,当数据集很小时,2个节点的运行时间反而比一个节点更长,这是由于通讯开销造成的。所以并行算法只有在大数据量时方显出优势。

  18. 总结与展望 1 参数选择问题。这在串行算法就有,参数选取对测试精度有很大影响, 因此对于不同的数据库,如何选择参数,才能使得到的分类器有更好的泛化能力。 2 并行点。目前主要依据论文中的方法,在三个地方采用并行,是否还有其它可并行的地方。 因为我们的最终目标是实现基于最大margin的决策树归纳的并行算法,此SMO并行算法只是一个锻炼和对机群的熟悉,所以下一步的主要任务是: 1 实现决策树归纳的串行算法。目前算法基本实现,处于调试阶段。 2 找到决策树归纳算法的并行点,将其改为并行算法。

  19. 参考文献 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.

  20. 谢谢!

More Related