『白板推导系列笔记』7.核方法

1,154 阅读3分钟

一、简介

​ 从计算的角度,该方法叫Kernel TrickKernel \ Trick:避免一步一步先把φ(x)求出,再把内积求出来,而是一步到位,直接把样本点带进核方法就可以把内积求出来。减少计算量

​ 从思想的角度,该方法叫Kernel MethodKernel \ Method:把一个低维空间的非线性问题转化到高维空间的线性问题,利用核函数的性质来求解。

​ 该部分最重要的叫做Kernel FunctionKernel \ Function,它的来历就是因为在我们做分类问题时,例如非线性的不可分给我们带来了一些困境,我们可以使用高维转换进而使用Kernel FunctionKernel \ Function去解决它,又或者是对偶表示带来内积,如果你是高维空间,那么φ(x)就很难求,如果我们先去找到一个核函数,就能直接求出内积(核函数蕴含了一个非线性转换以及非线性转换后的一个内积)

​ 接下来我们就详细的介绍一下核方法涉及到的一些知识点。

二、线性不可分问题

有时线性可分的数据夹杂一点噪声,可以通过改进算法来实现分类,比如感知机的口袋算法和支持向量机的软间隔。但是有时候数据往往完全不是线性可分的,比如下面这种情况:

22097296-271e3457d6dcfca8.webp

在异或问题中数据往往不是线性可分的,但通过将数据映射到高维空间后就可以实现线性可分。可以认为高维空间中的数据比低维空间的数据更易线性可分。对于异或问题,我们可以通过寻找一个映射ϕ(x)\phi (x)将低维空间中的数据xx映射成高维空间中的zz来实现数据的线性可分,例如:

x=(x1,x2)二维ϕ(x)z=(x1,x2,(x1x2)2)三维\underset{二维}{\underbrace{x=(x_{1},x_{2})}}\overset{\phi (x)}{\rightarrow}\underset{三维}{\underbrace{z=(x_{1},x_{2},(x_{1}-x_{2})^{2})}}

然后在新的空间中,该数据就可以实现线性可分:

22097296-926d14a2948384c0.webp

三、核方法的引出

映射到高维空间以后出现的问题是计算复杂度的加大,例如在支持向量机的求解过程中求解的优化问题可以转换为如下的优化问题:

