径向基函数(Radial Basis Function)插值

Posted by Packy on March 28, 2018

将RBF用于插值

标签(空格分隔):径向基函数插值 算法 RBF


径向基函数插值基本介绍 matlab代码 mathjax Latex math online markdown mathjax 径向基核函数插值cpp

曲面重构

当高维数据稀疏,需要预测一些数据,需要使用曲面重构的方法。 曲面重构一般可以分为:

  • 插值
  • 重构

曲面插值里我们一般使用径向基函数插值。

RBF (Radial Basis Function)可以看作是一个高维空间中的曲面拟合(逼近)问题,学习是为了在多维空间中寻找一个能够最佳匹配训练数据的曲面,然后来一批新的数据,用刚才训练的那个曲面来处理。

RBF是一系列精确插值方法的组合,即表面必须通过每一个测到的曲面值。

RBF网络能够逼近任意的非线性函数,可以处理系统内的难以解析的规律性,具有良好的泛化能力,并有很快的学习收敛速度,已成功应用于非线性函数逼近、时间序列分析、数据分类、模式识别、信息处理、图像处理、系统建模、控制和故障诊断等。 简单说明一下为什么RBF网络学习收敛得比较快。当网络的一个或多个可调参数(权值或阈值)对任何一个输出都有影响时,这样的网络称为全局逼近网络。由于对于每次输入,网络上的每一个权值都要调整,从而导致全局逼近网络的学习速度很慢。BP网络就是一个典型的例子。 如果对于输入空间的某个局部区域只有少数几个连接权值影响输出,则该网络称为局部逼近网络。常见的局部逼近网络有RBF网络、小脑模型(CMAC)网络、B样条网络等。

将设RBF是非线性函数 \begin{equation} \varphi(r) = \varphi(|x-x_i|) \end{equation}

他的参数依赖于n维空间的欧式范数:

\begin{equation} ||\vec{x} - \vec{x_i}|| = \sqrt{\sum^n_{m=1}(x_m - x_{i,m})^2} \end{equation}

Gaussian: $\varphi(r)=exp(-{\frac{r^2}{2\sigma^2}})$

Muliquadrics :$\varphi(r) = \sqrt{1+\frac{r^2}{\sigma^2}}$

Linear:$ \varphi(r) = r $

Cubic: $ \varphi(r) = r^3 $

Thinplate: $\varphi(r) = r^2\ln{(r+1)}$

径向基函数的插值函数表达式例子:

\begin{equation} f(x) = c_0+c_1x+sum^n_{i=1}{\lambda_i\varphi(|x-x_i|)} \end{equation}

现在我们的目的是根据已知的N个数据,求出函数$f(x)$的系数 : $c_0 \& c_1 \& \lambda_i$,其中xi是已知的数据点集。

RBF的方法是要选择P个基函数,每个基函数对应一个训练数据,各基函数形式为,由于距离是径向同性的,因此称为径向基函数。   X-Xp   表示差向量的模,或者叫2范数。

基于为径向基函数的插值函数为: \begin{equation} f(x) = \sum^P_{P=1}W_P\varphi_P(||x-x_P||) \end{equation}

而我们这里得到这些未知参数的方法主要是:最小二乘法,或者SVD 假设我们有N组数据集,以及对应的函数f(xi)的值,

这样由N组数据我们可以一个矩阵:A *B=Y 其中A是未知参数矩阵,B是数据集得到的值,Y是数据集对应的输出值, 我们可以用最小二乘法得到参数A的值。。