支持向量机SVM总结

1. SVM原理

SVM是一个二分类模型,在特征空间中寻找一个最大间隔的线性分类器。(间隔最大便是它与感知机最大的区别,感知机的分类超平面不唯一,而SVM得到的分类器是唯一的)

对于线性SVM来说,其决策超平面是:w*x+b=0,决策函数为:f(x)=sign(w8x+b),学习策略为软间隔最大化,学习算法是凸二次规划。

2. 硬间隔SVM(线性可分SVM)

SVM在将两类数据正确划分的情况下(感知机),再将其间隔最大化,即以充分大的确信度将训训练集分离。此处便引入了函数间隔:r_h = yi*(w*xi+b)(乘以yi的目的是为了查看结果是否正确分类)。由于函数间隔仅仅表示分类预测的正确性及确信度,但是仅有此还不足够,因为当w与b成比例改变时,函数间隔将成比例增加或减少,因此我们需要对w进行约束(不需要对b约束,距离公式),||w||=1(归一化),变为几何间隔

因此有:max r_h/||w|| s.t. yi(w*xi+b) >= r_h_i  (1)(令r_h_i=1)等价于

min 1/2*||w||2 s.t. yi(w*xi+b) >= 1  (2)

公式(2)是一个凸二次规划问题,因此可以使用拉格朗日乘子法(对偶算法,极大极小问题)来学习参数。(w和b唯一)

支持向量与间隔边界

在线性可分情况下,训练集中距离间隔平面最近的点的实例称为支持向量,再决定分离超平面时只有这些向量起作用。如果移动支持向量将改变所求解,但是移动间隔边界(分离超平面到支持向量的距离间隔)意外的点,甚至去掉这些点,都不会海边解。一般情况下,支持向量的数量很少,所以SVM由很少的“重要的”训练样本确定。

3. 软间隔SVM(线性近似可分SVM)

线性可分的SVM学习方法,对线性不可分数据不太使用(线性不可分意味着某些点不能满足函数间隔大于等于1,除去特异点,其他大部分点线性可分),因此上边的约束并不能成立,所以引进了软间隔机制(引进松弛因子sigm_i,使得r_h_i+sigm_i大于等于1),使其软间隔最大化:

min 1/2*||w||2 +C*sum(sigm_i)

s.t. yi(w*xi+b) >= 1- sigm_i (3)

C>0:惩罚参数。C值大时对误分类的惩罚增加,否则减小。(3)包含两层含义:间隔最大化的同时,使得误分类点的个数尽量减小。

使用与硬间隔SVM相同的方法来学习参数,但是软间隔SVM学习得到的w唯一,b不唯一。

软间隔的支持向量(alpha>0(L氏乘子))

求解(3)的对偶问题时,alpha_i>0(L氏乘子)对应的点为软间隔的支持向量。

软间隔的支持向量或者在间隔边界上(alpha_i

4. 合页损失函数(hinge loss function)

线性SVM的另一种解释,最小化下列目标函数:

L(w,b) = sum([1-yi(wi*x+b)]+ + lambda||w||2)

g(1-yi(wi*x+b)) = [1-yi(wi*x+b)]+ 称为合页损失函数:

当1-yi(wi*x+b)>0时,g(1-yi(wi*x+b)) = 1-yi(wi*x+b)

当1-yi(wi*x+b)<=0时,g(1-yi(wi*x+b)) = 0

也就是说,当样本正确分类且函数间隔大于1时,其损失为0;否则,损失为1-yi(wi*x+b)

5. 非线性SVM

核函数:核函数的目的是将低维空间映射到高维空间中,使得映射之后,线性不可分的数据在高维空间中变得线性可分。

通常用到的核函数包括:多项式核函数、高斯核函数、线性核函数等

6. 序列最小最优化算法 SMO

凸二次规划问题具有全局最优解,有许多最优化算法可以用于求解。但是当训练样本很大时,这些算法变得非常低效。因此提出快速实现算法SMO。

SMO:一次只需找两个变量进行更新,固定其他变量。第一个变量找违反KKT条件最多的变量进行更新,第二个变量由约束条件自动确定。

7. 优缺点及适用场景

优:泛化错误率低,计算开销小,结果易于解释;可以解决高维问题,即大型特征空间;能够处理非线性特征的相互作用;无需依赖整个数据;需要对数据提前归一化,很多人使用的时候忽略了这一点,毕竟是基于距离的模型,所以LR也需要归一化

缺:对参数及核函数的选择较敏感,如果不进行修改只适用于二分类问题。

适用场景:邮件系统中的垃圾邮件,入侵检测系统中的网络行为

你可能感兴趣的:(支持向量机SVM总结)