支持向量机算法推导

1.支持向量机的基本思想

基于训练集D在样本空间中找到一个划分超平面(在二维空间中为一条直线,在三维空间中为一个平面),将不同类别的样本分开。
在这里插入图片描述

问题来了,这样的超平面有很多,我们应该努力去找到哪一个呢,哪一个是最好的呢?基于上述问题,我们提出三个判定标准:1.可以正确分割样本;2.留有大量的余量,既分类超平面尽可能的离两类样本尽可能的远(分类超平面对测试样本有最强的泛化能力)3.位于两类训练样本“正中间”的超平面(也是为了最大化泛化能力)
基于以上判定标准,我们要选的分类超平面应该是这样的:正样本和负样本中离分类超平面最近的样本点,距离分类超平面的距离尽可能的大(最大化分类间隔)。

2.线性可分的问题

探讨这个问题之前,有一个假设前提,既所有训练样本都是线性可分的(这是一个理想状态,现实中很少有这样的情况,只是为了进一步的推导做铺垫)。

2.1点到超平面的距离

超平面可以用分类函数 f ( x ) = w T x + b f(\pmb{x})=\pmb{w}^T\pmb{x}+b f(xxx)=wwwTxxx+b表示,当 f ( x ) f(\pmb{x}) f(xxx)等于0的时候, x \pmb{x} xxx便是位于超平面上的点,而 f ( x ) f(\pmb{x}) f(xxx)大于0的点对应 y=1 的数据点, f ( x ) f(\pmb{x}) f(xxx)小于0的点对应y=-1的数据点。
w \pmb{w} www是超平面的法向量,与超平面垂直。证明过程如下:设 x 1 \pmb{x}_1 xxx1 x 2 \pmb{x}_2 xxx2是超平面上任意两点, w T x 1 + b = 0 \pmb{w}^T\pmb{x}_1+b=0 wwwTxxx1+b=0 w T x 2 + b = 0 \pmb{w}^T\pmb{x}_2+b=0 wwwTxxx2+b=0 w T ( x 1 − x 2 ) = 0 \pmb{w}^T(\pmb{x}_1-\pmb{x}_2)=0 wwwT(xxx1xxx2)=0
根据两个向量的数量积为零,两个向量相互垂直,可推出 w \pmb{w} www ( x 1 − x 2 ) (\pmb{x}_1-\pmb{x}_2) (xxx1xxx2)相互垂直,而 ( x 1 − x 2 ) (\pmb{x}_1-\pmb{x}_2) (xxx1xxx2)是超平面内任意一向量,所以 w \pmb{w} www与超平面垂直,既 w \pmb{w} www是超平面的法向量,决定了超平面的方向。
训练集中任意样本点到超平面的距离可表示为: γ = ∣ w T x + b ∣ ∥ w ∥ \gamma=\frac{\left|\pmb{w}^T\pmb{x}+b\right|}{\parallel \pmb{w} \parallel} γ=wwwwwwTxxx+b
推到过程如下:
在这里插入图片描述 γ = ∥   A B ⃗ − O C ⃗ ∥ \gamma=\parallel \ \vec{AB}- \vec{OC} \parallel γ= AB OC
γ = ∥ w T ∥ w ∥ x w ∥ w ∥ − − b ∥ w ∥ w ∥ w ∥ ∥ \gamma=\parallel \frac{\pmb{w}^T}{\parallel \pmb{w} \parallel}\pmb{x} \frac{\pmb{w}}{\parallel \pmb{w} \parallel}-\frac{-b}{\parallel \pmb{w} \parallel}\frac{\pmb{w}}{\parallel \pmb{w} \parallel} \parallel γ=wwwwwwTxxxwwwwwwwwwbwwwwww
w T / ∥ w ∥ \pmb{w}^T/\parallel \pmb{w} \parallel wwwT/www表示 w \pmb{w} www向量的单位向量,与向量 x \pmb{x} xxx进行数量积操作,结果为表示向量 x \pmb{x} xxx w \pmb{w} www方向上投影的长度,在乘以 w \pmb{w} www方向上的单位向量既为向量 A B ⃗ \vec{AB} AB
O C ⃗ = λ 0 w ∥ w ∥ \vec{OC}=\lambda_0\frac{\pmb{w}}{\parallel \pmb{w} \parallel} OC =λ0wwwwww
w T λ 0 w ∥ w ∥ + b = 0 \pmb{w}^T\lambda_0\frac{\pmb{w}}{\parallel \pmb{w} \parallel}+b=0 wwwTλ0wwwwww+b=0
λ 0 = − b ∥ w ∥ \lambda_0=\frac{-b}{\parallel \pmb{w} \parallel} λ0=wwwb
O C ⃗ = − b ∥ w ∥ w ∥ w ∥ \vec{OC}=\frac{-b}{\parallel \pmb{w} \parallel}\frac{\pmb{w}}{\parallel \pmb{w} \parallel} OC =wwwbwwwwww

2.2线性可分的原问题

