SVM

SVM


问题的提出

针对分类问题,我们经常会尝试构建一个线性判别边界,尝试将样本进行划分。

通过进行特征变换,支持向量机将在变换后的大的特征空间内产生超平面判别边界,对应在原空间为非线性边界。

假设我们有 N N N 个数据 ( x i , y i ) , x i ∈ R p , y i ∈ { − 1 , 1 } (x_i,y_i),x_i \in R^p,y_i \in \{-1,1\} (xi,yi),xiRp,yi{1,1}

定义超平面

{ x : f ( x ) = x T β + β 0 = 0 } \{x: f(x) = x^T\beta + \beta_0 = 0\} {x:f(x)=xTβ+β0=0}

导出的优化问题为:

max ⁡ β , β 0 , ∣ ∣ β ∣ ∣ = 1 C \max_{\beta,\beta_0,||\beta|| = 1} C β,β0,β=1maxC y i ( x i T β + β 0 ) ≥ C , i = 1 , . . . , N y_i(x_i^T\beta + \beta_0) \geq C,i = 1,...,N yi(xiTβ+β0)C,i=1,...,N

等价于

min ⁡ β ∣ ∣ β ∣ ∣ \min_{\beta} ||\beta|| βminβ y i ( x i T β + β 0 ) ≥ 1 , i = 1 , . . . , N y_i(x_i^T\beta + \beta_0) \geq 1,i = 1,...,N yi(xiTβ+β0)1,i=1,...,N
即此时 C = 1 / ∣ ∣ β ∣ ∣ C = 1/||\beta|| C=1/β

对应软间隔形式可以写为:

min ⁡ β ∣ ∣ β ∣ ∣ \min_{\beta} ||\beta|| βminβ y i ( x i T β + β 0 ) ≥ 1 − ξ i , ξ i ≥ 0 , ∑ ξ i ≤ K y_i(x_i^T\beta + \beta_0) \geq 1 - \xi_i,\xi_i \geq0,\sum\xi_i\leq K yi(xiTβ+β0)1ξi,ξi0,ξiK

关于 K K K 的理解:
ξ i \xi_i ξi代表了使得预测 f ( x i ) = β 0 + x i T β f(x_i) = \beta_0 + x_i^T\beta f(xi)=β0+xiTβ 出现在错误一侧的比例
那么 ∑ ξ i ≤ K \sum\xi_i\leq K ξiK 控制了出错的总比例

进一步可以写成等价的便于求解的形式,将 ∣ ∣ β ∣ ∣ ||\beta|| β 写成二次,同时将 ∑ ξ i ≤ K \sum\xi_i\leq K ξiK 写入优化目标:
min ⁡ β 1 2 ∣ ∣ β ∣ ∣ 2 + γ ∑ i = 1 N ξ i \min_{\beta} \frac{1}{2}||\beta||^2 + \gamma\sum_{i=1}^N \xi_i βmin21β2+γi=1Nξi y i ( x i T β + β 0 ) ≥ 1 − ξ i , ξ i ≥ 0 y_i(x_i^T\beta + \beta_0) \geq 1 - \xi_i,\xi_i \geq0 yi(xiTβ+β0)1ξi,ξi0


问题的求解

容易写出对应的拉格朗日函数

L = 1 2 ∣ ∣ β ∣ ∣ 2 + γ ∑ i = 1 N ξ i − ∑ i = 1 N α i [ y i ( x i T β + β 0 ) − ( 1 − ξ i ) ] − ∑ i = 1 N μ i ξ i L = \frac{1}{2}||\beta||^2 + \gamma \sum_{i=1}^N\xi_i - \sum_{i=1}^N\alpha_i[y_i(x_i^T\beta+\beta_0) - (1-\xi_i)] - \sum_{i=1}^N\mu_i\xi_i L=21β2+γi=1Nξii=1Nαi[yi(xiTβ+β0)(1ξi)]i=1Nμiξi

对参数 β , β 0 , ξ i \beta,\beta_0,\xi_i β,β0,ξi 求偏导,对其极小化

β = ∑ i = 1 N α i y i x i \beta = \sum_{i=1}^N\alpha_iy_ix_i β=i=1Nαiyixi 0 = ∑ i = 1 N α i y i 0 = \sum_{i=1}^N\alpha_iy_i 0=i=1Nαiyi α i = γ − μ i , ∀ i \alpha_i = \gamma - \mu_i,{\forall i} αi=γμi,i

我们可以得到对应的对偶函数:

