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

目录


什么是SVM

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

什么是间隔

那么如何定义“间隔”?

假设一个数据集线性可分, x R n , y { + 1 , 1 } ,超平面 ( ω , b ) 将点完全非离到平面两侧。点 ( x , y ) 到平面 ( ω , b ) 的距离为 | ω x + b | ,若点到平面的距离越远说明分类越可靠,反之越不可靠。若 y ( ω x + b ) 为正,则点被超平面正确分类,否则为负。所以 y ( ω x + b ) 可以代表分类的正确性和分类的确信度。

所以定义,数据集到平面的函数间隔为,离平面最近的点(即支持向量)到平面的函数间隔:

γ ^ = min γ i ^ = min y i ( ω x i + b )

但,由于同比例放大 ω b ,没有改变平面但是函数间隔放大。所以定义几何间隔:

γ = min γ i = min γ i ^ | | ω | |

线性可分SVM的学习思想

有了上面几何间隔的定义,则支持向量机学习的基本思想是,求解能够正确划分训练数据集并且使几何间隔最大化的分离超平面,表示为:

max ω , b γ
s . t . y i ( ω | | ω | | x i + b | | ω | | ) γ , i = 1 , 2 , . . . , N

为了方便求解,做如下变换。首先,将 γ = γ ^ | | ω | | 代入原式。然后,因为函数间隔的大小变化,可以看做 ( ω , b ) 的等比例变换,它的大小不影响超平面,所以可以令 γ ^ = 1 ,即目标函数变换为 max ω , b 1 | | ω | | ,同时约束条件也 s . t . y i ( ω x i + b ) 1 , i = 1 , 2 , . . . , N

最后,将目标函数取倒数并取平方,将原最大化化问题转化为凸最小化问题,

min 1 2 | | ω | | 2
s . t . y i ( ω x i + b ) 1 0 , i = 1 , 2 , . . . , N

系数 1 2 也是为了后面求导时简化计算,这里先不解释。做这些变化的原因,是为了转化为凸优化问题,这样的好处是,凸优化问题的解如果存在一定是全局最优解。而对于线性可分数据集,一定存在超平面使点分隔在平面两侧,即解非空,所以上式问题解存在且唯一。

存在性证明:因为数据集线性可分多以一定存在可行解。有目标函数是凸函数有下界,所以一定存在最优解。有训练集既有正实例又有负实例,所以 ( ω , b ) = ( 0 , b ) 不是最优解,所以存在性得证。唯一性证明:较复杂,假设存在两个最优解 ( ω 1 , b ) ( ω 2 , b ) ,想办法证明 ω 1 = ω 2 。同理,设两个最优解 ( ω , b 1 ) ( ω , b 2 ) ,证明 b 1 = b 2 。证明过程略。

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

拉格朗日对偶性

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

