支持向量机(SVM)原理与公式推导

一. SVM简介

支持向量机一般用于解决二分类问题,即给定数据集T={( x 1 x_1 x1, y 1 y_1 y1),( x 2 x_2 x2, y 2 y_2 y2),( x 3 x_3 x3, y 3 y_3 y3)…},找到一个可以分开数据集的超平面: w ∗ ⋅ x + b ∗ = 0 ( 式   1.1 ) w^* \cdot x+b^*=0\qquad (式 \ 1.1) wx+b=0( 1.1)此最优超平面应当使支持向量到超平面上的几何间隔d最大。
在这里插入图片描述
如上图所示,在向量空间中构造三个相互平行的超平面F,Fa,Fb。一般将离超平面F最近的一些样本点称之为支持向量(Support Vector),由支持向量约束构成的超平面Fa,Fb称为支持超平面。由于在超平面F与样本集均确定的条件下,所有支持向量也是确定的,在训练过程中需要计算所有支持向量到超平面F的几何间隔d。

二. 将几何间隔最大值问题转化为最小值问题

几何间隔 d d d与间隔 u u u可以用以下公式计算,其中 ( x , y ) (x,y) (x,y)为样本点: d = y ⋅ ( w ∗ ⋅ x + b ∗ ) ⋅ 1 ∣ ∣ w ∣ ∣ ( 式   2.1 ) d=y\cdot (w^* \cdot x+b^*)\cdot \frac{1}{||w||}\qquad (式 \ 2.1) d=y(wx+b)w1( 2.1) u = y ⋅ ( w ∗ ⋅ x + b ∗ ) ( 式   2.2 ) u=y\cdot (w^* \cdot x+b^*)\qquad (式 \ 2.2) u=y(wx+b)( 2.2) y y y表示数据标签,在二分类问题中一般为1/-1,这样定义后,不论样本点在超平面的哪一侧,都能保证 u u u总为正数。在实际使用中,为了方便计算,通常固定间隔 u = 1 u=1 u=1,这样,求 d d d的最大值问题变为求 ∣ ∣ w ∣ ∣ ||w|| w的最小值问题,于是可以转化为求解如下的二次规划问题: min ⁡ w , b 1 2 ∣ ∣ w ∣ ∣ 2 ( 式   2.3 ) \min_{w,b}\frac{1}{2}||w||^2\qquad (式 \ 2.3) w,bmin21w2( 2.3) 条 件 : y i ⋅ ( w ⋅ x i + b ) − 1 = 0 , i = 1 , 2 , . . . , N 条件:y_i\cdot (w\cdot x_i+b)-1=0,i=1,2,...,N yi(wxi+b)1=0i=1,2,...,N
对于线性可分数据集,这是一个凸二次规划问题,必有解。

三. 将二次规划问题转化为对偶优化问题

