第7章 支持向量机(SVM)

第7章 支持向量机(SVM)

背景

​ 支持向量机由简至繁可分为:线性可分支持向量机(linear support vector machine in linearly separable case)、线性支持向量机(linear support vector machine)、非线性支持向量机(non-linear support vector machine)。当训练数据线性可分时,通过硬件个最大化学习一个线性分类器,即线性可分支持向量机,又称应间隔支持向量机;当训练数据近似线性可分时,通过软间隔最大化,学习一个线性分类器,即线性支持向量机,又称软间隔支持向量机;当训练数据线性不可分时,通过核技巧(kernel trick)及软间隔最大化,学习非线性支持向量机。

1、线性可分支持向量机

1.1 基本定义
  • ​ 线性可分支持向量机

    ​ 给定线性可分数据集,通过间隔最大化或等价地求解相应的凸二次规划问题学习得到分离超平面: wx+b=0w^*x+b=0 以及相应的分隔函数: f(x)=sign(wx+b)f(x) = sign(w^*x+b)

  • 函数间隔

    ​ 对于给定的数据集TT和超平面(w,b)(w, b), 定义函数间隔为:
    γ^=yi(w×xi+b) \hat\gamma = y_i(w\times x_i+b)
    最小函数间隔函数:γ^=mini=1,..nγ^i\hat\gamma = \min_{i = 1, .. n}{\hat \gamma_i}

  • 几何间隔

    ​ 对于给定的数据集TT和超平面(w,b)(w, b), 定义几何间隔为:
    γ=yi(ww.xi+bw) \gamma = y_i(\dfrac{w}{||w||} . x_i + \dfrac{b}{||w||})
    最小几何间隔:γ^=mini=1,..Nγ^i\hat\gamma = min_{i = 1, .. N}{\hat \gamma_i}

:函数间隔和几何间隔的数学关系:
γ=γ^w \gamma = \dfrac{\hat \gamma}{||w||}

  • 支持向量和间隔边界

    线性可分条件下,训练数据集样本点与分离超平面距离最近的样本点实例称为支持向量。支持向量点满足:yi(w.xi+b)1=0y_i(w . x_i +b) - 1 = 0,其中,对于yi=1y_i= 1的正样例,满足H1:w.x+b=1H_1 : w.x+b = 1,对于yi=1y_i= -1的负样例,满足H2:w.x+b=1H_2 : w.x + b = -1, 在H1H_1H2H_2上的点都是支持向量,二者的距离为2w\dfrac{2}{||w||},称间隔边界。

1.2 最大间隔分离超平面

maxw,b γ   st.  yi(ww.xi+bw)γ \max_{w, b} \ {\gamma} \ \ \ st. \ \ y_i(\dfrac{w}{||w||} . x_i + \dfrac{b}{||w||}) \geq \gamma

约束条件表明:超平面(w,b)(w, b)关于每个训练样本的几何间隔至少是γ\gamma

根据函数间隔和几何间隔的关系,最大间隔分离超平面也可以表示为:
maxw,b γ^w   st.  yi(w.xi+b)γ^ \max_{w, b} \ {\dfrac{\hat \gamma}{||w||}} \ \ \ st. \ \ y_i(w . x_i +b) \geq \hat \gamma
由于γ^\hat \gamma对最优化的影响在于同等放缩(w,b)(w, b),所以最优化时问题转化为求解最大值1w\dfrac{1}{||w||},等价地,最优化问题转化为求解最小值12w2\dfrac{1}{2}||w||^2,即有:
minw,b12w2   st.yi(w.xi+b)10(*) \min_{w, b}{\dfrac{1}{2}||w||^2} \ \ \ st. y_i(w.x_i+b) - 1 \geq 0 \tag{*}
(*)为凸二次规划问题,对应的超平面(w,b)(w, b)存在且唯一
minwf(w)st.gi(w)0  i=1,2,...,khi(w)=0   i=1,2,...,l \min_{w}{f(w)} \\ st.g_i(w) \leq 0 \ \ i = 1, 2, ..., k \\ h_i(w) = 0 \ \ \ i = 1, 2, ..., l

