SVM总结

来源:互联网 发布:淘宝9块9包邮 编辑:程序博客网 时间:2024/05/18 08:49

来源于张驰原的博客

1. 有两个margin,一个是function margin,一个是geometric margin。优化目标函数就是优化geometric margin,它比function margin多除了一个||w||。这样分割平面尽管没有变化,function margin是有可能变化的,因为w和b可以等比例地缩小放大,但是geometric是随着分割平面变化的。


2. 要max geometric margin。这个margin是离分割平面最近的点距离分割平面的距离,要最大化它,这样我们在分类时才会有最大的confidence。这个式子为



3. 固定的方式有两种,分子或分母。固定γ^会比较方便计算。所以优化变成了




4目标函数改成了这样,变成了凸二次优化问题了! quadratic programming


这里,拉格朗日函数里面的不等式约束函数变成了 -(yi(wx+b)-1)≤0 乘子是αi,这样就可以用极小极大方法,求取全局的最小值了!


但是原本的优化的式子里面是先极小的,所以想办法用对偶问题


5. 但是我们假设了它的强对偶性(因为首先,它是凸函数。如果它不是凸函数,KKT条件仅仅是必要条件,但现在KKT条件因为凸函数的缘故成为了充要条件,而这个问题是满足KKT条件的,所以可以用对偶的方法求得),所以我们用极大极小方法来求得最优解。原问题是要求上确界,现在改为求下确界。


6. 最后变成了优化这个式子:




这个优化过程有更高效的算法(见11)


7. 关于怎么预测点。前面的推导过程中得到了w的替换式子,所以f(x)变为了


结果就变成了求内积。这个求内积的过程是核函数的基础,可以用到高维的分布。而且对于非支持向量,α都是为0的。因为αy=0(这样L函数才会极大化).所以计算量并不大。


8. 核函数映射到高维时,不需要先映射到高维后做内积,可以先做低维的内积再映射到高维。高维的优化函数变成了:


计算两个向量在映射过后的空间中的内积的函数叫做核函数 (Kernel Function) 

在低维内积完以后再通过核函数变换到高维。我们不需要知道映射的具体形式。这样一来计算的问题就算解决了,避开了直接在高维空间中进行计算,而结果却是等价的。

高斯核可以将数据映射到无穷维度的空间。但如果σ选的很大,实际上高次特征的权重会衰减的很快,相当于映射到了低维的子空间;

如果选的很小,容易产生过拟合。


9. 除了 SVM 之外,任何将计算表示为数据点的内积的方法,都可以使用核方法进行非线性扩展


10. 关于松弛变量



关于优化函数唯一的区别实际上就是α有了上限C

11. 优化算法SMO

如果要选择最合适的α,一般可以用最简单的梯度下降。但是对于某些函数有可能陷入局部最小值。如果用coordinate descent,一次选一个α,固定其他的α,也不可以。因为由于所有的αy的和为0,固定n-1个α,剩下的那个就确定了。SMO算法是一次选择一对α。这两个α都在[0,C]里(考虑松弛变量)。并且由于固定了其他α,这两个αy的和等于一个固定的数值。这样α就有了可行区间,在这个区间上迭代找极值。但如何选择这两个变量,也是有讲究的。








原创粉丝点击