定义拉格朗日函数: L ( w , b , λ ) = 1 2 ∣ ∣ w ∣ ∣ 2 − ∑ i = 1 N λ i y i ( w ⋅ x i + b ) + ∑ i = 1 N λ i ( 式   3.1 ) L(w,b,\lambda)=\frac{1}{2}||w||^2-\sum_{i=1}^N\lambda_iy_i(w\cdot x_i+b)+\sum_{i=1}^N\lambda_i\qquad (式 \ 3.1) L(w,b,λ)=21w2i=1Nλiyi(wxi+b)+i=1Nλi( 3.1)
根据拉格朗日对偶性,(式 2.3)的对偶问题是以下极大极小值问题: max ⁡ λ min ⁡ w , b L ( w , b , λ ) ( 式   3.2 ) \max_\lambda\min_{w,b}L(w,b,\lambda)\qquad (式 \ 3.2) λmaxw,bminL(w,b,λ)( 3.2)
可以分两步解决:

  1. min ⁡ w , b L ( w , b , λ ) \min_{w,b}L(w,b,\lambda) minw,bL(w,b,λ)
    拉格朗日函数 L ( w , b , λ ) L(w,b,\lambda) L(w,b,λ)分别对 w , b w,b w,b求偏导,并令其等于0,整理后可得到: w = ∑ i = 1 N λ i y i x i ( 式   3.3 ) w=\sum_{i=1}^N\lambda_iy_ix_i\qquad (式 \ 3.3) w=i=1Nλiyixi( 3.3) ∑ i = 1 N λ i y i = 0 ( 式   3.4 ) \sum_{i=1}^N\lambda_iy_i=0\qquad (式 \ 3.4) i=1Nλiyi=0( 3.4)将(式 3.3)与(式 3.4)带入(式 3.1)中,即可得到: min ⁡ w , b L ( w , b , λ ) = − 1 2 ∑ i = 1 N ∑ j = 1 N λ i λ j y i y j ( x i ⋅ x j ) + ∑ i = 1 N λ i ( 式   3.5 ) \min_{w,b}L(w,b,\lambda)=-\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\lambda_i\lambda_jy_iy_j(x_i\cdot x_j)+\sum_{i=1}^N\lambda_i\qquad (式 \ 3.5) w,bminL(w,b,λ)=21i=1Nj=1Nλiλjyiyj(xixj)+i=1Nλi( 3.5)
  2. min ⁡ w , b L ( w , b , λ ) \min_{w,b}L(w,b,\lambda) minw,bL(w,b,λ) λ \lambda λ的极大值
    在(式 3.5)前加负号将极大值问题转化为极小值问题: min ⁡ λ 1 2 ∑ i = 1 N ∑ j = 1 N λ i λ j y i y j ( x i ⋅ x j ) = ∑ i = 1 N λ i ( 式   3.6 ) \min_\lambda\frac{1}{2}\sum_{i=1}^N\sum_{j=1}^N\lambda_i\lambda_jy_iy_j(x_i\cdot x_j)=\sum_{i=1}^N\lambda_i\qquad (式 \ 3.6) λmin21i=1Nj=1Nλiλjyiyj(xixj)=i=1Nλi( 3.6) 条 件 : ∑ i = 1 N λ i y i = 0 λ i ≥ 0 , i = 1 , 2 , . . . , N 条件:\sum_{i=1}^N\lambda_iy_i=0\quad \lambda_i\geq0,i=1,2,...,N i=1Nλiyi=0λi0,i=1,2,...,N
    由(式 3.6)可以求得拉格朗日乘子 λ \lambda λ,依据 λ \lambda λ带入(式 3.3)与(式 3.1)中可以求得 w , b w,b w,b,最终带入(式 1.1)即可得到最终超平面方程为: ∑ i = 1 N λ i y i ( x i ⋅ x ) + y i − ∑ i = 1 N λ i y i ( x i ⋅ x j ) = 0 ( 式   3.7 ) \sum_{i=1}^N\lambda_iy_i(x_i\cdot x)+y_i-\sum_{i=1}^N\lambda_iy_i(x_i\cdot x_j)=0\qquad (式 \ 3.7) i=1Nλiyi(xix)+yii=1Nλiyi(xixj)=0( 3.7)

四. 核函数

核函数的标准定义:
X X X为输入空间,而 H H H为特征空间,设存在一个从 X X X H H H的映射 ϕ ( x ) : X → H \phi(x):X\rightarrow H ϕ(x):XH,使得对所有的 x , z ∈ X x,z\in X x,zX,函数 K ( x , z ) K(x,z) K(x,z)满足条件: K ( x , z ) = ϕ ( x ) ⋅ ϕ ( z ) K(x,z)=\phi(x)\cdot \phi(z) K(x,z)=ϕ(x)ϕ(z),则称 K ( x , z ) K(x,z) K(x,z)为核函数, ϕ ( x ) \phi(x) ϕ(x)为映射函数。式中 ϕ ( x ) ⋅ ϕ ( z ) \phi(x)\cdot \phi(z) ϕ(x)ϕ(z) ϕ ( x ) \phi(x) ϕ(x) ϕ ( z ) \phi(z) ϕ(z)的内积。

在上文的(式3.6)与(式3.7)中,可以注意到样本的输入x总是成对乘积的形式,在此可以将两个输入的欧式乘积定义为核函数 K ( x i , x j ) K(x_i,x_j) K(xi,xj),利用此核函数就可求得最终解。
核函数可以将输入空间通过映射函数映射到特征空间中,一般来说从低维映射到高维。在低维空间中的线性不可分问题转化至高维空间中可能为线性可分问题,即在高维空间中使用 ϕ ( x ) ⋅ ϕ ( z ) \phi(x)\cdot \phi(z) ϕ(x)ϕ(z)求解优化问题。利用核函数不需要显性地给定映射,而只需定义一个低维空间中的运算使其值等于在高维空间中的乘积运算。
常用的核函数有以下几种:

  • 线性核: K ( x 1 , x 2 ) = x 1 T x 2 + c K(x_1,x_2)=x_1^Tx_2+c K(x1,x2)=x1Tx2+c
  • 多项式核: K ( x 1 , x 2 ) = ( a x 1 T x 2 + c ) d K(x_1,x_2)=(ax_1^Tx_2+c)^d K(x1,x2)=(ax1Tx2+c)d
  • 径向基核函数: K ( x 1 , x 2 ) = exp ⁡ ( − γ ∣ ∣ x 1 − x 2 ∣ ∣ 2 ) K(x_1,x_2)=\exp(-\gamma||x_1-x_2||^2) K(x1,x2)=exp(γx1x22)
  • Sigmoid核函数: K ( x 1 , x 2 ) = tanh ⁡ ( a ( x 1 T x 2 ) + c ) K(x_1,x_2)=\tanh(a(x_1^Tx_2)+c) K(x1,x2)=tanh(a(x1Tx2)+c)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值