线性可分支持向量机思想与公式推导

来源:互联网 发布:sql offset fetch 编辑:程序博客网 时间:2024/05/22 12:53
1、SVM思想利用间隔最大化求最优分离超平面(唯一解,总是比当前坐标轴少一个维度):
wTx+b=0

以及相应的决策函数:

f(x)=sign(wTx+b)

将不同类别的样本分开,使超平面正样本一侧所有的点满足f(x)=wTx+b1, 负样本一侧所有的点满足f(x)=wTx+b1,最终任何一侧的点都满足yi(wTxi+b)1。其中,距离超平面最近的点称为支持向量, 超平面是仅由支持向量确定的。
Q1:为什么根据间隔最大原则找划分超平面?
A1:分割线由极少数的几个点(支持向量)决定;
距离分割线越远,则分类的准确性越高;
给模糊的点留下了最大的空间,容错率更高。
2、函数间隔和几何间隔
1)函数间隔
a.定义超平面(w,b)关于样本点(xi,yi)的函数间隔为:

γi=yi(wTxi+b)

b.定义超平面(w,b)关于训练集的函数间隔为超平面关于训练集中所有样本点的函数间隔的最小值:

γ=min(i=1,,N)γi

2)几何间隔
a.定义超平面(w,b)关于样本点(xi,yi)的几何间隔为:

γi=yi(wTxi+bw)

b. 定义超平面(w,b)关于训练集的几何间隔为超平面关于训练集中所有样本点的几何间隔的最小值:

γ=min(i=1,,N)γi

3)函数间隔和几何间隔的关系

γi=γiwγ=γw

Q2:为什么选择几何间隔而不选择函数间隔作为优化对象?
A2: 若选取函数间隔作为最优化目标,则当超平面固定后,我们可以等比例地缩放wb,这样可以使得函数间隔y(wTx+b)的值任意大,而超平面位置不变。几何间隔则没有这个问题,因为除上了w这个分母,所以缩放wb的时候,几何间隔γ的值是不会改变的,它只随着超平面的变动而变动。因此,几何间隔更适合被用来作间隔最大化的优化对象。
3、问题形式化
求一个几何间隔最大的分离超平面可以表示为如下的约束最优化问题:

max(w,b)γs.t.yi(wTxi+b)wγ(i=1,2,,N)max(w,b)γws.t.yi(wTxi+b)γ(i=1,2,,N)

由于函数间隔γ的大小并不影响最优化问题的解。所以取γ=1代入上面的最优化问题得到:

{max(w,b)1ws.t.yi(wTxi+b)10(i=1,2,,N){min(w,b)12w2s.t.yi(wTxi+b)10(i=1,2,,N)

这是一个凸二次优化问题——目标函数是二次的,约束条件是线性的。
4、原始问题和对偶问题
1)原始问题
输入:线性可分训练数据集T={(x1,y1),(x2,y2),,(xN,yN)},其中,xiX=RnyiY={1,+1}i=1,2,,N
输出:最大间隔分离超平面和分类决策函数
a.构造并求解原始问题:

{min(w,b)12w2s.t.yi(wTxi+b)10(i=1,2,,N)

求得最优解wb
b.求得分离超平面:

wx+b=0

以及分类决策函数:

f(x)=sign(wx+b)

2)对偶问题
应用拉格朗日的对偶性,通过求解对偶问题得到原始问题的最优解。
输入:线性可分训练数据集T={(x1,y1),(x2,y2),,(xN,yN)},其中,xiX=RnyiY={1,+1}i=1,2,,N
输出:最大间隔分离超平面和分类决策函数
a.构造并求解对偶问题:

minα12i=1Nj=1Nαiαjyiyj(xiTxj)i=1Nαis.t.i=1Nαiyi=0s.t.αi0(i=1,2,,N)

求得对偶问题的最优解α=(α1,α2,,αN)T。其中,(xiTxj)表示两个向量的内积。
b.由对偶问题的最优解计算原始问题的最优解:

w=i=1Nαiyixib=yji=1Nαiyi(xiTxj)(αj>0)

c.求得分离超平面:

wx+b=0

以及分类决策函数:

f(x)=sign(wx+b)

Q3:如何由原始问题推导成对偶问题?
A3:推导过程如下:
Step1:引入拉格朗日乘子[\alpha ]到目标函数中:

L(w,b,α)=12w2i=1Nαi(yi(wTxi+b)1)

并令:

θ(w)=max(αi0)L(w,b,α)

要想最大化L(w,b,α)yi(wTxi+b)1的正负很关键,若yi(wTxi+b)1<0,则令αi=时,θ(w)=,没有意义。因此每个点都应满足yi(wTxi+b)10,其中支持向量满足yi(wTxi+b)1=0αi>0;非支持向量满足yi(wTxi+b)1>0αi=0。也验证了分离超平面仅由支持向量决定的概念。
Step2:当所有点都满足条件时,有:

θ(w)=max(αi0)L(w,b,α)=12w2

所以,优化问题变为:

min(w,b)12w2min(w,b)θ(w)min(w,b)max(αi0)L(w,b,α)

Step3:求最小的最大值问题转换成求最大的最小值问题:

min(w,b)max(αi0)L(w,b,α)=pmax(αi0)min(w,b)L(w,b,α)=d(pd)

而通常,在满足KKT条件时,有p=d。这里的问题是满足KKT条件的,因此直接对max(αi0)min(w,b)L(w,b,α)求解。
Step4:先固定α,求L(w,b,α)关于(w,b)最小化,即分别令LwLb等于0:

Lw=wi=1Nαiyixi=0w=i=1NαiyixiLb=i=1Nαiyi=0i=1Nαiyi=0

将上式代入L(w,b,α)中得:

L(w,b,α)=i=1Nαi12i=1Nj=1Nαiαjyiyj(xiTxj)

于是,优化问题变为:

maxαi=1Nαi12i=1Nj=1Nαiαjyiyj(xiTxj)s.t.i=1Nαiyi=0s.t.αi0(i=1,2,,N)minα12i=1Nj=1Nαiαjyiyj(xiTxj)i=1Nαis.t.i=1Nαiyi=0s.t.αi0(i=1,2,,N)

求出最优解α=(α1,α2,,αN)T后,进一步得到:

w=i=1Nαiyixib=yji=1Nαiyi(xiTxj)(αj>0)

分离超平面为: i=1Nαiyi(xiTxj)+b=0
分类决策函数为: f(x)=sign(i=1Nαiyi(xiTxj)+b)
对于新点(xj,yj)的预测,只需要计算它与训练数据点的内积即可。事实上,所有非支持向量所对应的系数αi都是等于零的,因此对于新点的内积计算实际上只要针对少量的“支持向量”而不是所有的训练数据。

参考博客:

[支持向量机简介](http://blog.pluskid.org/?p=632)[介绍支持向量机目标函数的 dual 优化推导,并得出“支持向量”的概念](http://blog.pluskid.org/?p=682)[Kernel —— 介绍核方法,并由此将支持向量机推广到非线性的情况](http://blog.pluskid.org/?p=685)[Outliers —— 介绍支持向量机使用松弛变量处理 outliers 方法](http://blog.pluskid.org/?p=692)[Numerical Optimization —— 简要介绍求解求解 SVM 的数值优化算法](http://blog.pluskid.org/?p=696)
阅读全文
1 0