在Support Vector Machine的章节中, 我们已经分析了支持向量机前面“两宝”,也就是间隔和
对偶,而第三宝,核技巧在这里我们需要抽出来将分析。其实,我最开始学习核的时候,真的是一脸
懵逼,这玩意到底是个什么鬼?来龙去脉是什么?这这节有关于Kernel Method的背景介绍中,我想
分析一下,我们为什么要使用核?以及怎么用核?来给大家一个直观的感受。
本小节主要从Kernel Method, Kernel Function和Kernel Trick,三个方面来进行分析和讨论,我
们为什么要用核?我们怎么样用核?
1 背景
1.1 Kernel Method
核方法是一种思想,核⽅法可以应⽤在很多问题上,在分类问题中,对于严格不可分问题,我们引⼊⼀个特征转换函数将原来的不可分的数据集变为可分的数据集,然后再来应⽤已有的模型。往往将低维空间的数据集变为⾼维空间的数据集后,数据会变得可分(数据变得更为稀疏):
Cover TH:高维空间比低维空间更易线性可分。
在这里我们举一个例子,对于经典的线性不可分问题异或问题,图像描述如下所示:

这二维空间中的点可以被我们记为X=(x1,x2),如果我们使用一个变换函数,将其变换到三维空间中就会发生有意思的事情。我们设定一个变换函数为中ϕ(x),将二维空间中的点,变换到一个三维空间Z中,并且令z=(x1,x2,(x1,x2)2),那么我们再来看看异或问题在三维空间中点的分布,我们惊奇的发现变得线性可分了:

通过这个例子,想想大家都直观的感受到了高维空间带来的好处。实际上对于解决非线性问题,我们有两种思路:
- 也就是之前提到的,由Perceptron Layer Analysis(PLA)引出的多层感知机(Multilayer Per-ceptron)也就我们经常听到的神经网络,以及之后发展得到的Deep Learning.
- 而第二种思路就是通过非线性变换ϕ(x),将非线性可分问题转换为线性可分问题。上述的异或问题,可以表述为:X=(x1,x2)⟼ϕ(z)Z=(x1,x2,(x1−x2)2)
第二类方法也就是我们讨论的重点,其实在我们机器学习理论的研究中,第二种方法有很大的威力,大部分同学在学习的时候都会忽掉,例子可以看看之前发的再生核希尔伯特空间。
1.2 Kernel Function
核函数,
-
模型的角度:非线性带来高维的转换,
- -优化的角度:为对偶带来内积,
这两个角度可以合在一起看看。以我们之前学习的Hard Margin SVM为例,原问题和对偶问题的表述为:
原问题:⎩⎨⎧maxw,b21wTw s.t. 1−yi(wiTx+b)≤0
对偶问题⎩⎨⎧minλ21∑i=1N∑j=1Nλiλjyiyj(xiTxj)−∑i=1Nλis.t.λi≥0,∑i=1Nλiyi=0
在我们的对偶问题中,有一个xiTxj。在线性可分问题中,我们直接计算就好了,在线性不可分问题中,在对偶问题中需要求解内积,就需要将不可分数据x通过一个变换函数ϕ转换到高维空间中。那么xiTxj;就变成了ϕ(xiT)ϕ(xj),求解变换之后的内积。那么我们就将两个角度的分析联系起来了。我们常常很难求得变换函数的内积。于是直接引⼊内积的变换函数那么核函数我们可以定义为:
∀x,x′∈X,∃ϕ∈H:x→z s.t. k(x,x′)=ϕ(x)Tϕ(x)=<ϕ(x),ϕ(x′)>称 k(x,x′) 为一个正定核函数,其中H 是 Hilbert 空间(完备的线性内积空间),如果去掉内积这个条件我们简单地称为核函数。
k(x,x′)=exp(−2σ2(x−x′)2) 是一个核函数。
证明:exp(−2σ2(x−x′)2)=exp(−2σ2x2)exp(σ2xx′)exp(−2σ2x′2)=exp(−2σ2x2)n=0∑+∞σ2nn!xnx′nexp(−2σ2x′2)=exp(−2σ2x2)φ(x)φ(x′)exp(−2σ2x′2)=ϕ(x)ϕ(x′)
1.3 Kernel Track
下面我们需要引入核技巧了,也就是想想,核函数有什么用?前面我们讲到将x通过一一个变换ϕ(x)转换到高维空间。但是,有可能ϕ(x)的维度非常的高,甚至是无限维的,那么这将变得非常的难求。如果还要继续求ϕ(xiT)ϕ(xi)这个计算量恐怕会要原地爆炸。
大家通过上面的表达会发现我们实际上关注的不是ϕ(x)本身,而是ϕ(xiT)ϕ(xi)。那么,我们完.全可直接求跳过求ϕ(x)的过程,然后直接ϕ(xiT)ϕ(xi)。我们看看核函数的定义,是不是K(xi,xj)就等于ϕ(xiT)ϕ(xi)。这就省去了很多麻烦的计算过程,核函数在这实在是太好用了,这就是核技巧的思想。总的来说,就是非线性转换上的一个内积。
我们为什么引入kernel?就是原来的方法有不足,不能解决非线性可分问题。所以,我们想到利
用核函数将X⟼Z,到更高维的空间来转换成线性可分问题。又因为ϕ(x)的计算很难,我们有想到用核函数来直接求ϕ(xiT)ϕ(xi)。这里面其实是一环扣一 -环的,逻辑性非常的强。
对于前面讨论的线性可分问题Perceptron Layer Analysis和Hard Margin SVM。允许出现错误就出现了Pocket Algorithm和Soft Margin SVM。进一步如果是严格的非线性问题,引入了ϕ(x)就得到了ϕ(x)+ PLA和ϕ(x) + Hargin (Kernel SVM),就是将输人变量的内积转换为核函数。
那么,我们怎么找一个核函数,核函数具有怎样的性质?我们在下一小节中进行分析。