1.3 对偶算法与KKT条件

(*)构造 拉格朗日函数,对每一个不等式约束引入拉格朗日乘子, αi0,i=1,2,...,N\alpha_i \geq 0,i = 1, 2, ..., N 定义拉格朗日函数:
L(w,b,α)=12w2i=1Nαiyi(w.xi+b)+i=1Nαi(1) L(w, b, \alpha) = \dfrac{1}{2}||w||^2 - \sum_{i=1}^N\alpha_iy_i(w.x_i+b)+\sum_{i=1}^N\alpha_i \tag1
其中,α=(α1,α2,...,αN)T\alpha = (\alpha_1, \alpha_2, ..., \alpha_N)^T,根据拉格朗日对偶性,原始问题的对偶问题是极大极小问题:
maxαminw,bL(w,b,α) \max_\alpha\min_{w,b}L(w,b,\alpha)
所以,为了得到对偶问题的解,需要先求L(w,b,a)L(w,b,a)w,bw, b的极小值,再求对α\alpha的极大值。

(1)求minw,bL(w,b,a)\min_{w,b}L(w,b,a)
wL(w,b,α)=wi=1Nαiyixi=0bL(w,b,α)=i=1Nαiyi=0(2) \nabla_wL(w,b,\alpha) = w - \sum_{i=1}^N\alpha_iy_ix_i = 0 \\ \nabla_bL(w,b,\alpha) = -\sum_{i=1}^N\alpha_iy_i=0 \tag2
将(2)带入(1)得:
L(w,b,α)=12i=1Nj=1Nαiαjyiyj(xi.xj)+i=1Nαi L(w,b,\alpha) = - \dfrac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_j(x_i.x_j)+\sum_{i=1}^N\alpha_i
(2)求minw,bL(w,b,α)\min_{w,b}L(w,b,\alpha)α\alpha的极大,即是对偶问题
maxα12i=1Nj=1Nαiαjyiyj(xi.xj)+i=1Nαis.t.   i=1Nαiyi=0αi0,   i=1,2,...,N(3) \max_{\alpha}-\dfrac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_j(x_i.x_j)+\sum_{i=1}^N\alpha_i \\ s.t. \ \ \ \sum_{i=1}^N\alpha_iy_i=0 \\ \alpha_i \geq 0, \ \ \ i = 1, 2, ..., N \tag3
将(3)式目标函数由求极大转换转换为求极小,则等价对偶最优化问题:
minα12i=1Nj=1Nαiαjyiyj(xi.xj)i=1Nαis.t.   i=1Nαiyi=0αi0,   i=1,2,...,N(4) \min_{\alpha}\dfrac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_j(x_i.x_j)-\sum_{i=1}^N\alpha_i \\ s.t. \ \ \ \sum_{i=1}^N\alpha_iy_i=0\\ \alpha_i \geq 0, \ \ \ i = 1, 2, ..., N\tag4
因此,原始w,bw,b的最优化转换为先求解α\alpha的最优化,设(4)条件下的最优化解为α\alpha^*,其中α=(α1,α2,...,αN)T\alpha^*=(\alpha_1^*, \alpha_2^*, ..., \alpha_N^*)^T,则(w,b)(w, b)的最优解为(w,b)(w^*,b^*)
w=i=1Nαiyixib=yjwxi=yji=1Nαyi(xi.xj) w^* = \sum_{i=1}^N\alpha_i^*y_ix_i \\ b^* = y_j-w^*x_i = y_j - \sum_{i=1}^N\alpha^*y_i(x_i.x_j)

1.4 KKT条件:

wL(w,b,α)=wi=1Nαiyixi=0bL(w,b,α)=i=1Nαiyi=0αi(yi(w.xi+b)1)=0yi(w.xi+b)10   i=1,2,...,Nαi0   i=1,2,...,N(5) \nabla_wL(w^*,b^*,\alpha^*) = w^* - \sum_{i=1}^N\alpha_i^*y_ix_i = 0 \\ \nabla_bL(w^*,b^*,\alpha^*) = -\sum_{i=1}^N\alpha_i^*y_i=0 \\ \alpha_i^*(y_i(w^*.x_i+b^*) - 1) = 0 \\ y_i(w^*.x_i+b^*) - 1 \geq 0 \ \ \ i = 1, 2, ..., N \\ \alpha_i^* \geq 0 \ \ \ i = 1, 2, ..., N \\ \tag5

