您的位置:首页 > 其它

【svm学习笔记】svm_理论学习图谱_上

2012-09-12 16:29 190 查看
这两天,因为工作需要,断断续续在看svm的一些资料。因为之前也看过其他的一些机器学习模型,并动手实现过相关代码,如:最大墒模型等,所以最初以为学习svm的过程应该与上述经历类似。事实证明,svm是个坑,进去容易,爬上来难。难的主要在于,svm本身是由多个不同方面的理论拼接而成,而每个理论问题,还都挺难;而且这些理论,对于最终的代码实现,也不见得有多大帮助。不过了解这些理论,也能更加深入地感受svm这个模型的特点,对他的长处和不足,也能有正确的预期。

这篇博客,主要想从思路上回顾一下svm的理论,不会涉及具体公式,而只是展现:在什么时候,遇到了什么问题,而由什么样的伟大理论解决了这个问题。“理论学习图谱”这个题目有点大,其实就是讲我这两天学习的过程,把思路整理出来,备忘。

svm,先别管它的名字,也别管他那些耳熟能详的名字,如:vc维、支持向量、结构风险最小化、凸二次规划问题等等。我们先想想,他是干什么的?

有监督的学习问题是机器学习的经典问题,而学习的结果通常以分类器来体现,即,将一堆样本,正确的划分为若干个类别。这里面,最简单的就是二类问题。在二类问题里面,最简单的就是线性分类。也就是说,在一个二维平面上,样本就是平面上的点,而有一条直线,将这些点正确的分为两个类别。如何学习这条直线?很久以前,就有人提出了感知器模型和训练算法,并取得了不错的结果。但是,现实生活中的问题毕竟不是真么简单,很多复杂的分类问题不是感知器能够解决的。在这之后,感知器在两个方面发展。一方面,将感知器组合在一起,从拓扑结构上进行扩展,形成神经网络,获得更加强大的描述能力。另一方面的扩展,就是svm了。

对于上面的问题,svm很直接,不是扩展模型拓扑,而是扩展问题空间。例如,在现实生活中,我们把样本投影到二维平面上,无法用一条直线进行划分;那么投影到三维空间呢?进一步,n维空间呢?前段时间有个很火的科幻小说,刘慈欣的《三体》三部曲。在《三体2》的开头,16世纪的君士坦丁堡中有个女巫,能够从封闭的空间中拿出东西。其实,我们生活在三维空间中,一些区域在三维空间中是封闭的,但是在更高位的空间中,如四维空间中,并不是封闭的。那个女巫能够进入四维空间,当然就能够从三维空间中封闭的区域里面拿东西。svm也是一样。样本在低位空间中不可分。但当空间逐渐升高,在某个高维空间中,样本就能够线性可分了。svm还是用的线性分类器,还是用的直线,只不过是在高维空间中,是高维空间中的一个——嗯,专业名词似乎叫——超平面。那么,如何将低维空间的样本投影到高维空间呢?这就是核函数的作用。确切地说,核函数不是做简单的映射,而是更加直接——他用低维空间的量直接算出了映射到高维空间做相应内积计算后的值。就是说,他不映射,但能算出映射后再计算,的值。

好,svm的思路挺高明,用高维空间。那么,这也带来了问题,就是维数灾难的问题。我从前做过语言模型,一阶模型的参数空间是n(n是词表大小),二阶模型的参数空间是n^2,三阶模型就是n^3。参数空间呈指数级递增,而样本只能呈线性速度递增。在某种程度上,样本的数量远远不够估计参数空间(甚至样本的数量都少于参数的数量,而一般训练过程采用最大似然估计,这个是建立在大数定律上的方法)。这时候,我们就说发生了维数灾难。导致的后果就是参数无法估计。其实还有一个后果,即便是参数能够估计出来,这么高的维度,模型的复杂度也很高,这就导致模型的泛化能力越来越低。这怎么办?这就是“泛化性理论”所解决的问题。泛化理论告诉我们,对于特定分布,其模型的复杂程度与输入空间的维度无关,而只与模型的VC维有关。VC维是啥?两个人名字首字母的合体。总之,是一种表示模型复杂度的度量。这就带来两个结论:1.
我们不用担心维数灾难,在泛化理论的保驾护航下,svm能够训练出来(我是说理论上哈);2. 要想提高模型的泛化能力,就要降低模型复杂度,具体地说,就要降低模型的VC维。在这两个结论的基础上,我们就得到了——终于得到了——svm的优化目标函数。为什么说“终于得到了”?因为我们工程问题,如果想要解决的话,最终都要转化成为最优化问题(通常是带有条件的最优化问题);反过来说,如果转化不成这样的问题,想要解决,嗯,有点难。通常,我们优化目标函数定义为模型在Held-out corpus上的错误率,这被称为经验风险最小化;而svm的目标函数,因为包含了VC维,平衡了模型复杂度和泛化能力,就被称为结构风险最小化。嗯,有越来越多大家熟悉的名词冒出来了,我这个博文的目的就是把这些名词用汉字(而不是用公式)来串联起来。题外话,svm有很多优点,泛化能力强绝对是其中一个。但我们看到,这个是在解决问题的时候,自然而然产生的一个bonus,似乎碰巧就把它给解决了。svm最初的发明过程我不得而知,不过在我这两天的学习过程中,看到了好多这样“碰巧”的例子。

写累了,下一篇继续写。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: