第八集 顺序最小优化算法

本次的笔记参考了点击打开链接中的一部分观点,用了作者的一部分图像,若有侵权,请及时联系我。


        本讲首先介绍了核的概念——它在SVM以及许多学习算法中都有重要的应用,之后介绍了L1 norm软间隔SVM——它是一种SVM的变化形式,可以处理非线性可分隔的数据,最后介绍了SMO算法——一种高效的可以解决SVM优化问题的算法。

 

核函数

 

        在最初提出的房价问题中,特征是面积x,结果y是房子的价格。假如我们看出来样点x和y的分布符合3次曲线,那么我们最好使用x的三次多项式来逼近这些样点。接下来要做的工作是将特征x扩展到三维,然后寻找特征和结果之间的关系。这一过程称作特征映射。映射函数称作,在这里:

                                   

我们希望将得到的特征映射后的特征应用于SVM分类,而不是最初的特征。这样,我们需要将前面公式中的内积从,映射到 

至于为什么需要映射后的特征而不是最初的特征来参与计算,上面提到的为了更好地拟合是其中一个原因,另外的一个重要原因是样例可能存在线性不可分的情况(类似于样本分布在一维空间上),而将特征映射到高维空间后,往往就可分了。

将核函数形式化定义,如果原始特征内积是 ,映射后为 ,那么定义核函数(Kernel)为:


假设核函数:

与其对应的为(n=3):

 

如上式所示,若先计算,然后计算是非常低效的。因为例如最初的特征是n维的,我们将其映射到n^2维,然后再计算,这样需要O(n^2)的时间复杂度。而经过核函数可以达到同样的效果,却只用计算始特征x和z内积然后再将得数平方即可,这样的时间复杂度为O(n)。

核函数可以有很多形式,对于上面的核函数,其更为一般的形式为:

                               

    与其对应的为:

 

更为一般的形式为,它能够映射出维度为 的特征向量。

还有另外一种形式的核函数:

针对这种核函数,如果x和z很相似,即 ,那么核函数值趋近于1;如果x和z很不同,即 ,那么核函数值趋近于0。这个核函数能够把原始特征映射到无穷维。

 

 

 

 

 

 

核函数的合法性

给定一个函数K,我们能否使用K来替代计算,即核函数K的合法性如何确定?比如给出了,我们是否能够认为K是一个有效的核函数?

给定m个训练样本 ,每一个元素对应一个特征向量。那么,我们可以将任意两个不同的元素和带入K中,计算得到 。I可以从1到m,j可以从1到m,这样可以计算出m*m的核函数矩阵K。为了方便,我们将核函数矩阵和核函数都使用K来表示。

如果假设K是有效地核函数,那么根据核函数定义:


可见,矩阵K应该是个对称阵。让我们得出一个更强的结论,首先使用符号来表示映射函数的第k维属性值。那么对于任意向量z,得


从这个公式我们可以看出,如果K是个合法的核函数,那么,在训练集上得到的核函数矩阵K应该是半正定的(K>=0)。

这样我们得到一个核函数的必要条件:

K是有效的核函数==> 核函数矩阵K是对称半正定的。

同时,经过证明,这个条件也是充分的,由Mercer定理来表达,具体定义太繁琐,这里不列出。(其实是我没看懂…那个视频的翻译太坑爹…)

核函数的应用范围很广,除了应用在SVM上,只要在一个模型的算法中出现了<x,z>,就可以使用K(x,z)去替换,这可以改善算法。

 

 

L1 norm软间隔SVM

 

我们之前讨论的情况都是建立在样例线性可分的假设上,当样例线性不可分时,我们可以尝试使用核函数来将特征映射到高维,这样很可能就可分了。然而,映射后我们也不能100%保证可分。那怎么办呢,我们需要将模型进行调整,以保证在不可分的情况下,也能够尽可能地找出分隔超平面。

看下面两张图:


可以看到一个离群点(可能是噪声)可以造成超平面的移动,间隔缩小,可见以前的模型对噪声非常敏感。再有甚者,如果离群点在另外一个类中,那么这时候就是线性不可分了。

这时候我们应该允许一些点游离并在在模型中违背限制条件(函数间隔大于1)。我们设计得到新的模型如下(也称软间隔):

 

拉格朗日算子如下:

 

对偶问题


这与之前模型唯一不同在于 又多了 的限制条件。需要提醒的是,b的求值公式也发生了改变,改变结果在SMO算法里面介绍。先看看KKT条件的变化:


第一个式子表明在两条间隔线外的样本点前面的系数为0,离群样本点前面的系数为C,而支持向量(也就是在超平面两边的最大间隔线上)的样本点前面系数在(0,C)上。通过KKT条件可知,某些在最大间隔线上的样本点也不是支持向量,相反也可能是离群点。

 

坐标上升

 

坐标上升法的基本原理如下:

假设要求解下面的优化问题:

 (在这里没有约束条件)


最里面语句的意思是固定除之外的所有,这时W可看作只是关于的函数,那么直接对求导优化即可。这里我们进行最大化求导的顺序i是从1到m,可以通过更改优化顺序来使W能够更快地增加并收敛。如果W在内循环中能够很快地达到最优,那么坐标上升法会是一个很高效的求极值方法。

下面通过一张图来展示坐标上升方法:


椭圆代表了二次函数的各个等高线,变量数为2,起始坐标是(2,-2)。图中的直线式迭代优化的路径,可以看到每一步都会向最优值前进一步,而且前进路线是平行于坐标轴的,因为每一步只优化一个变量。

坐标上升方法相比于牛顿方法等求极值的方法通常会用更多的步骤,但由于其每次只针对一个参数求极值,所以代价非常小。总而言之,它在通常情况下是一个相当高效的算法。

 

SMO算法

 

我们要解决的问题为:;我们可以采用坐标上升的方式来求解极值。但是坐标上升方法的基本形式不能满足要求,因为在对偶问题中有约束条件: , 

如果每次仅仅允许一个参数变化,那从本质上说那个参数并不是变量,因为根据约束条件可以由其他固定的参数推出这个参数。所以在SMO中,我们每次改变两个参数,而不再是一个。

 

SMO的步骤

(1)由启发式法则或者经验法则选择两个参数 

(2)保持除了之外的所有参数不变

(3)在满足所有约束条件的情况下,用这两个参数最优化 

 

 


  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值