L D = ∑ i = 1 N α i − 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j x i T x j L_D = \sum_{i=1}^N\alpha_i - \frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_jx_i^Tx_j LD=i=1Nαi21i=1Nj=1NαiαjyiyjxiTxj

对应加入 K K T KKT KKT 条件

α i [ y i ( x i T β + β 0 ) − ( 1 − ξ i ) ] = 0 \alpha_i[y_i(x_i^T \beta + \beta_0) - (1 - \xi_i)] = 0 αi[yi(xiTβ+β0)(1ξi)]=0 μ i ξ i = 0 \mu_i\xi_i = 0 μiξi=0 y i ( x i T β + β 0 ) − ( 1 − ξ i ) ≥ 0 y_i(x_i^T\beta+\beta_0) - (1-\xi_i) \geq 0 yi(xiTβ+β0)(1ξi)0

可以发现 β \beta β 的解的形式为:

β ^ = ∑ i = 1 N α ^ i y i x i \hat \beta = \sum_{i=1}^N\hat \alpha_iy_ix_i β^=i=1Nα^iyixi

同时由条件
α i [ y i ( x i T β + β 0 ) − ( 1 − ξ i ) ] = 0 \alpha_i[y_i(x_i^T \beta + \beta_0) - (1 - \xi_i)] = 0 αi[yi(xiTβ+β0)(1ξi)]=0
可以发现对于那些具有非零系数 α i \alpha_i αi的观测样本, β ^ \hat \beta β^ 只由这些样本表示,这些样本被称为支持向量。

这些样本中,除了部分在边缘处,即有 ξ i = 0 \xi_i = 0 ξi=0,则由 μ i ξ i = 0 , α i = γ − μ i \mu_i\xi_i = 0,\alpha_i = \gamma - \mu_i μiξi=0,αi=γμi,得出这些样本将会由 0 &lt; α ^ i &lt; γ 0&lt;\hat \alpha_i &lt; \gamma 0<α^i<γ 来刻画;其余的 ξ i &gt; 0 \xi_i &gt; 0 ξi>0 的样本,有 α ^ i = γ \hat \alpha_i = \gamma α^i=γ

求解
L D = ∑ i = 1 N α i − 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j x i T x j L_D = \sum_{i=1}^N\alpha_i - \frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_jx_i^Tx_j LD=i=1Nαi21i=1Nj=1NαiαjyiyjxiTxj C ≥ α i ≥ 0 , i = 1 , . . . , m C\geq\alpha_i \geq 0,i = 1,...,m Cαi0,i=1,...,m ∑ i = 1 m α i y i = 0 \sum_{i=1}^m\alpha_iy_i = 0 i=1mαiyi=0

对应的 K K T KKT KKT 条件为

{ α i ≥ 0 , μ i ≥ 0 , y i f ( x i ) − 1 + ξ i ≥ 0 , α i ( y i f ( x i ) − 1 + ξ i ) = 0 , ξ i ≥ 0 , μ i ξ i = 0. \begin{cases} \alpha_i \geq 0 ,\mu_i \geq 0, \\ y_if(x_i) -1+\xi_i \geq 0,\\ \alpha_i(y_if(x_i) -1+\xi_i) = 0,\\ \xi_i \geq 0,\mu_i\xi_i = 0. \end{cases} αi0,μi0,yif(xi)1+ξi0,αi(yif(xi)1+ξi)=0,ξi0,μiξi=0.

其中 f ( x i ) = x i T β + β 0 f(x_i) = x_i^T \beta + \beta_0 f(xi)=xiTβ+β0

是一个较为简单的凸二次规划问题。可以使用标准的求解方式进行求解。

核形式:

L D = ∑ i = 1 N α i − 1 2 ∑ i = 1 N ∑ j = 1 N α i α j y i y j k ( x i , x j ) L_D = \sum_{i=1}^N\alpha_i - \frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_jk(x_i,x_j) LD=i=1Nαi21i=1Nj=1Nαiαjyiyjk(xi,xj) C ≥ α i ≥ 0 , i = 1 , . . . , m C\geq\alpha_i \geq 0,i = 1,...,m Cαi0,i=1,...,m ∑ i = 1 m α i y i = 0 \sum_{i=1}^m\alpha_iy_i = 0 i=1mαiyi=0


S M O SMO SMO 算法

我们容易发现, S V M SVM SVM 的最终优化目标是找到一组 α \alpha α 以及 b b b

S M O SMO SMO 算法采用了一种分而治之的想法,每一次只优化其中两个参数 α i , α j . \alpha_i,\alpha_j. αi,αj. 至于一次优化两个参数的原因为约束 ∑ i = 1 m α i y i = 0 \sum_{i=1}^m\alpha_iy_i = 0 i=1mαiyi=0
的存在使得我们一次最少要同时优化两个参数。

下面给出 S M O SMO SMO 的具体细节:

当我们只考虑 α 1 , α 2 \alpha_1,\alpha_2 α1,α2 时,优化目标就变成

m i n 1 2 K 11 α 1 2 + 1 2 K 22 α 2 2 + y 1 y 2 K 12 α 1 α 2 − ( α 1 + α 2 ) min \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) min21K11α12+21K22α22+y1y2K12α1α2(α1+α2) + α 1 y 1 ∑ i ≠ 1 , 2 N α i y i K 1 i + α 2 y 2 ∑ j ≠ 1 , 2 N α j y j K 2 j + c +\alpha_1y_1\sum_{i \neq 1,2}^N\alpha_iy_iK_{1i}+\alpha_2y_2\sum_{j \neq 1,2}^N\alpha_jy_jK_{2j}+c +α1y1i̸=1,2NαiyiK1i+α2y2j̸=1,2NαjyjK2j+c

