Ψ Die Informatikseite

Menü

Einstellen der Gewichte von Radial Basis Funktionen-Netzen (RBF-Netzen)

Angenommen wir hätten die Zentren und die Breiten der Gaussglocken schon. Wir wollen nun ,,nur noch'' die Gewichte $g_{k}$ an unserem Outputneuron einstellen, so dass die Zielfunktion approximiert wird. Wir machen dies nur an einem Outputneuron. Die anderen werden analog eingestellt. Die Anzahl der Neurone ist $K$, die Anzahl der Trainingsbeispiele ist $P$:
  • $K>P$: Dieser Fall ist uninteressant. Wir können die Gewichte auf viele unterschiedliche Arten einstellen. Dieser Fall ist auch selten, da wir im Allgemeinen mehr Trainingsmuster haben, als Neuronen.
  • $K=P$: Für den Output des Netzes haben wir folgende $P$ Gleichungen

    \begin{displaymath}\begin {array}{ccc}
^{p=1}y&=&\displaystyle\sum^{K}_{k=1}g_{k...
...underline{x}-\underline{c}_{k}\vert\vert\right)\\
\end {array}\end{displaymath}

    In Matrixschreibweise ergibt dies

    \begin{displaymath}\underline {Y}=\underbrace {\underline{\underline{H}}}_{P\times K}\underline{G}\end{displaymath}

    Wir stellen dieses Gleichungssystem um, indem wir die Abbildung $\underline{\underline{H}}$ invertieren und erhalten für $G$ ($D=Y$ mit $D$ für Desired Output)

    \begin{displaymath}\underbrace{G}_{K\times 1}=\underbrace{\underline{\underline{H^{-1}}}}_{K\times P}\cdot \underbrace{\underline{D}}_{P\times 1}\end{displaymath}

    Dass die inverse Matrix existiert wird vorausgesetzt. Praktisch gesehen wird auch keine Matrixinversion durchgeführt, sondern es werden andere Verfahren zum Lösen großer Gleichungssysteme eingesetzt.
  • $K<P$: Der eigentlich interessante Fall: Es gibt viel mehr Muster als Neurone. Es gibt mehrere Möglichkeiten die Gewichte anzupassen:
    • Wir stellen wieder folgende Gleichung auf

      \begin{displaymath}\underline {Y}=\underbrace {\underline{\underline{H}}}_{P\times K}\underline{G}\end{displaymath}

      Nun haben wir aber ein Problem beim Invertieren, dass wir die Matrix $H$ nicht invertieren können, da sie nicht quadratisch ist16. Wir weichen aus auf eine Pseudoinverse, die Moore-Penrose Pseudoinverse, die berechnet wird durch

      \begin{displaymath}H^{+}=\left(H^{T}\cdot H\right)^{-1}\cdot H^{T}\end{displaymath}

      In Dimensionen

      \begin{displaymath}\underbrace{\underbrace{\left(K\times P\cdot P\times K\right)}_{K\times K}\,^{-1}\cdot(K\times P)}_{K \times P}\end{displaymath}

      Die Moore-Penrose Pseudoinverse wird die Fehlerquadrate minimieren.
      Also haben wir wieder

      \begin{displaymath}G=H^{+} D\end{displaymath}

      Hinweis: Die Berechnung mit der Moore-Penrose Pseudoinverse wird praktisch nicht durchgeführt, da diese Matrizen sehr hohe Dimensionen haben, wenn wir viele Trainingsmuster haben.
    • Wir können auch den Gewichtsvektor $G$ durch Lernen an Beispielen finden. Ein Gradientenabstieg ist möglich. Wir benutzen die $\delta$-Regel. Kein Backpropagation, da wir nur in der Outputschicht lernen müssen.