SVM知识点汇总
目录
1. 简单描述SVM(线性可分SVM的求解)
2. 线性SVM
3. 非线性SVM
1. 简单描述SVM
SVM是一个分类算法,通过寻找一个分离超平面,将正负样本分开,并且正负样本到超平面的间隔最大。分离超平面可以用y = wx + b来描述,样本到超平面的相对距离可以用函数间隔r = | wx + b |描述。当y+ = 1, y - = -1时,r = | wx + b | = y( wx + b )。但由于当w,b成比例变化时,超平面不变,但样本到超平面的距离会发生改变,因此改用几何间隔r' = y( wx + b)/ ||w||。整个模型可表示如下图:
约束最优化问题,利用拉格朗日对偶性将其转化为对偶问题进行求解。拉格朗日对偶性的求解形式如下:
对照写出SVM问题的拉格朗日函数:
原始问题是极小极大问题,将其转换为对偶问题求解,并且只有当问题满足KKT条件时,可将对偶问题的解作为原始问题的解。
于是SVM问题就变为:
关于拉格朗日算子α的约束优化问题的求解:SMO算法(序列最小最优化)
2. 线性SVM
当样本无法被超平面完全分开时,引入松弛变量,使得不可分的部分样本能被超平面分开。但当松弛变量过大时,SVM分类模型就失去意义了,因此对松弛变量进行惩罚。
这样的线性SVM等价于以下最优化问题:
可以看到等价的这个目标函数是由合页损失函数和正则化项组成的。这种自带正则化项的特性,使得SVM有较好的泛化能力。
实际上大部分问题都不是线性可分问题,同时这样的做法也可以避免线性可分SVM受异常点影响较大的问题。
3. 非线性可分SVM
此时,需要将样本空间映射到更高维来解决,即Ø(x) = x,由于待求解的问题中存在xi * xj,因此映射后存在Ø(xi) * Ø(xj),难以求解。于是提出核函数K(xi, xj) = Ø(xi) * Ø(xj)。核函数有以下几种:
1)线性核函数
2)径向基核函数
径向基核函数中最常见的是高斯核函数,同时还有高斯核函数的变种,指数核函数和拉普拉斯核函数。
高斯核函数:
指数核函数:
指数核函数就是高斯核函数的变种,它仅仅是将向量之间的L2距离调整为L1距离,这样改动会对参数的依赖性降低,但是适用范围相对狭窄。
拉普拉斯核函数:
1. 如果Feature的数量很大,跟样本数量差不多,这时候选用LR或者是Linear Kernel的SVM
2. 如果Feature的数量比较小,样本数量一般,不算大也不算小,选用SVM+Gaussian Kernel
3. 如果Feature的数量比较小,而样本数量很多,需要手工添加一些feature变成第一种情况
https://www.zhihu.com/question/21883548/answer/112128499