【机器学习】SVM原理公式推导和常见问题(1)

目录

    • 什么是SVM
    • 什么是间隔
    • 线性可分SVM的学习思想
    • 拉格朗日对偶性
    • 学习的对偶算法


什么是SVM

是一种分类模型,求一个能使两类点分布在超平面两侧且间隔最大化的平面。实际中,分为线性可分SVM,线性SVM和非线性SVM。

什么是间隔

那么如何定义“间隔”?

假设一个数据集线性可分, xRn,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)10,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 ∗ 。同理,设两个最优解 (ω,b1) ( ω ∗ , b 1 ∗ ) (ω,b2) ( ω ∗ , b 2 ∗ ) ,证明 b1=b2 b 1 ∗ = b 2 ∗ 。证明过程略。

有关凸优化,可参考其他博文。

拉格朗日对偶性

前面推导了线性可分支持向量机的学习方法,下面,如何求解这个带约束的最优化问题?答案是,应用拉格朗日对偶性,它是将目标函数和约束条件“融合”到新的函数,即拉格朗日函数,变为非约束最优化问题,来方便求解。是一种求解约束的最优化问题的方法。下简单解释。原约束最小化问题,

minxRnf(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
其中 α,β α , β 是拉格朗日乘子, αi0 α 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α,β;αi0L(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,i1,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
αi0,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||ω||2i=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=12i=1Nj=1Nαiαjyiyj(xixj)i=1Nαiyi((j=1Nαjyjxj)xi+b)+i=1Nαi=12i=1Nj=1Nαiαjyiyj(xixj)+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,α)=12i=1Nj=1Nαiαjyiyj(xixj)+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α12i=1Nj=1Nαiαjyiyj(xixj)+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
αi0,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=yji=1Nαiyi(xixj) 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)10,i=1,2,...,N y i ( ω ∗ ⋅ x i + b ∗ ) − 1 ≥ 0 , i = 1 , 2 , . . . , N
αi0,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)=y2jb=yjωxj y j ( ω ∗ ⋅ x j + b ∗ ) = y j 2 ⇒ b ∗ = y j − ω ∗ ⋅ x j
再将 ω=Ni=1αiyixi ω ∗ = ∑ i = 1 N α i ∗ y i x i 得证


参考文献:《统计学习方法》

你可能感兴趣的:(机器学习)