SVM之核技巧

上一篇,SVM与软硬间隔
下一篇,SVM多分类与可视化

核方法可以说是支持向量机的灵魂所在,是SVM中最为关键重要的内容。在面对一些非线性问题时,前面我们所讲的线程处理方式最终的效果差强人意。因此针对于非线性的核方法便应运而生。下面将会从核技巧、正定何证明、核技巧在SVM中的应用三个方面进行主要的介绍,最后会提供几种常用的核函数

核技巧

首先应明确核函数处理的问题:低维不可分
核方法定义: K ( x , z ) = φ ( x ) . φ ( z ) K(x,z)=φ(x).φ(z) K(x,z)=φ(x).φ(z)
针对一个非线性问题一般不容易进行求解,通常情况下我们会对该问题进行变换,使之成为我们常见的线性问题。核方法采取的就是这种思想,通过一个相关的非线性变化,将非线性问题转化为一个线性问题后再进行学习。
核方法中通常将存在于欧式空间的输入数据通过一个相应的映射,映射到一个希尔伯特空间内形成相应的特征空间。通常这个特征空间维度要高于甚至远高于原本的欧式空间。然后再用现行分类学习的方法在这个特征空间上进行学习。(如下图所示,2维不可分,映射到三维的希尔伯特空间进行简单的线性划分就表现得非常好)
核技巧: φ ( x ) φ(x) φ(x)转换后维度高,计算量大计算复杂度高,因此我们并不通过 φ ( x ) φ ( z ) φ(x)φ(z) φ(x)φ(z)来得到 K ( x , z ) K(x,z) K(x,z),而是直接计算 K ( x , z ) K(x,z) K(x,z),避免了显式的定义映射函数 φ ( x ) φ(x) φ(x)及庞大的计算量
在这里插入图片描述

线性方法解决非线性问题(核方法)小结:
1:使用映射将原本数据的输入空间映射到特征空间上
2:使用线性分类方法在特征空间上进行学习分类

正定核证明

在SVM核方法中我们所说的核函数就是正定核函数,正定核函数其实有一个充要条件,设K:X*X∈R的空间中是对称函数,则K(x,z)为正定核函数的充要条件是对任意的 x i ∈ X x_i∈X xiX,K(x,z)对应的Gram矩阵是半正定矩阵
换句话说针对一个K(x,z)我们只要证明其Gram矩阵为半正定矩阵那么该函数就是一个正定核函数。下面我们对上述定理的必要性、充分性进行证明。
先验知识:Gram matrix(格拉姆矩阵)

格拉姆矩阵是由两个向量之间的内积构成,内积形成了一个标量,量化了特征空间内两两向量之间的相关性
而且从下图可以明显地发现格拉姆矩阵是一个对称矩阵

在这里插入图片描述

必要性证明

必要性:已知 K ( x , z ) K(x,z) K(x,z)为正定核函数,证明其Gram矩阵为半正定矩阵

由于 K ( x , z ) K(x,z) K(x,z) R R R上的正定核,所以存在从R到希尔伯特空间H的映射:
K ( x , z ) = φ ( x ) . φ ( z ) K(x,z)=φ(x).φ(z) K(x,z)=φ(x).φ(z)
其中对于任意的向量 x i x_i xi,构造 K ( x , z ) K(x,z) K(x,z)的Gram矩阵
G r a m = [ K ( x i , x j ) ] m ∗ m Gram = [K(x_i,x_j)]_{m*m} Gram=[K(xi,xj)]mm
半正定定义:对于任意的≠0的向量 x i x_i xi,都有 x i T A x i ≥ 0 x_i^TAx_i≥0 xiTAxi0,我们称A矩阵为半正定矩阵
利用这个定理,对于任意的向量 c i , c j c_i,c_j ci,cj有:
∑ i m ∑ j m c i T c j K ( x , z ) = ∑ i m ∑ j m c i T c j φ ( x i ) . φ ( x j ) = ( ∑ i m c i φ ( x i ) ) . ( ∑ j m c j φ ( x j ) ) \sum_i^m\sum_j^mc_{i}^Tc_{j}K(x,z)=\sum_i^m\sum_j^mc_{i}^Tc_{j}φ(x_i).φ(x_j)=(\sum_i^mc_{i}φ(x_i)).(\sum_j^mc_{j}φ(x_j)) imjmciTcjK(x,z)=imjmciTcjφ(xi).φ(xj)=(imciφ(xi)).(jmcjφ(xj))
= ∣ ∣ ∑ i m c i φ ( x i ) ∣ ∣ 2 ≥ 0 =||\sum_i^mc_{i}φ(x_i)||^2≥0 =imciφ(xi)20