2、线性支持向量机

线性可分的学习方法对线性不可分的训练是不适用的,因为此时的不等式越是并不成立,需要将硬间隔最大化修改为软间隔最大化。

此时对应的凸二次规划问题(原始问题):
minw,b,ξ12w2+Ci=1Nξiξi0   i=1,2,...,Ns.t.   yi(wi.x+b)1ξii=1,2,...,N(6) \min_{w, b,\xi}\dfrac{1}{2}||w||^2+C\sum_{i=1}^N\xi_i \\ \xi_i \geq 0 \ \ \ i = 1, 2, ..., N \\ s.t. \ \ \ y_i(w_i.x+b) \geq 1 - \xi_i i = 1, 2, ...,N \\ \tag6

2.1 定义

对于给定的线性不可分的训练数据集,通过求解凸二次规划问题,即软间隔最大化,得到分离超平面:w.x+b=0w^* .x +b^* = 0,对应的分类决策函数:f(x)=sign(w.x+b)f(x) = sign(w^*.x+b^*),称为线性支持向量机。

原始问题的对偶问题:
minα12w2i=1Nαis.t.   i=1Nαiyi=0  i=1,2,...,N0αiC  i=1,2,...,N(7) \min_\alpha\dfrac{1}{2}||w||^2-\sum_{i=1}^N\alpha_i \\ s.t. \ \ \ \sum_{i=1}^N\alpha_iy_i = 0 \ \ i = 1, 2, ..., N\\ 0 \leq \alpha_i \leq C \ \ i = 1, 2, ..., N\\ \tag7
原始问题的最优化拉格朗日目标函数:
L(w,b,ξ,α,μ)=12w2+Ci=1Nξii=1Nαi(yi(w.xi+b)+ξi1))i=1Nμiξi L(w, b, \xi, \alpha, \mu) = \dfrac{1}{2}||w||^2+C\sum_{i=1}^N\xi_i-\sum_{i=1}^N\alpha_i(y_i(w.x_i+b) + \xi_i - 1))-\sum_{i=1}^N\mu_i\xi_i
其中αi0,μi0\alpha_i \geq 0, \mu_i \geq 0

对偶问题是拉格朗日目标函数的极大极小问题即:
maxαminw,b,ξL(w,b,ξ,α,μ)=maxαminw,b,ξ(12w2+Ci=1Nξii=1Nαi(yi(w.xi+b)+ξi1))i=1Nμiξi)(8) \max_{\alpha}\min_{w, b, \xi} L(w, b, \xi, \alpha, \mu) = \max_{\alpha}\min_{w, b, \xi} (\dfrac{1}{2}||w||^2+C\sum_{i=1}^N\xi_i-\sum_{i=1}^N\alpha_i(y_i(w.x_i+b) + \xi_i - 1))-\sum_{i=1}^N\mu_i\xi_i) \tag8
对极小化拉格朗日目标函数minw,b,ξL(w,b,ξ,α,μ)\min_{w, b, \xi}L(w,b, \xi, \alpha, \mu)求对应偏导数:
wL(w,b,ξ,α,μ)=wi=1Nαiyixi=0bL(w,b,ξ,α,μ)=i=1Nαiyi=0ξiL(w,b,ξ,α,μ)=Cαiμi=0(9) \nabla_wL(w,b,\xi,\alpha, \mu) = w - \sum_{i=1}^N\alpha_iy_ix_i = 0 \\ \nabla_bL(w,b,\xi, \alpha, \mu) = -\sum_{i=1}^N\alpha_iy_i=0 \\ \nabla_{\xi_i}L(w,b,\xi, \alpha, \mu) = C - \alpha_i-\mu_i = 0 \tag9
将(9)回带入(8)式, 再对minw,b,ξL(w,b,ξ,α,μ)\min_{w, b, \xi}L(w,b, \xi, \alpha, \mu)中的α\alpha求极大,得对偶问题:
maxα12i=1Nj=1Nαiαjyiyj(xi.xj)+i=1Nαis.t.  i=1Nαiyi=0Cαiμi=0αi0μi0(10) \max_\alpha\dfrac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_j(x_i.x_j)+\sum_{i=1}^N\alpha_i \\ s.t. \ \ \sum_{i=1}^N\alpha_iy_i = 0 \\ C - \alpha_i - \mu_i = 0 \\ \alpha_i \geq 0 \\ \mu_i \geq 0 \\ \tag{10}
将(9)式Cαiμi=0C - \alpha_i - \mu_i = 0带入(10)式,求解只含αi\alpha_i的z最优化问题,满足:0αiC0 \leq \alpha_i \leq C