其中 c c c 是一个与 α 1 , α 2 \alpha_1,\alpha_2 α1,α2 无关的常数, K i j K_{ij} Kij 代表 K ( x i , x j ) K(x_i,x_j) K(xi,xj).

由约束条件可以得到

α 1 y 1 + α 2 y 2 = C ⇒ α 1 = ( C − α 2 y 2 ) y 1 \alpha_1y_1+\alpha_2y_2 = C \Rightarrow \alpha_1 = (C - \alpha_2y_2)y_1 α1y1+α2y2=Cα1=(Cα2y2)y1

代入上式可得

m i n   l ( α 2 ) = 1 2 K 11 ( C − α 2 y 2 ) 2 + 1 2 K 22 α 2 2 + y 2 K 12 α 2 ( C − α 2 y 2 ) min\ l(\alpha_2) = \frac{1}{2}K_{11}(C-\alpha_2y_2)^2+\frac{1}{2}K_{22}\alpha_2^2+y_2K_{12}\alpha_2(C - \alpha_2y_2) min l(α2)=21K11(Cα2y2)2+21K22α22+y2K12α2(Cα2y2) − y 1 ( C − α 2 y 2 ) − α 2 + ( C − α 2 y 2 ) ∑ i ≠ 1 , 2 N α i y i K 1 i + α 2 y 2 ∑ j ≠ 1 , 2 N α j y j K 2 j + c - y_1(C - \alpha_2y_2) - \alpha_2 + (C - \alpha_2y_2)\sum_{i \neq{1,2}}^N\alpha_iy_iK_{1i}+\alpha_2y_2\sum_{j \neq 1,2}^N\alpha_jy_jK_{2j}+c y1(Cα2y2)α2+(Cα2y2)i̸=1,2NαiyiK1i+α2y2j̸=1,2NαjyjK2j+c

上式对 α 2 \alpha_2 α2 求偏导可以得到

∂ l ( α 2 ) ∂ α 2 = ( K 11 + K 22 − 2 K 12 ) α 2 − K 11 C y 2 + K 12 C y 2 + y 1 y 2 \frac{\partial l(\alpha_2)}{\partial\alpha_2} = (K_{11}+K_{22} - 2K_{12})\alpha_2 - K_{11}Cy_2+K_{12}Cy_2 + y_1y_2 α2l(α2)=(K11+K222K12)α2K11Cy2+K12Cy2+y1y2 − 1 − y 2 ∑ i ≠ 1 , 2 N α i y i K 1 i + y 2 ∑ j ≠ 1 , 2 N α j y j K 2 j - 1 - y_2\sum_{i \neq 1,2}^N\alpha_iy_iK_{1i}+y_2\sum_{j \neq 1,2}^N\alpha_jy_jK_{2j} 1y2i̸=1,2NαiyiK1i+y2j̸=1,2NαjyjK2j

由约束条件可以得到:

