支持向量机(SVM)

支持向量机(SVM)是一种二类分类模型。它的基本模型是定义在特征空间上的间隔最大的线性分类器,间隔最大使它有别于感知机模型;支持向量机还包括核技巧,使它成为实质上的非线性分类器。

线性可分支持向量机

定义超平面为 wx+b=0 , 它由法向量 w 和截距 b 决定,用 (w,b) 表示。通过间隔最大化求得的分离超平面为

wx+b=0
分类决策函数为
f(x)=sign(wx+b)
成为线性可分支持向量机。

SVM的主要思路就是 “间隔最大化”。它关心的是找到一条最优的分离边界,使得类别之间的间隔最大,或者说以充分大的确信度对训练数据进行分类。不仅将正负点分开。还要将最难分的(离超平面近)点也要有足够大的确信度将他们分开。因此,SVM会主要关心那些难分(离超平面近)的实例点。

下面用数学的方式来表示“间隔”,然后最大化它。
函数间隔: 在超平面确定的情况下, |wx+b| 能够相对地表示点x距离超平面的远近。而 wx+b 的符号与y的符号是否一致能够表示分类是否正确。所以定义样本点 (xi,yi) 对超平面 (w,b) 的函数间隔为

γ^i=yi(wxi+b)
定义超平面 (w,b) 关于训练数据集T的函数间隔为T中所有样本点的函数间隔的最小值
γ^=mini=1,...,Nγ^i

但是如果成比例的改变 w 或者 b ,函数间隔也会改变。因此引入几何间隔
几何间隔:
定义样本点 (xi,yi) 对超平面 (w,b) 的几何间隔为
γi=yi(w||w||xi+b||w||)
定义超平面 (w,b) 关于训练数据集T的几何间隔为T中所有样本点的几何间隔的最小值
γ=mini=1,...,Nγi

易知,函数间隔和几何间隔的关系 γ=γ^||w|| 。如果成比例的改变 w 或者 b ,几何间隔不会改变

则SVM的目的“间隔最大化”用数学形式表达即以下约束最优化问题:

maxw,bγ
s.t.yi(w||w||xi+b||w||)γ,i=1,2,...,N

即我们希望最大化超平面关于数据集的几何间隔,约束条件表明超平面关于每个样本点的几何间隔至少是 γ
这是线性可分支持向量机的最终目标,下面就一步一步地来解决它。
1. 首先,利用几何间隔和函数间隔的关系重写最优化问题为
maxw,bγ^||w||
s.t.yi(wxi+b)γ^,i=1,2,...,N
函数间隔 γ 的取值并不影响最优化问题的解。因为将 w b 成比例缩放为 λw λb 后,函数间隔变成了 λγ^ ,并不影响最优化目标和约束。这样可以取 γ^=1 ,这样最优化问题变成了
minw,b12||w||2
s.t.yi(wxi+b)10,i=1,2,...,N
为什么把最大化 1||w|| 改写成最小化 12||w||2 ,我的理解是在后续的求解过程中以这种形式的求解会更加有利。(在对偶问题的求导中有利)
在线性可分问题中,使约束的等号成立的点称为 支持向量。对于 yi=+1 的正例点,支持向量在超平面 H1:wx+b=1 上,对于 yi=1 的负例点,支持向量在超平面 H2:wx+b=1 上。两个超平面之间的间隔为 2||w|| 。 正是这些支持向量对分离超平面起作用,而其他点对于解是没有影响的。因此这种模型叫做支持向量机。
2. 这是一个带有约束的最优化问题。使用拉格朗日对偶性进行求解。首先构建拉格朗日函数,引入拉格朗日乘子 αi0,i=1,2,...,N ,定义拉格朗日函数
L(w,b,α)=12||w||2i=1Nαiyi(wxi+b)+i=1Nαi
根据拉格朗日对偶性,原始问题的对偶问题是极大极小问题
maxαminw,bL(w,b,α)
所以首先求 L(w,b,α) w,b 的极小。分别对 w,b 求偏导并令其为0
wL(w,b,α)=wi=1Nαiyixi=0
bL(w,b,α)=i=1Nαiyi=0
得到
w=i=1Nαiyixi
i=1Nαiyi=0
从这里可以看出,第一步中为什么把最大化 1||w|| 改写成最小化 12||w||2 , 这样求导后可以直接得到 w , 代回原始式子可以直接消去。将w代回,并利用第二个式子,即得
L(w,b,α)=12i=1Nj=1Nαiαjyiyj(xixj)i=1Nαiyi((j=1Nαjyjxj)xi+b)+i=1Nαi
化简得
minw,bL(w,b,α)=12i=1Nj=1Nαiαjyiyj(xixj)+i=1Nαi
于是,原始问题转换为
minα12i=1Nj=1Nαiαjyiyj(xixj)i=1Nαi
s.t.i=1Nαiyi=0αi0,i=1,2,...,N
至此,我们把最初的问题转换成了现在的形式。下一步的求解使用序列最小最优化(SMO)算法。在最后一部分给出介绍。假设我们已经求得解 α=(α1,α2,...,αl)T ,我们可以利用下式求得原始问题的解 w,b
w=i=1Nαiyixi
选择 α 的一个正分量,计算 αj>0
b=yji=1Nαiyi(xixj)
证明时利用KKT条件的对偶互补条件可得。
考虑此时的支持向量,为 αi>0 的点。( αi=0 的点对求解并没有实质性作用)