α=(α1,α2,...,αN)T\alpha^*= (\alpha_1^*, \alpha_2^*, ..., \alpha_N^*)^T是原始问题的对偶问题(7)的一个解,则原始问题的解(w,b)(w^*, b^*)为:
w=i=1Nαiyixib=yjwxj=yji=1Nαiyi(xi.xj) w^* = \sum_{i=1}^N\alpha_i^*y_ix_i \\ b^* = y_j - w^*x_j = y_j - \sum_{i=1}^N\alpha_i^*y_i(x_i.x_j)

2.2 KKT条件:

wL(w,b,ξ,α,μ)=wi=1Nαiyixi=0bL(w,b,ξ,α,μ)=i=1Nαiyi=0ξL(w,b,ξ,α,μ)=Cαμ=0αi(yi(w.xi+b)+ξi1)=0μiξi=0yi(w.xi+b)+ξi10ξi0αi0μi0(11) \nabla_wL(w^*,b^*,\xi^*,\alpha^*, \mu^*) = w^* - \sum_{i=1}^N\alpha_i^*y_ix_i = 0 \\ \nabla_bL(w^*,b^*,\xi^*,\alpha^*, \mu^*) = -\sum_{i=1}^N\alpha_i^*y_i=0 \\ \nabla_{\xi}L(w^*,b^*,\xi^*,\alpha^*, \mu^*) = C - \alpha^*-\mu^* = 0 \\ \alpha_i^*(y_i^*(w^*.x_i+b^*) + \xi_i^* - 1) = 0 \\ \mu_i^* \xi_i^* = 0 \\ y_i^*(w^*.x_i+b^*) + \xi_i^* - 1 \geq 0 \\ \xi_i^* \geq 0 \\ \alpha_i^* \geq 0 \\ \mu_i \geq 0 \\ \tag{11}

由此所得的分离超平面:wx+b=i=1Nαiyi(x.xi)+b=0w^*x+b = \sum_{i=1}^N\alpha_i^*y_i(x.x_i) +b^* = 0

分类决策函数:f(x)=sign(wx+b)=sign(i=1Nαiyi(x.xi)+b)f(x) = sign(w^*x+b) = sign(\sum_{i=1}^N\alpha_i^*y_i(x.x_i) +b^*)

【注】:对于线性支持向量机学习策略,ww^*是唯一的,bb^*可以有多个,实际中取NNbb^*的均值。

2.3 支持向量:
1572080109513

图中,正例用"oo“表示,负例用”×\times"表示,实例到边间的距离为:ξiw\dfrac{\xi_i}{||w||}

软间隔支持向量xix_i或者在间隔边界上,或者在间隔边界和分离超平面之间,或者在分离超平面误分类一侧,存在如下关系:

  • 0<αi<C0 < \alpha_i <C,ui0u_i \neq 0,ξi=0\xi_i=0,则支持向量落在间隔边界上;
  • αi=C\alpha_i = Cμi=0\mu_i = 0, 若0<ξi<10 < \xi_i <1,则分类正确,支持向量落在间隔边界和分离超平面之间;
  • αi=C\alpha_i = Cμi=0\mu_i = 0, 若ξi=1\xi_i =1,则支持向量恰好落在分离超平面上;
  • αi=C\alpha_i = Cμi=0\mu_i = 0, 若ξi>1\xi_i > 1,则支持向量位于分离超平面误分类一侧;
