将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的值。。