【翻译】从向量到函数——变换、基和核方法

468 阅读3分钟

原文链接

什么是函数

一切想法的起源来自:一个函数实际上是一个无限的向量,如下图所示:

image.png

对于一个定义在区间[a,b][a,b]内的函数,根据间隔Δx\Delta x取样本,如果在点[a,x1,...,xn,b][a,x_1,...,x_n,b]处取函数f(x)f(x)的样本,然后就可以把函数变换为一个向量(f(a),f(x1),...,f(xn),f(b))T(f(a),f(x_1),...,f(x_n),f(b))^T,当Δx0\Delta x \rightarrow 0时,这个向量会越来越接近原函数,最终变成无限向量。

上述的分析中假设xx是一个实数,但是当xx是一个向量时,它依旧适用。接下来使用x\mathbf{x}来表示RnR^n空间中的法向量,用ff来表示函数本身,也就是一个无限向量。用f(x)f(\mathbf{x})来表示函数在点x\mathbf{x}处的函数值,为一个实数。

函数内积

函数是一个无限向量,而向量有内积,因此对于两个向量x=(x1,...,xn)\mathbf{x}=(x_1,...,x_n)y=(y1,...,yn)\mathbf{y}=(y_1,...,y_n),其内积定义为:

<x,y>=i=1nxiyi<\mathbf{x},\mathbf{y}>=\sum^n_{i=1}x_iy_i

根据上面的公式一般人会想到,对应的函数的内积可以定义为:

<f,g>=limΔx0if(xi)g(xi)<f,g>=\lim_{\Delta x \rightarrow 0}\sum_i f(x_i)g(x_i)

但是这个公式存在一些问题,当Δx0\Delta x \rightarrow 0时,这个公式中ffgg的维度变大了,公式无法收敛。(因为向量的维度是离散的,因此可以通过累加离散的值计算内积,而函数是连续的),因此通过微积分的方法计算函数内积:

<f,g>=limΔx0if(xi)g(xi)Δx=f(x)g(x)dx<f,g>=\lim_{\Delta x \rightarrow 0}\sum_i f(x_i)g(x_i)\Delta x=\int f(x)g(x)dx

内积的含义是什么?如下图所示,对于两个向量A,BA,B,内积表示一个向量到另一个的投影长度。 image.png

公式可以表达为:

<A,B>=ABcosθ<A,B>=|A||B|\cos \theta

可知:

投影A的长度=<A,B>B2B投影A的长度=\frac{<A,B>}{|B|^2}B

若向量BB为单位向量(长度为1个单位),则内积就是在BB上投影的坐标。因此给定一组正交基向量{ei}i=1n\{e_i\}^n_{i=1},即<ei,ej>=0<e_i,e_j>=0ei=1|e_i|=1。这些基向量可以通过线性操作构造一个空间,任何向量x\mathbf{x}都可以由基向量表达:

x=i=1n<x,ei>ei\mathbf{x}=\sum^n_{i=1}<\mathbf{x},e_i>e_i

ei1|e_i|\neq 1则:

x=i=1n<x,ei>ei2ei=i=1n<x,ei><ei,ei>ei\mathbf{x}=\sum^n_{i=1}\frac{<\mathbf{x},e_i>}{|e_i|^2}e_i=\sum^n_{i=1}\frac{<\mathbf{x},e_i>}{<e_i,e_i>}e_i

类似的,函数也有基,它们可以是正交或非正交的。若定义了函数基的集合,那空间中任意函数也可以由基函数的组合表示。函数内积同样可以在任何特殊集上被用于计算系数。特殊的是,由于函数的维数是连续的,就可能存在无限的基函数。

对于一个函数基组{hi}\{h_i\},若<hi,hj>=0<h_i,h_j>=0hi1|h_i|\neq 1,任何空间内的函数可以被表示为:

f=<f,hi>hi=if(x)hi(x)dxhif=\sum<f,h_i>h_i=\sum_i\int f(x)h_i(x)dxh_i

