核方法:从线性不可分问题到高维空间映射

释放双眼,带上耳机,听听看~!
本文介绍了核方法的概念和应用,从线性不可分问题到将数据映射到高维空间实现线性可分,讨论了核函数以及在支持向量机求解过程中的优化问题。

一、简介

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

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

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

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

二、线性不可分问题

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

核方法:从线性不可分问题到高维空间映射

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

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

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

核方法:从线性不可分问题到高维空间映射

三、核方法的引出

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

{minλ  12∑i=1N∑j=1NλiλjyiyjxiTxj−∑i=1Nλi,i=1,2,⋯ ,Nλi≥0,i=1,2,⋯ ,Nleft{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λ  12∑i=1N∑j=1Nλiλjyiyjϕ(xi)Tϕ(xj)−∑i=1Nλi,i=1,2,⋯ ,Nλi≥0,i=1,2,⋯ ,Nleft{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.

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

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

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

∀x,x′∈X,∃ϕ∈H:x↦z, 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. } Kleft(x, x^{prime}right)=phileft(x_iright)^T phileft(x_jright)=leftlanglephileft(x_iright), phileft(x_jright)rightrangle text {, }
则称 Kleft(x, x^{prime}right) 是一个正定核函数。

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

  • 完备指的是对极限是封闭的,例如有一个序列{kn}{ k_n }是Hilbert空间的一个元素,那么limn−>∞kn=K∈Hunderset{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 { 线性: }leftlangle 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,⋯ ,xN∈Xx_{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:先说明一下证明矩阵半正定的两种方法:

①特征值≥0geq 0
∀α∈Rn,αTAα≥0forall alpha in mathbb{R}^{n},alpha ^{T}Aalpha geq 0

欲证Gram  matrix:K=[K(xi,xj)]N×N半正定即证:∀α∈Rn,αTKα≥0∵αTK=(α1α2⋯αN)1×N[a11a12⋯a1Na21a22⋯a2N⋮⋮⋱⋮aN1aN2⋯aNN]N×N(α1α2⋮αN)N×1=∑i=1N∑j=1NαiαjKij=∑i=1N∑j=1Nαiαj<ϕ(xi),ϕ(xj)>=∑i=1N∑j=1Nαiαjϕ(xi)Tϕ(xj)=∑i=1Nαiϕ(xi)T∑j=1Nαjϕ(xj)=[∑i=1Nαiϕ(xi)]T∑j=1Nαjϕ(xj)=<∑i=1Nαiϕ(xi),∑j=1Nαjϕ(xj)>=∥∑i=1Nαiϕ(xi)∥2≥0∴K是半正定的。欲证Gram; matrix:K=[K(x_{i},x_{j})]_{Ntimes N}半正定 即证:forall alpha in mathbb{R}^{n},alpha ^{T}Kalpha geq 0 because alpha ^{T}K=begin{pmatrix} alpha _{1} & alpha _{2} & cdots & alpha _{N} end{pmatrix}_{1times 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}_{Ntimes N}begin{pmatrix} alpha _{1} alpha _{2} vdots alpha _{N} end{pmatrix}_{Ntimes 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=VLambda 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 天,点击查看活动详情

本网站的内容主要来自互联网上的各种资源,仅供参考和信息分享之用,不代表本网站拥有相关版权或知识产权。如您认为内容侵犯您的权益,请联系我们,我们将尽快采取行动,包括删除或更正。
AI教程

VSCode中使用Jupyter:优化你的编程体验

2023-12-15 11:35:14

AI教程

谷歌PaLM 2 vs OpenAI ChatGPT: 语言模型对决

2023-12-15 11:52:14

个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索