{minλ  12i=1Nj=1NλiλjyiyjxiTxji=1Nλi,i=1,2,,Nλi0,i=1,2,,N\left\{\begin{matrix} \underset{\lambda }{min}\; \frac{1}{2}\sum_{i=1}^{N}\sum_{j=1}^{N}\lambda _{i}\lambda _{j}y_{i}y_{j}x_{i}^{T}x_{j}-\sum_{i=1}^{N}\lambda _{i},i=1,2,\cdots ,N \\ \lambda _{i}\geq 0,i=1,2,\cdots ,N \end{matrix}\right.

将数据映射到高维空间后也就需要求解以下优化问题:

{minλ  12i=1Nj=1Nλiλjyiyjϕ(xi)Tϕ(xj)i=1Nλi,i=1,2,,Nλi0,i=1,2,,N\left\{\begin{matrix} \underset{\lambda }{min}\; \frac{1}{2}\sum_{i=1}^{N}\sum_{j=1}^{N}\lambda _{i}\lambda _{j}y_{i}y_{j}{\color{Red}{\phi (x_{i})^{T}\phi (x_{j})}}-\sum_{i=1}^{N}\lambda _{i},i=1,2,\cdots ,N \\ \lambda _{i}\geq 0,i=1,2,\cdots ,N \end{matrix}\right.

将数据拓展到高维的方法可以用来解决完全非线性的问题:

线性可分允许一点点错误严格非线性
PLAPocket Algorithmϕ(x)\phi (x)+PLA
Hard-Margin SVMSoft-Margin SVMϕ(x)\phi (x)+Hard-Margin SVM(Kernel SVM)

然而在上面的方法中如果先将 ϕ(xi)\phi\left(x_i\right)ϕ(xj)\phi\left(x_j\right) 计算出来然后再做点积,由于维度特别高加之得到 ϕ(xi)\phi\left(x_i\right)ϕ(xj)\phi\left(x_j\right) 也需要计算量,因此计算量是相当大的,因此就有了核方法。 通过使用核函数我们可以直接得到 ϕ(xi)\phi\left(x_i\right)ϕ(xj)\phi\left(x_j\right) 的内积,正定核函数定义如下:

x,xX,ϕH:xz, s.t. K(x,x)=ϕ(xi)Tϕ(xj)=ϕ(xi),ϕ(xj)则称K(x,x)是一个正定核函数。\forall x, x^{\prime} \in \mathcal{X}, \exists \phi \in \mathcal{H}: x \mapsto z, \text { s.t. } K\left(x, x^{\prime}\right)=\phi\left(x_i\right)^T \phi\left(x_j\right)=\left\langle\phi\left(x_i\right), \phi\left(x_j\right)\right\rangle \text {, }\\ 则称 K\left(x, x^{\prime}\right) 是一个正定核函数。

其中 H\mathcal{H}Hilbert SpaceHilbert \ Space完备的可能是无限维的被陚予内积的线性空间),如果去掉内积这个条件我们简单地称为核函数。 Hilbert空间定义:

  • 完备指的是对极限是封闭的,例如有一个序列{kn}\{ k_n \}是Hilbert空间的一个元素,那么limn>kn=KH\underset{n-> ∞} {lim} k_n = K ∈ \mathcal{H}

  • 被赋予内积代表空间中的元素满足以下性质:

{ 对称性: <f,g>=<g,f> 正定性: <f,f>0,"="f=0 线性: r1f1+r2f2,g>=r1<f1,g>+r2<f2,g>\left\{\begin{array}{l} \text { 对称性: }<f, g>=<g, f> \\ \text { 正定性: }<f, f>\geq 0, "=" \Leftrightarrow f=0 \\ \text { 线性: }\left\langle r_1 f_1+r_2 f_2, g>=r_1<f_1, g>+r_2<f_2, g>\right. \end{array}\right.
  • 线性空间即向量空间

因为支持向量机的求解只用到内积运算,所以使用核函数会大大简化运算量。

四、正定核函数的证明

正定核函数还有另外一个定义:

如果核函数满足以下两条性质: ①对称性 ②正定性 则称核函数K(x,z)K(x,z)为正定核函数。

这个定义也就是正定核函数的充要条件,其中两条性质分别指的是:

①对称性K(x,z)=K(z,x)\Leftrightarrow K(x,z)=K(z,x); ②正定性\Leftrightarrow任取NN个元素x1,x2,,xNXx_{1},x_{2},\cdots ,x_{N}\in \mathcal{X},对应的Gram  matrix  K=[K(xi,xj)]Gram\; matrix\; K=[K(x_{i},x_{j})]是半正定的。

证明K(x,z)=ϕ(x)Tϕ(z)K(x,z)=\phi (x)^{T}\phi (z)\Leftrightarrow对称性+矩阵KK半正定:

\Rightarrow: 首先证明对称性

K(x,z)=<ϕ(x),ϕ(z)>K(z,x)=<ϕ(z),ϕ(x)>又内积具有对称性,即<ϕ(x),ϕ(z)>=<ϕ(z),ϕ(x)>K(x,z)=K(z,x)K(x,z)满足对称性K(x,z)=<\phi (x),\phi (z)>\\ K(z,x)=<\phi (z),\phi (x)>\\ 又内积具有对称性,即<\phi (x),\phi (z)>=<\phi (z),\phi (x)>\\ \therefore K(x,z)=K(z,x)\\ \therefore K(x,z)满足对称性

然后证明

PS:先说明一下证明矩阵半正定的两种方法:

①特征值0\geq 0αRn,αTAα0\forall \alpha \in \mathbb{R}^{n},\alpha ^{T}A\alpha \geq 0

欲证Gram  matrix:K=[K(xi,xj)]N×N半正定即证:αRn,αTKα0αTK=(α1α2αN)1×N[a11a12a1Na21a22a2NaN1aN2aNN]N×N(α1α2αN)N×1=i=1Nj=1NαiαjKij=i=1Nj=1Nαiαj<ϕ(xi),ϕ(xj)>=i=1Nj=1Nαiαjϕ(xi)Tϕ(xj)=i=1Nαiϕ(xi)Tj=1Nαjϕ(xj)=[i=1Nαiϕ(xi)]Tj=1Nαjϕ(xj)=<i=1Nαiϕ(xi),j=1Nαjϕ(xj)>=i=1Nαiϕ(xi)20K是半正定的。欲证Gram\; matrix:K=[K(x_{i},x_{j})]_{N\times N}半正定\\ 即证:\forall \alpha \in \mathbb{R}^{n},\alpha ^{T}K\alpha \geq 0\\ \because \alpha ^{T}K=\begin{pmatrix} \alpha _{1} & \alpha _{2} & \cdots & \alpha _{N} \end{pmatrix}_{1\times N}\begin{bmatrix} a_{11}& a_{12}& \cdots & a_{1N}\\ a_{21}& a_{22}& \cdots & a_{2N}\\ \vdots & \vdots & \ddots & \vdots \\ a_{N1}& a_{N2}& \cdots & a_{NN} \end{bmatrix}_{N\times N}\begin{pmatrix} \alpha _{1}\\ \alpha _{2}\\ \vdots \\ \alpha _{N} \end{pmatrix}_{N\times 1}\\ =\sum_{i=1}^{N}\sum_{j=1}^{N}\alpha _{i}\alpha _{j}K_{ij}\\ =\sum_{i=1}^{N}\sum_{j=1}^{N}\alpha _{i}\alpha _{j}<\phi (x_{i}),\phi (x_{j})>\\ =\sum_{i=1}^{N}\sum_{j=1}^{N}\alpha _{i}\alpha _{j}\phi (x_{i})^{T}\phi (x_{j})\\ =\sum_{i=1}^{N}\alpha _{i}\phi (x_{i})^{T}\sum_{j=1}^{N}\alpha _{j}\phi (x_{j})\\ =\begin{bmatrix} \sum_{i=1}^{N}\alpha _{i}\phi (x_{i})\end{bmatrix}^{T}\sum_{j=1}^{N}\alpha _{j}\phi (x_{j})\\ =<\sum_{i=1}^{N}\alpha _{i}\phi (x_{i}),\sum_{j=1}^{N}\alpha _{j}\phi (x_{j})>\\ =\left \|\sum_{i=1}^{N}\alpha _{i}\phi (x_{i}) \right \|^{2}\geq 0\\ \therefore K是半正定的。

\Leftarrow:

  K进⾏特征分解,对于对称矩阵K=VΛVT,那么令ϕ(xi)=λiVi其中Vi是特征向量,于是就构造了K(x,z)=λiλjViTVj\;对K进⾏特征分解,对于对称矩阵K=V\Lambda V^{T},那么令\phi (x_{i})=\sqrt{\lambda _{i}}V_{i},\\其中V_{i}是特征 向量,于是就构造了K(x,z)=\sqrt{\lambda _{i}\lambda _{j}}V_{i}^{T}V_{j}。

得证。

“开启掘金成长之旅!这是我参与「掘金日新计划 · 2 月更文挑战」的第 3 天,点击查看活动详情