线性不可分支持向量机

对于线性不可分问题,原始问题的约束条件(函数间隔大于等于1)就会不满足了。这时可以对每个样本点引入一个松弛变量 ξi0 , 这样约束条件就变成了 yi(wx+b)1ξi , 对于每个松弛变量支付一个代价 ξi , 目标函数变为 12||w||2+CNi=1ξi ,C为惩罚参数。它调和最大化间隔和最小化误分类点二者。则对于线性不可分问题,学习问题变为

minw,b,ξ12||w||2+Ci=1Nξi
s.t.yi(wx+b)1ξi,i=1,2,...,N
ξi0,i=1,2,...,N
可以证明 w 的解是唯一的,b的解不唯一,存在一个区间。
求解时还是先写出拉格朗日函数,求其对偶问题。拉格朗日函数为
L(w,b,ξ,α,μ)=12||w||2+Ci=1Nξii=1Nαi(yi(wxi+b)1+ξi)i=1Nμiξi
然后对 w,b,ξ 求导使其为0,即
wL(w,b,ξ,α,μ)=wi=1Nαiyixi=0
bL(w,b,ξ,α,μ)=i=1Nαiyi=0
ξiL(w,b,ξ,α,μ)=Cαiμi=0
带回原式。这时学习对偶算法为
minα12i=1Nj=1Nαiαjyiyj(xixj)i=1Nαi
s.t.i=1Nαiyi=0
0αiC,i=1,2,...,N
很巧的是尽管引入了松弛变量,在最后的对偶问题中并没有出现,只是在约束中出现了惩罚系数C,目标函数和线性可分问题是一样的。
下一步的求解仍是使用SMO算法,最终结果和线性可分问题几乎一样,在计算 b 时,选择 0<αj<C 由于原始问题对b的解不唯一,实际问题中可以取所有符合条件的样本点计算,然后取平均。
软间隔的支持向量是 αi>0 的点。但是这些点不一定在间隔边界上。若 αi<C ξi=0 ,支持向量在间隔边界上;若 αi=C0<ξi<1 ,分类正确,支持向量在间隔边界和分离超平面之间;若 αi=Cξi=1 ,支持向量在分离超平面上;若 αi=Cξi>1 ,支持向量在分离超平面误分一侧。

SVM另一种解释方式

通过软间隔最大化,可以引出SVM的另一种解释方式,正则化的合页损失函数的最小化问题。最小化以下目标

i=1N[1yi(wxi+b)]++λ||w||2
式中第一项是经验损失,函数 L(y(wx+b))=[1y(wx+b)]+ 称为 合页损失函数(hinge loss function)。 [z]+ 表示当z小于0时,取值为0,大于零时取值为z。在cs231n里,这个也写作 max(0,1yi(wxi+b))
这就是说当样本点被正确分类且函数间隔 yi(wxi+b) 大于1时,损失是0。否则是 1yi(wxi+b)
以下给出简单证明,两种解释方式等价。
[1yi(wxi+b)]+=ξi ,易知线性不可分支持向量机的目标约束成立。最优化目标写成
minw,bi=1Nξi+λ||w||2
,若取 λ=12C 。则两种解释方式等价。
在吴恩达的机器学习视频里,是从逻辑回归LR中引出SVM的。他们的区别在于LR使用的是对数损失函数,而SVM使用的是合页损失函数。不同损失函数如下。
loss
两个损失函数的目的都是增加对分类影响较大的数据点的权重。SVM是只考虑支持向量,而LR通过非线性映射,大大减小了离分类平面较远点的权重。
相比来说,SVM的独特点在于它的核技巧。但是,不代表核技巧是SVM专有的。Kernel Logistic Regression(KLR)也很常见,FM/FFM也算是KLR。
关于正则项,LR需要在损失函数中添加,但是SVM损失函数就自带L2正则项!很神奇
关于何时使用哪种分类算法,下面贴出吴恩达的解释
LR vs SVM
关于核技巧,下一篇文章将进行说明。

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值