感知机是SVM的基础嘛,两者都有线性二分类模型,感知机原理比较简单,就是自变量是wx+b的符号函数,优化函数就是所有误分类点的几何距离;SVM扩展就多一些,优化函数是参数的L2范数,也就是结构风险最小化的,可以通过核函数把低维不可分数据映射到高维,从而线性可分,所以SVM也有非线性分类器。
支持向量机(Support Vector Machine)是Cortes和Vapnik于1995年首先提出的,它在解决小样本、非线性及高维模式识别中表现出许多特有的优势,并能够推广应用到函数拟合等其他机器学习问题中[10]。
支持向量机方法是建立在统计学习理论的VC 维理论和结构风险最小原理基础上的,根据有限的样本信息在模型的复杂性(即对特定训练样本的学习精度,Accuracy)和学习能力(即无错误地识别任意样本的能力)之间寻求最佳折衷,以期获得最好的推广能力[14](或称泛化能力)。
Vapnik是统计机器学习的大牛,这想必都不用说,他出版的《Statistical Learning Theory》是一本完整阐述统计机器学习思想的名著。在该书中详细的论证了统计机器学习之所以区别于传统机器学习的本质,就在于统计机器学习能够精确的给出学习效果,能够解答需要的样本数等等一系列问题。与统计机器学习的精密思维相比,传统的机器学习基本上属于摸着石头过河,用传统的机器学习方法构造分类系统完全成了一种技巧,一个人做的结果可能很好,另一个人差不多的方法做出来却很差,缺乏指导和原则。
所谓VC维是对函数类的一种度量,可以简单的理解为问题的复杂程度,VC维越高,一个问题就越复杂。正是因为SVM关注的是VC维,后面我们可以看到,SVM解决问题的时候,和样本的维数是无关的(甚至样本是上万维的都可以,这使得SVM很适合用来解决文本分类的问题,当然,有这样的能力也因为引入了核函数)。
感知机是将线性二分类问题视为在特征空间中寻找切分面(线),根据不同的初始值会有很多种结果,但是如何找到最优的切分面?
最大化分类间隔
�直观上最有效
�概率的角度,就是使得置信度最小的点置信度最大
�即使我们在选边界的时候犯了小错误,使得边界有偏移,仍 然有很大概率保证可以正确分类绝大多数样本 然有很大概率保证可以正确分类绝大多数样本 �
很容易实现交叉验证,因为边界只与极少数的样本点有关 �
有一定的理论支撑(如VC维) �
实验结果验证了其有效性
SVM主要用在线性可分支持向量机,线性支持向量机,非线性支持向量机。线性支持向量机的思路是是的误分类点最小。非线性支持向量机将原始数据向高维特征空间映射,使得数据在新空 间内线性可分。�最初想解决线性不可分(非线性)问题的思路是向高维空间转化,使其变得线 性可分而转化最关键的部分就在于找到映射方法可是如何找 性可分。而转化最关键的部分就在于找到映射方法。可是,如何找 到这个映射,没有系统性的方法。而且高维空间和映射函数也并不 是唯一的,过于复杂,并且会导致维度灾难! �在线性SVM中的对偶形式中,目标函数和分离超平面都只需要计算 内积,只关心计算那个高维空间里内积的值。不必显式的给出映射 函数和值 函数和值。有没有什么办法只得到高维空间中向量的内积呢?答案是核函数(Kernel Function)。
SVM(支持向量机)的一般流程:
选择一个核函数K(用以计算样本内积)
�选择一个C值(参数,控制软间隔程度以及防止过拟合)
�利用训练样本,求解二次规划问题(可以使用大量软件 �利用训练样本,求解二次规划问题(可以使用大量软件 包)
�根据支持向量与切分面构造切分函数sign()
�根据切分函数,对测试样本进行分类
SVM优点
�有坚实理论基础的新颖的小样本学习方法 �
平均而言,在各类应用中表现最佳 �结果稳定、可重复,且不依赖于特定的优化算法、数据 �
结果稳定、可重复,且不依赖于特定的优化算法、数据 �
使用凸优化可以得到全局解,且使用2范数防止过拟合 �
缺点 �
�需要调节参数
核函数高维映射使得结果有时难以直观理解 �
有一定的计算复杂度
网友评论
感谢分享~~