1
SVM
SVM
SVM
SVM 入门
入门
入门
入门 ( 转载自 http://www.blogjava.net/zhenandaci/ )
(一) SVM
SVM
SVM
SVM 的八股简介
支持向量机 (Support Vector Machine) 是 Cortes 和 Vapnik 于 1995 年首先提出的, 它在解 决
小样本、 非线性及高维模式识别中表现出许多特有的优势, 并能够推广应用到函数拟合等 其
他机器学习问题中 [10] 。
支持向量机方法是建立在统计学习理论的 VC 维理论和结构风险最小原理基础上的,根据有
限的样本信息在模型的复杂性(即对特定训练样本的学习精度, Accuracy )和学习能力( 即
无错误地识别任意样本的能力) 之间寻求最佳折衷, 以期获得最好的推广能力
[14]
(或称 泛
化能力) 。
以上是经常被有关 SVM 的学术文献引用的介绍,有点八股,我来逐一分解并解释一下。
Vapnik 是统计机器学习的大牛,这想必都不用说,他出版的《 Statistical Learning
Theory 》 是一本完整阐述统计机器学习思想的名著。 在该书中详细的论证了统计机器学习 之
所以区别于传统机器学习的本质, 就在于统计机器学习能够精确的给出学习效果, 能够解 答
需要的样本数等等一系列问题。 与统计机器学习的精密思维相比, 传统的机器学习基本上 属
于摸着石头过河, 用传统的机器学习方法构造分类系统完全成了一种技巧, 一个人做的结 果
可能很好,另一个人差不多的方法做出来却很差,缺乏指导和原则。
所谓 VC 维是对函数类的一种度量,可以简单的理解为问题的复杂程度, VC 维越高,一个 问
题就越复杂。正是因为 SVM 关注的是 VC 维,后面我们可以看到, SVM 解决问题的时候,和
样本的维数是无关的 (甚至样本是上万维的都可以, 这使得 SVM 很适合用来解决文本分类 的
问题,当然,有这样的能力也因为引入了核函数) 。
结构风险最小听上去文绉绉,其实说的也无非是下面这回事。
机器学习本质上就是一种对问题真实模型的逼近(我们选择一个我们认为比较好的近似模
型,这个近似模型就叫做一个假设) , 但毫无疑问, 真实模型一定是不知道的 (如果知道了
,
我们干吗还要机器学习?直接用真实模型解决问题不就可以了?对吧, 哈哈) 既然真实模 型
不知道, 那么我们选择的假设与问题真实解之间究竟有多大差距, 我们就没法得知。 比如 说
我们认为宇宙诞生于 150 亿年前的一场大爆炸,这个假设能够描述很多我们观察到的现象,
但它与真实的宇宙模型之间还相差多少?谁也说不清, 因为我们压根就不知道真实的宇宙 模
型到底是什么。
这个与问题真实解之间的误差,就叫做风险(更严格的说,误差的累积叫做风险) 。我们选
择了一个假设之后(更直观点说,我们得到了一个分类器以后) ,真实误差无从得知,但我
们可以用某些可以掌握的量来逼近它。 最直观的想法就是使用分类器在样本数据上的分类 的
结果与真实结果(因为样本是已经标注过的数据, 是准确的数据)之间的差值来表示。 这 个
差值叫做经验风险 R
emp
(w) 。以前的机器学习方法都把经验风险最小化作为努力的目标,但
后来发现很多分类函数能够在样本集上轻易达到 100% 的正确率,在真实分类时却一塌糊涂
(即所谓的推广能力差,或泛化能力差) 。此时的情况便是选择了一个足够复杂的分类函数