hi1|h_i|\neq 1则:

f=i<f,hi><hi,hi>hif=\sum_i \frac{<f,h_i>}{<h_i,h_i>}h_i

例子:变换

令基函数{hp}\{h_p\}pp是一个实数)为:

hp(x)=ei2πpx/Th_p(x)=e^{i2\pi px/T}

函数定于在区间[0,T][0,T]上,此处用pp来表示基函数的索引,用来区分虚数ii,可以证明任意两个基函数是正交的(对于复数,计算内积时,后一项应取共轭转置):

<hp,hq>=0Thp(x)hq(xˉ)dx=0Tei2πpx/Tei2πpx/Tdx=0<h_p,h_q>=\int^T_0 h_p(x)h_q(\bar{x})dx=\int^T_0 e^{i2\pi px/T}e^{-i2\pi px/T}dx=0

pqp \neq qa+bˉi=abia+\bar{b}i=a-bi时,基的长度为:

hp2=<hp,hp>=T|h_p|^2=<h_p,h_p>=T

对于定义在该空间中的区间[0,T][0,T]上的函数f(x)f(x)可以写作:

f(x)=pcphp(x)=pcpei2πpx/Tf(x)=\sum_pc_ph_p(x)=\sum_pc_pe^{i2\pi px /T}

系数cpc_p可以由下面的方法求出:

cp=<f,hp>hp2=1T0Tf(x)hp(xˉ)dx=1T0Tf(x)ei2πpx/Tdxc_p = \frac{<f,h_p>}{|h_p|^2}=\frac{1}{T}\int^T_0f(x)h_p(\bar{x})dx=\frac{1}{T}\int^T_0 f(x)e^{-i2\pi px/T}dx

这就是傅里叶级数的计算过程。

例子:核函数

令:K(x,y)=hy(x)K(x,y)=h_y(x)

基函数的集合可以被定义为一个带两参数的函数KK,例子中的yy是离散的。但是这并不是所有的空间,若将yy定义为实数,则可以表示空间内的任何函数。

函数k(x,y)k(x,y)为核函数,它可以被看作是一个基函数的集群,若对于任意y1y2y_1 \neq y_2他们是正交的<K(,y1),K(,y2)>=0<K(\cdot,y_1),K(\cdot,y_2)>=0,且基K(,y)2=1dx|K(\cdot,y)|^2=\int 1dx,则任何函数ff可以表示为:

f=F(y)K(,y)dyf = \int F(y)K(\cdot,y)dy

则函数ff基于基K(,y)K(\cdot,y)的系数可以通过下面的方法计算:

F(y)=<f,K(,y)>=f(x)K(x,y)dxF(y)=<f,K(\cdot,y)>=\int f(x)K(x,y)dx

因此核函数可以用于将任何函数转化仅另一个空间(一个函数空间)。

例子:转换

令核函数为:

K(x,y)=ei2πxyK(x,y)=e^{i2\pi xy}

此处的ii为虚数,可以简单证明任意两个核函数是正交的:

<K(,y1),K(,y2)>=ei2πxyei2πxydx=0<K(\cdot,y_1),K(\cdot,y_2)>=\int e^{i2\pi xy}e^{-i2\pi xy}dx=0

y1y2y_1 \neq y_2,基平方的长度为:

<K(,y),K(,y)>=K(x,y)K(xˉ,y)dx=1dx<K(\cdot,y),K(\cdot,y)>=\int K(x,y)K(\bar{x},y)dx=\int 1dx

这构造了一个完整的函数空间,其系数可以通过下式计算:

F(y)=<f,K(,y)>=f(x)K(xˉ,y)dx=f(x)ei2πxydxF(y)=<f,K(\cdot,y)>=\int f(x)K(\bar{x},y)dx=\int f(x)e^{-i2\pi xy}dx

原函数可以表示为:

f(x)=F(y)K(x,y)dy=F(y)ei2πxydyf(x)=\int F(y)K(x,y)dy=\int F(y)e^{i2\pi xy}dy