0%

SVM中高斯核为什么可以映射到无穷多维

前言

通过简单形式解释为什么SVM中,高斯核可以把原始维度映射到无穷多维。

多项式核函数

简单情形多项式核比如:

k(x,y)=(xTy)2

首先考虑简单情形,原始维度只有2维,即x=[x1x2]y=[y1y2]

则有:k(x,y)=(x1y1+x2y2)2=x12y12+2x1x2y1y2+x22y22=[x122x1x2x22]T[y122y1y2y22].

可以看出,相当于找到一个映射Φ(z),把原来的z=[z1z2]映射到了[z122z1z2z22]。这就是相当于把原来R2空间中的特征映射到了R3中。

紧接着,把原始维度泛化到n维:

(1)k(x,y)=(x1y1+x2y2++xnyn)2(2)=i=1n(xi2yi2)+2i=1n1j=i+1nxiyixjyj(3)=[x122x1x22x1x3x222x2x3xn2]T[y122y1y22y1y3y222y2y3yn2].

即找到一个映射Φ()将原来n维的特征映射到了n(n+1)2维。

高斯核

现在再看简单版的高斯核[1]:

k(x,y)=exp(||xy||2)

先考虑2维情况:

(4)k(x,y)=exp(||xy||2)(5)=exp((x12+x22+y12+y222x1y12x2y2))(6)=exp((x12+x22))exp((y12+y22))exp(2(x1y1+x2y2))(7)=exp(||x||2)exp(||y||2)exp(2xTy)(8)=exp(||x||2)exp(||y||2)n=0(2xTy)nn!(泰勒展开式: ex=n=0xnn!)

根据前面的多项式核可知后面的n=0(2xTy)nn!中的每一n阶项可以找到相应的映射ϕn

所以k(x,y)=(exp(||x||2)[ϕ0(x)0!ϕ1(x)1!ϕ2(x)2!ϕn(x)n!])T(exp(||y||2)[ϕ0(y)0!ϕ1(y)1!ϕ2(y)2!ϕn(y)n!])

可以看出可以找到映射Φ(x)=exp(||x||2)[ϕ0(x)0!ϕ1(x)1!ϕ2(x)2!ϕn(x)n!],该映射相当于把原来2维的特征映射到了无穷维。

#参考

[1] https://zh.wikipedia.org/wiki/%E5%BE%84%E5%90%91%E5%9F%BA%E5%87%BD%E6%95%B0%E6%A0%B8

[2] https://murongxixi.github.io/2018/04/23/%E5%A4%9A%E9%A1%B9%E5%BC%8F%E6%A0%B8vsrbf%E6%A0%B8/

[3] https://www.quora.com/Why-does-the-RBF-radial-basis-function-kernel-map-into-infinite-dimensional-space-mentioned-many-times-in-machine-learning-lectures