SVM调研报告范文

  摘要:随着统计学习理论的出现,将经验风险最小和泛化性相结合的SVM(支持向量机)成为当今新的研究热点。在参考大量文献的基础上,本文对SVM的本质做了,同时给出了常用的SVM软件,SVMlight,LIBSVM,为了深入了解SVM软件实现机制,对相关的分解算法和优化算法SMO也做了详细的介绍。通过改进SVMlight和LIBSVM的瓶颈同时二者精华基础上,本文给出了高效的HeroSVM,并对其实现机制给出了详细的介绍。最后本文对SVMlight和LIBSVM在相同数据集上做了对比,并给出了性能分析。

  第一章引言

  1.1理论背景

  基于数据的机器学习是现代智能技术中的重要方面,从观测数据(样本)出发寻找规律,利用这些规律对未来数据或无法观测的数据进行预测。传统的经典的(参数)统计估计方法,要求已知参数的相关形式,利用训练样本用来估计参数的值,包括模式识别、神经网络等在内,但是这种方法有很大的局限性,因为需要已知样本分布形式,而这需要花费很大代价,还有,隐含的思想是样本数目趋于无穷大时的渐近理论,但在实际问题中,样本数往往是有限的,因此这些理论上很优秀的学习方法实际中表现却可能不尽人意。还有就是经验非线性方法,如人工神经网络(ANN),这种方法利用已知样本建立非线性模型,克服了传统参数估计方法的困难,但是缺乏一种统一的数学理论,在这种基础上现代的统计学习理论就诞生了。

  统计学习理论[1](StatisticalLearningTheory或SLT)是一种专门研究小样本情况下机器学习规律的理论.统计学习理论的一个核心概念就是VC维(VCDimension)概念,它是描述函数集或学习机器的复杂性或者说是学习能力(Capacityofthemachine)的一个重要指标,在此概念基础上发展出了一系列关于统计学习的一致性(Consistency)、收敛速度、推广性能(GeneralizationPerformance)等的重要结论。统计学习理论是建立在一套较坚实的理论基础之上的,为解决有限样本学习问题提供了一个统一的框架。它能将很多现有方法纳入其中,有望帮助解决许多原来难以解决的问题(比如神经网络结构选择问题、局部极小点问题等。

  1.2SVM介绍

  V.Vapnik提出的支持向量机理论[2]是建立在统计学习理论的VC维理论和结构风险最小原理基础上的,根据有限的样本信息在模型的复杂性(即对特定训练样本的学习精度,Accuracy)和学习能力(即无错误地识别任意样本的能力)之间寻求最佳折衷,以期获得最好的推广能力(GeneralizatinAbility)。支持向量机方法的几个主要优点有:

  1.它是专门针对有限样本情况的,其目标是得到现有信息下的最优解而不仅仅是样本数趋于无穷大时的最优值;

  2.算法最终将转化成为一个二次型寻优问题,从理论上说,得到的将是全局最优点,解决了在神经网络方法中无法避免的局部极值问题;

  3.算法将实际问题通过非线性变换转换到高维的特征空间(FeatureSpace),在高维空间中构造线性判别函数来实现原空间中的非线性判别函数,特殊性质能保证机器有较好的推广能力,同时它巧妙地解决了维数问题,其算法复杂度与样本维数无关;已经有许多事实证明,作为支持向量机最基本思想之一的结构化风险最小化原则[2](StructuralRiskMinimization,SRM)要优于传统的经验风险最小化原则(EmpiricalRiskMinimization,ERM)。不同于ERM试图最小化训练集上的误差的做法,SRM试图最小化VC维的上界,从而使其学习机获得了更好的推广性能,这恰恰是统计学习理论最重要的目标之一。支持向量机的主要应用领域有模式识别、函数逼近和概率密度估计等等。

  *****因为涉及到太多的图表和公式无法显示,省略一部分。********

  1.2SVM算法研究现状

  由于SVM方法较好的理论基础和它在一些领域的应用中表现出来的优秀的推广性能,近年来,许多关于SVM方法的研究,包括算法本身的改进和算法的实际应用,都陆续被研究出来,比较出名的有SVMlight[4],SMO[5],LIBSVM[8],HeroSVM[11]等。

  尽管SVM算法的性能在许多实际问题的应用中得到了验证,但是该算法在计算上存在着一些问题,包括训练算法速度慢、算法复杂而难以实现以及检测阶段运算量大等等。传统的利用标准二次型优化技术解决对偶问题的方法可能是训练算法慢的主要原因:首先,SVM方法需要计算和存储核函数矩阵,当样本点数目较大时,需要很大的内存,例如,当样本点数目超过4000时,存储核函数矩阵需要多达128兆内存;其次,SVM在二次型优化过程中要进行大量的矩阵运算,多数情况下,优化算法是占用算法时间的主要部分。SVM方法的训练运算速度是限制它的应用的主要方面,近年来人们针对方法本身的特点提出了许多算法来解决对偶优化问题。大多数算法的一个共同的思想就是循环迭代:将原问题分解成为若干子问题,按照某种迭代策略,通过反复求解子问题,最终使结果收敛到原问题的最优解。

  1.3分解理论

  在真实世界中分解是解决复杂问题的常用策略,一个复杂问题分解为很多的子问题,而这些子问题可以很方便的应用一些常用的技术,而且这些子问题联合起来又可以解决原始问题,这就是分解理论的意义所在。分解应用到SVM中就是在每次迭代过程中,都将优化问题中的拉格朗日乘子分为迭代过程需要改变的自由变量集合B和暂时不变的固定变量N两部分,当优化条件被破坏时,从B集合中选择变量进行更改,其余的变量保持不变,从而将二次规划问题进行分解。

  根据子问题的划分和迭代策略的不同,又可以大致分为两类。第一类是所谓的“块算法[3]”(chunkingalgorithm)。“块算法”基于的是这样一个事实,即去掉Lagrange乘子等于零的训练样本不会影响原问题的解。对于给定的训练样本集,如果其中的支持向量是已知的,优化算法就可以排除非支持向量,只需对支持向量计算权值(即Lagrange乘子)即可。实际上支持向量是未知的,因此“块算法”的目标就是通过某种迭代方式逐步排除非支持向量。具体的作法是,选择一部分样本构成样本集进行训练,剔除其中的非支持向量,并用训练结果对剩余样本进行检验,将不符合训练结果(一般是指违反KKT条件)的样本(或其中的一部分)与本次结果的支持向量合并成为一个新的样本集,然后重新训练。如此重复下去直到获得最优结果。当支持向量的数目远远小于训练样本数目时,“块算法”显然能够大大提高运算速度。

  然而,如果支持向量的数目本身就比较多,随着算法迭代次数的增多,样本集也会越来越大,算法依旧会变得十分复杂。因此第二类方法把问题分解成为固定样本数[5]的子问题:样本集的大小固定在算法速度可以容忍的限度内,迭代过程中只是将剩余样本中部分“情况最糟的样本”与样本集中的样本进行等量交换,即使支持向量的个数超过样本集的大小,也不改变样本集的规模,而只对支持向量中的一部分进行优化。

  固定样本集的方法和块算法的主要区别在于:块算法的目标函数中仅包含当前样本集中的样本,而固定样本集方法虽然优化变量仅包含样本,但目标函数却包含整个训练样本集,即样本集之外的样本的Lagrange乘子固定为前一次迭代的结果,而不是像块算法中那样设为0。而且固定样本集方法还涉及到一个确定换出样本的问题(因为换出的样本可能是支持向量)。这样,这一类算法的关键就在于找到一种合适的迭代策略使得算法最终能收敛并且较快地收敛到最优结果,通过这里也可以看出固定集方法的时间要比块算法慢的多。

  固定样本集的方法最早大概是由Osunaetal[6].提出的。在[7]中,EdgarOsunal等人介绍了一种具体的算法并对人脸识别问题进行了实验。将样本集分为两个集合B和N,集合B作为子问题样本集进行SVM训练,集合N中所有样本的Lagrange乘子均置为零。显然,如果把集合B中对应Lagrange乘子为零的样本i(即ai=0,iB)与集合N中的样本j(即ai=0,jN)交换,不会改变子问题与原问题的可行性(即仍旧满足约束条件);而且,当且仅当样本满足条件KKT条件时,替换后的子问题的最优解不变。于是可以按照以下步骤迭代求解:

  1.选择集合B,构造子问题;

  2.求子问题最优解aiiBb,并置aj=0jN

  3.找出其中不满足条件KKT的样本j,与B中满足ai=0的样本i交换,构成新的子问题。[7]证明了这种迭代算法的收敛性,并给出了两阶多项式分类器在人脸识别问题中的应用结果。需要说明的是,文中没有说明集合B的大小是否改变。 前面提到,固定样本集方法的关键在于选择一种合适的换入换出策略。Joachims指出如果采用某种启发式的迭代策略将会提高算法的收敛速度。最近JohnC.Platt在[5]中提出SMO(SequentialMinimalOptimization或SMO)算法。将样本集的规模减到最小——两个样本。之所以需要两个样本是因为等式线性约束的存在使得同时至少有两个Lagrange乘子发生变化。由于只有两个变量,而且应用等式约束可以将其中一个用另一个表示出来,所以迭代过程中每一步的子问题的最优解可以直接用解析的方法求出来。这样,算法避开了复杂的数值求解优化问题的过程;此外,Platt[5]还设计了一个两层嵌套循环分别选择进入样本集的样本,这种启发式策略大大加快了算法的收敛速度。标准样本集的实验结果证明,SMO表现出在速度方面的良好性能。子问题的规模和迭代的次数是一对矛盾,SMO将样本集的规模减少到2,一个直接的后果就是迭代次数的增加。所以SMO实际上是将求解子问题的耗费转嫁到迭代上,然后在迭代上寻求快速算法。但是,SMO迭代策略的思想是可以用到其他迭代算法中的,可见,SMO还有改进的余地。

  本文的第二部分将分别就几种著名的软件进行介绍,给出其基于的理论基础。第三部分就第二部分进行分析,对比各软件之间的差异,给出分析结论。最后对其应用前景和改进空间进行讨论。

《SVM调研报告范文.doc》

下载本文的Word格式文档,以方便收藏与打印。

小学班主任工作个人心得总结【5篇】2020

我们有一些启发后,可以将其记录在心得体会中,它可以帮助我们了解自己的这段时间的学习、工作生活状态。你想好怎么写心得体会了吗?下面是由小编带来的有关班主任心得体会5篇,以方便大家借鉴学习。 班主任心得体会1 小学一年级是打基础、发展学生智力的阶段

2020小学班主任研修心得体会

我们有一些启发后,可以将其记录在心得体会中,它可以帮助我们了解自己的这段时间的学习、工作生活状态。你想好怎么写心得体会了吗?下面是由小编带来的有关班主任心得体会5篇,以方便大家借鉴学习。 班主任心得体会1 班主任的工作是千头万绪的,它应对的是几

小学二年级班主任心得体会

班主任的工作方式和效果直接决定着班级的精神面貌和发展方向,深刻影响着学生全面和充分的发展。下面是由小编带来的有关班主任心得体会5篇,以方便大家借鉴学习。 班主任心得体会1 一、本班情况分析 本班共有学生26人,男生14人,女生12人,能够遵守学校里的

教师新担任班主任心得体会

班主任工作是一个复杂的工程,同时也是一个动态发展的工程。它需要班主任用心经营,去构建。下面是由小编带来的有关班主任心得体会5篇,以方便大家借鉴学习。 班主任心得体会1 从事小学教育9年多以来,一直担任着班主任工作,对于班级管理,一直处于摸索状态

2020语文老师教学个人工作总结范文

语文老师工作总结怎么写?作为一名初中的语文教师,对自己进行总结是一件很有必要的事情,那么好好总结一次吧。下面是由小编带来的有关语文老师工作总结5篇,以方便大家借鉴学习。 语文老师工作总结1 本学期本人担任初三年级语文科目教学。为了完成好初三语文

2020语文老师教学工作总结范文

语文老师工作总结怎么写?作为一名初中的语文教师,对自己进行总结是一件很有必要的事情,那么好好总结一次吧。下面是由小编带来的有关语文老师工作总结5篇,以方便大家借鉴学习。 语文老师工作总结1 一年来,严格遵守《中小学教师职业道德规范》要求,落实教

2020语文老师年度工作总结范文

写好工作总结,须勤于思索,善于总结。这样可以提高领导的管理水平,具有工作能力的干部总结中,须对工作的失误等有个正确的认识,勇于承认错误,可以形成批评与自我批评的良好作风。下面是由小编带来的有关语文老师工作总结5篇,以方便大家借鉴学习。 语文

2020语文老师期末工作总结范文

总结所要反映的是全局工作或某项工作的全貌,所以在内容安排上要考虑到方方面面,全局工作不能遗漏哪个方面,单项工作不能遗漏哪个环节,否则就会影响工作总结的客观性和全面性。下面是由小编带来的有关语文老师工作总结5篇,以方便大家借鉴学习。 语文老师

返回顶部