2.4 另一种解释:

线性支持向量机学习相当于最小化下列函数:
i=1N[1yi(w.xi+b)]++λw2(12) \sum_{i=1}^N[1-y_i(w.x_i+b)]_+ + \lambda ||w||^2 \tag{12}
目标函数的第一项是经验损失或经验风险,记L(y(w.x+b))=[1y(w.x+b)]+L(y(w.x+b)) = [1-y(w.x+b)]_+为合页损失,其中z+=max(0,z)z_+ =\max(0, z)

因此有,当样本点被正确分类且函数间隔y(w.x+b)y(w.x+b)大于1时,损失为0,注意,位于分离超平面误分类一侧的点能够被正确分类,但是损失不为0;目标函数的第二项是系数为λ\lambdawwL2L_2范数,为正则化项。

ξi=1yi(w.xi+b)\xi_i = 1 - y_i(w.x_i+b),则线性支持向量机的原始最优化问题(6)等价于最优化问题(12),其中λ=12C\lambda = \dfrac{1}{2C}

合页损失和0-1损失函数的图示如下图,其中虚线为感知机损失函数[yi(w.xi+b)]+[y_i(w.x_i+b)]_+

1572099509817 由于0-1损失函数不是连续可导的,直接优化由其构成的损失函数比较困难,可认为线性支持向量机的合页损失函数是0-1损失的上界,此时的上界损失又称代理损失函数(surrogate loss function)。

3、非线性支持向量机与核函数

3.1 核技巧

对给定的训练数据集T={(x1,y1),(x2,y2),...,(xN,yN)}T=\{(x_1, y_1), (x_2, y_2), ..., (x_N, y_N)\},其中xix_i属于输入空间,yi[+1,1]y_i \in [+1, -1],如果能用RNR^N的一个超曲面将正负样例正确地分开,则称这个问题为非线性可分问题。非线性可分问题的求解思路是对输入进行非线性变换,将非线性问题转换为线性问题。

用线性分类方法求解非线性分类问题分两步:首先使用一个变换将原空间映射到新空间;然后再新空间使用线性分类方法,从训练数据中学习分类模型。核技巧就属于这种方法。

核技巧应用到支持向量机,其基本思想是通过一个非线性变换将输入空间(欧式空间R\mathcal{R})对应于一个特种空间(希尔伯特空间H\mathcal{H})。

3.2 核函数

