Radiale Basisfunktion

aus Wikipedia, der freien Enzyklopädie
Wechseln zu: Navigation, Suche

Eine radiale Basisfunktion (RBF) ist eine reelle Funktion, deren Wert nur vom Abstand zum Ursprung abhängt, so dass  \varphi(\mathbf{x}) = \varphi(\|\mathbf{x}\|) . Der Name kommt daher, dass die Funktion nach dieser Definition radialsymmetrisch ist und ferner diese Funktionen als Basisfunktionen einer Approximation verwendet werden. Allgemeiner kann man den Abstand zu einem Punkt c betrachten, der Zentrum genannt wird, so dass  \varphi(\mathbf{x}, \mathbf{c}) = \varphi(\|\mathbf{x}-\mathbf{c}\|) .

Eigenschaften[Bearbeiten]

Jede Funktion  \varphi(x) für die  \varphi(\mathbf{x}) = \varphi(\|\mathbf{x}\|) gilt ist eine RBF. Als Norm  \|\cdot\| wird gewöhnlich die euklidische Norm gewählt, je nach Problem sind auch andere Normen möglich. Nimmt man beispielsweise die von der Lukaszyk-Karmowski Metrik induzierte Norm, so ist es bei manchen RBFs möglich, Probleme mit schlecht konditionierten Matrizen zu umgehen, die zur Berechnung der Koeffizienten, die bei Approximation durch RBFs auftreten, erforderlich sind. Da es sich bei dem Radius um eine skalare Größe handelt ist das Verhalten bezüglich des Aufwandes im höherdimensionalen Raum gutartig.

Typen von radialen Basisfunktionen[Bearbeiten]

Stückweise polynomielle RBF ( R_n )  |r|^n , für n ungerade
Thin Plate Spline ( TPS_n )  |r|^n ln|r| , für n gerade
Multiquadric RBF (MQ)  \sqrt{1+(a r)^2}
Inverse multiquadric RBF (IMQ)  \frac{1}{\sqrt{1+(a r)^2}}
Inverse quadric RBF (IQ)  \frac{1}{1+(a r)^2}
gaußsche RBF (GS)  e^{-(a r)^2}

Approximation mit Hilfe von RBFs[Bearbeiten]

Typischerweise werden Linearkombinationen von radialen Basisfunktionen zur Approximation von Funktionen genutzt:  f(\mathbf{x}) \approx \sum_{i=1}^N \lambda_i \varphi(\|\mathbf{x} - \mathbf{c}_i\|) . Hierbei wird die zu approximierende Funktion  f(x) durch eine Summe von  N radialen Basisfunktionen angenähert, die verschiedene Zentren  c_i haben und durch die Koeffizienten  \lambda_i gewichtet sind. Weiterhin ist zu beachten, dass die Funktionswerte an den Zentren/Stützstellen exakt eingehalten werden.

Approximationsmethoden dieser Art werden zur Modellierung nichtlinearer Systeme (mit ausreichend einfachen chaotischem Verhalten), zur 3D Rekonstruktion in der Computergrafik (beispielsweise hierarchische RBFs) oder zur Erstellung von Antwortflächen in der Optimierung eingesetzt. Weitere Anwendungsbereiche von RBFs sind das Lösen von partiellen Differentialgleichungen (z.B. mittels gitterfreier Kollokation) oder Transformationen bei der Bildregistrierung.

Funktionsweise[Bearbeiten]

Zur Verdeutlichung der Funktionsweise soll die Funktion  f(x) = \sin (x) + 0.95 + 0.075 x^{2} - 0.001 x^{4} mit Hilfe der Gaußschen RBF approximiert werden. Dazu werden im ausgewählten Bereich von  0 \leq x \leq 10 fünf gleichmäßig verteilte Stützstellen zu Rate gezogen. Den freien Parameter  a muss man dabei kalibieren. Die Abbildung für den approximierten Funktionsverlauf zeigt zwei unterschiedliche Vorgaben für  a . Dabei ist mit der schwarzen Approximation der optimale Wert ( a=0.17 ) dargestellt und mit dem roten Verlauf die intuitive Wahl von  a=1.0 , welche die Superposition einzelner Gauß-Funktionen aufzeigt.

Bestimmung der Koeffizienten[Bearbeiten]

Für die Bestimmung der Koeffizienten der radialen Basisfunktionen muss ein lineares Gleichungssystem gelöst werden. Dies wird mit Hilfe von  N ausgewählten Stützstellen aufgestellt. Dabei besteht die Matrix  A aus den Werten der Basisfunktion, die sich aus den Abständen der Stützstellen ergeben, der zu bestimmende Vektor enthält die Koeffizienten der radialen Basisfunktionen und die rechte Seite des linearen Gleichungssystems beinhaltet die Funktionswerte an den Stützstellen.

Für einen Funktionswert einer k-ten Stützstelle gilt:

 f(\mathbf{x}_k) = \sum_{i=1}^N \lambda_i \varphi(r_{ki}) mit der Abkürzung r_{ki} = \|\mathbf{x}_k - \mathbf{x}_i\| .

Somit lässt sich das folgende Gleichungssystem aufstellen.


  \begin{bmatrix} 
    \varphi(r_{11}) & \varphi(r_{12}) & \cdots & \varphi(r_{1N}) \\ 
	\varphi(r_{21}) & \varphi(r_{22}) & \cdots & \varphi(r_{2N}) \\ 
	\vdots 			& \vdots 		  & \ddots & \vdots\\
	\varphi(r_{N1}) & \varphi(r_{N2}) & \cdots & \varphi(r_{NN})
  \end{bmatrix} 
  \begin{bmatrix} 
    \lambda_1 \\ 
	\lambda_2 \\ 
	\vdots \\
	\lambda_N
  \end{bmatrix} 
  =
  \begin{bmatrix} 
    f(\mathbf{x}_1) \\ 
	f(\mathbf{x}_2) \\ 
	\vdots \\
	f(\mathbf{x}_N)
  \end{bmatrix}

Umsetzung im Quelltext[Bearbeiten]

Die Bestimmung der Koeffizienten kann mit Hilfe des angegebenen Matlab-Quelltextes erfolgen.

function [b,coreFunction] = RBFcalcCoeff(rbfConstant,coords,values)
 
[m n] = size(coords);
 
coreFunction = @(x) exp(-(rbfConstant.*x).^2);   %%% define rbf core function
 
A = zeros(m,m);     %%% init
 
for i1=1:m          %%% loops to fill matrix A
  for i2=i1:m
    cummSum = 0;    %%% calc radius in n-dimensional space
    for k=1:n
      cummSum = cummSum + (coords(i1,k)-coords(i2,k)).^2;
    end
    radius = sqrt(cummSum);
    A(i1,i2) = coreFunction(radius);   A(i2,i1) = A(i1,i2);  %%% save in matrix
  end
end
 
b=A\values;         %%% solve linear equation system

Neuronale Netze[Bearbeiten]

Insofern als Künstliche neuronale Netze eine zur Approximation geeignete Verfahrensart sind, besonders bei hochdimensionalen Problemen, stellen RBF ein spezielles Modell für solche Netze dar.

Literatur[Bearbeiten]

  • Martin D. Buhmann: Radial Basis Functions: Theory and Implementations Cambridge University Press 2003
  • E. Larsson, B. Fornberg: A Numerical Study of some Radial Basis Function based Solution Methods for Elliptic PDEs, Computers & Mathematics with Applications Volume 46, 2003
  • H. Wendland: Scattered Data Approximation, Cambridge University Press, 2005