SVM学习总结

来源:互联网 发布:淘宝可用微信付款吗 编辑:程序博客网 时间:2024/06/11 08:21

由上篇LR模型已知我们分类的思想就是找到一条直线可以将两个类分隔开来。那进一步想一想,如果想要使两个类不仅是区分开来,而且是要使最难分的点都能以足够大的确信度将它们分开,我们需要不仅仅是一条分解线,还要让这两个类在分界线两边可能的远离开来,就像两个类之间有一条沟一样,这样对未知数据也会有更好的分类预测能力。

支持向量机SVM实际上就在做这样一件事情,它就是一个在特征空间上的使分类间隔最大的线性分类器,他的核技巧使其也能进行非线性分类。按其模型的由简至繁,可分为三种:

  • 线性可分支持向量机:适用于训练数据线性可分的情况,通过硬间隔最大化来学习模型。
  • 线性支持向量机:适用于训练数据近线性可分的情况,通过软间隔最大化来学习模型。
  • 非线性支持向量机:适用于训练数据线性不可分的情况,通过核技巧软间隔最大化来学习模型。

关于硬间隔和软间隔最大化的概念后文详述。本文不涉及最优化问题如何解,只给出如何得到这三种模型的最优化问题。从最理想的线性可分的情况开始。

        • 线性可分支持向量机
          • 函数间隔几何间隔
          • 硬间隔最大化
        • 线性支持向量机软间隔最大化
          • 合页损失函数 另一种解释
        • 非线性支持向量机

线性可分支持向量机

顾名思义,使用本模型的前提是假设训练数据集是线性可分的,而我们的学习目标是在特征空间中(这里也就是输入空间)找到一个分割超平面,能将实例分到到不同的类中。

易知,线性可分支持向量机使用的分割超平面的方程为

θx+b=0
当训练集线性可分时,这样的分隔超平面存在且有无数个。但间隔最大的超平面有且只有一个,本模型求的就是这样的最优分割超平面。

使用的分类决策函数为

f(x)=sign(θx+b)=11+eθx+b

如下图所示,A、B都是这个训练集的分离超平面,我们训练的目的就是想要确定的就是A和B两条线中,谁能让这两个类别的分类间隔更大。
二分类问题

函数间隔&几何间隔

为了使分类间隔最大化,我们需要定义任意样本点到超平面的距离,同时一个点距离分离超平面的远近也可以用来表示分类预测的确信程度。

在超平面θx+b=0确定的情况下,|θx+b|可以相对的表示点与超平面的带符号距离,点若落在正类一侧,这个距离为正,若落在负类一侧,距离为负,因此可以用距离与类标记y的符号是否一致表示分类是否正确。这个距离被称为函数间隔。

超平面关于样本i的函数间隔表示为

γi^=yi(θxi+b)
考虑到,如果成比例的改变θ和b,超平面并未改变,但函数间隔却会成比例的改变。因此可以通过对超平面进行规范化,令||θ||=1,使得间隔是确定的,函数间隔变为几何间隔。

对于给定的训练集和超平面,超平面关于样本点i的几何间隔

γi=yi(θ||θ||xi+b||θ||)=γi^||θ||
分类器如果想最大化任意一个样本点到超平面的间隔,只需要最大化正负样本中离超平面最近的点离超平面的距离即可,这些点也被称为支持向量

因此定义超平面关于训练集的几何间隔为所有样本点中的几何间隔的最小值

γ=minγi
我们想要最大化的间隔指的就是这个最小间隔-支持向量的间隔

硬间隔最大化

最大化几何(函数)间隔用数学方式可以表示为下述的约束最优化问题:

maxγmaxγ̂ ||θ||
s.t:yi(θ||θ||xi+b||θ||)γyi(θxi+b)γ̂ 
即最大化样本点到超平面的最小间隔,同时要求所有样本点到超平面的距离都大于这个最小间隔。可以看出函数间隔γ̂ 的取值并不影响最优化问题的解。因此可以取γ̂ =1.

得到线性可分支持向量机学习的最优化问题:

min12||θ||2
s.t:yi(θxi+b)1
也就是当函数间隔固定为1时,要求样本点到超平面的距离大于1,形成了一个分类的间隔.

上述模型只在训练集严格线性可分的情况下适用,实际的训练集若近似可分,会包含很多噪声和异点,上述不等式的约束不能都成立。因此需要将硬间隔最大化扩展到软间隔最大化以适应这种情况。

线性支持向量机&软间隔最大化

为了解决在训练集近似线性可分时,某些样本点不能满足函数间隔大于1的约束条件,可以对每个样本点引入一个松弛变量,使得最优化问题变为:

min12||θ||2+Ci=1Nξi
s.t:yi(θxi+b)1ξi,ξi0
C>0称为对误分类的惩罚系数,应在分类精准和分类间隔(margin)间平衡:

  • C很大时,对误分类惩罚重,因此分类很准,但间隔小,易导致过拟合
  • C不太大时,分类准确度下降,但间隔大,易导致欠拟合

考虑软间隔最大化下的支持向量
软间隔的支持向量

  • 当支持向量在间隔边界上,其ξ为0,点距超平面的间隔为1
  • 当支持向量在间隔边界与分割超平面之间,如点4点2,分类正确,0<ξ<1,点距超平面的间隔在0-1之间
  • 当支持向量在分割超平面误分的一侧,如点1点3,分类错误,ξ>1,点距超平面的间隔<0
合页损失函数 – 另一种解释

由上面支持向量的分析,可知目标函数中的ξ可以理解为分类的经验损失,用于弥补错分的样本点对模型造成的影响。这个经验损失函数称为合页损失函数,有如下形式:

ξi=[1yi(θxi+b)]+
其中[z]+表示在z大于等于0时,结果取z,在z小于0时,结果取0. 当样本点被正确分类且函数间隔大于等于1时,损失为0,否则损失大于0.

目标函数中另一项是系数为λL2范式,为正则化项,通过允许一定数据的分错,来避免过拟合情况的发生。

因此软间隔的目标函数也可以像LR那样理解是最小化二阶范数正则化的合页损失函数

i=1N[1yi(θxi+b)]++λ||θ||2

合页损失函数
由上图可以看出,相较于LR的误差函数,合页损失函数不仅要求分类正确,而且需要确信度足够高时损失才为0(要求|z|>1),因此分类更加准确。

非线性支持向量机

对于非线性分类问题,可以通过非线性变换将他转为某个高维特征空间的线性分类问题,从而可以在高维特征空间中学习线性支持向量机。
常用的核函数有多项式核函数和高斯径向基核函数。高斯核函数如下:

K(x,z)=exp(||xz||22σ2)
其中x为训练样本,z为事先选取的landmark,其实计算的就是x和z的相似度。对于xi,zj 就是它的第j个特征。两者越相近,特征值越接近1,反之接近0。若原来训练集有m个样本,n个特征,经过转换后变为m个样本,m+1个特征。

0 0
原创粉丝点击