间隔与支持向量
给定训练样本集D={(x1,y1),(x2,y2)⋯,(xn,yn)},yi∈{−1,+1},分类学习的最基本的思想就是基于样本空间中找个一个划分超平面,将不同类别的样本分开,但是超平面可能有很多种
直观上应该找最中间的划分超平面,因为该超平面对训练样本局部的扰动的容忍最好的。由于训练集的局限性或噪声的因素,训练集外的样本可能更接近两个类的分隔界,这个划分超平面所产生的分类结果是最鲁棒的,对未见的示例泛化能力最强。
超平面的线性方程描述:
ωωωTx+b=0
其中ωωω=(ω1;ω2;⋯;ωd)为法向量,决定超平面的方向,b为位移项,决定了超平面与原点之间的距离。
样本空间中任意点x到超平面(ω,b)的距离可写成:
r=∣∣ω∣∣∣ωTx+b∣
假设超平面(ω,b)能将训练样本正确分类,即对于(xi,yi)∈D,若yi=+1,则有wTxiwTxiwTxi+b>0,若yi=−1,则有ωTxiωTxiωTxi+b<0
{ωTxiωTxiωTxi+b≥+1ωTxiωTxiωTxi+b≤−1yi=+1yi=−1
推导:
假设这个超平面是ω′Tx+b′=0,则对于(xi,yi)∈D,有:
{ω′Txi+b′>0ω′Txi+b′<0yi=+1yi=−1
根据几何间隔,将以上关系修正为
{ω′Txi+b′≥+ζω′Txi+b′≤−ζyi=+1yi=−1
其中ζ为某个大于零的常数,两边同时除以ζ,再次修改以上关系
{ζ1ω′Txi+ζ1b′≥+1ζ1ω′Txi+ζ1b′≤−1yi=+1yi=−1
令ω=ζ1ω′,b=ζb′,就可以得到公式。
距离超平面最近的这几个训练样本使等号成立,它们称之为支持向量(support vector),两个异类支持向量到超平面的距离之和为
γ=∣∣ωωω∣∣2
找到具有最大间隔的划分超平面,就要找到满足条件参数的ω和b,使γ最大
w,bmax∣∣w∣∣2s.t. yi(wTxiwTxiwTxi+b)≥1,i=1,2,⋯,m
为了最大化间隔,仅需要最大化∣∣w∣∣−1,这等价于最下化∣∣w∣∣2
w,bmin21∣∣w∣∣2s.t. yi(wTxiwTxiwTxi+b)≥1,i=1,2,⋯,m
对偶问题
对于最大间隔划分超平面对应的模型
f(xxx)=wTxwTxwTx+b
这是一个凸二次规划(convex quadratic programming)问题
使用拉格朗日乘子法可以得到其对偶问题,对于每个约束添加拉格朗日乘子αi≥0,则该问题是拉格朗日函数为:
L(ωωω,b,α)=21∣∣www∣∣2+i=1∑mαi(1−yi(wTxi+b))
其中ααα=(α1,α2,⋯,αm)。令L(ωωω,b,α)对ωωω和b的偏导为零可得
ωωω=i=1∑mαiyixixixi0=i=1∑mαiyi
推导:
L(www,b,α)=21∣∣w∣∣2+i=1∑mαi(1−yi(wtxi+b))=21∣∣w∣∣2+i=1∑m(αi−αiyiwTxi−αiyib)=21ωTω+i=1∑mαi−i=1∑mαiyiwTxi−i=1∑mαiyib
对ω和b分别求偏函数并令等于0
∂www∂L=ω+0−i=1∑maiyixi−0=0⇒www=i=1∑mαiyixi∂b∂L=0+0−0−i=1∑mαiyi=0⇒i=1∑mαiyi=0
可以得到对偶问题
αmaxi=1∑mαi−21i=1∑mj=1∑mαiαjyiyjxiTxjs.t. i=1∑mαiyi=0αi≥0,i=1,2,⋯,m
推导:
w,bminL(w,b,α)=21ww+i=1∑mαi−i=1∑mαiyiwTxi−i=1∑mαiyib=21ωTi=1∑mαiyixi−wTi=1∑mαiyixi+i=1∑mαi−bi=1∑mαiyi=−21wTi=1∑mαiyixi+i=1∑mαi−bi=1∑mαiyi
由于∑i=1mαiyi=0,所以
w,bminL(w,b,α)=−21wTi=1∑mαiyixi+i=1∑mαi=−21(i=1∑mαiyixi)T(i=1∑mαiyixi)+i=1∑mαi=−21(i=1∑mαiyixiT)(i=1∑mαiyixi)+i=1∑mαi=i=1∑mαi−21i=1∑mj=1∑mαiαjyiyjxiTxj
所以
αmaxw,bmin=αmaxi=1∑mαi−21i=1∑mj=1∑mαiαjyiyjxiTxj
解出α后,求出w,b即可得到模型
上述过程需要满足KKT(Karush-Kuhn-Tucker)条件,即要求
⎩⎪⎨⎪⎧αi≥0yif(xi)−1≥0αi(yif(xi)−1)=0
对于任意训练样本(xi,yi),总有αi=0或yif(xi)=1,若αi=0,则这样的样本不会出现在求和中,对f(x)有任何影响。若αi>0,则必有yif(xi)=1,则对应的样本点在于最大分隔边界上,是一个支持向量。
如何求解呢,这是一个二次规划问题,可以使用通用的二次规划算法来求解,其中高效的算法有很多,其中SMO(Sequential Minimal Optimization)是其中一个著名的代表。
SMO的基本思想是先管你的固定αi之外的所有参数,然后求αi上的极限。。由于存在约束∑i=1mαiyi=0,若固定αi之外的其他变量,则αi可由其他变量导出。于是,SMO每次选择两个变量αi和αj,并固定其他参数。
- 选择一对需要更新的变量αi和αj
- 固定αi和αj以外的参数,求解更新后的αi和$\alpha_j $
注意到只需选取的αi和αj中有一个不满足KKT条件,目标函数就会在迭代后减少,于是,SMO先选取违背KKT条件的最大的变量,第二个变量应选择一个使目标函数值减少最快的变量,但是比较各变量所对应的目标函数值减少幅度复杂度过高,因此SMO采用了一个启发式:使选择的两变量所对应样本之间的间隔最大,一种直观解释就是,这样的两个变量有很大的差别,与对两个相似的变量进行更新相比,对他们更新会给目标函数值更大的变化。
SMO算法值所以高效,由于在固定其他参数后,优化两个参数的过程能够非常有效。具体来说,仅考虑αi和αj时,约束可以重新写成:
αiyi+ajyj=c,αi≥0,αj≥0
其中
c=−k=i,j∑akyk
消去αj,则得到一个关于αi的单变量二次规划问题,仅有约束αi≥0 。这样的二次规划问题具有闭式解,于是不必调用数值优化算法即可高效的计算出更新后的αi和αj
对于ySf(xSxSxS=1)
ys(i∈S∑αiyixiTxsxiTxsxiTxs+b)=1
其中S={i∣αi>0,i=1,2,3,⋅,m}所支持向量的下标集。
b=∣S∣1s∈S∑(ys−∑αiyixiTxsxiTxsxiTxs)
核函数
异或问题的非线性映射
在实际的任务中,原始样本空间内也许不存在一个能正确划分两类样本的超平面,对于这样的问题,可将样本从原始空间映射到一个更高维的特征空间,使得样本在这个特征空间内线性可分。
令ϕ(xxx)表示将xxx映射后的特征向量,于是,在特征空间中划分超平面所对应的模型可表示为
f(xxx)=wwwTϕ(xxx)+b
其中www和b是参数模型
www,bmin21∣∣www∣∣2s.t. yi(wwwTϕ(xixixi)+b)≥1,i=1,2,⋯,m
对偶问题是:
αmaxi=1∑mαi−21i=1∑mj=1∑mαiαjyiyjϕ(xixixi)Tϕ(xjxjxj)s.t. i=1∑mαiyj=0,αi≥0,i=1,2,3⋯,m
设计到计算ϕ(xixixi)Tϕ(xjxjxj),由于映射后的特征空间维数可能很高,甚至可能是无穷维的,因此直接计算ϕ(xixixi)Tϕ(xjxjxj)通常是困难的。可以设想这样的一个函数
κ(xi,xjxi,xjxi,xj)=⟨ϕ(xixixi),ϕ(xjxjxj)⟩=ϕ(xixixi)Tϕ(xjxjxj)
于是xi与xj在特征空间的内积等于他们在原始样本空间中通过函数κ来计算的结果。
αmaxi=1∑mαi−21i=1∑mj=1∑mαiαjyiyjκ(xi,xjxi,xjxi,xj)s.t. i=1∑mαiyi=0,αi≥0,i=1,2,⋯,m
求解后可得到
f(x)=wwwTϕ(xxx)+b=i=1∑mαiyiϕ(xixixi)Tϕ(xixixi)+b=i=1∑mαiyiκ(xi,xjxi,xjxi,xj)+b
这里的κ就是核函数,显示出来的模型最优解可通过训练样本的核函数展开,称为支持向量展式
核函数
令X为输入空间,κ(⋅,⋅)是定义在X×X上的对称函数,则κ是核函数当且仅当对于任意数据D={x1,x2,,⋯,xmx1,x2,,⋯,xmx1,x2,,⋯,xm}。核矩阵KKK总是半正定的
KKK=⎣⎢⎢⎢⎢⎢⎢⎡κ(x1,x1x1,x1x1,x1)⋮κ(xi,x1xi,x1xi,x1)⋮κ(xm,x1xm,x1xm,x1)⋯⋱⋯⋱⋯κ(x1,xjx1,xjx1,xj)⋮κ(xi,xjxi,xjxi,xj)⋮κ(xm,xjxm,xjxm,xj)⋯⋱⋯⋱⋯κ(x1,xmx1,xmx1,xm)⋮κ(xi,xmxi,xmxi,xm)⋮κ(xm,xmxm,xmxm,xm)⎦⎥⎥⎥⎥⎥⎥⎤
表明只要一个对称函数所对应的的核矩阵半正定,就能作为核函数使用。任何一个核函数都隐式地定义一个称为再生核希尔伯特空间
(Reproducing Kernel Hilbert Sapce,RKHS)的特征空间。
常用的核函数
名称 |
表达式 |
参数 |
---|
线性核 |
κ(xi,xj)=xiTxj |
|
多项式核 |
κ(xi,xj)=(xiTxj)d |
d≥1为多项式的次数 |
高斯核 |
$\kappa(x_i,x_j)=\exp(-\frac{ |
|
拉普拉斯核 |
$\kappa(x_i,x_j)=\exp(-\frac{ |
|
Sigmoid核 |
κ(xi,xj)=tanh(βjxiTxi+θ) |
tanh为双曲正切函数,β>0,θ<0 |
还可以通过函数组合通过
-
若κ1和κ2为核函数,则对于任意整数γ1,γ2其线性组合为
γ1κ1+γ2κ2
也是核函数
-
若κ1和κ2是核函数,则核函数的直积
κ1⊗κ2(x,z)=κ1(x,z)κ2(x,z)
也是核函数
-
若κ1为核函数,则对于任意函数g(x)
κ(x,z)=g(x)κ1(x,z)g(z)