Ψ Die Informatikseite

Menü
Unterabschnitte

Multilayer Perzeptron

Aufbau

\includegraphics[scale=0.5]{mlp.eps}
  • Die Neuronen der einzelnen Schichten sind bei MLPs vollverknüpft. Dabei gibt es nur Vorwärtsverknüpfungen (Feed forward net). Es werden keine Schichten übersprungen.
    In der Literatur (z.B. Zell) findet man neuronale Netze von unten nach oben gezeichnet. Wir zeichnen hier von oben nach unten.
  • Die Indizes der Neuronen von links nach rechts der einzelnen Schichten laufen immer mit Kleinbuchstaben. Der größte Indize wird mit dem jeweiligen Großbuchstaben bezeichnet. Z.B. Inputschicht: $1,2,\ldots,n,\ldots,N$
  • Die Inputschicht wird mit $N$ bezeichnet. Die Outputschicht mit $M$. Das Hiddenlayer mit $H$. Gibt es weitere Hiddenlayer, wie hier, werden diese mit Buchstaben nach $H$ gekennzeichnet, also hier dritte Schicht von oben $G$.
  • Input und Output sind Vektoren. Diese werden manchmal durch einen $\underline{\mbox{Unterstrich}}$, manchmal durch einen $\vec{\mbox{Pfeil}}$ darüber, manchmal auch gar nicht gekennzeichnet.

    \begin{displaymath}x\in \mathbb{R}^{N}\,\,\,\,\, y\in \mathbb{R}^{M}\,\,\,\,\mbo...
...auch }\,\,\,\,x\in \mathbb{B}^{N}\,\,\,\,\, y\in \mathbb{B}^{M}\end{displaymath}

  • Jede Schicht hat eine Gewichtsmatrix. Diese hat die Dimension

    \begin{displaymath}(X+1,Y)\end{displaymath}

    wobei $X$ die Anzahl der Neuronen der darüberliegenden Schicht ist (also der Schicht von der die Schicht die Signale bekommt) und $Y$ die Anzahl der Neurone der Schicht ist. Jedes Neuron der Schicht bekommt also eine Spalte der Matrix zugeteilt, in welche es seine Gewichte abspeichert.
    Hinweis: Wollen wir eine Schicht mit linearer Kennlinie mit Hilfe der Matrixmultiplikation berechnen, also die Gewichtsmatrix $G$ mit dem Vektor $v$ multiplizieren, so müssen wir die Matrix genau andersherum definieren: Eine Zeile ist nun für jedes Neuron reserviert. An forderster Stelle (also die gesamte erste Spalte der Matrix) steht der BIAS. Wir müssen den Vektor $v$ umschreiben, indem wir die erste Komponente $1$ setzen und alle weiteren Komponenten nach unten verschieben. Führen wir die Matrixmultiplikation so durch, so erhalten wir als Ergebnis den Outputvektor der gesamten Schicht.

Nomenklatur

Obiges Netz stellt ein vierschichtiges oder dreistufiges Netz da. Bei ,,Stufennomenklatur'' wird die Eingabeschicht nicht als Stufe mitgezählt, weil diese sowieso nur die Eingaben weiterleitet.
Die Anzahl der Neuronen wird von der Inputschicht an hintereinander geschrieben. Obiges Netz ist z.B. ein $4-3-2-1-$MLP.
Man kann desweiteren hinter jede Nummer eine Zahl schreiben, die angibt, welche Kennlinie die Neuronen der jeweiligen Schicht haben. Für obiges Netz z.B. $4L-3T-2T-1T-$MLP.
T Tangenshyperbolicus
L Lineare Kennlinie
F Fermi Funktion

Hintondiagramm

\includegraphics[scale=0.75]{hinton.eps}
Die einzelnen Kästchen variieren in Farbe und Größe. Große Kästen können z.B. hohe Beträge der Gewichte veranschaulichen. Schwarze Kästen negative Gewichte. Nicht ausgefüllte positive. Es sind auch Schattierungen der Kästen möglich.
Hintondiagramme eignen sich hervorragend um den Status eines neuronalen Netzes abzulesen. In Hintondiagrammen bilden sich bei einigen Lernaufgaben für neuronale Netze Muster. Weiterhin kann man gucken, wo eventuell Verbindungen gelöscht werden bzw. neu hinzugefügt werden.

MLPs mit linearen Kennlinien lassen sich durch Matrixmultiplikation ausdrücken

Den Output einer Schicht mit linearen Kennlinien kann man durch Vektor-Matrix-Multiplikation berechnen. Haben nun mehrere Schichten hintereinander lineare Kennlinien, so lassen sich all diese Schichten zu einer Schicht zusammenfassen, indem wir eine Matrixmultiplikation über die Gewichtsmatrixen durchführen.