支持向量机学习笔记:数学过程及经典Tutorial

支持向量机,听名字,真的很让人充满好奇,到底什么是支持向量机,是一种什么机器???后来上了模式识别课才知道,原来支持向量机就是一个算法,不是什么机器,而且归结起来是一种信号处理方式,底子还是《现代信号处理》中内容。
首先,我们可以来了解一下SVM的历史过程:
早在20世纪60年代,Vapnik就已奠定了统计学习的基本理论基础,如经验风险最小化原则下统计学习一致性的条件(收敛性、收敛的可控性、收敛与概率测度定义的无关性,号称机器学习理论的三个里程碑)、关于统计学习方法推广性的界的理论,以及在此基础上建立的小样本归纳推理原则等。直到20世纪90年代中后期,能够实现统计学习理论和原则的实用性算法——SVM方法才逐渐被完整地提出,并且在模式识别等人工智能领域得到成功应用,受到广泛地关注。

SVM方法的基本思想定义最优线性超平面,并把寻找最优线性超平面的算法归结为求解一个最优化(凸规划)问题。进而基于Mercer核展开定理,通过非线性映射支持向量机学习笔记:数学过程及经典Tutorial,把样本空间映射到一个高维乃至于无穷维的特征空间(Hibert空间),使得在特征空间中可以应用线性学习机的方法解决样本空间中的高度非线性分类和回归等问题。简单地说就是实现升维和线性化。

最后,在学习SVM前,我们再来看一下SVM的优点:

SVM是一种有坚实理论基础的新颖的小样本学习方法。它基本上不涉及概率测度的定义及大数定律等,因此不同于现有的统计方法。从本质上看,它避开了从归纳到演绎的传统过程,实现了高效的从训练样本到预报样本的转导推理,大大简化了通常的分类和回归等问题。与常规的统计方法相比,SVM方法具有如下特点:

  1. SVM的最终决策函数只由少数的支持向量所决定,计算的复杂性取决于支持向量的数目,而不是样本空间的维数,这在某种意义上避免了维数灾。如果说神经网络方法是对样本的所有因子加权的话,SVM方法则是对只占样本集少数的关键样本(Support Vector加权

  2. 少数支持向量决定于最优结果,这不但可以帮助我们抓住关键样本、剔除大量冗余样本,而且注定了该方法不但算法简单,而且具有较好的鲁棒性

  3. 由于有较为严格的统计学习理论作为保证,可以对用SVM方法建立模型的推广(泛化)能力做出评估。

  4. 建立任何一个数据模型,人为的干预越少越客观。与其他方法相比,建立SVM模型所需要的先验干预较少。

  5. SVM通过核函数实现低维到高维空间的非线性映射,所以适合于解决本质上非线性的分类、回归等问题。

通过以上一些文字性的介绍,基本上算是建立了SVM是什么的浅显概念,不过要想应用它,改造它,那么我们就必须了解SVM的数学过程,知道它是怎么推导的!

支持向量机学习笔记:数学过程及经典Tutorial

支持向量机学习笔记:数学过程及经典Tutorial


现在我们来总结一下支持向量机的训练和分类的步骤

  1. 训练:选取合适的核函数,K(Xi,Xj);(有意思的是,选取核函数时常并不关键,诸如多项式核函数、各向相异多项式核函数、径向基核函数等的分类器的性能常常是可以比拟的,见参考文献[1]、[2])
  2. 求出最小化||w||;
  3. 只存储非零的alpha_i和相应的训练向量Xi(支持向量);
  4. 分类:对于模式X,用支持向量Xi和相应的权重alpha_i计算判别函数式。

推荐的中文博客

Free Mind 的支持向量机系列文章,能够让你快速地掌握SVM的相关概念和原理;

July 整理的支持向量机通俗导论,比较全地介绍了SVM的各个过程;


如果你想透彻地理解SVM,而且English不错,那么下面几个Tutorial是最经典的:

A tutorial on support vector machines for pattern recognition. 这一篇主要是从模式识别角度介绍SVM,讲解挺好的,如果完整看完,基本上可以掌握SVM的常见应用。

A tutorial on support vector Regression. 这一篇和上面一篇不是很一样,和Stanford的ML中的SVM一样,从Regression介绍。

Support vector machine 这是一篇老文章,1998年的经典文章。


参考文献

[1] Advances in kernel methods: support vector learning[M]. The MIT press, 1999.

[2] Hearst M A, Dumais S T, Osman E, et al. Support vector machines[J]. Intelligent Systems and their Applications, IEEE, 1998, 13(4): 18-28.

[3] 陈永义, 熊秋芬. 支持向量机方法应用教程[M]. 气象出版社, 2011.

[4] 松卡, 赫拉瓦奇, 博伊尔. 图像处理, 分析与机器视觉[M]. 人民邮电出版社, 2002.

支持向量机学习笔记:数学过程及经典Tutorial

上一篇:Java 强制类型转换(类转换注意事项)


下一篇:Hadoop源码分析之NameNode的格式化