smo 并行算法实现

20
SMO SMO 并并并并并并 并并并并并并 王王王 并并并并并并并并并并并并 Department of Mathematics and Computer Science H ebei University

Upload: samson-lee

Post on 02-Jan-2016

203 views

Category:

Documents


0 download

DESCRIPTION

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

TRANSCRIPT

Page 1: SMO 并行算法实现

SMOSMO 并行算法实现并行算法实现

王海波

河北大学数学与计算机学院Department of Mathematics and Computer Science Hebei University

Page 2: SMO 并行算法实现

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

Page 3: SMO 并行算法实现

SVM SVM 问题描述问题描述

2margin=

| |w

Page 4: SMO 并行算法实现

给定数据集:

线性 SVM 就是要找到一个能正确分类所有样例且间隔最大的平面。如果数据集线性可分,则问题可以用下式描述 :

SVM SVM 线性可分线性可分

一般称上面的分类器为线性硬间隔支持向量分类机。

Page 5: SMO 并行算法实现

但是如果数据集线性不可分,这时通常引入松弛变量ε ,放松约束。这时问题描述改为下面的形式 :

SVM SVM 线性不可分线性不可分

这样的分类器称为线性软间隔支持向量分类机。

Page 6: SMO 并行算法实现

SVM SVM 对偶问题对偶问题

原问题:

线性 SVM 和线性可分数据集:

线性 SVM 和线性不可分数据集:

对偶问题:

原问题:

对偶问题:

Page 7: SMO 并行算法实现

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

SVM SVM 特征空间特征空间

1iy1iy

2x

1x

1iy1iy

)(X

特征空间原空间

)(X

Page 8: SMO 并行算法实现

一个核就是一个函数 K ,对所有的 有

核函数核函数

Xzx ,

zxzxK ),(

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

kernels sigmoid ))(tanh(),(

functions basis radial ))2(exp(),(

1),(

22

jiji

jiji

d

jiji

xxxxk

xxxxk

polynomialxxxxk

Page 9: SMO 并行算法实现

采用软间隔和核函数两种方法所做出的分类器有着更好的适应性。这时的原问题和对偶问题为:

C-SVMC-SVM

原问题:

对偶问题:

这样的分类器称为非线性软间隔支持向量分类机。

Page 10: SMO 并行算法实现

算法精髓:每次选取两个 α 进行更新SMO SMO 算法思想算法思想

开始

选择两个 α

更新 F

计算误差

误差 <阈值

结束

更新 α

Page 11: SMO 并行算法实现

把训练样例分为五个集合:

SMO SMO 选择两个要更新的选择两个要更新的 αα

选取 Fi 的最小值和最大值,分别记为 bup,blow

其中 , bup,blow 对应的就是要选择的两个 αα

( 1 )

Page 12: SMO 并行算法实现

SMO SMO 更新两个更新两个 αα

2 按下式更新 α2

3 如果 Δα2 小于阈值,更新失败。否则,按下式更新 α1

1 计算 α2 的上界 H 和下界 L ,如果 H<=L ,更新失败

Page 13: SMO 并行算法实现

SMO SMO 更新更新 FF并计算误差并计算误差

更新所有的 Fi

计算原始问题和对偶问题的误差 DualityGap

如果误差 DualityGap 小于阈值,则算法结束

( 2 )

( 3 )

Page 14: SMO 并行算法实现

SMO SMO 并行点并行点

1 公式 (2) 中 F 的更新。在串行 SMO 中 90% 的时间都用在计算 F 上,在更新每个点对应的 Fi 时影响不到其它点对应的 Fi 。

这次算法是基于消息传递接口实现的数据级并行。就是将数据集分割成若干份,每个节点处理一部分数据。

2 公式 (1) 中 Blow,Bup 的寻找。每个节点在自己的数据中找局部最大最小,然后再找出全局最大最小。

3 公式 (3) 中 DualityGap 的计算。每个节点先计算出局部误差和,再把这些局部和相加,得到所有点的误差总和,即全局 DualityGap 。

Page 15: SMO 并行算法实现

SMO SMO 并行算法描述并行算法描述1 初始化。节点数为 p ,每个节点样本数为 lk

2 每个节点找到

3 While(DualityGap 大于阈值且更新成功 )

更新 αIup , αIlow

更新 fik

找 计算局部 DualityGapk

找到全局 计算全局 DualityGap

计算局部 DualityGap

k找到全局 计算全局 DualityGap

Page 16: SMO 并行算法实现

SMO SMO 并行算法实验结果并行算法实验结果

Page 17: SMO 并行算法实现

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 并行算法实现

总结与展望总结与展望

1 参数选择问题。这在串行算法就有,参数选取对测试精度有很大影响, 因此对于不同的数据库,如何选择参数,才能使得到的分类器有更好的泛化能力。2 并行点。目前主要依据论文中的方法,在三个地方采用并行,是否还有其它可并行的地方。

因为我们的最终目标是实现基于最大 margin 的决策树归纳的并行算法,此 SMO 并行算法只是一个锻炼和对机群的熟悉,所以下一步的主要任务是:

1 实现决策树归纳的串行算法。目前算法基本实现,处于调试阶段。2 找到决策树归纳算法的并行点,将其改为并行算法。

Page 19: SMO 并行算法实现

参考文献参考文献

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 并行算法实现

谢谢 !