对于正样本: w T x + b ≥ 0 \pmb{w}^T\pmb{x}+b\geq0 wwwTxxx+b0
对于负样本: w T x + b ≤ 0 \pmb{w}^T\pmb{x}+b\leq0 wwwTxxx+b0
可以统一写成 y i ( w T x i + b ) ≥ 0 y_i\left(\pmb{w}^T\pmb{x_i}+b\right)\geq0 yi(wwwTxixixi+b)0 y i ∈ { − 1 , + 1 } y_i\in\{-1,+1\} yi{1,+1}
为了消除冗余并简化问题,我们令正样本或负样本距离分类超平面最近的点:
m i n i ∣ w T x i + b ∣ = 1 min_i\left|\pmb{w}^T\pmb{x_i}+b\right|=1 miniwwwTxixixi+b=1
因此‘'间隔“(margin)为:
d = γ + + γ − d=\gamma^++\gamma^- d=γ++γ
d = 1 ∥ w ∥ + 1 ∥ w ∥ = 2 ∥ w ∥ d=\frac{1}{\parallel \pmb{w} \parallel}+\frac{1}{\parallel \pmb{w} \parallel}=\frac{2}{\parallel \pmb{w} \parallel} d=www1+www1=www2
线性可分的问题为(带有不等式的最小化问题):
m i n ( 1 2 w T w ) min(\frac{1}{2}\pmb{w}^T\pmb{w}) min(21wwwTwww)
y i ( w T x i + b ) ≥ 1 y_i\left(\pmb{w}^T\pmb{x_i}+b\right)\geq1 yi(wwwTxixixi+b)1
证明这个问题是凸优化问题:
 
 
补充知识开始
凸优化问题有两个限定:1变量的可行域是一个凸集;2目标函数是一个凸函数。
凸集的定义为,如果变量 x , y ∈ C x,y\in C x,yC,那么他们连线上的任何一个点 θ x + ( 1 − θ ) y ∈ C \theta x+(1-\theta)y\in C θx+(1θ)yC 0 ≤ θ ≤ 1 0\leq\theta\leq1 0θ1。几个典型的凸集: R n \mathbb{R}^n Rn { x ∈ R n : A x = b } \{\pmb{x}\in\mathbb{R}^n:A\pmb{x}=b\} {xxxRn:Axxx=b} R n \mathbb{R}^n Rn { x ∈ R n : A x ≤ b } \{\pmb{x}\in\mathbb{R}^n:A\pmb{x}\leq b\} {xxxRn:Axxxb},以及 ∩ C i \cap C_i Ci(多个凸集的交集)。
凸函数的定义为, f ( θ x + ( 1 − θ ) y < θ f ( x ) + ( 1 − θ ) f ( y ) f(\theta\pmb{x}+(1-\theta)\pmb{y}<\theta f(\pmb{x})+(1-\theta)f(\pmb{y}) f(θxxx+(1θ)yyy<θf(xxx)+(1θ)f(yyy)
一阶判别法:
一元函数: f ( x ′ ) ≥ f ′ ( x ) ( x ′ − x ) + f ( x ) f(x')\geq f\prime(x)(x'-x)+f(x) f(x)f(x)(xx)+f(x),抛物线上任意一点的切线在抛物线的下方。
多元函数: f ( x ′ ) ≥ ∇ f ( x ) ( x ′ − x ) + f ( x ) f(\pmb{x}')\geq \nabla f(\pmb{x})(\pmb{x}'-\pmb{x})+f(\pmb{x}) f(xxx)f(xxx)(xxxxxx)+f(xxx)
二阶判别法:
一元函数: f ′ ′ ( x ) ≥ 0 f\prime \prime(x)\geq0 f(x)0
多元函数:Hessian矩阵为半正定矩阵。如果为正定矩阵,那么为严格的凸函数
其他判别法:
f ( x ) = ∑ i = 0 n w i f i ( x ) f(\pmb{x})=\sum_{i=0}^nw_if_i(\pmb{x}) f(xxx)=i=0nwifi(xxx) , 多个凸函数的线性相加仍未凸函数
补充知识结束
 
 
1. w \pmb{w} www的可行域为多个线性不等式围成的区域,因此其可行域为凸集。
2. 1 2 w T w \frac{1}{2}\pmb{w}^T\pmb{w} 21wwwTwww为凸函数,因为其Hessian矩阵为单位矩阵( 1 2 ( w 1 2 + w 2 2 + w 3 2 + w 4 2 + … + w n 2 ) \frac{1}{2}(w_1^2+w_2^2+w_3^2+w_4^2+\ldots+w_n^2) 21(w12+w22+w32+w42++wn2),因此函数为严格凸函数。
基于以上两点,这是一个凸优化的问题。
利用拉格朗日乘子法解决带有约束的优化问题:
L ( w , b , α ) = 1 2 ∥ w ∥ 2 − ∑ i = 1 l α i ( y i ( w T x i + b ) − 1 ) L(\pmb{w},b,\alpha)=\frac{1}{2} \parallel \pmb{w}\parallel^2-\sum_{i=1}^l\alpha_i(y_i(\pmb{w}^T\pmb{x_i}+b)-1) L(www,b,α)=21www2i=1lαi(yi(wwwTxixixi+b)1)
其原问题为:
m i n w , b m a x α L ( w , b , α ) min_{w,b}max_\alpha L(\pmb{w},b,\alpha) minw,bmaxαL(www,b,α)

2.3线性可分的对偶问题

 
 
补充知识开始
对偶问题的基本思想:把难以解决的原始问题,转换为等价的另一个问题,且另一个问题要容易求解一些。
广义的拉格朗日乘子法(带有一组等式约束和一组不等式约束):
m i n f ( x ) minf(\pmb{x}) minf(xxx)
g i ( x ) ≤ 0     i = 1 , … , m g_i(\pmb{x})\leq0\ \ \ i=1,\ldots,m gi(xxx)0   i=1,,m
h i i ( x ) = 0     i = 1 , … , p hi_i(\pmb{x})=0\ \ \ i=1,\ldots,p hii(xxx)=0   i=1,,p
L ( x , λ , ν ) = f ( x ) + ∑ i = 1 m λ i g i ( x ) + ∑ i = 1 p ν i h i ( x ) L(\pmb{x},\lambda,\nu)=f(\pmb{x})+\sum_{i=1}^m\lambda_ig_i(\pmb{x})+\sum_{i=1}^p\nu_ih_i(\pmb{x}) L(xxx,λ,ν)=f(xxx)+i=1mλigi(xxx)+i=1pνihi(xxx)
原问题:
p ∗ = m i n x m a x λ , ν , λ i ≥ 0 L ( x , λ , ν ) p^*=min_xmax_{\lambda,\nu,\lambda_i\geq0}L(\pmb{x},\lambda,\nu) p=minxmaxλ,ν,λi0L(xxx,λ,ν)
原问题分两步来求解,第一步固定 x \pmb{x} xxx(把 x \pmb{x} xxx当成常数),变动 λ , ν \lambda,\nu λ,ν,取最大值;第二步,变动 x \pmb{x} xxx取最小值。原问题等价于我们要求解的问题,证明思路:因为 λ i ≥ 0 , g ( x ) ≤ 0 \lambda_i\geq0,g(\pmb{x})\leq0 λi0,g(xxx)0,所以 ∑ i = 1 m λ i g i ( x ) \sum_{i=1}^m\lambda_ig_i(\pmb{x}) i=1mλigi(xxx)最大等于零。因为 h i i ( x ) = 0 hi_i(\pmb{x})=0 hii(xxx)=0,所以 ∑ i = 1 p ν i h i ( x ) \sum_{i=1}^p\nu_ih_i(\pmb{x}) i=1pνihi(xxx)等于零。综上当变动 λ , ν \lambda,\nu λ,ν时,函数的最大值就是 f ( x ) f(\pmb{x}) f(xxx),原问题就变成了 m i n x f ( x ) min_xf(\pmb{x}) minxf(xxx)
对偶问题:
d ∗ = m a x λ , ν , λ i ≥ 0 m i n x L ( x , λ , ν ) d^*=max_{\lambda,\nu,\lambda_i\geq0}min_xL(\pmb{x},\lambda,\nu) d=maxλ,ν,λi0minxL(xxx,λ,ν)
弱对偶:
d ∗ = m a x λ , ν , λ i ≥ 0 m i n x L ( x , λ , ν ) ≤ m i n x m a x λ , ν , λ i ≥ 0 L ( x , λ , ν ) = p ∗ d^*=max_{\lambda,\nu,\lambda_i\geq0}min_xL(\pmb{x},\lambda,\nu)\leq min_xmax_{\lambda,\nu,\lambda_i\geq0}L(\pmb{x},\lambda,\nu)=p^* d=maxλ,ν,λi0minxL(xxx,λ,ν)minxmaxλ,ν,λi0L(xxx,λ,ν)=p
强对偶:
满足slatter条件(充分非必要条件)可以转为强对偶,1.原始问题为一个凸优化问题;2.存在一个可行解,另不等式约束 g i ( x ) g_i(\pmb{x}) gi(xxx)严格满足,也就是不等式不能取等号(所有 g i ( x ) g_i(\pmb{x}) gi(xxx)都小于零)
d ∗ = m a x λ , ν , λ i ≥ 0 m i n x L ( x , λ , ν ) = m i n x m a x λ , ν , λ i ≥ 0 L ( x , λ , ν ) = p ∗ d^*=max_{\lambda,\nu,\lambda_i\geq0}min_xL(\pmb{x},\lambda,\nu)=min_xmax_{\lambda,\nu,\lambda_i\geq0}L(\pmb{x},\lambda,\nu)=p^* d=maxλ,ν,λi0minxL(xxx,λ,ν)=minxmaxλ,ν,λi0L(xxx,λ,ν)=p
补充知识结束
 
 
原问题满足slatter条件:
1.原问题是一个凸优化问题,前面以证明;2.至少存在一组 w , b \pmb{w},b www,b使 y i ( w T x i + b ) ≥ 1 y_i\left(\pmb{w}^T\pmb{x_i}+b\right)\geq1 yi(wwwTxixixi+b)1成立,那么 100 w , 100 b 100\pmb{w},100b 100www,100b也是满足条件的解,一定可以让 y i ( w T x i + b ) > 1 y_i\left(\pmb{w}^T\pmb{x_i}+b\right)>1 yi(wwwTxixixi+b)>1成立。
原问题转换为对偶问题:
m i n w , b m a x α L ( w , b , α ) = m a x α m i n w , b L ( w , b , α ) min_{w,b}max_\alpha L(\pmb{w},b,\alpha)=max_\alpha min_{w,b}L(\pmb{w},b,\alpha) minw,bmaxαL(www,b,α)=maxαminw,bL(www,b,α)
L ( w , b , α ) = 1 2 ∥ w ∥ 2 − ∑ i = 1 l α i ( y i ( w T x i + b ) − 1 ) L(\pmb{w},b,\alpha)=\frac{1}{2} \parallel \pmb{w}\parallel^2-\sum_{i=1}^l\alpha_i(y_i(\pmb{w}^T\pmb{x_i}+b)-1) L(www,b,α)=21www2i=1lαi(yi(wwwTxixixi+b)1)
∂ L ∂ b = 0    ⇒    ∑ i = 1 l α i y i = 0 \frac{\partial L}{\partial b}=0 \ \ \Rightarrow\ \ \sum_{i=1}^l\alpha_iy_i=0 bL=0    i=1lαiyi=0
∇ w L = 0    ⇒    w = ∑ i = 1 l α i y i x i \nabla_wL=0 \ \ \Rightarrow\ \ \pmb{w}=\sum_{i=1}^l\alpha_iy_i\pmb{x_i} wL=0    www=i=1lαiyixixixi
带入原式得出:
m a x α − 1 2 ∑ i = 1 l ∑ j = 1 l α i α j y i y j x i T x j + ∑ k = 1 l α k max_\alpha-\frac{1}{2}\sum_{i=1}^l\sum_{j=1}^l\alpha_i\alpha_jy_iy_j\pmb{x_i}^T\pmb{x_j}+\sum_{k=1}^l\alpha_k maxα21i=1lj=1lαiαjyiyjxixixiTxjxjxj+k=1lαk
转换为新的最优化问题:
m i n α 1 2 ∑ i = 1 l ∑ j = 1 l α i α j y i y j x i T x j − ∑ k = 1 l α k min_\alpha\frac{1}{2}\sum_{i=1}^l\sum_{j=1}^l\alpha_i\alpha_jy_iy_j\pmb{x_i}^T\pmb{x_j}-\sum_{k=1}^l\alpha_k minα21i=1lj=1lαiαjyiyjxixixiTxjxjxjk=1lαk
α i ≥ 0 ,     i = 1 , … , l \alpha_i\geq0,\ \ \ i=1,\ldots,l αi0,   i=1,,l
∑ i = 1 l α i y i = 0 \sum_{i=1}^l\alpha_iy_i=0 i=1lαiyi=0

预测超平面方程为:
w = ∑ i = 1 l α i y i x i \pmb{w}=\sum_{i=1}^l\alpha_iy_i\pmb{x_i} www=i=1lαiyixixixi
每一个样本都对应一个 α i \alpha_i αi,当 α i \alpha_i αi不等于0时,其对应样本对 w \pmb{w} www的计算产生作用,这样的向量成为支持向量。
f ( x ) = ∑ i = 1 l α i y i x i T x + b f(\pmb{x})=\sum_{i=1}^l\alpha_iy_i\pmb{x_i}^T\pmb{x}+b f(xxx)=i=1lαiyixixixiTxxx+b

3.线性不可分的问题

线性可分过于理想化,实际中遇到的样本绝大多数都是线性不可分的。下面我们将得到的方程进行扩展,使之可以处理线性不可分的问题。
线性可分的问题:
m i n 1 2 w T w min\frac{1}{2}\pmb{w}^T\pmb{w} min21wwwTwww
y i ( w T x + b ) ≥ 1 y_i\left(\pmb{w}^T\pmb{x}+b\right)\geq1 yi(wwwTxxx+b)1
线性不可分的问题是在原问题的基础上加上松弛变量 ξ \xi ξ和惩罚因子 C C C,增加松弛因子后,允许样本点落在”间隔“内:
m i n ( 1 2 w T w + C ∑ i = 1 l ξ i ) min(\frac{1}{2}\pmb{w}^T\pmb{w}+C\sum_{i=1}^l\xi_i) min(21wwwTwww+Ci=1lξi)
y i ( w T x i + b ) ≥ 1 − ξ i y_i\left(\pmb{w}^T\pmb{x_i}+b\right)\geq1-\xi_i yi(wwwTxixixi+b)1ξi
− ( y i ( w T x i + b ) − 1 + ξ i ) ≤ 0 -(y_i\left(\pmb{w}^T\pmb{x_i}+b\right)-1+\xi_i)\leq0 (yi(wwwTxixixi+b)1+ξi)0
− ξ i ≤ 0 ,     i = 1 , 2 , … , l -\xi_i\leq0,\ \ \ i=1,2,\ldots,l ξi0,   i=1,2,,l

这仍然是一个凸优化问题,并满足Slater条件,证明同上。构建拉格朗日乘子函数:
L ( w , b , α , ξ , β ) = 1 2 ∥ w ∥ 2 + C ∑ i = i l ξ i − ∑ i = 1 l α i ( y i ( w T x i + b ) − 1 ) − ∑ i = 1 β i ξ i L(\pmb{w},b,\alpha,\xi,\beta)=\frac{1}{2} \parallel \pmb{w}\parallel^2+C\sum_{i=i}^l\xi_i-\sum_{i=1}^l\alpha_i(y_i(\pmb{w}^T\pmb{x_i}+b)-1)-\sum_{i=1}\beta_i\xi_i L(www,b,α,ξ,β)=21www2+Ci=ilξii=1lαi(yi(wwwTxixixi+b)1)i=1βiξi
原问题为:
m i n w , b , β , ξ m a x α L ( w , b , α , ξ , β ) min_{w,b,\beta,\xi}max_{\alpha} L(\pmb{w},b,\alpha,\xi,\beta) minw,b,β,ξmaxαL(www,b,α,ξ,β)
对偶问题为:
m a x α m i n w , b , β , ξ L ( w , b , α , ξ , β ) max_\alpha min_{w,b,\beta,\xi}L(\pmb{w},b,\alpha,\xi,\beta) maxαminw,b,β,ξL(www,b,α,ξ,β)
∂ L ∂ b = 0    ⇒    ∑ i = 1 l α i y i = 0 \frac{\partial L}{\partial b}=0 \ \ \Rightarrow\ \ \sum_{i=1}^l\alpha_iy_i=0 bL=0    i=1lαiyi=0
∇ ξ L = 0    ⇒     α i + β i = C \nabla_\xi L=0 \ \ \Rightarrow\ \ \ \alpha_i+\beta_i=C ξL=0     αi+βi=C
∇ w L = 0    ⇒    w = ∑ i = 1 l α i y i x i \nabla_wL=0 \ \ \Rightarrow\ \ \pmb{w}=\sum_{i=1}^l\alpha_iy_i\pmb{x_i} wL=0    www=i=1lαiyixixixi
带入原式转化为新的问题:
m i n α 1 2 ∑ i = 1 l ∑ j = 1 l α i α j y i y j x i T x j − ∑ k = 1 l α k min_\alpha\frac{1}{2}\sum_{i=1}^l\sum_{j=1}^l\alpha_i\alpha_jy_iy_j\pmb{x_i}^T\pmb{x_j}-\sum_{k=1}^l\alpha_k minα21i=1lj=1lαiαjyiyjxixixiTxjxjxjk=1lαk
0 ≤ α i ≤ C ,     i = 1 , … , l 0\leq\alpha_i\leq C,\ \ \ i=1,\ldots,l 0αiC,   i=1,,l
∑ i = 1 l α i y i = 0 \sum_{i=1}^l\alpha_iy_i=0 i=1lαiyi=0
仍然是一个线性模型,预测方程为:
f ( x ) = ∑ i = 1 l α i y i x i T x + b f(\pmb{x})=\sum_{i=1}^l\alpha_iy_i\pmb{x_i}^T\pmb{x}+b f(xxx)=i=1lαiyixixixiTxxx+b

4.KKT条件对原问题最优解的约束

 
 
补充知识开始:KKT条件
广义的拉格朗日乘子法(带有一组等式约束和一组不等式约束):
m i n f ( x ) minf(\pmb{x}) minf(xxx)
g i ( x ) ≤ 0     i = 1 , … , m g_i(\pmb{x})\leq0\ \ \ i=1,\ldots,m gi(xxx)0   i=1,,m
h i i ( x ) = 0     i = 1 , … , p hi_i(\pmb{x})=0\ \ \ i=1,\ldots,p hii(xxx)=0   i=1,,p
L ( x , λ , ν ) = f ( x ) + ∑ i = 1 m λ i g i ( x ) + ∑ i = 1 p ν i h i ( x ) L(\pmb{x},\lambda,\nu)=f(\pmb{x})+\sum_{i=1}^m\lambda_ig_i(\pmb{x})+\sum_{i=1}^p\nu_ih_i(\pmb{x}) L(xxx,λ,ν)=f(xxx)+i=1mλigi(xxx)+i=1pνihi(xxx)
在极值点处必须满足如下条件:
∇ x L ( x ∗ ) = 0 \nabla_xL(\pmb{x}^*)=0 xL(xxx)=0
λ i ≥ 0 \lambda_i\geq0 λi0
λ i g i ( x ∗ ) = 0 \lambda_ig_i(\pmb{x}^*)=0 λigi(xxx)=0
h i ( x ∗ ) = 0 h_i(\pmb{x}^*)=0 hi(xxx)=0
g i ( x ∗ ) ≤ 0 g_i(\pmb{x}^*)\leq0 gi(xxx)0
补充知识结束
 
 
线性不可分的原问题为:
m i n ( 1 2 w T w + C ∑ i = 1 l ξ i ) min(\frac{1}{2}\pmb{w}^T\pmb{w}+C\sum_{i=1}^l\xi_i) min(21wwwTwww+Ci=1lξi)
− ( y i ( w T x i + b ) − 1 + ξ i ) ≤ 0 ,     i = 1 , 2 , … , l -(y_i\left(\pmb{w}^T\pmb{x_i}+b\right)-1+\xi_i)\leq0,\ \ \ i=1,2,\ldots,l (yi(wwwTxixixi+b)1+ξi)0,   i=1,2,,l
− ξ i ≤ 0 ,     i = 1 , 2 , … , l -\xi_i\leq0,\ \ \ i=1,2,\ldots,l ξi0,   i=1,2,,l
构建拉格朗日乘子函数:
L ( w , b , α , ξ , β ) = 1 2 ∥ w ∥ 2 + C ∑ i = i l ξ i − ∑ i = 1 l α i ( y i ( w T x i + b ) − 1 ) − ∑ i = 1 β i ξ i L(\pmb{w},b,\alpha,\xi,\beta)=\frac{1}{2} \parallel \pmb{w}\parallel^2+C\sum_{i=i}^l\xi_i-\sum_{i=1}^l\alpha_i(y_i(\pmb{w}^T\pmb{x_i}+b)-1)-\sum_{i=1}\beta_i\xi_i L(www,b,α,ξ,β)=21www2+Ci=ilξii=1lαi(yi(wwwTxixixi+b)1)i=1βiξi
根据KKT条件得出,在极值点处:
α i ( y i ( w T x i + b ) − 1 + ξ i ) = 0 \alpha_i(y_i\left(\pmb{w}^T\pmb{x_i}+b\right)-1+\xi_i)=0 αi(yi(wwwTxixixi+b)1+ξi)=0
β i ξ i = 0 \beta_i\xi_i=0 βiξi=0
α i > 0 \alpha_i>0 αi>0
y i ( w T x i + b ) − 1 + ξ i = 0 y_i\left(\pmb{w}^T\pmb{x_i}+b\right)-1+\xi_i=0 yi(wwwTxixixi+b)1+ξi=0
y i ( w T x i + b ) = 1 − ξ i y_i\left(\pmb{w}^T\pmb{x_i}+b\right)=1-\xi_i yi(wwwTxixixi+b)=1ξi
ξ i ≥ 0 \xi_i\geq0 ξi0
⇓ \Downarrow
y i ( w T x i + b ) ≤ 1 y_i\left(\pmb{w}^T\pmb{x_i}+b\right)\leq1 yi(wwwTxixixi+b)1
α i < C \alpha_i<C αi<C
α i + β i = C \alpha_i+\beta_i=C αi+βi=C
⇓ \Downarrow
β i > 0 ( β i ξ i = 0 ) \beta_i>0(\beta_i\xi_i=0) βi>0(βiξi=0)
⇓ \Downarrow
ξ i = 0 \xi_i=0 ξi=0
⇓ \Downarrow
y i ( w T x i + b ) ≥ 1 y_i\left(\pmb{w}^T\pmb{x_i}+b\right)\geq1 yi(wwwTxixixi+b)1
综上当 0 < α i < C 0<\alpha_i<C 0<αi<C
y i ( w T x i + b ) = 1 y_i\left(\pmb{w}^T\pmb{x_i}+b\right)=1 yi(wwwTxixixi+b)=1
α i = 0 \alpha_i=0 αi=0
α i + β i = C \alpha_i+\beta_i=C αi+βi=C
⇓ \Downarrow
β i = C ( β i ξ i = 0 ) \beta_i=C(\beta_i\xi_i=0) βi=C(βiξi=0)
⇓ \Downarrow
ξ i = 0 \xi_i=0 ξi=0
⇓ \Downarrow
y i ( w T x i + b ) ≥ 1 y_i\left(\pmb{w}^T\pmb{x_i}+b\right)\geq1 yi(wwwTxixixi+b)1
α i = C \alpha_i=C αi=C
α i + β i = C \alpha_i+\beta_i=C αi+βi=C
⇓ \Downarrow
β i = 0 ( β i ξ i = 0 ) \beta_i=0(\beta_i\xi_i=0) βi=0(βiξi=0)
⇓ \Downarrow
ξ i ≥ 0 \xi_i\geq0 ξi0
⇓ \Downarrow
y i ( w T x i + b ) ≤ 1 y_i\left(\pmb{w}^T\pmb{x_i}+b\right)\leq1 yi(wwwTxixixi+b)1
总结如下:
α i = 0 ⇒ y i ( w T x i + b ) ≥ 1 \alpha_i=0\Rightarrow y_i\left(\pmb{w}^T\pmb{x_i}+b\right)\geq1 αi=0yi(wwwTxixixi+b)1
0 < α i < C ⇒ y i ( w T x i + b ) = 1 0<\alpha_i<C\Rightarrow y_i\left(\pmb{w}^T\pmb{x_i}+b\right)=1 0<αi<Cyi(wwwTxixixi+b)=1
α i = C ⇒ y i ( w T x i + b ) ≤ 1 \alpha_i=C\Rightarrow y_i\left(\pmb{w}^T\pmb{x_i}+b\right)\leq1 αi=Cyi(wwwTxixixi+b)1

4.核函数

虽然引入了松弛变量和惩罚因子,可以处理线性不可分的问题,但SVM还是一个线性模型,只是允许错分样本的存在

4.1核映射

核映射 z = ϕ ( x ) \pmb{z}=\phi(\pmb{x}) zzz=ϕ(xxx),将向量 x \pmb{x} xxx映射为更高维的向量 z \pmb{z} zzz。问题变为:
m i n α 1 2 ∑ i = 1 l ∑ j = 1 l α i α j y i y j ϕ ( x i ) T ϕ ( x j ) − ∑ k = 1 l α k min_\alpha\frac{1}{2}\sum_{i=1}^l\sum_{j=1}^l\alpha_i\alpha_jy_iy_j\phi(\pmb{x_i})^T\phi(\pmb{x_j})-\sum_{k=1}^l\alpha_k minα21i=1lj=1lαiαjyiyjϕ(xixixi)Tϕ(xjxjxj)k=1lαk
0 ≤ α i ≤ C ,     i = 1 , … , l 0\leq\alpha_i\leq C,\ \ \ i=1,\ldots,l 0αiC,   i=1,,l
∑ i = 1 l α i y i = 0 \sum_{i=1}^l\alpha_iy_i=0 i=1lαiyi=0
这样做的缺点是,如果 x \pmb{x} xxx本身的维度已经很高了,经过映射后边的维度更高,容易产生维度爆炸,导致计算困难。

4.2核函数

核函数先做内积,然后在做高维映射,其结果与核映射等价,这样就解决了上面的缺点:
K ( x i , x j ) = K ( x i T x j ) = ϕ ( x i ) T ϕ ( x j ) K(\pmb{x_i},\pmb{x_j})=K(\pmb{x_i}^T\pmb{x_j})=\phi(\pmb{x_i})^T\phi(\pmb{x_j}) K(xixixi,xjxjxj)=K(xixixiTxjxjxj)=ϕ(xixixi)Tϕ(xjxjxj)
此时问题变为:
m i n α 1 2 ∑ i = 1 l ∑ j = 1 l α i α j y i y j K ( x i T x j ) − ∑ k = 1 l α k min_\alpha\frac{1}{2}\sum_{i=1}^l\sum_{j=1}^l\alpha_i\alpha_jy_iy_jK(\pmb{x_i}^T\pmb{x_j})-\sum_{k=1}^l\alpha_k minα21i=1lj=1lαiαjyiyjK(xixixiTxjxjxj)k=1lαk
0 ≤ α i ≤ C ,     i = 1 , … , l 0\leq\alpha_i\leq C,\ \ \ i=1,\ldots,l 0αiC,   i=1,,l
∑ i = 1 l α i y i = 0 \sum_{i=1}^l\alpha_iy_i=0 i=1lαiyi=0

此时的预测方程为:
f ( x ) = ∑ i = 1 l α i y i K ( x i T x ) + b f(\pmb{x})=\sum_{i=1}^l\alpha_iy_iK(\pmb{x_i}^T\pmb{x})+b f(xxx)=i=1lαiyiK(xixixiTxxx)+b

4.3 常用的核函数

不是任何一个函数都也可以用来做核函数的。核函数必须满足Mercer条件:对任意的有限个样本的样本集,核矩阵半正定。

核函数计算公式
线性核 K ( x i , x j ) = x i T x j K(\pmb{x_i},\pmb{x_j})=\pmb{x_i}^T\pmb{x_j} K(xixixi,xjxjxj)=xixixiTxjxjxj
多项式核 K ( x i , x j ) = ( γ x i T x j + b ) d K(\pmb{x_i},\pmb{x_j})=(\gamma\pmb{x_i}^T\pmb{x_j}+b)^d K(xixixi,xjxjxj)=(γxixixiTxjxjxj+b)d
高斯核 K ( x i , x j ) = e x p ( − γ ∥ x i − x j ∥ 2 ) K(\pmb{x_i},\pmb{x_j})=exp(-\gamma\parallel\pmb{x_i}-\pmb{x_j}\parallel^2) K(xixixi,xjxjxj)=exp(γxixixixjxjxj2)
sigmoid核 K ( x i , x j ) = t a n h ( γ x i T x j + b ) K(\pmb{x_i},\pmb{x_j})=tanh(\gamma\pmb{x_i}^T\pmb{x_j}+b) K(xixixi,xjxjxj)=tanh(γxixixiTxjxjxj+b)

5.SMO算法

m i n α 1 2 ∑ i = 1 l ∑ j = 1 l α i α j y i y j K ( x i T x j ) − ∑ k = 1 l α k min_\alpha\frac{1}{2}\sum_{i=1}^l\sum_{j=1}^l\alpha_i\alpha_jy_iy_jK(\pmb{x_i}^T\pmb{x_j})-\sum_{k=1}^l\alpha_k minα21i=1lj=1lαiαjyiyjK(xixixiTxjxjxj)k=1lαk
0 ≤ α i ≤ C ,     i = 1 , … , l 0\leq\alpha_i\leq C,\ \ \ i=1,\ldots,l 0αiC,   i=1,,l
∑ i = 1 l α i y i = 0 \sum_{i=1}^l\alpha_iy_i=0 i=1lαiyi=0

上述问题是要求解 l l l个参数( α 1 , α 2 , α 3 , α 4 , … , α l \alpha_1,\alpha_2,\alpha_3,\alpha_4,\ldots,\alpha_l α1,α2,α3,α4,,αl),令函数取最小值。有多种算法可以对上述问题求解,但是算法复杂度均很大。1998年,由Platt提出的序列最小最优化算法(SMO)可以高效的求解上述SVM问题。其基本思路是:如果所有变量的解都满足此最优化的KKT条件,那么这个最优化问题的解就得到了,因为KKT条件是该优化问题的充分必要条件。在实际操作过程中,每次选择两个变量,固定其他变量(当作常数),针对这两个变量构建一个二次规划问题,关于这两个变量的解应该更接近原始二次规划问题的解,因为这会使原始二次规划问题的目标函数值变得更小。这时子问题可以通过解析方法求解,这样可以大大提高整个算法的计算速度。

5.1 求解过程

第一步:设置 α \alpha α列表,并设其初始值为0(每个样本对应一个 α i \alpha_i αi
第二步:选取两个待优化变量,为了方便,记为 α 1 \alpha_1 α1 α 2 \alpha_2 α2(启发式选择变量,后面细讲)
第三步:解释地求解两个变量的最优解 α 1 ∗ \alpha_1^* α1 α 2 ∗ \alpha_2^* α2,并更新至 α \alpha α列表中
第四步:检查更新后的 α \alpha α列表是否在某个精度范围内满足KKT条件,若不满足返回第二步。

5.2 转换为二元函数

为了求解 l l l个参数,首先想到的是坐标上升的思路,例如求解 α 1 \alpha_1 α1,可以固定其他 l l l-1个参数,可以看成关于 α 1 \alpha_1 α1的一元函数求解,但是注意到上述问题的等式约束条 ∑ i = 1 l α i y i = 0 \sum_{i=1}^l\alpha_iy_i=0 i=1lαiyi=0件,如果值变动一个参数,等式约束条件将被违反,所以至少要两个参数一起变动。假设选择的变量为 α 1 \alpha_1 α1 α 2 \alpha_2 α2,并固定其他参数 α 3 \alpha_3 α3 α 4 \alpha_4 α4 … \ldots α l \alpha_l αl,可以简化目标函数为只关于 α 1 \alpha_1 α1 α 2 \alpha_2 α2的二元函数。
m i n α 1 , α 2 = 1 2 K 11 α 1 2 + 1 2 K 22 α 2 2 + y 1 y 2 K 12 α 1 α 2 − ( α 1 + α 2 ) + y 1 υ 1 α 1 + y 2 υ 2 α 2 + C o n s t a n t min_{\alpha_1,\alpha_2}=\frac{1}{2}K_{11}\alpha_1^2+\frac{1}{2}K_{22}\alpha_2^2+y_1y_2K_{12}\alpha_1\alpha_2-(\alpha_1+\alpha_2)+y_1\upsilon_1\alpha_1+y_2\upsilon_2\alpha_2+Constant minα1,α2=21K11α12+21K22α22+y1y2K12α1α2(α1+α2)+y1υ1α1+y2υ2α2+Constant
K i j = K ( x i T x j ) K_{ij}=K(\pmb{x_i}^T\pmb{x_j}) Kij=K(xixixiTxjxjxj)
υ i = ∑ j = 3 l α j y j K ( x i T x j ) , i = 1 , 2 \upsilon_i=\sum_{j=3}^l\alpha_jy_jK(\pmb{x_i}^T\pmb{x_j}),i=1,2 υi=j=3lαjyjK(xixixiTxjxjxj),i=1,2

5.3 转为一元函数

由等式约束可得:
α 1 y 1 + α 2 y 2 = − ∑ i = 3 l α i y i = ξ \alpha_1y_1+\alpha_2y_2=-\sum_{i=3}^l\alpha_iy_i=\xi α1y1+α2y2=i=3lαiyi=ξ
等式两边同乘以 y 1 y_1 y1,且 y 1 2 = 1 y_1^2=1 y12=1,结果为:
α 1 = ( ξ − y 2 α 2 ) y 1 \alpha1=(\xi-y_2\alpha_2)y_1 α1=(ξy2α2)y1
将其带入二元函数方程,得到只关于参数 α 2 \alpha_2 α2的一元函数,由于常数项不影响目标函数的解,以下省略掉常数项,结果为:
m i n α 2 = 1 2 K 11 ( ξ − y 2 α 2 ) 2 + 1 2 K 22 α 2 2 + y 2 K 12 ( ξ − y 2 α 2 ) α 2 − ( ξ − y 2 α 2 ) y 1 − α 2 + υ 1 ( ξ − y 2 α 2 ) + y 2 υ 2 α 2 min_{\alpha_2}=\frac{1}{2}K_{11}(\xi-y_2\alpha_2)^2+\frac{1}{2}K_{22}\alpha_2^2+y_2K_{12}(\xi-y_2\alpha_2)\alpha_2-(\xi-y_2\alpha_2)y_1-\alpha_2+\upsilon_1(\xi-y_2\alpha_2)+y_2\upsilon_2\alpha_2 minα2=21K11(ξy2α2)2+21K22α22+y2K12(ξy2α2)α2(ξy2α2)y1α2+υ1(ξy2α2)+y2υ2α2

5.4 求一元函数的极值点

上式是关于变量 α 2 \alpha_2 α2的函数,对上式求导并令其为0得:
( K 11 + K 22 − 2 K 12 ) α 2 − K 11 ξ y 2 + K 12 ξ y 2 + y 1 y 2 − 1 − υ 1 y 2 + υ 2 y 2 = 0 (K_{11}+K{22}-2K{12})\alpha_2-K_{11}\xi y_2+K_{12}\xi y_2+y_1y_2-1-\upsilon_1y_2+\upsilon_2y_2=0 (K11+K222K12)α2K11ξy2+K12ξy2+y1y21υ1y2+υ2y2=0
由上式中假设求得了 α 2 \alpha_2 α2的解,带入下式可求得 α 1 \alpha_1 α1的解
α 1 y 1 + α 2 y 2 = − ∑ i = 3 l α i y i = ξ \alpha_1y_1+\alpha_2y_2=-\sum_{i=3}^l\alpha_iy_i=\xi α1y1+α2y2=i=3lαiyi=ξ
分别记为 α 1 n e w \alpha_1^{new} α1new α 2 n e w \alpha_2^{new} α2new,优化前的值记为 α 1 o l d \alpha_1^{old} α1old α 2 o l d \alpha_2^{old} α2old,可得出:
α 1 o l d y 1 + α 2 o l d y 2 = − ∑ i = 3 l α i y i = α 1 n e w y 1 + α 2 n e w y 2 = ξ \alpha_1^{old}y_1+\alpha_2^{old}y_2=-\sum_{i=3}^l\alpha_iy_i=\alpha_1^{new}y_1+\alpha_2^{new}y_2=\xi α1oldy1+α2oldy2=i=3lαiyi=α1newy1+α2newy2=ξ
⇓ \Downarrow
ξ = α 1 o l d y 1 + α 2 o l d y 2 \xi=\alpha_1^{old}y_1+\alpha_2^{old}y_2 ξ=α1oldy1+α2oldy2

改写 υ i \upsilon_i υi,得出:
υ i = ∑ j = 3 l α j y j K ( x i T x j ) , i = 1 , 2 \upsilon_i=\sum_{j=3}^l\alpha_jy_jK(\pmb{x_i}^T\pmb{x_j}),i=1,2 υi=j=3lαjyjK(xixixiTxjxjxj),i=1,2
f ( x 1 ) = ∑ i = 1 l α i y i K ( x i T x 1 ) + b f(\pmb{x_1})=\sum_{i=1}^l\alpha_iy_iK(\pmb{x_i}^T\pmb{x_1})+b f(x1x1x1)=i=1lαiyiK(xixixiTx1x1x1)+b
f ( x 2 ) = ∑ i = 1 l α i y i K ( x i T x 2 ) + b f(\pmb{x_2})=\sum_{i=1}^l\alpha_iy_iK(\pmb{x_i}^T\pmb{x_2})+b f(x2x2x2)=i=1lαiyiK(xixixiTx2x2x2)+b
⇓ \Downarrow
υ 1 = f ( x 1 ) − ∑ j = 1 2 α j y j K ( x 1 T x j ) − b \upsilon_1=f(\pmb{x_1})-\sum_{j=1}^2\alpha_jy_jK(\pmb{x_1}^T\pmb{x_j})-b υ1=f(x1x1x1)j=12αjyjK(x1x1x1Txjxjxj)b
υ 2 = f ( x 2 ) − ∑ j = 1 2 α j y j K ( x 2 T x j ) − b \upsilon_2=f(\pmb{x_2})-\sum_{j=1}^2\alpha_jy_jK(\pmb{x_2}^T\pmb{x_j})-b υ2=f(x2x2x2)j=12αjyjK(x2x2x2Txjxjxj)b
ξ \xi ξ υ 1 \upsilon_1 υ1 υ 2 \upsilon_2 υ2带入上式:
( K 11 + K 22 − 2 K 12 ) α 2 n e w , u n c l i p p e d = ( K 11 + K 22 − 2 K 12 ) α 2 o l d + y 2 [ y 2 − y 1 + f ( x 1 ) − f ( x 2 ) ] (K_{11}+K_{22}-2K_{12})\alpha_2^{new,unclipped}=(K_{11}+K_{22}-2K_{12})\alpha_2^{old}+y_2[y_2-y_1+f(\pmb{x_1})-f(\pmb{x_2})] (K11+K222K12)α2new,unclipped=(K11+K222K12)α2old+y2[y2y1+f(x1x1x1)f(x2x2x2)]
定义 E i E_i Ei表示预测值与真实值之差:
E i = f ( x i ) − y i E_i=f(\pmb{x_i})-yi Ei=f(xixixi)yi
记:
η = K 11 + K 22 − 2 K 12 \eta=K_{11}+K_{22}-2K_{12} η=K11+K222K12
得出:
α 2 n e w , u n c l i p p e d = α 2 o l d + y 2 ( E 1 − E 2 ) η \alpha_2^{new,unclipped}=\alpha_2^{old}+\frac{y_2(E_1-E_2)}{\eta} α2new,unclipped=α2old+ηy2(E1E2)

5.5 对原始解修剪

上述求出的解未考虑到约束条件:
0 ≤ α i ≤ C ,     i = 1 , 2 0\leq\alpha_i\leq C,\ \ \ i=1,2 0αiC,   i=1,2

α 1 y 1 + α 2 y 2 = ξ \alpha_1y_1+\alpha_2y_2=\xi α1y1+α2y2=ξ
y 1 ≠ y 2 y_1 \neq y_2 y1=y2时, α 1 o l d − α 1 o l d = ξ \alpha_1^{old}-\alpha_1^{old}=\xi α1oldα1old=ξ,所以有 L = m a x ( 0 , − ξ ) L=max(0,-\xi) L=max(0,ξ) H = m i n ( C , C − ξ ) H=min(C,C-\xi) H=min(C,Cξ),如下图所示:
在这里插入图片描述
y 1 = y 2 y_1 = y_2 y1=y2时, α 1 o l d + α 1 o l d = ξ \alpha_1^{old}+\alpha_1^{old}=\xi α1old+α1old=ξ,所以有 L = m a x ( 0 , C − ξ ) L=max(0,C-\xi) L=max(0,Cξ) H = m i n ( C , ξ ) H=min(C,\xi) H=min(C,ξ),如下图所示:
在这里插入图片描述

经过上述约束的修剪,最优解就可以记为 α 2 n e w \alpha_2^{new} α2new:
α 2 n e w = { H α 2 n e w , u n c l i p p e d > H α 2 n e w , u n c l i p p e d H ≤ α 2 n e w , u n c l i p p e d ≤ L L α 2 n e w , u n c l i p p e d < L \alpha_2^{new}=\begin{cases} H & \alpha_2^{new,unclipped}>H\\ \alpha_2^{new,unclipped} & H\leq\alpha_2^{new,unclipped}\leq L \\ L & \alpha_2^{new,unclipped}<L \end{cases} α2new=Hα2new,unclippedLα2new,unclipped>HHα2new,unclippedLα2new,unclipped<L

5.6 求解 α 1 n e w \alpha_1^{new} α1new

由于:
α 1 o l d y 1 + α 2 o l d y 2 = − ∑ i = 3 l α i y i = α 1 n e w y 1 + α 2 n e w y 2 \alpha_1^{old}y_1+\alpha_2^{old}y_2=-\sum_{i=3}^l\alpha_iy_i=\alpha_1^{new}y_1+\alpha_2^{new}y_2 α1oldy1+α2oldy2=i=3lαiyi=α1newy1+α2newy2
得出:
α 1 n e w = α 1 o l d + y 1 y 2 ( α 2 o l d − α 2 n e w ) \alpha_1^{new}=\alpha_1^{old}+y_1y_2(\alpha_2^{old}-\alpha_2^{new}) α1new=α1old+y1y2(α2oldα2new)

5.7 证明子问题是一个凸优化问题

二元函数为:
m i n α 1 , α 2 = 1 2 K 11 α 1 2 + 1 2 K 22 α 2 2 + y 1 y 2 K 12 α 1 α 2 − ( α 1 + α 2 ) + y 1 υ 1 α 1 + y 2 υ 2 α 2 + C o n s t a n t min_{\alpha_1,\alpha_2}=\frac{1}{2}K_{11}\alpha_1^2+\frac{1}{2}K_{22}\alpha_2^2+y_1y_2K_{12}\alpha_1\alpha_2-(\alpha_1+\alpha_2)+y_1\upsilon_1\alpha_1+y_2\upsilon_2\alpha_2+Constant minα1,α2=21K11α12+21K22α22+y1y2K12α1α2(α1+α2)+y1υ1α1+y2υ2α2+Constant
υ i = ∑ j = 3 l α j y j K ( x i T x j ) , i = 1 , 2 \upsilon_i=\sum_{j=3}^l\alpha_jy_jK(\pmb{x_i}^T\pmb{x_j}),i=1,2 υi=j=3lαjyjK(xixixiTxjxjxj),i=1,2
其Hession矩阵为:
[ y 1 y 1 K 11 y 1 y 2 K 12 y 2 y 1 K 21 y 2 y 2 K 22 ] \left[ \begin{matrix} y_1y_1K_{11} & y_1y_2K_{12}\\ y_2y_1K_{21} & y_2y_2K_{22} \end{matrix} \right] [y1y1K11y2y1K21y1y2K12y2y2K22]
⇓ \Downarrow
[ y 1 y 1 ϕ ( x 1 ) T ϕ ( x 1 ) y 1 y 2 ϕ ( x 1 ) T ϕ ( x 2 ) y 2 y 1 ϕ ( x 2 ) T ϕ ( x 1 ) y 2 y 2 ϕ ( x 2 ) T ϕ ( x 2 ) ] \left[ \begin{matrix} y_1y_1\phi(\pmb{x_1}) ^T\phi(\pmb{x_1})& y_1y_2\phi(\pmb{x_1}) ^T\phi(\pmb{x_2})\\ y_2y_1\phi(\pmb{x_2}) ^T\phi(\pmb{x_1}) & y_2y_2\phi(\pmb{x_2}) ^T\phi(\pmb{x_2}) \end{matrix} \right] [y1y1ϕ(x1x1x1)Tϕ(x1x1x1)y2y1ϕ(x2x2x2)Tϕ(x1x1x1)y1y2ϕ(x1x1x1)Tϕ(x2x2x2)y2y2ϕ(x2x2x2)Tϕ(x2x2x2)]
⇓ \Downarrow

[ y 1 ϕ ( x 1 ) T y 2 ϕ ( x 2 ) T ] [ y 1 ϕ ( x 1 ) , y 2 ϕ ( x 2 ) ] = A A T ≥ 0 \left[ \begin{matrix} y_1\phi(\pmb{x_1}) ^T\\ y_2\phi(\pmb{x_2}) ^T \end{matrix} \right]\left[ \begin{matrix} y_1\phi(\pmb{x_1}) , y_2\phi(\pmb{x_2}) \end{matrix} \right]=AA^T\geq0 [y1ϕ(x1x1x1)Ty2ϕ(x2x2x2)T][y1ϕ(x1x1x1),y2ϕ(x2x2x2)]=AAT0
其Hession矩阵为半正定矩阵,一定可以找到全局极小值点。

5.8 启发式选择变量

第一个变量的选择

首先遍历 0 < α i < C 0<\alpha_i<C 0<αi<C的样本集,选择违反KKT条件最严重(何为最严重,下面论述)的 α i \alpha_i αi作为第一个变量,接着依据相关规则选择第二个变量(见下面分析),对这两个变量采用上述方法进行优化。接着遍历 α i = 0 \alpha_i=0 αi=0或是 α i = C \alpha_i=C αi=C的样本集,选择违反KKT条件最严重的 α i \alpha_i αi。然后再次回到遍历 0 < α i < C 0<\alpha_i<C 0<αi<C样本集中寻找,即在两个样本集上来回切换。直到遍历整个样本集后,没有违反KKT条件 α i \alpha_i αi,然后退出。
如何判断样本点是否满足KKT条件将上面的第4部分。
违反KKT条件严重程度的量化方法有许多,下面介绍一种最为简单的:
l i = ∣ y i f ( x i − 1 ) ∣ l_i=|y_if(\pmb{x_i}-1)| li=yif(xixixi1)
既计算样本点的预测值与标签值乘积与1的差值,具体操作如下:
0 < α i < C 0<\alpha_i<C 0<αi<C时候,如果满足KKT条件( y i ( w T x i + b ) = 1 y_i\left(\pmb{w}^T\pmb{x_i}+b\right)=1 yi(wwwTxixixi+b)=1), l i = 0 l_i=0 li=0(此时违反KKT条件严重程度最低)。如果不满足KKT条件,按如上公式计算 l i l_i li
α i = 0 \alpha_i=0 αi=0时候,如果满足KKT条件( y i ( w T x i + b ) ≥ 1 y_i\left(\pmb{w}^T\pmb{x_i}+b\right)\geq1 yi(wwwTxixixi+b)1), l i = 0 l_i=0 li=0。如果不满足KKT条件,按如上公式计算 l i l_i li
α i = C \alpha_i=C αi=C时候,如果满足KKT条件( y i ( w T x i + b ) ≥ 1 y_i\left(\pmb{w}^T\pmb{x_i}+b\right)\geq1 yi(wwwTxixixi+b)1), l i = 0 l_i=0 li=0。如果不满足KKT条件,按如上公式计算 l i l_i li
将所有样本点的 l i l_i li值缓存起来, l i l_i li值最大的既为违反KKT条件最严重的样本点。

第二个变量的选择

假设找到的第一个变量记为 α i \alpha_i αi,第二个变量 α j \alpha_j αj的选择希望能使 α j \alpha_j αj有较大的变化,由于 α i \alpha_i αi的计算是依赖于 ∣ E i − E j ∣ |E_i-E_j| EiEj的,当 ∣ E i − E j ∣ |E_i-E_j| EiEj较大时, α i \alpha_i αi可以得到最大程度的更新(贪婪法),因此当 E i E_i Ei为正时,那么选择最小的 E j E_j Ej;如果 E i E_i Ei为负,选择最大 E j E_j Ej。通常将每个样本的 E E E保存在一个列表中。

5.9 b的计算

每次完成对两个变量的优化后,要对 b b b的值进行更新,因为 b b b的值关系到 f ( x ) f(x) f(x)的计算,即关系到下次优化时 E i E_i Ei的计算。对于任意支持向量( x s , y s \pmb{x_s},y_s xsxsxs,ys)都有, y s f ( x s ) = 1 y_sf(\pmb{x_s})=1 ysf(xsxsxs)=1既:
y s ( ∑ i ∈ S α i y i x i T x s + b ) = 1 y_s(\sum_{i\in S}\alpha_iy_i\pmb{x_i}^T\pmb{x_s}+b)=1 ys(iSαiyixixixiTxsxsxs+b)=1
其中 S = { i ∣ 0 < α i < C , i = 1 , 2 , … , m } S=\{i|0<\alpha_i<C,i=1,2,\ldots,m\} S={i0<αi<C,i=1,2,,m}为所有支持向量的下标集。理论上,可选任意支持向量并通过求解上式获得 b b b,但现实任务中常采用一种更鲁棒的做法,使用所有支持向量求解的平均值:
b = 1 ∣ s ∣ ∑ s ∈ S ( 1 y s − ∑ i ∈ S α i y i x i T x s ) b=\frac{1}{|s|}\sum_{s\in S}(\frac{1}{y_s}-\sum_{i\in S}\alpha_iy_i\pmb{x_i}^T\pmb{x_s}) b=s1sS(ys1iSαiyixixixiTxsxsxs)

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值