机器学习——支持向量机(SVM)

1. SVM基本型

请添加图片描述

分离超平面: ω T x + b = 0 \omega^Tx+b=0 ωTx+b=0
间隔边界: ω T x + b = ± 1 \omega^Tx+b=±1 ωTx+b=±1
支持向量: y i ( ω T x i + b ) = 1 y_i(\omega^Tx_i+b)=1 yi(ωTxi+b)=1

原始问题

m i n ω , b 1 2 ∣ ∣ ω ∣ ∣ 2 \underset{\omega,b}{min} \quad \frac{1}{2}||\omega||^2 ω,bmin21ω2 s . t . 1 − y i ( ω T x i + b ) ≤ 0 , i = 1 , 2 , . . . , n s.t. \quad 1-y_i(\omega^Tx_i+b)≤0, \quad i=1,2,...,n s.t.1yi(ωTxi+b)0,i=1,2,...,n

变量: ω = ( ω 1 , ω 2 , . . . , ω d ) T , b \omega=(\omega_1,\omega_2,...,\omega_d)^T,b ω=(ω1,ω2,...,ωd)T,b
约束: n n n个不等式约束

模型推导:
样本点 x x x到超平面 ( ω , b ) (\omega,b) (ω,b)的距离 d = ∣ ω T x + b ∣ ∣ ∣ ω ∣ ∣ d=\frac{|\omega^Tx+b|}{||\omega||} d=ωωTx+b,我们可以对 ( ω , b ) (\omega,b) (ω,b)进行适当缩放,最终使得在支持向量 x 0 x_0 x0上有 ∣ ω T x 0 + b ∣ = ± 1 |\omega^Tx_0+b|=±1 ωTx0+b=±1,此时支持向量到超平面的距离为 1 ∣ ∣ ω ∣ ∣ \frac{1}{||\omega||} ω1
间隔定义为两个异类支持向量到超平面的距离之和,即 2 ∣ ∣ ω ∣ ∣ \frac{2}{||\omega||} ω2,优化目标转化为最大化 2 ∣ ∣ ω ∣ ∣ \frac{2}{||\omega||} ω2,也就是最小化 ∣ ∣ ω ∣ ∣ ||\omega|| ω ∣ ∣ ω ∣ ∣ 2 ||\omega||^2 ω2,此处带有 1 2 \frac{1}{2} 21的原因是便于后续求导。
约束条件的意义在于所有样本点都需要满足该硬性条件,我愿称之为“硬间隔”。

对偶问题

m i n λ 1 2 Σ i = 1 n Σ j = 1 n y i y j x i T x j λ i λ j − Σ i = 1 n λ i \underset{\lambda}{min} \quad \frac{1}{2}\Sigma_{i=1}^n\Sigma_{j=1}^ny_iy_jx_i^Tx_j\lambda_i\lambda_j-\Sigma_{i=1}^n\lambda_i λmin21Σi=1nΣj=1nyiyjxiTxjλiλjΣi=1nλi s . t . Σ i = 1 n λ i y i = 0 , s.t. \quad \Sigma_{i=1}^n\lambda_iy_i=0, s.t.Σi=1nλiyi=0, λ i ≥ 0 , i = 1 , 2 , . . . , n \lambda_i≥0, \quad i=1,2,...,n λi0,i=1,2,...,n

模型推导:
采用拉格朗日乘子法,定义拉格朗日函数: L ( ω , b , α ) = 1 2 ∣ ∣ ω ∣ ∣ 2 + Σ i = 1 n λ i ( 1 − y i ( ω T x i + b ) ) , λ i ≥ 0 L(\omega,b,\alpha)=\frac{1}{2}||\omega||^2+\Sigma_{i=1}^n\lambda_i(1-y_i(\omega^Tx_i+b)), \quad \lambda_i≥0 L(ω,b,α)=21ω2+Σi=1nλi(1yi(ωTxi+b)),λi0 L ( ω , b , α ) L(\omega,b,\alpha) L(ω,b,α) ω \omega ω b b b的偏导为0可得: ω = Σ i = 1 n λ i y i x i \omega=\Sigma_{i=1}^n\lambda_iy_ix_i ω=Σi=1nλiyixi 0 = Σ i = 1 n λ i y i 0=\Sigma_{i=1}^n\lambda_iy_i 0=Σi=1nλiyi ω \omega ω代入拉格朗日函数中即得对偶模型。

KKT条件

