210 likes | 451 Vues
河北大学. SMO 并行算法实现. 王海波. 河北大学数学与计算机学院 Department of Mathematics and Computer Science Hebei University. SVM 问题描述 C-SVM 分类器 SMO 算法思想 SMO 并行点及实现 总结与展望 参考文献. SVM 问题描述. SVM 线性可分. 给定数据集:. 线性 SVM 就是要找到一个能正确分类所有样例且间隔最大的平面。如果数据集线性可分,则问题可以用下式描述 :. 一般称上面的分类器为线性硬间隔支持向量分类机。. SVM 线性不可分.
E N D
河北大学 SMO并行算法实现 王海波 河北大学数学与计算机学院 Department of Mathematics and Computer Science Hebei University
SVM问题描述 • C-SVM分类器 • SMO算法思想 • SMO并行点及实现 • 总结与展望 • 参考文献
SVM 线性可分 给定数据集: 线性SVM就是要找到一个能正确分类所有样例且间隔最大的平面。如果数据集线性可分,则问题可以用下式描述: 一般称上面的分类器为线性硬间隔支持向量分类机。
SVM 线性不可分 但是如果数据集线性不可分,这时通常引入松弛变量ε,放松约束。这时问题描述改为下面的形式: 这样的分类器称为线性软间隔支持向量分类机。
SVM 对偶问题 线性 SVM 和线性可分数据集: • 原问题: • 对偶问题: 线性 SVM 和线性不可分数据集: • 原问题: • 对偶问题:
SVM 特征空间 如果数据集线性不可分,也可以通过引入一个非线性变换 ,将数据影射到特征空间,由于纬数升高,在原来线性不可分的数据,在高纬空间可能变成线性可分。 特征空间 原空间
核函数 一个核就是一个函数K,对所有的 有 成立。这样,我们就不用去关心到特征空间的映射到底是什么。常用的核函数有以下三个:
C-SVM 采用软间隔和核函数两种方法所做出的分类器有着更好的适应性。这时的原问题和对偶问题为: • 原问题: • 对偶问题: 这样的分类器称为非线性软间隔支持向量分类机。
开始 选择两个α 失败 更新α 成功 更新F 计算误差 N 误差<阈值 Y 结束 SMO 算法思想 算法精髓:每次选取两个α进行更新
SMO 选择两个要更新的α 把训练样例分为五个集合: 选取Fi的最小值和最大值,分别记为bup,blow (1) 其中 , bup,blow对应的就是要选择的两个α
SMO 更新两个α 1 计算α2 的上界H和下界L,如果H<=L,更新失败 2 按下式更新α2 3 如果Δα2小于阈值,更新失败。否则,按下式更新α1
SMO 更新F并计算误差 更新所有的Fi (2) 计算原始问题和对偶问题的误差DualityGap (3) 如果误差DualityGap小于阈值,则算法结束
SMO 并行点 这次算法是基于消息传递接口实现的数据级并行。就是将数据集分割成若干份,每个节点处理一部分数据。 1 公式(2)中F的更新。在串行SMO中90%的时间都用在计算F上,在更新每个点对应的Fi时影响不到其它点对应的Fi。 2 公式(1)中Blow,Bup的寻找。每个节点在自己的数据中找局部最大最小,然后再找出全局最大最小。 3 公式(3)中DualityGap的计算。每个节点先计算出局部误差和,再把这些局部和相加,得到所有点的误差总和,即全局DualityGap。
SMO 并行算法描述 1 初始化。节点数为p,每个节点样本数为lk 2 每个节点找到 计算局部DualityGapk 找到全局 计算全局DualityGap 3 While(DualityGap大于阈值且更新成功) 更新αIup,αIlow 更新fik 找 计算局部DualityGapk 找到全局 计算全局DualityGap
SMO 并行算法实验结果 实验中参数选取:C=1000, eps=0.001. 高斯核sigma=1. 从上表中可以看到,当数据集很小时,2个节点的运行时间反而比一个节点更长,这是由于通讯开销造成的。所以并行算法只有在大数据量时方显出优势。
总结与展望 1 参数选择问题。这在串行算法就有,参数选取对测试精度有很大影响, 因此对于不同的数据库,如何选择参数,才能使得到的分类器有更好的泛化能力。 2 并行点。目前主要依据论文中的方法,在三个地方采用并行,是否还有其它可并行的地方。 因为我们的最终目标是实现基于最大margin的决策树归纳的并行算法,此SMO并行算法只是一个锻炼和对机群的熟悉,所以下一步的主要任务是: 1 实现决策树归纳的串行算法。目前算法基本实现,处于调试阶段。 2 找到决策树归纳算法的并行点,将其改为并行算法。
参考文献 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.