<机器学习>支持向量机(SVM)理论

1、概念

支持向量机(support vector machines,SVM)是一种二类分类模型。它的基本模型是定义在特征空间上的间隔最大的线性分类器;同时,支持向量机包括的核技巧使它成为实质上的非线性分类器。支持向量机的学习策略就是间隔最大化,可形式化为一个求解凸二次规划(convex quadratic programming)的问题,也等价于正则化的合页损失函数的最小化问题。支持向量机的学习算法是求解凸二次规划的最优化算法。

假设给定一个特征空间上的训练数据集
T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x N , y N ) } T=\{(x_1,y_1),(x_2,y_2),...,(x_N,y_N)\} T={(x1,y1),(x2,y2),...,(xN,yN)}
其中, x i ∈ χ = R n x_i\in\chi=R^n xiχ=Rn y i ∈ Υ = { + 1 , − 1 } y_i\in\Upsilon=\{+1,-1\} yiΥ={+1,1} i = 1 , 2 , . . . N i=1,2,...N i=1,2,...N x i x_i xi为第 i i i个特征向量,也称为实例, y i y_i yi x i x_i xi的类标记,当 y i = + 1 y_i=+1 yi=+1时,称 x i x_i xi为正例;当 y i = − 1 y_i=-1 yi1时,称 x i x_i xi为负例, ( x i , y i ) (x_i,y_i) (xiyi)称为样本点。

2、线性可分支持向量机

给定线性可分训练数据集,通过间隔最大化或等价地求解相应的凸二次规划问题学习得到的分离超平面为
ω ∗ ⋅ x + b ∗ = 0 \omega^*\cdot x+b^*=0 ωx+b=0
以及相应的分类决策函数
f ( x ) = s i g n ( ω ∗ ⋅ x + b ∗ ) f(x)=sign(\omega^*\cdot x+b^*) f(x)=sign(ωx+b)
称为线性可分支持向量机。

2.1、函数间隔和几何间隔
(1)(函数间隔) 对于给定的训练数据集 T T T 和超平面 ( w , b ) (w,b) (w,b) ,定义超平面 ( w , b ) (w,b) (w,b) 关于样本点 ( x i , y i ) (x_i,y_i) (xi,yi) 的函数间隔为
γ i ^ = y i ( w ⋅ x i + b ) \hat{\gamma_i}=y_i(w\cdot x_i+b) γi^=yi(wxi+b)
定义超平面 ( w , b ) (w,b) (w,b) 关于训练数据集 T T T 的函数间隔为超平面 ( w , b ) (w,b) (w,b)关于 T T T中所有样本点 ( x i , y i ) (x_i,y_i) (xiyi)的函数间隔之最小值,即
γ ^ = m i n i = 1 , . . . N γ i ^ \hat{\gamma}=\underset{i=1,...N}{min} \hat{\gamma_i} γ^=i=1,...Nminγi^
函数间隔可以表示分类预测的正确性及确信度。但是选择分离超平面时,只有函数间隔还不够。因为只要成比例地改变 w w w b b b,例如将它们改为 2 w 2w 2w 2 b 2b 2b,超平面并没有改变,但函数间隔却成为原来的2倍。这一事实启示我们,可以对分离超平面的法向量 w w w加某些约束,如规范化, ∣ ∣ ω ∣ ∣ = 1 ||\omega||= 1 ω1,使得间隔是确定的。这时函数间隔成为几何间隔。