原始问题为极大极小问题(推导见下),即: m i n ω , b m a x λ ≥ 0 L ( ω , b , α ) \underset{\omega,b}{min}\underset{\lambda≥0}{max}L(\omega,b,\alpha) ω,bminλ0maxL(ω,b,α)
而对偶问题为极小极大问题(由定义),即: m a x λ ≥ 0 m i n ω , b L ( ω , b , α ) \underset{\lambda≥0}{max} \underset{\omega,b}{min}L(\omega,b,\alpha) λ0maxω,bminL(ω,b,α)

请添加图片描述请添加图片描述

原问题为凸优化问题,当 f ( x ) , g ( x ) f(x),g(x) f(x),g(x)为凸函数,且可行域中至少有一点使不等式约束严格成立时,强对偶性成立,对偶问题等价于原问题。即需要满足 K K T KKT KKT条件: { ω = Σ i = 1 n λ i y i x i , 0 = Σ i = 1 n λ i y i λ i ≥ 0 λ i [ 1 − y i ( ω T x i + b ) ] = 0 1 − y i ( ω T x i + b ) ≤ 0 \begin{cases} \omega=\Sigma_{i=1}^n\lambda_iy_ix_i, \quad 0=\Sigma_{i=1}^n\lambda_iy_i\\ \lambda_i≥0\\ \lambda_i[1-y_i(\omega^Tx_i+b)]=0\\ 1-y_i(\omega^Tx_i+b)≤0\\ \end{cases} ω=Σi=1nλiyixi,0=Σi=1nλiyiλi0λi[1yi(ωTxi+b)]=01yi(ωTxi+b)0

KKT条件推导如下:
请添加图片描述
当约束不起作用时,极小值在可行域内某处取得,而不在边界处取得,故此时 g ( x ∗ ) < 0 g(x^*)<0 g(x)<0 g ( x ) g(x) g(x)不起作用,故 λ = 0 \lambda=0 λ=0,由极小值点梯度为零知 ∇ x f ( x ∗ ) = 0 \nabla_xf(x^*)=0 xf(x)=0
当约束起作用时,极小值在可行域边界处取得,故此时 g ( x ∗ ) = 0 g(x^*)=0 g(x)=0,易知 λ > 0 \lambda>0 λ>0,故由极小值点梯度为零知 − ∇ x f ( x ∗ ) = λ ∇ x f ( x ∗ ) -\nabla_xf(x^*)=\lambda\nabla_xf(x^*) xf(x)=λxf(x)
请添加图片描述
于是我们得到KKT条件,即 x ∗ x^* x是局部最小的等价条件为,存在唯一的 λ ∗ \lambda^* λ,使得: { ∇ x L ( x ∗ , λ ∗ ) = 0 λ ∗ ≥ 0 λ ∗ g ( x ∗ ) = 0 g ( x ∗ ) ≤ 0 \begin{cases} \nabla_xL(x^*,\lambda^*)=0\\ \lambda^*≥0\\ \lambda^*g(x^*)=0\\ g(x*)≤0 \end{cases} xL(x,λ)=0λ0λg(x)=0g(x)0

支持向量的探讨

假设已知支持向量 ( x s , y s ) (x_s,y_s) (xs,ys),易知 y s ( ω T x s + b ) − 1 = 0 y_s(\omega^Tx_s+b)-1=0 ys(ωTxs+b)1=0,又已知 ω = Σ i = 1 n λ i y i x i \omega=\Sigma_{i=1}^n\lambda_iy_ix_i ω=Σi=1nλiyixi,故 b = y s − ω T x s = y s − Σ i = 1 n λ i y i x i T x s b=y_s-\omega^Tx_s=y_s-\Sigma_{i=1}^n\lambda_iy_ix_i^Tx_s b=ysωTxs=ysΣi=1nλiyixiTxs

由上述推导知:当 λ ∗ = 0 \lambda^*=0 λ=0时, g ( x ∗ ) < 0 g(x^*)<0 g(x)<0;当 λ ∗ > 0 \lambda^*>0 λ>0时, g ( x ∗ ) = 0 g(x^*)=0 g(x)=0。也就是说, λ ∗ = 0 \lambda^*=0 λ=0 g ( x ∗ ) = 0 g(x^*)=0 g(x)=0二者必居其一。
由KKT条件知: λ i [ 1 − y i ( ω T x i + b ) ] = 0 \lambda_i[1-y_i(\omega^Tx_i+b)]=0 λi[1yi(ωTxi+b)]=0,因此满足 λ i = 0 \lambda_i=0 λi=0的样本点不出现在拉格朗日函数中,不影响模型求解;满足 λ i > 0 \lambda_i>0 λi>0的样本点必定满足 y i ( ω T x i + b ) = 1 y_i(\omega^Tx_i+b)=1 yi(ωTxi+b)=1,即一定是支持向量。
因此,只有支持向量对于模型求解才是有意义的。

求解分类平面

已知 ω = Σ i = 1 n λ i y i x i \omega=\Sigma_{i=1}^n\lambda_iy_ix_i ω=Σi=1nλiyixi b = y s − ω T x s = y s − Σ i = 1 n λ i y i x i T x s b=y_s-\omega^Tx_s=y_s-\Sigma_{i=1}^n\lambda_iy_ix_i^Tx_s b=ysωTxs=ysΣi=1nλiyixiTxs,欲求 f ( x ) = ω T x + b f(x)=\omega^Tx+b f(x)=ωTx+b
只需根据对偶模型求解各个拉格朗日乘子 λ i \lambda_i λi,即代入 x i , y i x_i,y_i xi,yi计算目标函数并进行求解即可: m i n λ 1 2 Σ i = 1 n Σ j = 1 n y i y j x i T x j λ i λ j − Σ i = 1 n λ i \underset{\lambda}{min} \quad \frac{1}{2}\Sigma_{i=1}^n\Sigma_{j=1}^ny_iy_jx_i^Tx_j\lambda_i\lambda_j-\Sigma_{i=1}^n\lambda_i λmin21Σi=1nΣj=1nyiyjxiTxjλiλjΣi=1nλi s . t . Σ i = 1 n λ i y i = 0 , s.t. \quad \Sigma_{i=1}^n\lambda_iy_i=0, s.t.Σi=1nλiyi=0, λ i ≥ 0 , i = 1 , 2 , . . . , n \lambda_i≥0, \quad i=1,2,...,n λi0,i=1,2,...,n

2. 软间隔SVM

请添加图片描述

支持向量:可以在间隔边界上、间隔边界间,甚至可以是错分类点。

软间隔SVM

m i n ω , b , ξ i 1 2 ∣ ∣ ω ∣ ∣ 2 + C Σ i = 1 n ξ i \underset{\omega,b,ξ_i}{min} \quad \frac{1}{2}||\omega||^2+C\Sigma_{i=1}^nξ_i ω,b,ξimin21ω2+CΣi=1nξi s . t . y i ( ω T x i + b ) ≥ 1 − ξ i s.t. \quad y_i(\omega^Tx_i+b)≥1-ξ_i s.t.yi(ωTxi+b)1ξi ξ i ≥ 0 , i = 1 , 2 , . . . , n ξ_i≥0, \quad i=1,2,...,n ξi0,i=1,2,...,n其中, ξ i ξ_i ξi是松弛变量。

变量: ω , b , ξ i \omega,b,ξ_i ω,b,ξi
约束: 2 n 2n 2n个不等式约束

对偶问题

m i n λ 1 2 Σ i = 1 n Σ j = 1 n y i y j x i T x j λ i λ j − Σ i = 1 n λ i \underset{\lambda}{min} \quad \frac{1}{2}\Sigma_{i=1}^n\Sigma_{j=1}^ny_iy_jx_i^Tx_j\lambda_i\lambda_j-\Sigma_{i=1}^n\lambda_i λmin21Σi=1nΣj=1nyiyjxiTxjλiλjΣi=1nλi s . t . Σ i = 1 n α i y i = 0 , s.t. \quad \Sigma_{i=1}^n\alpha_iy_i=0, s.t.Σi=1nαiyi=0, 0 ≤ λ i ≤ C , i = 1 , 2 , . . . , n 0≤\lambda_i≤C, \quad i=1,2,...,n 0λiC,i=1,2,...,n

变量: λ = ( λ 1 , λ 2 , . . . , λ n ) T \lambda=(\lambda_1,\lambda_2,...,\lambda_n)^T λ=(λ1,λ2,...,λn)T
约束:1个等式约束, n n n个不等式约束

因此可以看出,软间隔SVM与SVM基本型的目标函数一致,约束条件仅在拉格朗日乘子的取值范围处有区别。当 C → + ∞ C→+∞ C+时,软间隔SVM退化为SVM基本型。

模型推导:
采用拉格朗日乘子法,定义拉格朗日函数: L ( ω , b , α , ξ , μ ) = 1 2 ∣ ∣ ω ∣ ∣ 2 + C Σ i = 1 n ξ i + Σ i = 1 n λ i ( 1 − ξ i − y i ( ω T x i + b ) ) − Σ i = 1 n μ i ξ i , λ i ≥ 0 L(\omega,b,\alpha,ξ,μ)=\frac{1}{2}||\omega||^2+C\Sigma_{i=1}^nξ_i+\Sigma_{i=1}^n\lambda_i(1-ξ_i-y_i(\omega^Tx_i+b))-\Sigma_{i=1}^nμ_iξ_i, \quad \lambda_i≥0 L(ω,b,α,ξ,μ)=21ω2+CΣi=1nξi+Σi=1nλi(1ξiyi(ωTxi+b))Σi=1nμiξi,λi0 L ( ω , b , α ) L(\omega,b,\alpha) L(ω,b,α) ω \omega ω b b b的偏导为0可得: ω = Σ i = 1 n λ i y i x i \omega=\Sigma_{i=1}^n\lambda_iy_ix_i ω=Σi=1nλiyixi 0 = Σ i = 1 n λ i y i 0=\Sigma_{i=1}^n\lambda_iy_i 0=Σi=1nλiyi C = λ i + μ i C=\lambda_i+μ_i C=λi+μi ω \omega ω代入拉格朗日函数中即得对偶模型。

KKT条件

同理,要使原始问题与对偶问题等价,需要满足KKT条件: { ω = Σ i = 1 n λ i y i x i , 0 = Σ i = 1 n λ i y i , C = λ i + μ i λ i ≥ 0 , μ i ≥ 0 λ i ( 1 − ξ i − y i ( ω T x i + b ) ) = 0 , μ i ξ i = 0 1 − y i ( ω T x i + b ) ≤ 0 , − ξ i ≤ 0 \begin{cases} \omega=\Sigma_{i=1}^n\lambda_iy_ix_i, \quad 0=\Sigma_{i=1}^n\lambda_iy_i, \quad C=\lambda_i+μ_i\\ \lambda_i≥0, \quad μ_i≥0\\ \lambda_i(1-ξ_i-y_i(\omega^Tx_i+b))=0, \quad μ_iξ_i=0\\ 1-y_i(\omega^Tx_i+b)≤0, \quad -ξ_i≤0\\ \end{cases} ω=Σi=1nλiyixi,0=Σi=1nλiyi,C=λi+μiλi0,μi0λi(1ξiyi(ωTxi+b))=0,μiξi=01yi(ωTxi+b)0,ξi0
可以简化表示为(去掉参数 μ μ μ): { ω = Σ i = 1 n λ i y i x i , 0 = Σ i = 1 n λ i y i 0 ≤ λ i ≤ C λ i ( 1 − ξ i − y i ( ω T x i + b ) ) = 0 , ( C − λ i ) ξ i = 0 1 − y i ( ω T x i + b ) ≤ 0 , − ξ i ≤ 0 \begin{cases} \omega=\Sigma_{i=1}^n\lambda_iy_ix_i, \quad 0=\Sigma_{i=1}^n\lambda_iy_i\\ 0≤\lambda_i≤C\\ \lambda_i(1-ξ_i-y_i(\omega^Tx_i+b))=0, \quad (C-\lambda_i)ξ_i=0\\ 1-y_i(\omega^Tx_i+b)≤0, \quad -ξ_i≤0\\ \end{cases} ω=Σi=1nλiyixi,0=Σi=1nλiyi0λiCλi(1ξiyi(ωTxi+b))=0,(Cλi)ξi=01yi(ωTxi+b)0,ξi0

支持向量的探讨

同理,满足 λ i > 0 \lambda_i>0 λi>0的样本点都是支持向量,支持向量满足 y i ( ω T x i + b ) = 1 − ξ i y_i(\omega^Tx_i+b)=1-ξ_i yi(ωTxi+b)=1ξi

  • λ i < C \lambda_i<C λi<C时,由 C = λ i + μ i C=\lambda_i+μ_i C=λi+μi μ i > 0 μ_i>0 μi>0,再由 μ i ξ i = 0 μ_iξ_i=0 μiξi=0 ξ i = 0 ξ_i=0 ξi=0,因此 x i x_i xi落在间隔边界上;
  • λ i = C \lambda_i=C λi=C时,若 0 < ξ i < 1 0<ξ_i<1 0<ξi<1,则 x i x_i xi落在间隔边界和超平面之间;
  • λ i = C \lambda_i=C λi=C时,若 ξ i = 1 ξ_i=1 ξi=1,则 x i x_i xi落在超平面上;
  • λ i = C \lambda_i=C λi=C时,若 ξ i > 1 ξ_i>1 ξi>1,则 x i x_i xi落在超平面另一侧。

优化目标

由软间隔SVM的约束条件: y i ( ω T x i + b ) ≥ 1 − ξ i , ξ i ≥ 0 , i = 1 , 2 , . . . , n y_i(\omega^Tx_i+b)≥1-ξ_i, \quad ξ_i≥0, \quad i=1,2,...,n yi(ωTxi+b)1ξi,ξi0,i=1,2,...,n,容易得到: ξ i ≥ m a x ( 0 , 1 − y i ( ω T x i + b ) ) ξ_i≥max(0,1-y_i(\omega^Tx_i+b)) ξimax(0,1yi(ωTxi+b))
因此软间隔SVM的优化目标为: m i n ω , b 1 2 ∣ ∣ ω ∣ ∣ 2 + C Σ i = 1 n m a x ( 0 , 1 − y i ( ω T x i + b ) ) \underset{\omega,b}{min} \quad \frac{1}{2}||\omega||^2+C\Sigma_{i=1}^nmax(0,1-y_i(\omega^Tx_i+b)) ω,bmin21ω2+CΣi=1nmax(0,1yi(ωTxi+b))而hinge损失函数为: l o s s h i n g e ( z ) = m a x ( 0 , 1 − z ) loss_{hinge}(z)=max(0,1-z) losshinge(z)=max(0,1z),因此软间隔SVM是最小化hinge损失函数的正则化模型。
其中, 1 2 ∣ ∣ ω ∣ ∣ 2 \frac{1}{2}||\omega||^2 21ω2是正则项(提供模型先验信息,防止过拟合), Σ i = 1 n m a x ( 0 , 1 − y i ( ω T x i + b ) ) \Sigma_{i=1}^nmax(0,1-y_i(\omega^Tx_i+b)) Σi=1nmax(0,1yi(ωTxi+b))是误差项(衡量预测值与真实值的误差), C C C是正则参数(用于平衡其余两项的大小)。

监督学习任务模型: m i n f Ω ( f ) + C Σ i = 1 n l o s s ( f ( x i ) , y i ) \underset{f}{min} \quad \Omega(f)+C\Sigma_{i=1}^nloss(f(x_i),y_i) fminΩ(f)+CΣi=1nloss(f(xi),yi)其中, Ω ( f ) \Omega(f) Ω(f)称为“结构风险”(正则项), Σ i = 1 n l o s s ( f ( x i ) , y i ) \Sigma_{i=1}^nloss(f(x_i),y_i) Σi=1nloss(f(xi),yi)称为“经验风险”(误差项), C C C用于对二者进行折中(正则参数)。
L p L_p Lp范数是常用的正则化项: L 0 L_0 L0范数 ∣ ∣ ω ∣ ∣ 0 ||\omega||_0 ω0代表 ω \omega ω中非零元的个数; L 1 L_1 L1范数 ∣ ∣ ω ∣ ∣ 1 ||\omega||_1 ω1代表各元素绝对值之和 Σ i ∣ ω i ∣ \Sigma_i|\omega_i| Σiωi L 2 L_2 L2范数 ∣ ∣ ω ∣ ∣ 2 ||\omega||_2 ω2代表各元素平方和开根号 Σ i ω i 2 \sqrt{\Sigma_i\omega_i^2} Σiωi2

模型求解

  • 求出内积矩阵 K K K,其中 K i j = x i T x j K_{ij}=x_i^Tx_j Kij=xiTxj
  • 应用SMO算法求解对偶模型。

3. 核化SVM

基本思想:对于非线性可分的数据,尝试找到一个非线性映射𝝓,使得数据在新的空间(通常为高维空间)是线性可分的,然后再使用线性SVM进行分类。

核化SVM

m i n ω , b 1 2 ∣ ∣ ω ∣ ∣ 2 \underset{\omega,b}{min} \quad \frac{1}{2}||\omega||^2 ω,bmin21ω2 s . t . 1 − y i ( ω T ϕ ( x i ) + b ) ≤ 0 , i = 1 , 2 , . . . , n s.t. \quad 1-y_i(\omega^Tϕ(x_i)+b)≤0, \quad i=1,2,...,n s.t.1yi(ωTϕ(xi)+b)0,i=1,2,...,n

对偶问题

m i n λ 1 2 Σ i = 1 n Σ j = 1 n y i y j ϕ ( x i ) T ϕ ( x j ) λ i λ j − Σ i = 1 n λ i \underset{\lambda}{min} \quad \frac{1}{2}\Sigma_{i=1}^n\Sigma_{j=1}^ny_iy_jϕ(x_i)^Tϕ(x_j)\lambda_i\lambda_j-\Sigma_{i=1}^n\lambda_i λmin21Σi=1nΣj=1nyiyjϕ(xi)Tϕ(xj)λiλjΣi=1nλi s . t . Σ i = 1 n λ i y i = 0 , s.t. \quad \Sigma_{i=1}^n\lambda_iy_i=0, s.t.Σi=1nλiyi=0, λ i ≥ 0 , i = 1 , 2 , . . . , n \lambda_i≥0, \quad i=1,2,...,n λi0,i=1,2,...,n引入核函数 κ ( x i , x j ) = ϕ ( x i ) T ϕ ( x j ) κ(x_i,x_j)=ϕ(x_i)^Tϕ(x_j) κ(xi,xj)=ϕ(xi)Tϕ(xj),将 ϕ ϕ ϕ隐式表示出来,并使内积计算变得容易。
请添加图片描述
请添加图片描述
请添加图片描述

对偶问题转化为: m i n λ 1 2 Σ i = 1 n Σ j = 1 n y i y j κ ( x i , x j ) λ i λ j − Σ i = 1 n λ i \underset{\lambda}{min} \quad \frac{1}{2}\Sigma_{i=1}^n\Sigma_{j=1}^ny_iy_jκ(x_i,x_j)\lambda_i\lambda_j-\Sigma_{i=1}^n\lambda_i λmin21Σi=1nΣj=1nyiyjκ(xi,xj)λiλjΣi=1nλi s . t . Σ i = 1 n λ i y i = 0 , s.t. \quad \Sigma_{i=1}^n\lambda_iy_i=0, s.t.Σi=1nλiyi=0, λ i ≥ 0 , i = 1 , 2 , . . . , n \lambda_i≥0, \quad i=1,2,...,n λi0,i=1,2,...,n当然,其中 κ ( x i , x j ) κ(x_i,x_j) κ(xi,xj)等价于 K i j K_{ij} Kij
分离超平面为: f ( x ) = ω T ϕ ( x ) + b = Σ i = 1 n λ i y i ϕ ( x i ) ϕ ( x ) + b = Σ i = 1 n λ i y i κ ( x , x i ) + b f(x)=\omega^Tϕ(x)+b=\Sigma_{i=1}^n\lambda_iy_iϕ(x_i)ϕ(x)+b=\Sigma_{i=1}^n\lambda_iy_iκ(x_,x_i)+b f(x)=ωTϕ(x)+b=Σi=1nλiyiϕ(xi)ϕ(x)+b=Σi=1nλiyiκ(x,xi)+b

模型求解

  • 选取合适的核函数,求出核矩阵 K K K
  • 应用SMO算法求解对偶模型。

4. SMO算法

SMO算法的基础:坐标上升(下降)算法
欲求解以下优化问题: m a x λ W ( λ 1 , λ 2 , . . . , λ n ) , λ = ( λ 1 , λ 2 , . . . , λ n ) T \underset{\lambda}{max} \quad W(\lambda_1,\lambda_2,...,\lambda_n),\quad \lambda=(\lambda_1,\lambda_2,...,\lambda_n)^T λmaxW(λ1,λ2,...,λn),λ=(λ1,λ2,...,λn)T坐标上升(下降)算法每次迭代只调整一个变量 λ i \lambda_i λi的值,其他变量在该次迭代中固定不变。虽然对一个参数的一次优化不可能保证其结果就是所优化的拉格朗日乘子的最终结果,但会使目标函数向极小值迈进一步,这样对所有的乘子做最小优化,直到所有满足KKT条件时,目标函数达到最小。

SMO算法基本思想:每次选定两个变量 λ i \lambda_i λi λ j \lambda_j λj,并固定其他参数。
在参数初始化后,不断执行以下两个步骤直至收敛:

  • 选取一对需更新的变量 λ i \lambda_i λi λ j \lambda_j λj
  • 固定 λ i \lambda_i λi λ j \lambda_j λj以外的参数以求解对偶问题,获得更新后的 λ i \lambda_i λi λ j \lambda_j λj

λ i \lambda_i λi的选取准则:选取违背KKT条件程度最大的变量(把害群之马纠正回来);
λ j \lambda_j λj的选取准则:选取使目标函数值增长最快的变量(缩短训练时间);
SMO启发式选取变量:选取对应样本点之间间隔最大的两个变量。

欲求解以下问题: m a x λ Σ i = 1 n λ i − 1 2 Σ i = 1 n Σ j = 1 n y i y j x i T x j λ i λ j \underset{\lambda}{max} \quad \Sigma_{i=1}^n\lambda_i-\frac{1}{2}\Sigma_{i=1}^n\Sigma_{j=1}^ny_iy_jx_i^Tx_j\lambda_i\lambda_j λmaxΣi=1nλi21Σi=1nΣj=1nyiyjxiTxjλiλj s . t . Σ i = 1 n α i y i = 0 , s.t. \quad \Sigma_{i=1}^n\alpha_iy_i=0, s.t.Σi=1nαiyi=0, 0 ≤ λ i ≤ C , i = 1 , 2 , . . . , n 0≤\lambda_i≤C, \quad i=1,2,...,n 0λiC,i=1,2,...,n固定其他变量,仅考虑 λ i \lambda_i λi λ j \lambda_j λj m i n λ i , λ j 1 2 ( x i T x i ) λ i 2 + 1 2 ( x j T x j ) λ j 2 + ( y i y j x i T x j ) λ i λ j − λ i − λ j + ( Σ k ≠ i , j n y i y k x i T x k λ k ) λ i + ( Σ k ≠ i , j n y j y k x j T x k λ k ) λ j \underset{\lambda_i,\lambda_j}{min} \quad \frac{1}{2}(x_i^Tx_i)\lambda_i^2+\frac{1}{2}(x_j^Tx_j)\lambda_j^2+(y_iy_jx_i^Tx_j)\lambda_i\lambda_j-\lambda_i-\lambda_j+(\Sigma_{k≠i,j}^ny_iy_kx_i^Tx_k\lambda_k)\lambda_i+(\Sigma_{k≠i,j}^ny_jy_kx_j^Tx_k\lambda_k)\lambda_j λi,λjmin21(xiTxi)λi2+21(xjTxj)λj2+(yiyjxiTxj)λiλjλiλj+(Σk=i,jnyiykxiTxkλk)λi+(Σk=i,jnyjykxjTxkλk)λj s . t . y i λ i + y j λ j = − Σ k ≠ i , j n y k λ k s.t. \quad y_i\lambda_i+y_j\lambda_j=-\Sigma_{k≠i,j}^ny_k\lambda_k s.t.yiλi+yjλj=Σk=i,jnykλk 0 ≤ λ i , λ j ≤ C , i = 1 , 2 , . . . , n 0≤\lambda_i,\lambda_j≤C, \quad i=1,2,...,n 0λi,λjC,i=1,2,...,n K i i = x i T x i , K j j = ( x j T x j ) , c i j = y i y j x i T x j , c i = Σ k ≠ i , j n y i y k x i T x k λ k − 1 , c j = Σ k ≠ i , j n y j y k x j T x k λ k − 1 , c = − Σ k ≠ i , j n y k λ k K_{ii}=x_i^Tx_i,K_{jj}=(x_j^Tx_j),c_{ij}=y_iy_jx_i^Tx_j,c_i=\Sigma_{k≠i,j}^ny_iy_kx_i^Tx_k\lambda_k-1,c_j=\Sigma_{k≠i,j}^ny_jy_kx_j^Tx_k\lambda_k-1,c=-\Sigma_{k≠i,j}^ny_k\lambda_k Kii=xiTxi,Kjj=(xjTxj),cij=yiyjxiTxj,ci=Σk=i,jnyiykxiTxkλk1,cj=Σk=i,jnyjykxjTxkλk1,c=Σk=i,jnykλk,简化为: m i n λ i , λ j 1 2 K i i λ i 2 + 1 2 K j j λ j 2 + c i j λ i λ j + c i λ i + c j λ j \underset{\lambda_i,\lambda_j}{min} \quad \frac{1}{2}K_{ii}\lambda_i^2+\frac{1}{2}K_{jj}\lambda_j^2+c_{ij}\lambda_i\lambda_j+c_i\lambda_i+c_j\lambda_j λi,λjmin21Kiiλi2+21Kjjλj2+cijλiλj+ciλi+cjλj s . t . y i λ i + y j λ j = c s.t. \quad y_i\lambda_i+y_j\lambda_j=c s.t.yiλi+yjλj=c 0 ≤ λ i , λ j ≤ C , i = 1 , 2 , . . . , n 0≤\lambda_i,\lambda_j≤C, \quad i=1,2,...,n 0λi,λjC,i=1,2,...,n y i λ i + y j λ j = c y_i\lambda_i+y_j\lambda_j=c yiλi+yjλj=c λ j = y j ( c − y i λ i ) \lambda_j=y_j(c-y_i\lambda_i) λj=yj(cyiλi),代入上式得: m i n λ i 1 2 K i i λ i 2 + 1 2 K j j ( c − y i λ i ) 2 + c i j λ i y j ( c − y i λ i ) + c i λ i + c j y j ( c − y i λ i ) \underset{\lambda_i}{min} \quad \frac{1}{2}K_{ii}\lambda_i^2+\frac{1}{2}K_{jj}(c-y_i\lambda_i)^2+c_{ij}\lambda_iy_j(c-y_i\lambda_i)+c_i\lambda_i+c_jy_j(c-y_i\lambda_i) λimin21Kiiλi2+21Kjj(cyiλi)2+cijλiyj(cyiλi)+ciλi+cjyj(cyiλi) s . t . y i λ i + y j λ j = c s.t. \quad y_i\lambda_i+y_j\lambda_j=c s.t.yiλi+yjλj=c 0 ≤ λ i ≤ C , i = 1 , 2 , . . . , n 0≤\lambda_i≤C, \quad i=1,2,...,n 0λiC,i=1,2,...,n至此,对偶问题被转化为简单的单变量二次优化问题。

注意:验证 λ j = y j ( c − y i λ i ) \lambda_j=y_j(c-y_i\lambda_i) λj=yj(cyiλi)是否在区间 [ 0 , C ] [0,C] [0,C]中,否则最小值在边界处取得。

5. 支持向量回归(SVR)

请添加图片描述

所有点的真实值 y i y_i yi都落在 f ( x i ) f(x_i) f(xi) ϵ \epsilon ϵ邻域内。

SVR基本型: m i n ω , b 1 2 ∣ ∣ ω ∣ ∣ 2 + C Σ i = 1 n l o s s ϵ ( y i − ( ω T x i + b ) ) \underset{\omega,b}{min} \quad \frac{1}{2}||\omega||^2+C\Sigma_{i=1}^nloss_\epsilon(y_i-(\omega^Tx_i+b)) ω,bmin21ω2+CΣi=1nlossϵ(yi(ωTxi+b)) s . t . ∣ y i − ( ω T x i + b ) ∣ ≤ ϵ , i = 1 , 2 , . . . , n s.t. \quad |y_i-(\omega^Tx_i+b)|≤\epsilon, \quad i=1,2,...,n s.t.yi(ωTxi+b)ϵ,i=1,2,...,n其中, l o s s ϵ loss_\epsilon lossϵ ϵ \epsilon ϵ-不敏感损失函数: l o s s ϵ ( z ) = { 0 , i f ∣ z ∣ ≤ ϵ ; ∣ z ∣ − ϵ , o t h e r w i s e . loss_\epsilon(z)=\begin{cases} 0, \quad \quad \quad if \quad |z|≤\epsilon;\\ |z|-\epsilon, \quad otherwise.\\ \end{cases} lossϵ(z)={0,ifzϵ;zϵ,otherwise.引入松弛变量 ξ i \xi_i ξi η i \eta_i ηi,得到软间隔SVR: m i n ω , b , ξ , η 1 2 ∣ ∣ ω ∣ ∣ 2 + C Σ i = 1 n ( ξ i + η i ) \underset{\omega,b,\xi,\eta}{min} \quad \frac{1}{2}||\omega||^2+C\Sigma_{i=1}^n(\xi_i+\eta_i) ω,b,ξ,ηmin21ω2+CΣi=1n(ξi+ηi) s . t . y i − ( ω T x i + b ) ≤ ϵ + ξ i , i = 1 , 2 , . . . , n s.t. \quad y_i-(\omega^Tx_i+b)≤\epsilon+\xi_i, \quad i=1,2,...,n s.t.yi(ωTxi+b)ϵ+ξi,i=1,2,...,n y i − ( ω T x i + b ) ≤ ϵ + η i , i = 1 , 2 , . . . , n y_i-(\omega^Tx_i+b)≤\epsilon+\eta_i, \quad i=1,2,...,n yi(ωTxi+b)ϵ+ηi,i=1,2,...,n ξ i , η i ≥ 0 , i = 1 , 2 , . . . , n \xi_i,\eta_i≥0, \quad i=1,2,...,n ξi,ηi0,i=1,2,...,n

欢迎各位批评探讨!!评论区交流!!

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值