{ α 1 o l d y 1 + α 2 o l d y 2 = C ∑ i ≠ 1 , 2 N α i y i K 1 i = f ( x 1 ) − y 1 α 1 K 11 − y 2 α 2 K 12 − b ∑ j ≠ 1 , 2 N α j y j K 2 j = f ( x 2 ) − y 1 α 1 K 21 − y 2 α 2 K 22 − b \begin{cases} \alpha_1^{old}y_1 + \alpha_2^{old}y_2 = C\\ \sum\nolimits_{i \neq1,2}^N\alpha_iy_iK_{1i} = f(x_1) - y_1\alpha_1K_{11} - y_2\alpha_2K_{12} - b\\ \sum\nolimits_{j \neq1,2}^N\alpha_jy_jK_{2j} = f(x_2) - y_1\alpha_1K_{21} - y_2\alpha_2K_{22} - b \end{cases} α1oldy1+α2oldy2=Ci̸=1,2NαiyiK1i=f(x1)y1α1K11y2α2K12bj̸=1,2NαjyjK2j=f(x2)y1α1K21y2α2K22b

代入上式化简后可得

α 2 n e w = α 2 o l d + y 2 { [ f ( x 1 ) − y 1 ] − [ f ( x 2 ) − y 2 ] } K 11 + K 22 − 2 K 12 \alpha_2^{new} = \alpha_2^{old} + \frac{y_2\{[f(x_1) - y_1] - [f(x_2) - y_2]\}}{K_{11}+K_{22}-2K_{12}} α2new=α2old+K11+K222K12y2{[f(x1)y1][f(x2)y2]}

我们得到了更新 α 2 \alpha_2 α2 的主要公式,但是由于 α 2 \alpha_2 α2 有取值范围 ( 0 , C ) (0,C) (0,C) ,所以需要进行一定的修改

α 1 y 1 + α 2 y 2 = k \alpha_1y_1+\alpha_2y_2 = k α1y1+α2y2=k

同时 y y y 的取值就只有 1 , − 1 1,-1 1,1,所以容易讨论出最终的更新公式为

{ α 2 = h i g h , α 2 n e w ≥ h i g h ; α 2 = l o w , α 2 n e w ≤ l o w ; α 2 = α 2 n e w , l o w &lt; α 2 n e w &lt; h i g h \begin{cases} \alpha_2 = high, &amp; \alpha_2^{new} \geq high ;\\ \alpha_2 = low, &amp; \alpha_2^{new} \leq low ;\\ \alpha_2 = \alpha_2^{new}, &amp; low &lt; \alpha_2^{new}&lt; high\\ \end{cases} α2=high,α2=low,α2=α2new,α2newhigh;α2newlow;low<α2new<high

其中
{ l o w = m a x ( 0 , − k ) h i g h = m i n ( C , C − k ) \begin{cases} low = max(0,- k)\\ high = min(C,C - k) \end{cases} {low=max(0,k)high=min(C,Ck)

对应 α 1 \alpha_1 α1 的更新公式为

α 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)

接下来给出 b b b 的更新公式

{ b 1 n e w = − E 1 − y 1 K 11 ( α 1 n e w − α 1 o l d ) − y 2 K 21 ( α 2 n e w − α 2 o l d ) + b o l d , b 2 n e w = − E 2 − y 1 K 12 ( α 1 n e w − α 1 o l d ) − y 2 K 22 ( α 2 n e w − α 2 o l d ) + b o l d , b n e w = b 1 n e w + b 2 n e w 2 \begin{cases} b_1^{new} = -E_1 - y_1K_{11}(\alpha_1^{new} - \alpha_1^{old}) - y_2K_{21}(\alpha_2^{new} - \alpha_2^{old}) + b^{old},\\ b_2^{new} = -E_2 - y_1K_{12}(\alpha_1^{new} - \alpha_1^{old}) - y_2K_{22}(\alpha_2^{new} - \alpha_2^{old}) + b^{old},\\ b_{new} = \frac{b_1^{new}+b_2^{new}}{2}\\ \end{cases} b1new=E1y1K11(α1newα1old)y2K21(α2newα2old)+bold,b2new=E2y1K12(α1newα1old)y2K22(α2newα2old)+bold,bnew=2b1new+b2new

其中

E i = f ( x i ) − y i E_i = f(x_i) - y_i Ei=f(xi)yi

为预测误差

那么如何选取 α 1 , α 2 \alpha_1,\alpha_2 α1,α2 ?

在已经选取了 α 1 \alpha_1 α1 的条件下,我们通过选取与 α 1 \alpha_1 α1 对应的预测误差值 差异最大的预测误差对应的样本,即

arg ⁡ j ≠ i max ⁡ ∣ E j − E i ∣ \arg\limits_{j \neq i}\max|E_j - E_i| j̸=iargmaxEjEi

第一个 α \alpha α 的选取规则可以为:

初始选择为循环选择所有 α i \alpha_i αi ,然后每一次循环优化不为0的 α i \alpha_i αi 即可。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值