(2)(几何间隔) 对于给定的训练数据集 T T T和超平面 ( w , b ) (w,b) (w,b),定义超平面 ( w , b ) (w,b) (w,b)关于样本点 ( x i , y i ) (x_i,y_i) (xi,yi)的几何间隔为
γ i = y i ( ω ∣ ∣ ω ∣ ∣ ⋅ x i + b ∣ ∣ ω ∣ ∣ ) \gamma_i=y_i(\frac{\omega}{||\omega||}\cdot x_i + \frac{b}{||\omega||}) γi=yi(ωωxi+ωb)
定义超平面 ( w , b ) (w,b) (w,b)关于训练数据集 T T T的几何间隔为超平面 ( w , b ) (w,b) (w,b)关于 T T T中所有样本点 ( x i , y i ) (x_i,y_i) (xi,yi)的几何间隔之最小值,即
γ = m i n i = 1 , . . . N γ i {\gamma}=\underset{i=1,...N}{min} {\gamma_i} γ=i=1,...Nminγi
2.2、间隔最大化
下面考虑如何求得一个几何间隔最大的分离超平面,即最大间隔分离超平面。具体地,这个问题可以表示为下面的约束最优化问题:
m a x ω , b   γ \underset{\omega,b}{max}\ \gamma ω,bmax γ
s . t . y i ( ω ∣ ∣ ω ∣ ∣ ⋅ x i + b ∣ ∣ ω ∣ ∣ ) ≥ γ , i = 1 , 2 , . . . , N s.t.\qquad y_i(\frac{\omega}{||\omega||}\cdot x_i + \frac{b}{||\omega||})\geq\gamma,\quad i=1,2,...,N s.t.yi(ωωxi+ωb)γ,i=1,2,...,N
考虑几何间隔和函数间隔的关系,可将这个问题改写为
m a x ω , b γ ^ ∣ ∣ ω ∣ ∣ \underset{\omega,b}{max} \quad \frac{\hat{\gamma}}{||\omega||} ω,bmaxωγ^
s . t . y i ( w ⋅ x i + b ) ≥ γ ^ , i = 1 , 2 , . . . , N s.t. \qquad y_i(w\cdot x_i+b)\geq\hat{\gamma}, \quad i=1,2,...,N s.t.yi(wxi+b)γ^,i=1,2,...,N
函数间隔 γ ^ \hat{\gamma} γ^的取值并不影响最优化问题的解。事实上,假设将 w w w b b b按比例改变为 λ w \lambda w λw λ b \lambda b λb,这时函数间隔成为 λ γ ^ \lambda \hat{\gamma} λγ^。函数间隔的这一改变对上面最优化问题的不等式约束没有影响,对目标函数的优化也没有影响,这样,就取 γ ^ = 1 \hat{\gamma}=1 γ^=1,将 γ ^ = 1 \hat{\gamma}=1 γ^=1代入上面的最优化问题,注意到最大化 1 ∣ ∣ ω ∣ ∣ \frac{1}{||\omega||} ω1和最小化 1 2 ∣ ∣ ω ∣ ∣ 2 \frac{1}{2}{||\omega||}^2 21ω2是等价的,于是引出线性可分支持向量机学习算法。

2.3、线性可分支持向量机学习算法——最大间隔法
输入:线性可分训练数据集分类决策函数 T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x N , y N ) } T=\{(x_1,y_1),(x_2,y_2),...,(x_N,y_N)\} T={(x1,y1),(x2,y2),...,(xN,yN)},其中, x i ∈ χ = R n x_i\in\chi=R^n xiχ=Rn y i ∈ Υ = { + 1 , − 1 } y_i\in\Upsilon=\{+1,-1\} yiΥ={+1,1} i = 1 , 2 , . . . N i=1,2,...N i=1,2,...N
输出:最大间隔分离超平面和分类决策函数。
(1)构造并求解约束最优化问题:
m a x ω , b 1 2 ∣ ∣ ω ∣ ∣ 2 \underset{\omega,b}{max} \quad \frac{1}{2}{||\omega||}^2 ω,bmax21ω2
s . t . y i ( w ⋅ x i + b ) − 1 ≥ 0 , i = 1 , 2 , . . . , N s.t. \qquad y_i(w\cdot x_i+b)-1\geq 0 ,\quad i=1,2,...,N s.t.yi(wxi+b)10i=1,2,...,N
求得最优解: w ∗ w^* w, b ∗ b^* b
(2)由此得到分离超平面:
ω ∗ ⋅ x + b ∗ = 0 \omega^*\cdot x+b^*=0 ωx+b=0
分类决策函数
f ( x ) = s i g n ( ω ∗ ⋅ x + b ∗ ) f(x)=sign(\omega^*\cdot x+b^*) f(x)=sign(ωx+b)

3、学习的对偶算法