必要性得证

在这里较为繁琐又涉及到一些先验知识,输入空间映射到完备的希尔伯特空间的转换(以下证明来自于李航统计学习方法,部分修改增减)

可以简单的分为三个步䠫:
前提:对称函数K(x,z)对应的Gram矩阵是半正定矩阵
1:定义映射φ并构成向量空间S
2:在S上定义内积构成内积空间
3:将S完备化构成希尔伯特空间

1:定义映射φ并构成向量空间S
定义一个映射
φ : x − − > K ( 。 , x ) φ:x-->K(。,x) φ:x>K(,x)
进行我们可以借此进行现行的表示
f ( 。 ) = ∑ i m α i K ( 。 , x i ) f(。)=\sum_i^mα_iK(。,x_i) f()=imαiK(,xi)

2:在S上定义内积构成内积空间
定义一个运算*,要符合内积空间要求
f ( 。 ) = ∑ i m α i K ( 。 , x i ) f(。)=\sum_i^mα_iK(。,x_i) f()=imαiK(,xi)
f ( 。 ) = ∑ j m β j K ( 。 , x j ) f(。)=\sum_j^mβ_jK(。,x_j) f()=jmβjK(,xj)
f ∗ g = ∑ i m ∑ j m α i β j K ( x i , x j ) f*g=\sum_i^m\sum_j^mα_iβ_jK(x_i,x_j) fg=imjmαiβjK(xi,xj)

在这里插入图片描述
现在我们要保证我们定义的*运算能够帮助我们构成空间S的内积,即要满足上图条件,转化到f,g即以下形式
( c f ) ∗ g = c ( f ∗ g ) (cf)*g=c(f*g) (cf)g=c(fg)
( f + g ) ∗ h = f ∗ h + g ∗ h (f+g)*h=f*h+g*h (f+g)h=fh+gh
f ∗ g = g ∗ f f*g=g*f fg=gf
f ∗ f ≥ 0 , f ∗ f = 0 − − > f = 0 f*f≥0,f*f=0-->f=0 ff0,ff=0>f=0
前面三个直接代入就可证明,自最后一个前半段利用Gram矩阵性质可知,所以仅需对
f ∗ f = 0 − − > f = 0 f*f=0-->f=0 ff=0>f=0证明。
首先知道一个定理 ∣ f ∗ g ∣ 2 ≤ ( f ∗ f ) ( g ∗ g ) |f*g|^2≤(f * f)(g * g) fg2(ff)(gg)
K ( 。 , x ) ∗ f = f ( x ) = ∑ i m α i K ( x , x i ) K(。,x)*f=f(x)=\sum_i^mα_iK(x,x_i) K(,x)f=f(x)=imαiK(x,xi)
∣ f ( x ) ∣ 2 = ∣ ∑ i m α i K ( x , x i ) ∣ 2 = ∣ K ( 。 , x ) ∗ f ∣ 2 ) |f(x)|^2=|\sum_i^mα_iK(x,x_i)|^2=|K(。,x)*f|^2) f(x)2=imαiK(x,xi)2=K(,x)f2)
∣ K ( 。 , x ) ∗ f ∣ 2 ≤ ( K ( 。 , x ) ) ∗ ( K ( 。 , x ) ) ( f ∗ f ) = K ( x , x ) ( f ∗ f ) |K(。,x)*f|^2≤(K(。,x))*(K(。,x))(f*f)=K(x,x)(f*f) K(,x)f2(K(,x))(K(,x))(ff)=K(x,x)(ff)
∣ f ( x ) ∣ 2 ≤ K ( x , x ) ( f ∗ f ) |f(x)|^2≤K(x,x)(f*f) f(x)2K(x,x)(ff)
因此当 f ∗ f = 0 − − > f = 0 f*f=0-->f=0 ff=0>f=0

