目录
什么是SVM
是一种分类模型,求一个能使两类点分布在超平面两侧且间隔最大化的平面。实际中,分为线性可分SVM,线性SVM和非线性SVM。
什么是间隔
那么如何定义“间隔”?
假设一个数据集线性可分,
x∈Rn,y∈{+1,−1}
,超平面
(ω,b)
将点完全非离到平面两侧。点
(x,y)
到平面
(ω,b)
的距离为
|ω⋅x+b|
,若点到平面的距离越远说明分类越可靠,反之越不可靠。若
y(ω⋅x+b)
为正,则点被超平面正确分类,否则为负。所以
y(ω⋅x+b)
可以代表分类的正确性和分类的确信度。
所以定义,数据集到平面的函数间隔为,离平面最近的点(即支持向量)到平面的函数间隔:
γ^=minγi^=minyi(ω⋅xi+b)
但,由于同比例放大
ω和b
,没有改变平面但是函数间隔放大。所以定义几何间隔:
γ=minγi=minγi^||ω||
线性可分SVM的学习思想
有了上面几何间隔的定义,则支持向量机学习的基本思想是,求解能够正确划分训练数据集并且使几何间隔最大化的分离超平面,表示为:
maxω,bγ
s.t.yi(ω||ω||⋅xi+b||ω||)≥γ,i=1,2,...,N
为了方便求解,做如下变换。首先,将
γ=γ^||ω||
代入原式。然后,因为函数间隔的大小变化,可以看做
(ω,b)
的等比例变换,它的大小不影响超平面,所以可以令
γ^=1
,即目标函数变换为
maxω,b1||ω||
,同时约束条件也
s.t.yi(ω⋅xi+b)≥1,i=1,2,...,N
最后,将目标函数取倒数并取平方,将原最大化化问题转化为凸最小化问题,
min12||ω||2
s.t.yi(ω⋅xi+b)−1≥0,i=1,2,...,N
系数
12
也是为了后面求导时简化计算,这里先不解释。做这些变化的原因,是为了转化为凸优化问题,这样的好处是,凸优化问题的解如果存在一定是全局最优解。而对于线性可分数据集,一定存在超平面使点分隔在平面两侧,即解非空,所以上式问题解存在且唯一。
存在性证明:因为数据集线性可分多以一定存在可行解。有目标函数是凸函数有下界,所以一定存在最优解。有训练集既有正实例又有负实例,所以
(ω,b)=(0,b)
不是最优解,所以存在性得证。唯一性证明:较复杂,假设存在两个最优解
(ω∗1,b∗)
和
(ω∗2,b)
,想办法证明
ω∗1=ω∗2
。同理,设两个最优解
(ω∗,b∗1)
和
(ω∗,b∗2)
,证明
b∗1=b∗2
。证明过程略。
有关凸优化,可参考其他博文。
拉格朗日对偶性
前面推导了线性可分支持向量机的学习方法,下面,如何求解这个带约束的最优化问题?答案是,应用拉格朗日对偶性,它是将目标函数和约束条件“融合”到新的函数,即拉格朗日函数,变为非约束最优化问题,来方便求解。是一种求解约束的最优化问题的方法。下简单解释。原约束最小化问题,
minx∈Rnf(x)
s.t.ci(x)≤0,i=1,2,...,k
hi(x)=0,i=1,2,...,l
其中
α,β
是拉格朗日乘子,
αi≥0
。
则拉格朗日函数为:
L(x,α,β)=f(x)+∑i=1kαici(x)+∑j=1lβjhj(x)
设函数
θp
为,最大化拉格朗日函数
θp=maxα,β;αi≥0L(x,α,β)
因为当x满足所有的约束条件时,对所有
i,j
有
αi=0,βj=0
,即
θp=f(x)
;当x不满足某个约束条件
ci
时,则可令
αi→+∞
,即
θp=+∞
,即
θp={f(x),ci(x)≤0,hj(x)=0,i=1,2,...,k,j=1,2,...,l+∞,other(2)
所以,原约束最小化问题通过拉格朗日函数,转化为极小极大问题,即转化为非约束最值问题,即:
minxθp(x)=minxmaxα,β;α≥0L(x,α,β)
理解了原极小极大问题
p∗=minxθp
,则定义对偶问题
d∗=maxα,βminxL(x,α,β)=maxα,βθd(α,β)
是一个极大极小问题。
重要的是,
原问题的解是否是对偶问题的解?有一个重要的定理
【定理1】 考虑原约束最优化问题,假设函数
f(x)
和
ci(x)
是凸函数,
hj(x)
是仿射函数;并且假设不等式约束
ci(x)
是严格可行的,即存在x,对所有
ci(x)<0
则,存在
x∗,α∗,β∗
,使
x∗
是原始问题的解,
α∗,β∗
是对偶问题的解,并且
p∗=d∗=L(x∗,α∗,β∗)
也就是说,对于凸优化问题,原问题与对偶问题同解。
理解了拉格朗日对偶性后,回到所要求解的间隔最大化问题。其思想是:首先,构造拉格朗日函数
L(ω,b,β)
,得原问题的对偶问题。然后,求出对偶问题的解。最后,通过KKT条件,求得原问题的解。
KKT条件是:
【定理2】 考虑原约束最优化问题,假设函数
f(x)
和
ci(x)
是凸函数,
hj(x)
是仿射函数;并且假设不等式约束
ci(x)
是严格可行的,
x∗
是原始问题的解,
α∗,β∗
是对偶问题的解,的充分必要条件是
x∗,α∗,β∗
满足:
∇xL(x∗,α∗,β∗)=0
∇αL(x∗,α∗,β∗)=0
∇βL(x∗,α∗,β∗)=0
α∗ici(x∗)=0,i−1,2,...,k
ci(x∗)≤0,i=1,2,...,k
α∗i≥0,i=1,2,...,k
hj(x∗)=0,j=1,2,...,l
学习的对偶算法
原问题的拉格朗日函数为
L(ω,b,α)=12||ω||2−∑i=1Nαi[yi(ω⋅xi+b)−1]
原问题为
minω,bmaxαL(ω,b,α)
对偶问题为
maxαminω,bL(ω,b,α)=maxαθd
其中对偶问题,
θd=minω,bL(ω,b,α)
,分别对
ω
,
b
求偏导。【注意,这里
(||ω||2)‘=ω
,即求向量2范数平方的导数,是对向量的每一项求导,再写回向量形式】
∇ωL(ω,b,α)=ω−∑i=1Nαiyixi=0⇒ω=∑i=1Nαiyixi
∇bL(ω,b,α)=∑i=1Nαiyi=0
代入拉格朗日函数式简化得
L=12∑i=1N∑j=1Nαiαjyiyj(xi⋅xj)−∑i=1Nαiyi((∑j=1Nαjyjxj)⋅xi+b)+∑i=1Nαi=−12∑i=1N∑j=1Nαiαjyiyj(xi⋅xj)+∑i=1Nαi
即
θd=minω,bL(ω,b,α)=−12∑i=1N∑j=1Nαiαjyiyj(xi⋅xj)+∑i=1Nαi
然后,求
maxαθd
即
maxα−12∑i=1N∑j=1Nαiαjyiyj(xi⋅xj)+∑i=1Nαi
s.t.∑i=1Nαiyi=0
αi≥0,i=1,2,...,N
根据【
定理1】,原问题是凸优化问题,所以存在
ω∗,b∗,α∗
,使得
ω∗,b∗
是原问题的解,
α∗
是对偶问题的解。假设
α∗=(α∗1,α∗2,...,α∗N)
是对偶问题的解,则原问题的解通过【定理2】的KKT条件求得,即对任意使得
α∗j>0
的下标j
ω∗=∑i=1Nα∗iyixi
b∗=yj−∑i=1Nα∗iyi(xi⋅xj)
为什么是这样计算的呢??根据【定理1】,KKT条件成立,则有
∇ωL(ω∗,b∗,α∗)=ω∗−∑i=1Nα∗iyixi=0⇒ω∗=∑i=1Nα∗iyixi
∇bL(ω∗,b∗,α∗)=∑i=1Nα∗iyi=0
α∗i(yi(ω∗⋅xi+b∗)−1)=0,i=1,2,...,N
yi(ω∗⋅xi+b∗)−1≥0,i=1,2,...,N
α∗i≥0,i=1,2,...,N
其中,至少存在一个
α∗j>0
(若
α∗=0
,则
ω∗=0
,但由于同时存在正实例和负实例所以
ω∗=0
不是原问题的解),对此j有
yj(ω∗⋅xj+b∗)−1=0
又由于
y2j=1
则
yj(ω∗⋅xj+b∗)=y2j⇒b∗=yj−ω∗⋅xj
再将
ω∗=∑Ni=1αi∗yixi
得证
参考文献:《统计学习方法》