为了求解上述线性可分支持向量机的最优化问题,将它作为原始最优化问题,应用拉格朗日对偶性,通过求解对偶问题得到原始问题的最优解,这就是线性可分支持向量机的对偶算法(dual algorithm)。
这样做的优点,一是对偶问题往往更容易求解;二是自然引入核函数,进而推广到非线性分类问题。

3.1、拉格朗日函数
假设 f ( x ) f(x) f(x), c i ( x ) c_i(x) ci(x), h j ( x ) h_j(x) hj(x)是定义在 R n R^n Rn上的连续可微函数。考虑约束最优化问题
m i n x ∈ R n f ( x ) \underset{x\in R^n}{min} \quad f(x) xRnminf(x)
s . t . c i ( x ) ≤ 0 , i = 1 , 2 , . . . , k s.t. \qquad c_i(x)\leq 0, \quad i=1,2,...,k s.t.ci(x)0i=1,2,...,k
h j ( x ) = 0 , j = 1 , 2 , . . . , l \qquad h_j(x)=0 ,j=1,2,...,l hj(x)=0j=1,2,...,l
称此约束最优化问题为原始最优化问题或原始问题。引进广义拉格朗日函数:
L ( x , α , β ) = f ( x ) + ∑ i = 1 k α i c i ( x ) + ∑ j = 1 l β j h j ( x ) L(x,\alpha,\beta)=f(x)+\sum_{i=1}^{k} \alpha_i c_i(x)+\sum_{j=1}^{l}\beta_j h_j(x) L(x,α,β)=f(x)+i=1kαici(x)+j=1lβjhj(x)
这里, x = ( x ( 1 ) , x ( 2 ) , … , x ( n ) ) T ∈ R n x=(x^{(1)},x^{(2)},…,x^{(n)})^T\in R^n x(x(1),x(2),,x(n))TRn, α i \alpha_i αi, β j \beta_j βj是拉格朗日乘子, α i ≥ 0 \alpha_i≥0 αi0

3.2、求解线性可分支持向量机的最优化问题(对偶算法)
对每一个不等式约束 y i ( w ⋅ x i + b ) − 1 ≥ 0 y_i(w\cdot x_i+b)-1\geq 0 yi(wxi+b)10引进拉格朗日乘子 α i ≥ 0 \alpha_i\geq 0 αi0 i = 1 , 2 , . . . , N i=1,2,...,N i=1,2,...,N,定义拉格朗日函数:
L ( ω , b , α ) = 1 2 ∣ ∣ ω ∣ ∣ 2 + ∑ i = 1 N α i ( 1 − y i ( w ⋅ x i + b ) ) L(\omega,b,\alpha)=\frac{1}{2}{||\omega||}^2+\sum_{i=1}^{N}\alpha_i (1-y_i(w\cdot x_i+b)) L(ω,b,α)=21ω2+i=1Nαi(1yi(wxi+b))
其中, α = ( α 1 , α 2 , . . . , α N ) T \alpha=(\alpha_1,\alpha_2,...,\alpha_N)^T α=(α1,α2,...,αN)T为拉格朗日乘子向量。

根据拉格朗日对偶性,原始问题的对偶问题是极大极小问题:
所以,为了得到对偶问题的解,需要先求 L ( ω , b , α ) L(\omega,b,\alpha) L(ω,b,α) ω , b \omega,b ω,b的极小,再求对 α \alpha α的极大。
(1)求 m i n ω , b L ( ω , b , α ) \underset{\omega,b}{min} L(\omega,b,\alpha) ω,bminL(ω,b,α)
将拉格朗日函数 L ( ω , b , α ) L(\omega,b,\alpha) L(ω,b,α)分别对 ω , b \omega,b ω,b求偏导数并令其等于0。
∇ ω L ( ω , b , α ) = ω − ∑ i = 1 N α i y i x i = 0 \nabla_{\omega}{L(\omega,b,\alpha)}=\omega-\sum_{i=1}^{N} \alpha_i y_i x_i=0 ωL(ω,b,α)=ωi=1Nαiyixi=0
∇ b L ( ω , b , α ) = ∑ i = 1 N α i y i = 0 \nabla_{b}{L(\omega,b,\alpha)}=\sum_{i=1}^{N} \alpha_iy_i=0 bL(ω,b,α)=i=1Nαiyi=0