X\mathcal{X}是输入空间(欧式空间R\mathcal {R},设H\mathcal {H}为特征空间(希尔伯特空间),如果存在一个X\mathcal {X}H\mathcal {H}的映射 ϕ(x):XH\phi(x):\mathcal {X} \rightarrow \mathcal {H},使得对所有x,zXx,z \in \mathcal {X} 函数K(x,z)K(x, z)满足条件:K(x,z)=ϕ(x).ϕ(z)K(x,z) = \phi(x).\phi(z),则称K(x,z)K(x,z)为核函数,ϕ(x)\phi(x)为映射函数。

【注】:ϕ\phi是输入空间X\mathcal {X}到特征空间H\mathcal {H}的映射,特征空间H\mathcal {H}一般是高维的,甚至是无穷的,对于给定的核函数K(x,z)K(x, z),特征映射ϕ\phi并不唯一。

:设输入空间为R2\mathcal R^2,核函数为K(x,z)=(x.z)2K(x,z) = (x.z)^2,试找出相关的特征空间H\mathcal H和特征映射ϕ(x)\phi(x):RHR\rightarrow \mathcal H

取特征空间H=R3\mathcal H = \mathcal R^3,记x=(x(1),x(2))Tx=(x^{(1)}, x^{(2)})^Tz=(z(1),z(2))Tz = (z^{(1)}, z^{(2)})^T,则:

K(x,z)=(x.z)2=(x(1)z(1)+x(2)z(2))2=(x(1)z(1))2+2.x(1)z(1)x(2)z(2)+(x(2)z(2))2K(x,z) = (x.z)^2 = (x^{(1)}z^{(1)} + x^{(2)}z^{(2)})^2 = (x^{(1)}z^{(1)})^2+2.x^{(1)}z^{(1)}x^{(2)}z^{(2)}+(x^{(2)}z^{(2)})^2

取映射:ϕ(x)=((x(1))2,2.x(1)x(2),(x(2))2)T\phi(x)= ((x^{(1)})^2, \sqrt2.x^{(1)}x^{(2)}, (x^{(2)})^2)^T

满足:K(x,z)=ϕ(x).ϕ(z)K(x,z) = \phi(x).\phi(z)

同理,取映射:ϕ(x)=12((x(1))2(x(2))2,2.x(1)x(2),(x(1))2+(x(2))2)T\phi(x)= \dfrac{1}{\sqrt2}((x^{(1)})^2 - (x^{(2)})^2, 2.x^{(1)}x^{(2)}, (x^{(1)})^2+(x^{(2)})^2)^T

满足:K(x,z)=ϕ(x).ϕ(z)K(x,z) = \phi(x).\phi(z)

取特征空间H=R4\mathcal H = \mathcal R^4ϕ(x)=((x(1))2,x(1)x(2),x(1)x(2),(x(2))2)T\phi(x)= ((x^{(1)})^2, x^{(1)}x^{(2)}, x^{(1)}x^{(2)},(x^{(2)})^2)^T

满足:K(x,z)=ϕ(x).ϕ(z)K(x,z) = \phi(x).\phi(z)

3.3 核方法在支持向量机中的应用

将对偶问题(10)的内积xi.xjx_i.x_j用核函数K(xi,xj)=ϕ(xi).ϕ(xj)K(x_i,x_j) = \phi(x_i).\phi(x_j)代替,得此时的目标函数:
W(α)=12i=1Nj=1NαiαjyiyjK(xi,xj)i=1Nαi(13) W(\alpha) = \dfrac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_jK(x_i,x_j)-\sum_{i=1}^N\alpha_i \tag{13}
即将原内积映射到高维特征空间,当映射函数为非线性映射时,学习到的含核函数的支持向量机即为非线性支持向量机。

3.4 常用核函数
  1. 多项式核函数对应一个pp次多项式分类器:
    K(x,z)=(x.z+1)p K(x, z) = (x.z+1)^p

  2. 高斯核函数对应一个高斯径向基函数分类器:
    K(x,z)=exp{xz22δ2} K(x,z) = \exp\{-\dfrac{||x-z||^2}{2\delta^2}\}

  3. 字符串核函数kn(s,t)k_n(s,t)给出了字符串sstt中长度等于nn的所有子串组成的特征向量的余弦相似度。
    kn(s,t)=un[ϕn(s)]u.[ϕn(t)]u=un(i.j)s(i)=t(i)=uλl(i)λl(j) k_n(s ,t) = \sum_{u \in \sum^n}[\phi_n(s)]_u.[\phi_n(t)]_u=\sum_{u \in \sum^n(i.j)}\sum_{s(i)= t(i)=u}\lambda^{l{(i)}}\lambda^{l{(j)}}

4、序列最小化算法

序列最小化算法(sequential minimal optimization, SMO)要求解的凸二次优化的对偶问题:
minα12i=1Nj=1NαiαjyiyjK(xi,xj)i=1Nαis.t.   i=1Nαiyi=00αiC   i=1,2,...,N(14) \min_\alpha\dfrac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\alpha_i\alpha_jy_iy_jK(x_i,x_j)-\sum_{i=1}^N\alpha_i \\ s.t. \ \ \ \sum_{i=1}^N\alpha_iy_i = 0 \\ 0 \leq \alpha_i \leq C \ \ \ i = 1 ,2, ..., N \tag{14}
整个SMO算法包括两个部分:求解两个变量的二次规划的解析方法和选择变量的启发式方法。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章