smo 并行算法实现

Post on 02-Jan-2016

203 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

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

TRANSCRIPT

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

王海波

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

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

SVM SVM 问题描述问题描述

2margin=

| |w

给定数据集:

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

SVM SVM 线性可分线性可分

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

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

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

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

SVM SVM 对偶问题对偶问题

原问题:

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

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

对偶问题:

原问题:

对偶问题:

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

SVM SVM 特征空间特征空间

1iy1iy

2x

1x

1iy1iy

)(X

特征空间原空间

)(X

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

核函数核函数

Xzx ,

zxzxK ),(

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

kernels sigmoid ))(tanh(),(

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

1),(

22

jiji

jiji

d

jiji

xxxxk

xxxxk

polynomialxxxxk

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

C-SVMC-SVM

原问题:

对偶问题:

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

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

开始

选择两个 α

更新 F

计算误差

误差 <阈值

结束

更新 α

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

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

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

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

( 1 )

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

2 按下式更新 α2

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

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

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

更新所有的 Fi

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

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

( 2 )

( 3 )

SMO SMO 并行点并行点

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

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

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

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

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

2 每个节点找到

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

更新 αIup , αIlow

更新 fik

找 计算局部 DualityGapk

找到全局 计算全局 DualityGap

计算局部 DualityGap

k找到全局 计算全局 DualityGap

SMO 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 个节点的运行时间反而比一个节点更长,这是由于通讯开销造成的。所以并行算法只有在大数据量时方显出优势。

总结与展望总结与展望

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.

谢谢 !

top related