采用MPI和OpenMP编程实现支持向量机方法

文档序号:6368410阅读:396来源:国知局
专利名称:采用MPI和OpenMP编程实现支持向量机方法
技术领域
本发明涉及基于统计学习理论的机器学习方法,具体讲,基于MPI和OpenMP的混合编程实现并行化支持向量分类器。
背景技术
I.支持向量机(SVM)支持向量机(Support Vector Machine, SVM)是Vapnik等人提出的一种基于统计学习理论的机器学习方法,它以最大化分类间隔构造最优分类超平面来提高分类器的泛化能力,较好地解决了非线性、高维数、局部极小点等问题。与传统的神经网络学习方法相比,SVM具有结构风险最小,可以逼近任意函数且保证全局最优,适用于小样本、非线性核高维建模的领域。目前,SVM已广泛应用于手写字识别、文本分类、语音识别等方面,并取得了良 好的应用效果。对于2-分类支持向量机,已知训练集T= {(x1; Y1), (x2, y2), . . . , (x1; yx)} G (XXY)1其中Xi G X = Rn, Yi G Y = {1,-1},i = 1, ,I。寻找X = Rn上的一个实值函数g(x)以便用决策函数f(x) = sgn (g (X))推断任意模式X相对应的y值即类别。2-分类线性分类支持向量机简单模型如下
In
mill — - {0 ^ +t Cfsubject to Iyi(Co1X^b) ^ I- ^ i = I, . . . , n,(I)€ i > 0,i = 1,. . .,n建立拉格朗日原函数
伞A^a,r) =每OMf +fXc, s[y^carXi +! )-i + 忒} —玄枯, (2)令偏导等于零且KKT条件为
QL — = = VrTj- r(3) dm i v— = 2CrlJ3f =0 I(4)
BL, %C-CT1-=0,(5) f.将得到的表达式带回L并化简,得到目标函数max —11〈七,),
U I I細 KJ i
原问题可写为
[002权利要求
1.一种采用MPI和OpenMP编程实现支持向量机方法,其特征是,根据SVM分类算法思想,用C++编写串行程序代码,在串行代码的基础上,添加OpenMP和MPI的相关语句和函数,实现并行化,具体步骤为 1)确定算法各部分的功能,在算法各模块间使用MPI编程进行通信,传递数据,实现同步,用MPI将算法的各个模块分配到不同的进程进行处理,达到算法各模块间的进程级并行; 2)在算法的子模块内,使用OpenMP添加编译制导语句,将需要并行化的代码包含在内,编译器编译时会自动对编译制导语句包含的并行域内的代码进行线程级并行实现。
2.如权利要求I所述的采用MPI和OpenMP编程实现支持向量机方法,其特征是,采用OpenMP并行话使SVM算法的初始化工作集、初始化梯度子模块并行执行;根据a p 状态更新G(i)也并行执行,并行执行的子模快间能够进行通信。
全文摘要
本发明涉及基于统计学习理论的机器学习方法。为解决SVM的具体实现中大规模分类问题和求解优化问题,控制计算的时间和空间代价,本发明采取的技术方案是,采用MPI和OpenMP编程实现支持向量机方法,根据SVM分类算法思想,用C++编写串行程序代码,在串行代码的基础上,添加OpenMP和MPI的相关语句和函数,实现并行化,具体步骤为1)确定算法各部分的功能,在算法各模块间使用MPI编程进行通信,传递数据,实现同步;2)在算法的子模块内,使用OpenMP添加编译制导语句,编译器编译时会自动对编译制导语句包含的并行域内的代码进行线程级并行实现。本发明主要应用于机器学习。
文档编号G06F9/44GK102707955SQ20121015663
公开日2012年10月3日 申请日期2012年5月18日 优先权日2012年5月18日
发明者卢玮, 廖士中 申请人:天津大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1