ω = ∑ i = 1 N α i y i x i \omega=\sum_{i=1}^{N}\alpha_i y_i x_i ω=i=1Nαiyixi
∑ i = 1 N α i y i = 0 \sum_{i=1}^{N}\alpha_i y_i=0 i=1Nαiyi=0
代入拉格朗日函数,即得
m i n ω , 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 \underset{\omega,b}{min} L(\omega,b,\alpha)=-\frac{1}{2} \sum_{i=1}^{N} \sum_{j=1}^{N}\alpha_i\alpha_j y_i y_j (x_i\cdot x_j) +\sum_{i=1}^{N}\alpha_i ω,bminL(ω,b,α)=21i=1Nj=1Nαiαjyiyj(xixj)+i=1Nαi
(2)求 m i n ω , b L ( ω , b , α ) \underset{\omega,b}{min} L(\omega,b,\alpha) ω,bminL(ω,b,α) α \alpha α的极大值,即是对偶问题
m a x α   − 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j ( x i ⋅ x j ) + ∑ i = 1 N α i \underset{\alpha}{max} \ -\frac{1}{2} \sum_{i=1}^{N} \sum_{j=1}^{N}\alpha_i\alpha_j y_i y_j (x_i\cdot x_j) +\sum_{i=1}^{N}\alpha_i αmax 21i=1Nj=1Nαiαjyiyj(xixj)+i=1Nαi
s . t . ∑ i = 1 N α i y i = 0 s.t. \qquad \sum_{i=1}^{N}\alpha_i y_i=0 s.t.i=1Nαiyi=0
α i ≥ 0 , i = 1 , 2 , . . . , N \qquad \alpha_i\geq0,i=1,2,...,N αi0i=1,2,...,N
将上述目标函数由求极大转换成求极小,就得到下面与之等价的对偶最优化问题:
m i n α 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j ( x i ⋅ x j ) − ∑ i = 1 N α i \underset{\alpha}{min} \quad \frac{1}{2} \sum_{i=1}^{N} \sum_{j=1}^{N}\alpha_i\alpha_j y_i y_j (x_i\cdot x_j) -\sum_{i=1}^{N}\alpha_i αmin21i=1Nj=1Nαiαjyiyj(xixj)i=1Nαi
s . t . ∑ i = 1 N α i y i = 0 s.t. \qquad \sum_{i=1}^{N}\alpha_i y_i=0 s.t.i=1Nαiyi=0
α i ≥ 0 , i = 1 , 2 , . . . , N \qquad \alpha_i\geq0,i=1,2,...,N αi0i=1,2,...,N
3.3、优化问题满足KKT条件
对线性可分训练数据集,假设对偶最优化问题对 α \alpha α的解为 α ∗ = ( α 1 ∗ , α 2 ∗ , . . . , α N ∗ ) T \alpha^*=(\alpha_1^*,\alpha_2^*,...,\alpha_N^*)^T α=(α1,α2,...,αN)T,可以由 α ∗ \alpha^* α求得原始最优化问题对 ( ω ∗ , b ∗ ) (\omega^*,b^*) (ω,b)的解 ω ∗ \omega^* ω , b ∗ b^* b
KKT条件如下:
∇ ω L ( ω ∗ , b ∗ , α ∗ ) = ω ∗ − ∑ i = 1 N α i ∗ y i x i = 0 \nabla_{\omega}{L(\omega^*,b^*,\alpha^*)}=\omega^*-\sum_{i=1}^{N} \alpha_i^* y_i x_i=0 ωL(ω,b,α)=ωi=1Nαiyixi=0
∇ b L ( ω ∗ , b ∗ , α ∗ ) = ∑ i = 1 N α i ∗ y i = 0 \nabla_{b}{L(\omega^*,b^*,\alpha^*)}=\sum_{i=1}^{N} \alpha_i^* y_i=0 bL(ω,b,α)=i=1Nαiyi=0
α i ∗ ( y i ( ω ∗ ⋅ x i + b ∗ ) − 1 ) = 0 , i = 1 , 2 , . . . , N \alpha_i^*(y_i(\omega^*\cdot x_i+b^*)-1)=0,i=1,2,...,N αi(yi(ωxi+b)1)=0i=1,2,...,N
y i ( ω ∗ ⋅ x i + b ∗ ) − 1 ≥ 0 , i = 1 , 2 , . . . , N y_i(\omega^*\cdot x_i+b^*)-1\geq 0,i=1,2,...,N yi(ωxi+b)10i=1,2,...,N
α i ∗ ≥ 0 \alpha_i^*\geq 0 αi0
由此得
ω ∗ = ∑ i = 1 N α i ∗ y i x i \omega^*=\sum_{i=1}^{N}\alpha_i^* y_i x_i ω=i=1Nαiyixi
其中至少有一个 α ∗ > 0 \alpha^*>0 α>0,对此 j j j
y j ( ω ∗ ⋅ x j + b ∗ ) − 1 = 0 y_j(\omega^*\cdot x_j+b^*)-1=0 yj(ωxj+b)1=0
y j 2 = 1 y_j^2=1 yj2=1,即得
b ∗ = y j − ∑ i = 1 N α i ∗ y i ( x i ⋅ x j ) b^*=y_j-\sum_{i=1}^{N}\alpha_i^* y_i(x_i\cdot x_j) b=yji=1Nαiyi(xixj)
3.4、线性可分支持向量机学习算法
输入:线性可分训练数据集分类决策函数 T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , . . . , ( x N , y N ) } T=\{(x_1,y_1),(x_2,y_2),...,(x_N,y_N)\} T={(x1,y1),(x2,y2),...,(xN,yN)},其中, x i ∈ χ = R n x_i\in\chi=R^n xiχ=Rn y i ∈ Υ = { + 1 , − 1 } y_i\in\Upsilon=\{+1,-1\} yiΥ={+1,1} i = 1 , 2 , . . . N i=1,2,...N i=1,2,...N
输出:最大间隔分离超平面和分类决策函数。
(1)构造并求解约束最优化问题:
m i n α 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j ( x i ⋅ x j ) − ∑ i = 1 N α i \underset{\alpha}{min} \quad \frac{1}{2} \sum_{i=1}^{N} \sum_{j=1}^{N}\alpha_i\alpha_j y_i y_j (x_i\cdot x_j) -\sum_{i=1}^{N}\alpha_i αmin21i=1Nj=1Nαiαjyiyj(xixj)i=1Nαi
s . t . ∑ i = 1 N α i y i = 0 s.t. \quad \sum_{i=1}^{N}\alpha_i y_i=0 s.t.i=1Nαiyi=0
α i ≥ 0 , i = 1 , 2 , . . . , N \alpha_i\geq0,i=1,2,...,N αi0i=1,2,...,N
求得最优解 α ∗ = ( α 1 ∗ , α 2 ∗ , . . . , α N ∗ ) T \alpha^*=(\alpha_1^*,\alpha_2^*,...,\alpha_N^*)^T α=(α1,α2,...,αN)T
(2)计算
ω ∗ = ∑ i = 1 N α i ∗ y i x i \omega^*=\sum_{i=1}^{N}\alpha_i^* y_i x_i ω=i=1Nαiyixi
并选择 α ∗ \alpha^* α的一个正分量 α j ∗ > 0 \alpha_j^*>0 αj>0,计算
b ∗ = y j − ∑ i = 1 N α i ∗ y i ( x i ⋅ x j ) b^*=y_j-\sum_{i=1}^{N}\alpha_i^* y_i(x_i\cdot x_j) b=yji=1Nαiyi(xixj)
(3)求得分离超平面
ω ∗ ⋅ x + b ∗ = 0 \omega^*\cdot x+b^*=0 ωx+b=0
分类决策函数:
f ( x ) = s i g n ( ω ∗ ⋅ x + b ∗ ) f(x)=sign(\omega^*\cdot x+b^*) f(x)=sign(ωx+b)

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值