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