3:将S完备化构成希尔伯特空间
根据泛函理论,不完备的向量空间S,一定可以使之完备化,得到希尔伯特空间H,满足下列性质
K ( 。 , x ) ∗ f = f ( x ) K(。,x)*f=f(x) K(,x)f=f(x)
K ( 。 , x ) ∗ K ( 。 , z ) = K ( x , z ) K(。,x)*K(。,z)=K(x,z) K(,x)K(,z)=K(x,z)

充分性证明

充分性:已知 K ( x , z ) K(x,z) K(x,z)的Gram矩阵为半正定矩阵,证明 K ( x , z ) K(x,z) K(x,z)为R上的正定核
根据上述的知识,定义一个映射,满足其内积空间要求总能使之完备化为希尔伯特空间H,进而满足
K ( 。 , x ) ∗ K ( 。 , z ) = K ( x , z ) K(。,x)*K(。,z)=K(x,z) K(,x)K(,z)=K(x,z)
K ( x , z ) = φ ( x ) . φ ( z ) K(x,z)=φ(x).φ(z) K(x,z)=φ(x).φ(z)
充分性得证

核技巧在SVM中的应用

在上述的目标函数与决策函数中,都只涉及到了特征向量之间的内积,因此利用核技巧我们可以将 x i , x j x_i,x_j xi,xj改写为 K ( x i , x j ) K(x_i,x_j) K(xi,xj)
即: L ( x , b , α ) = ∑ i m α i − 1 / 2 ∑ i m ∑ j m α i α j y i y j x i x j L(x,b,α)=\sum_i^mα_i -1/2\sum_i^m\sum_j^mα_{i}α_{j}y_{i}y_{j}x_{i}x_{j} L(x,b,α)=imαi1/2imjmαiαjyiyjxixj
将核函数变换后为:
L ( x , b , α ) = ∑ i m α i − 1 / 2 ∑ i m ∑ j m α i α j y i y j K ( x i , x j ) L(x,b,α)=\sum_i^mα_i -1/2\sum_i^m\sum_j^mα_{i}α_{j}y_{i}y_{j}K(x_i,x_j) L(x,b,α)=imαi1/2imjmαiαjyiyjK(xi,xj)

决策函数由: f ( x ) = s i g n ( w x + b ) = s i g n ( ∑ i m α i y i x i x + b ) f(x) = sign(wx+b)=sign(\sum_i^mα_iy_ix_ix+b) f(x)=sign(wx+b)=sign(imαiyixix+b)
变换后为: f ( x ) = s i g n ( w x + b ) = s i g n ( ∑ i m α i y i K ( x i , x ) + b ) f(x) = sign(wx+b)=sign(\sum_i^mα_iy_iK(x_i,x)+b) f(x)=sign(wx+b)=sign(imαiyiK(xi,x)+b)

常见核函数及其选择

下面以sklearn中常见的四种核函数为例进行介绍
1:线性核,就是我们常见的线性划分,只能处理线性问题
2:多项式核,可以处理线性和非线性问题,但是往往偏向于处理线性问题
3:双曲正切核,用以处理非线性问题
4:高斯核,可以处理线性与非线性问题,偏向于处理非线性问题
一般情况下,我们会对问题有一个定性的预判断,判断该问题是一个线性或非线性问题。线性有些选择线性核,非线性
优先选择高斯核

在这里插入图片描述

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值