2 正定核的定义
上一节中,我们已经讲了什么是核函数,也讲了什么是核技巧,以及核技巧存在的意义是什么。我们首先想想,上一小节我们提到的核函数的定义。
对于一个映射K,我们有两个输人空间X×X,X∈Rp, 可以形成一个映射 X×X↦R。对于,
∀x,z∈X, 存在一个映射 ϕ:X↦R, 使得 K(x,z)=<ϕ(x),ϕ(z)>。那么这个 K(⋅),就被我们称为核函数。(<>代表内积运算)
这既是我们上一节中将的核函数的定义,实际上这个核函数的精准定义,应该是正定核函数。在本小节中,我们将会介绍核函数的精准定义,什么是正定核函数?并介绍内积和希尔伯特空间(Hilbert Space)的定义。这一小节虽然看着会有些枯燥,实际上非常的重要。
2.1 核函数的定义
核函数的定义,对于一个映射K,存在一个映射 X×X↦R,对于∀x,z∈X都成立,则称K(x,z)为核函数。
对比一下,我们就会发现,这个定义实际上比我们之前学的定义要简单很多。好像是个阉割版,下面我们来介绍两个正定核的定义方法。
2.2 正定核的定义
2.2.1 第一个定义
现在存在一个映射 K˙:X×X↦R∙ 对于 ∀x,z∈X 。如果存在一个 ϕ:X↦Rp, 并且 ϕ(x)∈H使得 K(x,z)=<ϕ(x),ϕ(z)>, 那么称 K(x,z) 为正定核函数。
2.2.2 第二个定义
对于一个映射 K:X×X↦R, 对于 ∀x,z∈X, 都有 K(x,z) 。如果 K(x,z) 满足,1. 对称性;2. 正定性; 那么称 K(x,z) 为一个正定核函数。
我们来分析一下,首先什么是对称性?这个非常的好理解,也就是 K(x,z)=K(z,x) 。那么什么 又是正定性?那就是任取 N 个元素, x1,x2,⋯,xN∈X, 对应的 Gram Matrix 是半正定的,其中 Gram Matrix 用 K 来表示为 K=[K(xi,xj)]。
对于第一个对称性,我们其实非常好理解,不就是内积嘛!有一定数学功底的同学-定知道, 内积和距离是挂钩的,距离之间一定是对称的。那么正定性就要好好讨论-一下了。我们知道这两个定义之间是等价的,为什么会有正定性呢?我们需要进行证明,这个证明可以被我们描述为:
K(x,z)=<ϕ(x),ϕ(z)>⟺ Gram Matrix 是半正定矩阵
这个等式的证明我们留到下一-节再来进行,这里我们首先需要学习一个很重要的概念叫做,希尔伯特空间(H :Hilbert Space)。
2.2.3 Hilbert Space:H
Hilbert Space是-一个完备的,可能是无限维的,被赋予内积运算的线性空间。下面我们对这个概念进行逐字逐句的分析。
线性空间:也就是向量空间,这个空间的元素就是向量,向量之间满足加法和乘法的封闭性,实际上也就是线性表示。空间中的任意两个向量都可以由基向量线性表示。
完备的:完备性简单的认为就是对极限的操作是封闭的。我们怎么理解呢?若有-一个序列为Kn,这里强调一下Hilbert Space是-一个函数空间,空间中的元素就是函数。所以,Kn就是一一个函数。那么就会有:n→+∞limKn=K∈H
无限维::就是空间的维度,如一维、二维等空间,我理解的主要是Hilbert Space在无限维满足线性关系。
内积:内积应该满足三个定义,1.正定性; 2. 对称性; 3. 线性。下面我们逐个来进行解释:
- 对称性:也就是 f,g∈H, 那么就会有 <f,g>=<g,f> 。其中, f,g 是函数,我们可以认为 Hilbert Space 是基于函数的,向量是一个特殊的表达。其实,也就是函数可以看成一个无限维的向量。 大家在这里是不是看到了无限维和完备性的引用,他们的定义之间是在相互铺垫的。
- 正定性:也就是 <f,f>≥0, 等号当且仅当 f=0 是成立。
- 线性也就是满足: <r1f1+r2f2,g>=r1<f1,g>+r2<f2,g>
描述上述三条性质的原因是什么呢?也就是我们要证明一个空间中加入一些运算。如果,判断这个运算是不是内积运算,我们需要知道这个运算满不满足上述三个条件。
现在我们介绍了大致的基本概念了,我们回到这样-一个问题,对于正定核我们为什么要有两个定义?这个思想和我们之前学到的Kernel Trick非常的类似了,Kernel Trick跳过了寻找ϕ(x)这个过程。因为,直接用定义不好找,ϕ(x) 非常的难找,特别是将函数看成一个无限维的向量。这个ϕ(x)怎么
找?那么,我们也想跳过这个寻找ϕ(x)这个过程。那么这就是第二个定义存在的意义,虽然,第二个定义没有第一个定义那么简洁。第二个定义给了我们一个判断核函数的好办法,直接跳过了ϕ(x)这个过程。那么这两定义之间是否等价?废话,肯定是等价的呀,哈哈哈。那么,下一小节中来证明一下。
2.2.4 证明
在上一小节中,我们描述了正定核的两个定义,并且认为这两个定义之间是相互等价的。下面我们就要证明他们之间的等价性。
由第二条定义可知,如果核函数满足:
那么这个核函数时正定核函数。
那么也就是证明下面两条:
- 对称性 ⇔ k(x,z)=k(z,x),显然满足内积的定义
- 正定性 ⇔ ∀N,x1,x2,⋯,xN∈X,对应的 Gram Matrix K=[k(xi,xj)] 是半正定的。
2.2.4.1 充分性证明
大家注意到在上一节的描述中,我似乎没有谈到对称性,实际上是因为对称性的证明比较的简单。
就没有做过多的解释,那么我重新描述一下我们需要证明的问题。
已知: K(x,z)=<ϕ(x),ϕ(z)>, 证:Gram Matrix 是半正定的,且 K(x,z) 是对称矩阵。
-
对称性:
已知:K(x,z)=<ϕ(x),ϕ(z)>K(z,x)=<ϕ(z),ϕ(x)>
又因为,内积运算具有对称性,所以可以得到:
ϕ(x),ϕ(z)>=<ϕ(z),ϕ(x)>
所以,我们很容易得到: K(x,z)=K(z,x), 所以对称性得证。
-
正定性:我们想要证的是 Gram Matrix= K[K(xi,xj)]N×N 是半正定的。那么, 对一个矩阵 AN×N 我们如何判断这是一个半正定矩阵?大概有两种方法,1. 这个矩阵的所有特征值大于等于 0 ; 2. 对 于 ∀α∈RN,αTAα≥0 。这个是充分必要条件。那么,这个问题上我们要使用的方法就是,对于 ∀α∈RN,αTAα≥0。
所以,即需要证明 αTKα≥0
-
αTKα=[α1α2⋯αN]⎣⎢⎢⎢⎡K11K21⋮KN1K12K22⋮KN2⋯⋯⋱⋯K1NK2N⋮KNN⎦⎥⎥⎥⎤⎣⎢⎢⎢⎡α1α2⋮αN⎦⎥⎥⎥⎤=i=1∑Nj=1∑NαiαjKij=i=1∑Nj=1∑Nαiαj<ϕ(xi),ϕ(xj)>=i=1∑Nj=1∑Nαiαjϕ(xi)Tϕ(xj)=[i=1∑Nαiϕ(xi)]T[j=1∑Nαjϕ(xj)]=∣∣∣∣∣∣∣∣∣∣i=1∑Nαiϕ(xi)∣∣∣∣∣∣∣∣∣∣2≥0
所以,我们可以得到K是半正定的,必要性得证。
2.2.4.2必要性证明
Leftarrow$:对于 K 进行分解,对于对称矩阵 K=VΛVT,那么令 ϕ(xi)=λiVi,其中 Vi是特征向量,于是就构造了 k(x,z)=λiλjViTVj
3 小结
分类问题在很长一段时间都依赖 SVM,对于严格可分的数据集,Hard-margin SVM 选定一个超平面,保证所有数据到这个超平面的距离最大,对这个平面施加约束,固定 yi(wTxi+b)=1,得到了一个凸优化问题并且所有的约束条件都是仿射函数,于是满足 Slater 条件,将这个问题变换成为对偶的问题,可以得到等价的解,并求出约束参数:
λmax−21i=1∑Nj=1∑NλiλjyiyjxiTxj+i=1∑Nλi, s.t. λi≥0 对需要的超平面参数的求解采用强对偶问题的 KKT 条件进行。
⎩⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎨⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎪⎧∂w∂L=w−∑i=1Nλiyixi=0∂b∂f=0λi(1−yi(w⊤xi+b))=0(slackness complementary)λi⩾01−yi(w⊤xi+b)⩽0
解就是: w^=i=1∑Nλiyixib^=yk−wTxk=yk−i=1∑NλiyixiTxk,∃k,1−yk(wTxk+b)=0 当允许一点错误的时候,可以在 Hard-margin SVM 中加入错误项。用 Hinge Function 表示错误项的大小,得到: argminw,b21wTw+C∑i=1Nξi s.t. yi(wTxi+b)≥1−ξi,ξi≥0,i=1,2,⋯,N 对于完全不可分的问题,我们采用特征转换的方式,在 SVM 中,我们引入正定核函数来直接对内积进行变换,只要这个变换满足对称性和正定性,那么就可以用做核函数。