min x R n f ( x )
s . t . c i ( x ) 0 , i = 1 , 2 , . . . , k
h i ( x ) = 0 , i = 1 , 2 , . . . , l
其中 α , β 是拉格朗日乘子, α i 0
则拉格朗日函数为:
L ( x , α , β ) = f ( x ) + i = 1 k α i c i ( x ) + j = 1 l β j h j ( x )
设函数 θ p 为,最大化拉格朗日函数
θ p = max α , β ; α i 0 L ( x , α , β )
因为当x满足所有的约束条件时,对所有 i , j α i = 0 , β j = 0 ,即 θ p = f ( x ) ;当x不满足某个约束条件 c i 时,则可令 α i + ,即 θ p = + ,即
(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
所以,原约束最小化问题通过拉格朗日函数,转化为极小极大问题,即转化为非约束最值问题,即:
min x θ p ( x ) = min x max α , β ; α 0 L ( x , α , β )
理解了原极小极大问题 p = min x θ p ,则定义对偶问题
d = max α , β min x L ( x , α , β ) = max α , β θ d ( α , β )
是一个极大极小问题。
重要的是, 原问题的解是否是对偶问题的解?有一个重要的定理

定理1】 考虑原约束最优化问题,假设函数 f ( x ) c i ( x ) 凸函数 h j ( x ) 是仿射函数;并且假设不等式约束 c i ( x ) 是严格可行的,即存在x,对所有 c i ( x ) < 0 则,存在 x , α , β ,使 x 是原始问题的解, α , β 是对偶问题的解,并且 p = d = L ( x , α , β )

也就是说,对于凸优化问题,原问题与对偶问题同解。

理解了拉格朗日对偶性后,回到所要求解的间隔最大化问题。其思想是:首先,构造拉格朗日函数 L ( ω , b , β ) ,得原问题的对偶问题。然后,求出对偶问题的解。最后,通过KKT条件,求得原问题的解。

KKT条件是:
定理2】 考虑原约束最优化问题,假设函数 f ( x ) c i ( x ) 凸函数 h j ( x ) 是仿射函数;并且假设不等式约束 c i ( x ) 是严格可行的, x 是原始问题的解, α , β 是对偶问题的解,的充分必要条件 x , α , β 满足:

x L ( x , α , β ) = 0
α L ( x , α , β ) = 0
β L ( x , α , β ) = 0
α i c i ( x ) = 0 , i 1 , 2 , . . . , k
c i ( x ) 0 , i = 1 , 2 , . . . , k
α i 0 , i = 1 , 2 , . . . , k
h j ( x ) = 0 , j = 1 , 2 , . . . , l

学习的对偶算法

原问题的拉格朗日函数为

L ( ω , b , α ) = 1 2 | | ω | | 2 i = 1 N α i [ y i ( ω x i + b ) 1 ]
原问题为
min ω , b max α L ( ω , b , α )
对偶问题为
max α min ω , b L ( ω , b , α ) = max α θ d
其中对偶问题, θ d = min ω , b L ( ω , b , α ) ,分别对 ω b 求偏导。【注意,这里 ( | | ω | | 2 ) = ω ,即求向量2范数平方的导数,是对向量的每一项求导,再写回向量形式】
ω L ( ω , b , α ) = ω i = 1 N α i y i x i = 0 ω = i = 1 N α i y i x i
b L ( ω , b , α ) = i = 1 N α i y i = 0
代入拉格朗日函数式简化得
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 ω , 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 α 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 = 1 N α i y i = 0
α i 0 , i = 1 , 2 , . . . , N
根据【 定理1】,原问题是凸优化问题,所以存在 ω , b , α ,使得 ω , b 是原问题的解, α 是对偶问题的解。假设 α = ( α 1 , α 2 , . . . , α N ) 是对偶问题的解,则原问题的解通过【定理2】的KKT条件求得,即对任意使得 α j > 0 的下标j
ω = i = 1 N α i y i x i
b = y j i = 1 N α i y i ( x i x j )


为什么是这样计算的呢??根据【定理1】,KKT条件成立,则有

ω L ( ω , b , α ) = ω i = 1 N α i y i x i = 0 ω = i = 1 N α i y i x i
b L ( ω , b , α ) = i = 1 N α i y i = 0
α i ( y i ( ω x i + b ) 1 ) = 0 , i = 1 , 2 , . . . , N
y i ( ω x i + b ) 1 0 , i = 1 , 2 , . . . , N
α i 0 , i = 1 , 2 , . . . , N
其中,至少存在一个 α j > 0 (若 α = 0 ,则 ω = 0 ,但由于同时存在正实例和负实例所以 ω = 0 不是原问题的解),对此j有 y j ( ω x j + b ) 1 = 0 又由于 y j 2 = 1
y j ( ω x j + b ) = y j 2 b = y j ω x j
再将 ω = i = 1 N α i y i x i 得证


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

猜你喜欢

转载自blog.csdn.net/zeo_m/article/details/81586654