【转】 支持向量机通俗导论(理解SVM的三层境界)
原文链接:http://blog.csdn.net/v_july_v/article/details/7624837
某学习笔记:http://www.cnblogs.com/Deribs4/p/5241512.html
核函数介绍:http://blog.csdn.net/wsj998689aa/article/details/47027365
http://crsouza.com/2010/03/17/kernel-functions-for-machine-learning-applications/
SVM中,词包特征(视觉关键词直方图)为什么用卡方核函数:https://www.quora.com/Why-is-chi-square-kernel-used-with-bag-of-features
总结:
1、小结:SVM它本质上即是一个分类方法,用w^T+b定义分类函数,于是求w、b,为寻最大间隔,引出1/2||w||^2,继而引入拉格朗日因子,化为对拉格朗日乘子a的求解(求解过程中会涉及到一系列最优化或凸二次规划等问题),如此,求w.b与求a等价,而a的求解可以用一种快速学习算法SMO,至于核函数,是为处理非线性情况,若直接映射到高维计算恐维度爆炸,故在低维计算,等效高维表现。
2、核函数则为是为了更好的处理非线性可分的情况,而松弛变量则是为了纠正或约束少量“不安分”或脱离集体不好归类的因子;
3、核函数的总结:
- 实际中,我们会经常遇到线性不可分的样例,此时,我们的常用做法是把样例特征映射到高维空间中去(如上文2.2节最开始的那幅图所示,映射到高维空间后,相关特征便被分开了,也就达到了分类的目的);
- 但进一步,如果凡是遇到线性不可分的样例,一律映射到高维空间,那么这个维度大小是会高到可怕的(如上文中19维乃至无穷维的例子)。那咋办呢?
- 此时,核函数就隆重登场了,核函数的价值在于它虽然也是讲特征进行从低维到高维的转换,但核函数绝就绝在它事先在低维上进行计算,而将实质上的分类效果表现在了高维上,也就如上文所说的避免了直接在高维空间中的复杂计算;
4、常用的核函数: 多项式核变量为R、d(大于0);高斯核,变量为σ(不能为0,正负的效果一样);
- 多项式核
,显然刚才我们举的例子是这里多项式核的一个特例(R = 1,d = 2)。虽然比较麻烦,而且没有必要,不过这个核所对应的映射实际上是可以写出来的,该空间的维度是
,其中
是原始空间的维度。 - 高斯核
,这个核就是最开始提到过的会将原始空间映射为无穷维空间的那个家伙。不过,如果
选得很大的话,高次特征上的权重实际上衰减得非常快,所以实际上(数值上近似一下)相当于一个低维的子空间;反过来,如果
选得很小,则可以将任意的数据映射为线性可分——当然,这并不一定是好事,因为随之而来的可能是非常严重的过拟合问题。不过,总的来说,通过调控参数
,高斯核实际上具有相当高的灵活性,也是使用最广泛的核函数之一。
5、 松弛变量中,C 是一个参数,用于控制目标函数中两项(“寻找 margin 最大的超平面”和“保证数据点偏差量最小”)之间的权重。因此,一般大于0。
,其中 
,这个核就是最开始提到过的会将原始空间映射为无穷维空间的那个家伙。不过,如果
选得很大的话,高次特征上的权重实际上衰减得非常快,所以实际上(数值上近似一下)相当于一个低维的子空间;反过来,如果
浙公网安备 33010602011771号