第八课 SVM

来源:互联网 发布:国际原油行情分析软件 编辑:程序博客网 时间:2024/05/20 05:03

—kernal

—soft margin

—SMO algorithm

1.kernals

input attributes:原始输入数据
features:经过ϕ(x)将attributes映射到高维空间后,传递到算法中的数据
ie.
这里写图片描述
因为SVM算法可以通过计算内积来计算估计值,那么映射到高维之后的内积我们可以用<ϕ(x),ϕ(z)>表示,因此我们定义kernal为:
这里写图片描述
因此SVM算法就是使用feature来学习了。
通过计算attribute内积的k次方,可以近似代替计算高维kernal的值,因而降低复杂度,如下式:
这里写图片描述
这里写图片描述
可以注意到,对于该2维空间,直接计算kernal值需要计算O(n2)次,
但是用低维线性运算代替后,计算复杂度降为O(n)
特别的:这里写图片描述
对应于映射:
这里写图片描述
这里写图片描述
在实际应用中,经常会使用gaussian kernal:
这里写图片描述
该kernal可以将数据映射到无穷维。我们的直觉可以告诉我们,该kernal和内积有相似之处,如果两个向量相似度越高,那么kernal值越大。

对于任意给定的函数,我们如何判断它能否成为核函数呢?结论是这样:
kernal matrix:这里写图片描述,这里的数据为训练数据,因此矩阵大小为mxm。
K是一个可用的核函数的充要条件是,kernal matrix必须是对称半正定矩阵。(证明略去,在note3上)。

2.soft margin SVM(non-linear seperate)

当样本点不是完全可分时,引入惩罚项,则问题可描述为:
这里写图片描述
对问进行转化得到:
这里写图片描述
可以看到,该问题中α的定义域发生了变化,同时b的值也会变化,在SMO算法中会提到。
这里KKT条件约束也发生了变化:
这里写图片描述

3.SMO算法

3.1 coordinate ascent

对于一个求优化问题:
这里写图片描述
coordinate ascent算法步骤如下:
这里写图片描述
该过程中,一次只改变一个参数的值。使用梯度图像可以直观表示该算法:
这里写图片描述

3.2SMO

这里介绍一下大概思路,详细过程在notes3最后一节。
该算法每次改变两个参数,由约束方程,我们可以将其中一个参数用另外一个参数表示,如图:
这里写图片描述
这样目标函数就变成了一个变量的二次函数,方便求最大值,这样就可以同时改变两个参量,并且不违背约束方程。
每次要改变哪两个参量?该问题platt的paper中有提到。

0 0