1.支持向量机的基本思想
基于训练集D在样本空间中找到一个划分超平面(在二维空间中为一条直线,在三维空间中为一个平面),将不同类别的样本分开。
问题来了,这样的超平面有很多,我们应该努力去找到哪一个呢,哪一个是最好的呢?基于上述问题,我们提出三个判定标准:1.可以正确分割样本;2.留有大量的余量,既分类超平面尽可能的离两类样本尽可能的远(分类超平面对测试样本有最强的泛化能力)3.位于两类训练样本“正中间”的超平面(也是为了最大化泛化能力)
基于以上判定标准,我们要选的分类超平面应该是这样的:正样本和负样本中离分类超平面最近的样本点,距离分类超平面的距离尽可能的大(最大化分类间隔)。
2.线性可分的问题
探讨这个问题之前,有一个假设前提,既所有训练样本都是线性可分的(这是一个理想状态,现实中很少有这样的情况,只是为了进一步的推导做铺垫)。
2.1点到超平面的距离
超平面可以用分类函数f(x)=wTx+bf(\pmb{x})=\pmb{w}^T\pmb{x}+bf(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是超平面的法向量,与超平面垂直。证明过程如下:设x1\pmb{x}_1xxx1、x2\pmb{x}_2xxx2是超平面上任意两点,wTx1+b=0\pmb{w}^T\pmb{x}_1+b=0wwwTxxx1+b=0wTx2+b=0\pmb{w}^T\pmb{x}_2+b=0wwwTxxx2+b=0wT(x1−x2)=0\pmb{w}^T(\pmb{x}_1-\pmb{x}_2)=0wwwT(xxx1−xxx2)=0
根据两个向量的数量积为零,两个向量相互垂直,可推出w\pmb{w}www与(x1−x2)(\pmb{x}_1-\pmb{x}_2)(xxx1−xxx2)相互垂直,而(x1−x2)(\pmb{x}_1-\pmb{x}_2)(xxx1−xxx2)是超平面内任意一向量,所以w\pmb{w}www与超平面垂直,既w\pmb{w}www是超平面的法向量,决定了超平面的方向。
训练集中任意样本点到超平面的距离可表示为:γ=∣wTx+b∣∥w∥\gamma=\frac{\left|\pmb{w}^T\pmb{x}+b\right|}{\parallel \pmb{w} \parallel}γ=∥www∥∣∣wwwTxxx+b∣∣
推到过程如下:
γ=∥ AB⃗−OC⃗∥\gamma=\parallel \ \vec{AB}- \vec{OC} \parallelγ=∥ AB−OC∥
γ=∥wT∥w∥xw∥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γ=∥∥www∥wwwTxxx∥www∥www−∥www∥−b∥www∥www∥
wT/∥w∥\pmb{w}^T/\parallel \pmb{w} \parallelwwwT/∥www∥表示w\pmb{w}www向量的单位向量,与向量x\pmb{x}xxx进行数量积操作,结果为表示向量x\pmb{x}xxx在w\pmb{w}www方向上投影的长度,在乘以w\pmb{w}www方向上的单位向量既为向量AB⃗\vec{AB}AB
OC⃗=λ0w∥w∥\vec{OC}=\lambda_0\frac{\pmb{w}}{\parallel \pmb{w} \parallel}OC=λ0∥www∥www
wTλ0w∥w∥+b=0\pmb{w}^T\lambda_0\frac{\pmb{w}}{\parallel \pmb{w} \parallel}+b=0wwwTλ0∥www∥www+b=0
λ0=−b∥w∥\lambda_0=\frac{-b}{\parallel \pmb{w} \parallel}λ0=∥www∥−b
OC⃗=−b∥w∥w∥w∥\vec{OC}=\frac{-b}{\parallel \pmb{w} \parallel}\frac{\pmb{w}}{\parallel \pmb{w} \parallel}OC=∥www∥−b∥www∥www
2.2线性可分的原问题
对于正样本:wTx+b≥0\pmb{w}^T\pmb{x}+b\geq0wwwTxxx+b≥0
对于负样本:wTx+b≤0\pmb{w}^T\pmb{x}+b\leq0wwwTxxx+b≤0
可以统一写成yi(wTxi+b)≥0y_i\left(\pmb{w}^T\pmb{x_i}+b\right)\geq0yi(wwwTxixixi+b)≥0 yi∈{−1,+1}y_i\in\{-1,+1\}yi∈{−1,+1}
为了消除冗余并简化问题,我们令正样本或负样本距离分类超平面最近的点:
mini∣wTxi+b∣=1min_i\left|\pmb{w}^T\pmb{x_i}+b\right|=1mini∣∣wwwTxixixi+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=∥www∥1+∥www∥1=∥www∥2
线性可分的问题为(带有不等式的最小化问题):
min(12wTw)min(\frac{1}{2}\pmb{w}^T\pmb{w})min(21wwwTwww)
yi(wTxi+b)≥1y_i\left(\pmb{w}^T\pmb{x_i}+b\right)\geq1yi(wwwTxixixi+b)≥1
证明这个问题是凸优化问题:
补充知识开始
凸优化问题有两个限定:1变量的可行域是一个凸集;2目标函数是一个凸函数。
凸集的定义为,如果变量x,y∈Cx,y\in Cx,y∈C,那么他们连线上的任何一个点 θx+(1−θ)y∈C\theta x+(1-\theta)y\in Cθx+(1−θ)y∈C,0≤θ≤10\leq\theta\leq10≤θ≤1。几个典型的凸集:Rn\mathbb{R}^nRn,{x∈Rn:Ax=b}\{\pmb{x}\in\mathbb{R}^n:A\pmb{x}=b\}{xxx∈Rn:Axxx=b},Rn\mathbb{R}^nRn,{x∈Rn:Ax≤b}\{\pmb{x}\in\mathbb{R}^n:A\pmb{x}\leq b\}{xxx∈Rn:Axxx≤b},以及∩Ci\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)(x′−x)+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)(xxx′−xxx)+f(xxx)
二阶判别法:
一元函数:f′′(x)≥0f\prime \prime(x)\geq0f′′(x)≥0
多元函数:Hessian矩阵为半正定矩阵。如果为正定矩阵,那么为严格的凸函数
其他判别法:
f(x)=∑i=0nwifi(x)f(\pmb{x})=\sum_{i=0}^nw_if_i(\pmb{x})f(xxx)=∑i=0nwifi(xxx) , 多个凸函数的线性相加仍未凸函数
补充知识结束
1.w\pmb{w}www的可行域为多个线性不等式围成的区域,因此其可行域为凸集。
2.12wTw\frac{1}{2}\pmb{w}^T\pmb{w}21wwwTwww为凸函数,因为其Hessian矩阵为单位矩阵(12(w12+w22+w32+w42+…+wn2)\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,α)=12∥w∥2−∑i=1lαi(yi(wTxi+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,α)=21∥www∥2−i=1∑lαi(yi(wwwTxixixi+b)−1)
其原问题为:
minw,bmaxαL(w,b,α)min_{w,b}max_\alpha L(\pmb{w},b,\alpha)minw,bmaxαL(www,b,α)
2.3线性可分的对偶问题
补充知识开始
对偶问题的基本思想:把难以解决的原始问题,转换为等价的另一个问题,且另一个问题要容易求解一些。
广义的拉格朗日乘子法(带有一组等式约束和一组不等式约束):
minf(x)minf(\pmb{x})minf(xxx)
gi(x)≤0 i=1,…,mg_i(\pmb{x})\leq0\ \ \ i=1,\ldots,mgi(xxx)≤0 i=1,…,m
hii(x)=0 i=1,…,phi_i(\pmb{x})=0\ \ \ i=1,\ldots,phii(xxx)=0 i=1,…,p
L(x,λ,ν)=f(x)+∑i=1mλigi(x)+∑i=1pνihi(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=1∑mλigi(xxx)+i=1∑pνihi(xxx)
原问题:
p∗=minxmaxλ,ν,λi≥0L(x,λ,ν)p^*=min_xmax_{\lambda,\nu,\lambda_i\geq0}L(\pmb{x},\lambda,\nu)p∗=minxmaxλ,ν,λi≥0L(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λi≥0,g(xxx)≤0,所以∑i=1mλigi(x)\sum_{i=1}^m\lambda_ig_i(\pmb{x})∑i=1mλigi(xxx)最大等于零。因为hii(x)=0hi_i(\pmb{x})=0hii(xxx)=0,所以∑i=1pνihi(x)\sum_{i=1}^p\nu_ih_i(\pmb{x})∑i=1pνihi(xxx)等于零。综上当变动λ,ν\lambda,\nuλ,ν时,函数的最大值就是f(x)f(\pmb{x})f(xxx),原问题就变成了minxf(x)min_xf(\pmb{x})minxf(xxx)。
对偶问题:
d∗=maxλ,ν,λi≥0minxL(x,λ,ν)d^*=max_{\lambda,\nu,\lambda_i\geq0}min_xL(\pmb{x},\lambda,\nu)d∗=maxλ,ν,λi≥0minxL(xxx,λ,ν)
弱对偶:
d∗=maxλ,ν,λi≥0minxL(x,λ,ν)≤minxmaxλ,ν,λi≥0L(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λ,ν,λi≥0minxL(xxx,λ,ν)≤minxmaxλ,ν,λi≥0L(xxx,λ,ν)=p∗
强对偶:
满足slatter条件(充分非必要条件)可以转为强对偶,1.原始问题为一个凸优化问题;2.存在一个可行解,另不等式约束gi(x)g_i(\pmb{x})gi(xxx)严格满足,也就是不等式不能取等号(所有gi(x)g_i(\pmb{x})gi(xxx)都小于零)
d∗=maxλ,ν,λi≥0minxL(x,λ,ν)=minxmaxλ,ν,λi≥0L(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λ,ν,λi≥0minxL(xxx,λ,ν)=minxmaxλ,ν,λi≥0L(xxx,λ,ν)=p∗
补充知识结束
原问题满足slatter条件:
1.原问题是一个凸优化问题,前面以证明;2.至少存在一组w,b\pmb{w},bwww,b使yi(wTxi+b)≥1y_i\left(\pmb{w}^T\pmb{x_i}+b\right)\geq1yi(wwwTxixixi+b)≥1成立,那么100w,100b100\pmb{w},100b100www,100b也是满足条件的解,一定可以让yi(wTxi+b)>1y_i\left(\pmb{w}^T\pmb{x_i}+b\right)>1yi(wwwTxixixi+b)>1成立。
原问题转换为对偶问题:
minw,bmaxαL(w,b,α)=maxαminw,bL(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,α)=12∥w∥2−∑i=1lαi(yi(wTxi+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,α)=21∥www∥2−i=1∑lαi(yi(wwwTxixixi+b)−1)
∂L∂b=0 ⇒ ∑i=1lαiyi=0\frac{\partial L}{\partial b}=0 \ \ \Rightarrow\ \ \sum_{i=1}^l\alpha_iy_i=0 ∂b∂L=0 ⇒ i=1∑lαiyi=0
∇wL=0 ⇒ w=∑i=1lαiyixi\nabla_wL=0 \ \ \Rightarrow\ \ \pmb{w}=\sum_{i=1}^l\alpha_iy_i\pmb{x_i}
∇wL=0 ⇒ www=i=1∑lαiyixixixi
带入原式得出:
maxα−12∑i=1l∑j=1lαiαjyiyjxiTxj+∑k=1lαkmax_\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_kmaxα−21i=1∑lj=1∑lαiαjyiyjxixixiTxjxjxj+k=1∑lαk
转换为新的最优化问题:
minα12∑i=1l∑j=1lαiαjyiyjxiTxj−∑k=1lαkmin_\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_kminα21i=1∑lj=1∑lαiαjyiyjxixixiTxjxjxj−k=1∑lαk
αi≥0, i=1,…,l\alpha_i\geq0,\ \ \ i=1,\ldots,lαi≥0, i=1,…,l
∑i=1lαiyi=0\sum_{i=1}^l\alpha_iy_i=0i=1∑lαiyi=0
预测超平面方程为:
w=∑i=1lαiyixi\pmb{w}=\sum_{i=1}^l\alpha_iy_i\pmb{x_i}www=i=1∑lαiyixixixi
每一个样本都对应一个αi\alpha_iαi,当αi\alpha_iαi不等于0时,其对应样本对w\pmb{w}www的计算产生作用,这样的向量成为支持向量。
f(x)=∑i=1lαiyixiTx+bf(\pmb{x})=\sum_{i=1}^l\alpha_iy_i\pmb{x_i}^T\pmb{x}+bf(xxx)=i=1∑lαiyixixixiTxxx+b
3.线性不可分的问题
线性可分过于理想化,实际中遇到的样本绝大多数都是线性不可分的。下面我们将得到的方程进行扩展,使之可以处理线性不可分的问题。
线性可分的问题:
min12wTwmin\frac{1}{2}\pmb{w}^T\pmb{w}min21wwwTwww
yi(wTx+b)≥1y_i\left(\pmb{w}^T\pmb{x}+b\right)\geq1yi(wwwTxxx+b)≥1
线性不可分的问题是在原问题的基础上加上松弛变量ξ\xiξ和惩罚因子CCC,增加松弛因子后,允许样本点落在”间隔“内:
min(12wTw+C∑i=1lξi)min(\frac{1}{2}\pmb{w}^T\pmb{w}+C\sum_{i=1}^l\xi_i)min(21wwwTwww+Ci=1∑lξi)
yi(wTxi+b)≥1−ξiy_i\left(\pmb{w}^T\pmb{x_i}+b\right)\geq1-\xi_iyi(wwwTxixixi+b)≥1−ξi
−(yi(wTxi+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−ξi≤0, i=1,2,…,l
这仍然是一个凸优化问题,并满足Slater条件,证明同上。构建拉格朗日乘子函数:
L(w,b,α,ξ,β)=12∥w∥2+C∑i=ilξi−∑i=1lαi(yi(wTxi+b)−1)−∑i=1βiξiL(\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_iL(www,b,α,ξ,β)=21∥www∥2+Ci=i∑lξi−i=1∑lαi(yi(wwwTxixixi+b)−1)−i=1∑βiξi
原问题为:
minw,b,β,ξmaxαL(w,b,α,ξ,β)min_{w,b,\beta,\xi}max_{\alpha} L(\pmb{w},b,\alpha,\xi,\beta)minw,b,β,ξmaxαL(www,b,α,ξ,β)
对偶问题为:
maxαminw,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=1lαiyi=0\frac{\partial L}{\partial b}=0 \ \ \Rightarrow\ \ \sum_{i=1}^l\alpha_iy_i=0 ∂b∂L=0 ⇒ i=1∑lαiyi=0
∇ξL=0 ⇒ αi+βi=C\nabla_\xi L=0 \ \ \Rightarrow\ \ \ \alpha_i+\beta_i=C∇ξL=0 ⇒ αi+βi=C
∇wL=0 ⇒ w=∑i=1lαiyixi\nabla_wL=0 \ \ \Rightarrow\ \ \pmb{w}=\sum_{i=1}^l\alpha_iy_i\pmb{x_i}
∇wL=0 ⇒ www=i=1∑lαiyixixixi
带入原式转化为新的问题:
minα12∑i=1l∑j=1lαiαjyiyjxiTxj−∑k=1lαkmin_\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_kminα21i=1∑lj=1∑lαiαjyiyjxixixiTxjxjxj−k=1∑lαk
0≤αi≤C, i=1,…,l0\leq\alpha_i\leq C,\ \ \ i=1,\ldots,l0≤αi≤C, i=1,…,l
∑i=1lαiyi=0\sum_{i=1}^l\alpha_iy_i=0i=1∑lαiyi=0
仍然是一个线性模型,预测方程为:
f(x)=∑i=1lαiyixiTx+bf(\pmb{x})=\sum_{i=1}^l\alpha_iy_i\pmb{x_i}^T\pmb{x}+bf(xxx)=i=1∑lαiyixixixiTxxx+b
4.KKT条件对原问题最优解的约束
补充知识开始:KKT条件
广义的拉格朗日乘子法(带有一组等式约束和一组不等式约束):
minf(x)minf(\pmb{x})minf(xxx)
gi(x)≤0 i=1,…,mg_i(\pmb{x})\leq0\ \ \ i=1,\ldots,mgi(xxx)≤0 i=1,…,m
hii(x)=0 i=1,…,phi_i(\pmb{x})=0\ \ \ i=1,\ldots,phii(xxx)=0 i=1,…,p
L(x,λ,ν)=f(x)+∑i=1mλigi(x)+∑i=1pνihi(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=1∑mλigi(xxx)+i=1∑pνihi(xxx)
在极值点处必须满足如下条件:
∇xL(x∗)=0\nabla_xL(\pmb{x}^*)=0 ∇xL(xxx∗)=0
λi≥0\lambda_i\geq0 λi≥0
λigi(x∗)=0\lambda_ig_i(\pmb{x}^*)=0 λigi(xxx∗)=0
hi(x∗)=0h_i(\pmb{x}^*)=0 hi(xxx∗)=0
gi(x∗)≤0g_i(\pmb{x}^*)\leq0 gi(xxx∗)≤0
补充知识结束
线性不可分的原问题为:
min(12wTw+C∑i=1lξi)min(\frac{1}{2}\pmb{w}^T\pmb{w}+C\sum_{i=1}^l\xi_i)min(21wwwTwww+Ci=1∑lξi)
−(yi(wTxi+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−ξi≤0, i=1,2,…,l
构建拉格朗日乘子函数:
L(w,b,α,ξ,β)=12∥w∥2+C∑i=ilξi−∑i=1lαi(yi(wTxi+b)−1)−∑i=1βiξiL(\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_iL(www,b,α,ξ,β)=21∥www∥2+Ci=i∑lξi−i=1∑lαi(yi(wwwTxixixi+b)−1)−i=1∑βiξi
根据KKT条件得出,在极值点处:
αi(yi(wTxi+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
yi(wTxi+b)−1+ξi=0y_i\left(\pmb{w}^T\pmb{x_i}+b\right)-1+\xi_i=0yi(wwwTxixixi+b)−1+ξi=0
yi(wTxi+b)=1−ξiy_i\left(\pmb{w}^T\pmb{x_i}+b\right)=1-\xi_iyi(wwwTxixixi+b)=1−ξi
ξi≥0\xi_i\geq0ξi≥0
⇓\Downarrow⇓
yi(wTxi+b)≤1y_i\left(\pmb{w}^T\pmb{x_i}+b\right)\leq1yi(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⇓
yi(wTxi+b)≥1y_i\left(\pmb{w}^T\pmb{x_i}+b\right)\geq1yi(wwwTxixixi+b)≥1
综上当0<αi<C0<\alpha_i<C0<αi<C
yi(wTxi+b)=1y_i\left(\pmb{w}^T\pmb{x_i}+b\right)=1yi(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⇓
yi(wTxi+b)≥1y_i\left(\pmb{w}^T\pmb{x_i}+b\right)\geq1yi(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ξi≥0
⇓\Downarrow⇓
yi(wTxi+b)≤1y_i\left(\pmb{w}^T\pmb{x_i}+b\right)\leq1yi(wwwTxixixi+b)≤1
总结如下:
αi=0⇒yi(wTxi+b)≥1\alpha_i=0\Rightarrow y_i\left(\pmb{w}^T\pmb{x_i}+b\right)\geq1αi=0⇒yi(wwwTxixixi+b)≥1
0<αi<C⇒yi(wTxi+b)=10<\alpha_i<C\Rightarrow y_i\left(\pmb{w}^T\pmb{x_i}+b\right)=10<αi<C⇒yi(wwwTxixixi+b)=1
αi=C⇒yi(wTxi+b)≤1\alpha_i=C\Rightarrow y_i\left(\pmb{w}^T\pmb{x_i}+b\right)\leq1αi=C⇒yi(wwwTxixixi+b)≤1
4.核函数
虽然引入了松弛变量和惩罚因子,可以处理线性不可分的问题,但SVM还是一个线性模型,只是允许错分样本的存在
4.1核映射
核映射z=ϕ(x)\pmb{z}=\phi(\pmb{x})zzz=ϕ(xxx),将向量x\pmb{x}xxx映射为更高维的向量z\pmb{z}zzz。问题变为:
minα12∑i=1l∑j=1lαiαjyiyjϕ(xi)Tϕ(xj)−∑k=1lαkmin_\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_kminα21i=1∑lj=1∑lαiαjyiyjϕ(xixixi)Tϕ(xjxjxj)−k=1∑lαk
0≤αi≤C, i=1,…,l0\leq\alpha_i\leq C,\ \ \ i=1,\ldots,l0≤αi≤C, i=1,…,l
∑i=1lαiyi=0\sum_{i=1}^l\alpha_iy_i=0i=1∑lαiyi=0
这样做的缺点是,如果x\pmb{x}xxx本身的维度已经很高了,经过映射后边的维度更高,容易产生维度爆炸,导致计算困难。
4.2核函数
核函数先做内积,然后在做高维映射,其结果与核映射等价,这样就解决了上面的缺点:
K(xi,xj)=K(xiTxj)=ϕ(xi)Tϕ(xj)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)
此时问题变为:
minα12∑i=1l∑j=1lαiαjyiyjK(xiTxj)−∑k=1lαkmin_\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_kminα21i=1∑lj=1∑lαiαjyiyjK(xixixiTxjxjxj)−k=1∑lαk
0≤αi≤C, i=1,…,l0\leq\alpha_i\leq C,\ \ \ i=1,\ldots,l0≤αi≤C, i=1,…,l
∑i=1lαiyi=0\sum_{i=1}^l\alpha_iy_i=0i=1∑lαiyi=0
此时的预测方程为:
f(x)=∑i=1lαiyiK(xiTx)+bf(\pmb{x})=\sum_{i=1}^l\alpha_iy_iK(\pmb{x_i}^T\pmb{x})+bf(xxx)=i=1∑lαiyiK(xixixiTxxx)+b
4.3 常用的核函数
不是任何一个函数都也可以用来做核函数的。核函数必须满足Mercer条件:对任意的有限个样本的样本集,核矩阵半正定。
核函数 | 计算公式 |
---|---|
线性核 | K(xi,xj)=xiTxjK(\pmb{x_i},\pmb{x_j})=\pmb{x_i}^T\pmb{x_j}K(xixixi,xjxjxj)=xixixiTxjxjxj |
多项式核 | K(xi,xj)=(γxiTxj+b)dK(\pmb{x_i},\pmb{x_j})=(\gamma\pmb{x_i}^T\pmb{x_j}+b)^dK(xixixi,xjxjxj)=(γxixixiTxjxjxj+b)d |
高斯核 | K(xi,xj)=exp(−γ∥xi−xj∥2)K(\pmb{x_i},\pmb{x_j})=exp(-\gamma\parallel\pmb{x_i}-\pmb{x_j}\parallel^2)K(xixixi,xjxjxj)=exp(−γ∥xixixi−xjxjxj∥2) |
sigmoid核 | K(xi,xj)=tanh(γxiTxj+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算法
minα12∑i=1l∑j=1lαiαjyiyjK(xiTxj)−∑k=1lαkmin_\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_kminα21i=1∑lj=1∑lαiαjyiyjK(xixixiTxjxjxj)−k=1∑lαk
0≤αi≤C, i=1,…,l0\leq\alpha_i\leq C,\ \ \ i=1,\ldots,l0≤αi≤C, i=1,…,l
∑i=1lαiyi=0\sum_{i=1}^l\alpha_iy_i=0i=1∑lαiyi=0
上述问题是要求解lll个参数(α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 转换为二元函数
为了求解lll个参数,首先想到的是坐标上升的思路,例如求解α1\alpha_1α1,可以固定其他lll-1个参数,可以看成关于α1\alpha_1α1的一元函数求解,但是注意到上述问题的等式约束条∑i=1lαiyi=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的二元函数。
minα1,α2=12K11α12+12K22α22+y1y2K12α1α2−(α1+α2)+y1υ1α1+y2υ2α2+Constantmin_{\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+Constantminα1,α2=21K11α12+21K22α22+y1y2K12α1α2−(α1+α2)+y1υ1α1+y2υ2α2+Constant
Kij=K(xiTxj)K_{ij}=K(\pmb{x_i}^T\pmb{x_j})Kij=K(xixixiTxjxjxj)
υi=∑j=3lαjyjK(xiTxj),i=1,2\upsilon_i=\sum_{j=3}^l\alpha_jy_jK(\pmb{x_i}^T\pmb{x_j}),i=1,2υi=j=3∑lαjyjK(xixixiTxjxjxj),i=1,2
5.3 转为一元函数
由等式约束可得:
α1y1+α2y2=−∑i=3lαiyi=ξ\alpha_1y_1+\alpha_2y_2=-\sum_{i=3}^l\alpha_iy_i=\xiα1y1+α2y2=−i=3∑lαiyi=ξ
等式两边同乘以y1y_1y1,且y12=1y_1^2=1y12=1,结果为:
α1=(ξ−y2α2)y1\alpha1=(\xi-y_2\alpha_2)y_1α1=(ξ−y2α2)y1
将其带入二元函数方程,得到只关于参数α2\alpha_2α2的一元函数,由于常数项不影响目标函数的解,以下省略掉常数项,结果为:
minα2=12K11(ξ−y2α2)2+12K22α22+y2K12(ξ−y2α2)α2−(ξ−y2α2)y1−α2+υ1(ξ−y2α2)+y2υ2α2min_{\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_2minα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得:
(K11+K22−2K12)α2−K11ξy2+K12ξy2+y1y2−1−υ1y2+υ2y2=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+K22−2K12)α2−K11ξy2+K12ξy2+y1y2−1−υ1y2+υ2y2=0
由上式中假设求得了α2\alpha_2α2的解,带入下式可求得α1\alpha_1α1的解
α1y1+α2y2=−∑i=3lαiyi=ξ\alpha_1y_1+\alpha_2y_2=-\sum_{i=3}^l\alpha_iy_i=\xiα1y1+α2y2=−i=3∑lαiyi=ξ
分别记为α1new\alpha_1^{new}α1new,α2new\alpha_2^{new}α2new,优化前的值记为α1old\alpha_1^{old}α1old,α2old\alpha_2^{old}α2old,可得出:
α1oldy1+α2oldy2=−∑i=3lαiyi=α1newy1+α2newy2=ξ\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=3∑lαiyi=α1newy1+α2newy2=ξ
⇓\Downarrow⇓
ξ=α1oldy1+α2oldy2\xi=\alpha_1^{old}y_1+\alpha_2^{old}y_2ξ=α1oldy1+α2oldy2
改写υi\upsilon_iυi,得出:
υi=∑j=3lαjyjK(xiTxj),i=1,2\upsilon_i=\sum_{j=3}^l\alpha_jy_jK(\pmb{x_i}^T\pmb{x_j}),i=1,2υi=j=3∑lαjyjK(xixixiTxjxjxj),i=1,2
f(x1)=∑i=1lαiyiK(xiTx1)+bf(\pmb{x_1})=\sum_{i=1}^l\alpha_iy_iK(\pmb{x_i}^T\pmb{x_1})+bf(x1x1x1)=i=1∑lαiyiK(xixixiTx1x1x1)+b
f(x2)=∑i=1lαiyiK(xiTx2)+bf(\pmb{x_2})=\sum_{i=1}^l\alpha_iy_iK(\pmb{x_i}^T\pmb{x_2})+bf(x2x2x2)=i=1∑lαiyiK(xixixiTx2x2x2)+b
⇓\Downarrow⇓
υ1=f(x1)−∑j=12αjyjK(x1Txj)−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=1∑2αjyjK(x1x1x1Txjxjxj)−b
υ2=f(x2)−∑j=12αjyjK(x2Txj)−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=1∑2αjyjK(x2x2x2Txjxjxj)−b
将ξ\xiξ、υ1\upsilon_1υ1,υ2\upsilon_2υ2带入上式:
(K11+K22−2K12)α2new,unclipped=(K11+K22−2K12)α2old+y2[y2−y1+f(x1)−f(x2)](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+K22−2K12)α2new,unclipped=(K11+K22−2K12)α2old+y2[y2−y1+f(x1x1x1)−f(x2x2x2)]
定义EiE_iEi表示预测值与真实值之差:
Ei=f(xi)−yiE_i=f(\pmb{x_i})-yiEi=f(xixixi)−yi
记:
η=K11+K22−2K12\eta=K_{11}+K_{22}-2K_{12}η=K11+K22−2K12
得出:
α2new,unclipped=α2old+y2(E1−E2)η\alpha_2^{new,unclipped}=\alpha_2^{old}+\frac{y_2(E_1-E_2)}{\eta}α2new,unclipped=α2old+ηy2(E1−E2)
5.5 对原始解修剪
上述求出的解未考虑到约束条件:
0≤αi≤C, i=1,20\leq\alpha_i\leq C,\ \ \ i=1,20≤αi≤C, i=1,2
α1y1+α2y2=ξ\alpha_1y_1+\alpha_2y_2=\xiα1y1+α2y2=ξ
当y1≠y2y_1 \neq y_2y1=y2时,α1old−α1old=ξ\alpha_1^{old}-\alpha_1^{old}=\xiα1old−α1old=ξ,所以有L=max(0,−ξ)L=max(0,-\xi)L=max(0,−ξ),H=min(C,C−ξ)H=min(C,C-\xi)H=min(C,C−ξ),如下图所示:
当y1=y2y_1 = y_2y1=y2时,α1old+α1old=ξ\alpha_1^{old}+\alpha_1^{old}=\xiα1old+α1old=ξ,所以有L=max(0,C−ξ)L=max(0,C-\xi)L=max(0,C−ξ),H=min(C,ξ)H=min(C,\xi)H=min(C,ξ),如下图所示:
经过上述约束的修剪,最优解就可以记为α2new\alpha_2^{new}α2new:
α2new={Hα2new,unclipped>Hα2new,unclippedH≤α2new,unclipped≤LLα2new,unclipped<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,unclipped≤Lα2new,unclipped<L
5.6 求解α1new\alpha_1^{new}α1new
由于:
α1oldy1+α2oldy2=−∑i=3lαiyi=α1newy1+α2newy2\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=3∑lαiyi=α1newy1+α2newy2
得出:
α1new=α1old+y1y2(α2old−α2new)\alpha_1^{new}=\alpha_1^{old}+y_1y_2(\alpha_2^{old}-\alpha_2^{new})α1new=α1old+y1y2(α2old−α2new)
5.7 证明子问题是一个凸优化问题
二元函数为:
minα1,α2=12K11α12+12K22α22+y1y2K12α1α2−(α1+α2)+y1υ1α1+y2υ2α2+Constantmin_{\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+Constantminα1,α2=21K11α12+21K22α22+y1y2K12α1α2−(α1+α2)+y1υ1α1+y2υ2α2+Constant
υi=∑j=3lαjyjK(xiTxj),i=1,2\upsilon_i=\sum_{j=3}^l\alpha_jy_jK(\pmb{x_i}^T\pmb{x_j}),i=1,2υi=j=3∑lαjyjK(xixixiTxjxjxj),i=1,2
其Hession矩阵为:
[y1y1K11y1y2K12y2y1K21y2y2K22]
\left[
\begin{matrix}
y_1y_1K_{11} & y_1y_2K_{12}\\
y_2y_1K_{21} & y_2y_2K_{22}
\end{matrix}
\right]
[y1y1K11y2y1K21y1y2K12y2y2K22]
⇓\Downarrow⇓
[y1y1ϕ(x1)Tϕ(x1)y1y2ϕ(x1)Tϕ(x2)y2y1ϕ(x2)Tϕ(x1)y2y2ϕ(x2)Tϕ(x2)]
\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⇓
[y1ϕ(x1)Ty2ϕ(x2)T][y1ϕ(x1),y2ϕ(x2)]=AAT≥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)]=AAT≥0
其Hession矩阵为半正定矩阵,一定可以找到全局极小值点。
5.8 启发式选择变量
第一个变量的选择
首先遍历0<αi<C0<\alpha_i<C0<α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<C0<\alpha_i<C0<αi<C样本集中寻找,即在两个样本集上来回切换。直到遍历整个样本集后,没有违反KKT条件αi\alpha_iαi,然后退出。
如何判断样本点是否满足KKT条件将上面的第4部分。
违反KKT条件严重程度的量化方法有许多,下面介绍一种最为简单的:
li=∣yif(xi−1)∣l_i=|y_if(\pmb{x_i}-1)|li=∣yif(xixixi−1)∣
既计算样本点的预测值与标签值乘积与1的差值,具体操作如下:
当0<αi<C0<\alpha_i<C0<αi<C时候,如果满足KKT条件(yi(wTxi+b)=1y_i\left(\pmb{w}^T\pmb{x_i}+b\right)=1yi(wwwTxixixi+b)=1),li=0l_i=0li=0(此时违反KKT条件严重程度最低)。如果不满足KKT条件,按如上公式计算lil_ili值
当αi=0\alpha_i=0αi=0时候,如果满足KKT条件(yi(wTxi+b)≥1y_i\left(\pmb{w}^T\pmb{x_i}+b\right)\geq1yi(wwwTxixixi+b)≥1),li=0l_i=0li=0。如果不满足KKT条件,按如上公式计算lil_ili值
当αi=C\alpha_i=Cαi=C时候,如果满足KKT条件(yi(wTxi+b)≥1y_i\left(\pmb{w}^T\pmb{x_i}+b\right)\geq1yi(wwwTxixixi+b)≥1),li=0l_i=0li=0。如果不满足KKT条件,按如上公式计算lil_ili值
将所有样本点的lil_ili值缓存起来,lil_ili值最大的既为违反KKT条件最严重的样本点。
第二个变量的选择
假设找到的第一个变量记为αi\alpha_iαi,第二个变量αj\alpha_jαj的选择希望能使αj\alpha_jαj有较大的变化,由于αi\alpha_iαi的计算是依赖于∣Ei−Ej∣|E_i-E_j|∣Ei−Ej∣的,当∣Ei−Ej∣|E_i-E_j|∣Ei−Ej∣较大时,αi\alpha_iαi可以得到最大程度的更新(贪婪法),因此当EiE_iEi为正时,那么选择最小的EjE_jEj;如果EiE_iEi为负,选择最大EjE_jEj。通常将每个样本的EEE保存在一个列表中。
5.9 b的计算
每次完成对两个变量的优化后,要对bbb的值进行更新,因为bbb的值关系到f(x)f(x)f(x)的计算,即关系到下次优化时EiE_iEi的计算。对于任意支持向量(xs,ys\pmb{x_s},y_sxsxsxs,ys)都有,ysf(xs)=1y_sf(\pmb{x_s})=1ysf(xsxsxs)=1既:
ys(∑i∈SαiyixiTxs+b)=1y_s(\sum_{i\in S}\alpha_iy_i\pmb{x_i}^T\pmb{x_s}+b)=1ys(i∈S∑αiyixixixiTxsxsxs+b)=1
其中S={i∣0<αi<C,i=1,2,…,m}S=\{i|0<\alpha_i<C,i=1,2,\ldots,m\}S={i∣0<αi<C,i=1,2,…,m}为所有支持向量的下标集。理论上,可选任意支持向量并通过求解上式获得bbb,但现实任务中常采用一种更鲁棒的做法,使用所有支持向量求解的平均值:
b=1∣s∣∑s∈S(1ys−∑i∈SαiyixiTxs)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=∣s∣1s∈S∑(ys1−i∈S∑αiyixixixiTxsxsxs)