SVM来龙去脉(3)

SVM中的核函数和SMO


一、核函数

实际中,我们会经常遇到线性不可分的样例,此时,我们的常用做法是把样例特征映射到高维空间中去,让其变得可分,比如说两本书,从(颜色,内容)两个维度来说,可能是一样的,我们可以加上作者这个维度,可以加入拥有者等等。当维度增加到无限维的时候,一定可以让任意的两个物体可分了。    

       线性不可分映射到高维空间,这可能会导致维度大小高到可怕的(19维乃至无穷维的例子),导致计算复杂。核函数的价值在于它虽然也是讲特征进行从低维到高维的转换,但核函数绝就绝在它事先在低维上进行计算,而将实质上的分类效果表现在了高维上,也就避免了直接在高维空间中的复杂计算。

                                                                      

                               (这是一个线性不可分的样例)                                            (将其映射到高维空间后的样例)         

        接下来我们看一下,核函数是如何能代表映射转换的,如下图:假设X是输入空间,H是特征空间,存在一个映射ϕ使得X中的点x能够计算得到H空间中的点h,h=ϕ(x),对于所有的X中的点都成立,x,z是X空间中的点。函数k(x,z)满足条件:k(x,z)=ϕ(x)⋅ϕ(z)都成立,则称k为核函数,而ϕ为映射函数。    

                                     

关于核函数与投影函数(φ)的关系及推到可以看如下的博文,对于高维映射会用到泰勒展开:

 https://baijiahao.baidu.com/s?id=1618526683185169455&wfr=spider&for=pc

       核函数的工作机制:我们要进行高维空间的线性可分,首先要将原始空间的点通过函数ϕ映射到特征空间中,然后学习,而所谓的学习,其实就是要计算高维空间的点的距离和夹角。那么能不能不通过映射函数而直接使用核函数计算高维空间的点的距离以及夹角呢? 答案是可以的,核函数的技巧就是不显示的定义映射函数,而在高维空间中直接使用核函数进行计算。

二、SMO

1、简述

可以看出:整个SMO算法包括两部分,求解两个变量的二次规划问题和选择这两个变量的启发式方法

SVM最后那个悬而未决的优化问题无非就是要找到一组最优的α,SMO算法则是把对整个α的优化转化为对每一对αi的优化,如果我们把其他α先固定,仅仅优化某一对α,那么我们可以通过解析式(即通过确定的公式来计算)来优化α。而且此时KKT条件很重要,之前说过最优解是一定会满足KKT条件的,所以如果我们优化α到所有的α都满足了KKT条件,那么这样最优解就会找到。

启发式方法指人在解决问题时所采取的一种根据经验规则进行发现的方法。其特点是在解决问题时,利用过去的经验,选择已经行之有效的方法,而不是系统地、以确定的步骤去寻求答案。

关于两个参数的选定:

选取a1和a2中只要有一个不满足KKT条件就会使目标函数值增大,所以我们要先选出KKT条件违背程度最大的(参数优化目标)。优化这些参数会使目标函数的值得到有效的降低。(因为我们要求最小)。(每一个ai都对应一个样本,因为每一个样本都有约束条件,都对应这一个拉格朗日乘子ai)

SVM选取两个变量的方法:使选取的两变量所对应样本之间的间隔最大。一种直观的解释是,这样的两个变量有很大的差别,与对两个相似的变量进行更新相比,对他们进行更新会给带给目标函数值更大的变化。

在后面的文章我们将会简述SVM中的对偶问题和KKT条件

发布了15 篇原创文章 · 获赞 0 · 访问量 185

猜你喜欢

转载自blog.csdn.net/qq_37705280/article/details/105354660
svm