i

Mehrlagige Perzeptrone

Ein mehrlagiges Perzeptron besteht aus mehreren Neuronen. Diese sind in Schichten (oder Lagen, engl. Layer) angeordnet. Die Ausgänge einer Schicht dienen als Eingänge der nächsten Schicht. Wir werden in dieser Darstellung die einzelnen Lagen von Neuronen mit $A,B,C$ usw. durchnummerieren, wobei wir uns zunächst mit zwei Neuronenschichten ($A$ und $B$) begnügen.

Bei allen Zahlengrößen, die Neuronen einer bestimmten Schicht betreffen, werden wir die Lage hinter der Größe hochgestellt in Klammern hinschreiben, um Verwechslungen zu vermeiden. Das sieht zunächst vielleicht ein bisschen kompliziert aus, ist aber tatsächlich nur eine kleine Markierung. Beispiel: \begin{equation} y^{(A)}_2 \end{equation} beschreibt den Ausgang des 2. Neurons in Schicht $A$.

Wir betrachten den (typischen) Fall, das jedes Neuron einer Schicht mit jedem Neuron der nächsten Schicht über eine Synapse verbunden sind.

Beim einfachen Perzeptron mit nur einem Neuron war es nur nötig, die Eingänge zu nummerieren. Beim mehrlagigen Perzeptron sind die Eingänge des Gesamtnetzes sowie die einzelnen Neuronen einer Schicht durchnummeriert. Bei der allgemeinen Schreibweise werden wir die die Nummer der Eingänge mit $i$, die Nummer der Neuronen der Schicht $A$ mit $j$ und die Neuronen der Schicht $B$ mit $k$ durchnummerieren. Wobei wir zunächst wieder eine Vereinfachung machen, und die Schicht $B$ wieder aus nur einem einzelnen Neuron bestehen lassen; $k$ kann also nur den Wert $1$ annehmen.

Wir betrachten den (typischen) Fall, das jedes Neuron einer Schicht mit jedem Neuron der nächsten Schicht über eine Synapse verbunden ist und jeder Eingang über eine Synapse mit jedem Neuron von Schicht $A$.

\begin{equation} x^{(B)}_{j} = y^{(A)}_j \end{equation}

Für die Synapsen, die die Eingänge mit Schicht $A$ verbinden, schreiben verwenden wir das Formelzeichen $w^{(A)}_{i,j}$: Diese Synapse verbindet den Eingang der Nummer $i$ mit dem Neuron aus Schicht $A$ mit der Nummer $j$. Genauso schreiben wir $w^{(B)}_{j,k}$ für die Synapse, die das $j$-te Neuron aus Schicht $A$ mit dem $k$-ten Neuron aus Schicht $B$ verbindet. Im Fall, dass wir nur ein ein einziges Neuron in der Schicht $B$ betrachten, schreiben wir $w^{(B)}_{j,1}$

Mehrlagiges Perzeptron[1]

Die Neuronen funktionieren ähnlich wie beim Perzeptron. Die Aktivierung $a$ wird genauso berechnet wie vorher: Wenn die Schicht $A$ beispielsweise aus Neuronen mit jeweils 2 variablen und einem konstanten Eingang (also insgesamt drei Eingängen) besteht, berechnet sich für ein Neuron mit Nr. $j$ aus dieser Schicht die Aktivierung mit:

\begin{equation} a^{(A)}_j = w^{(A)}_{1,j} \cdot x^{(A)}_{1} + w^{(A)}_{2,j} \cdot x^{(A)}_{2} + w^{(A)}_{3,j} \cdot x^{(A)}_{3} \end{equation} Genauso gilt für die Aktivierung eines Neurons aus Schicht $B$: \begin{eqnarray} a^{(B)}_k & = & w^{(B)}_{1,k} \cdot x^{(B)}_{1} + w^{(B)}_{2,k} \cdot x^{(B)}_{2} + w^{(B)}_{3,k} \cdot x^{(B)}_{3} \\ & = & w^{(B)}_{1,k} \cdot y^{(A)}_{1} + w^{(B)}_{2,k} \cdot y^{(A)}_{2} + w^{(B)}_{3,k} \cdot y^{(A)}_{3} \end{eqnarray}

Leicht geändert ist jedoch die Ausgabefunktion: Wir wählen eine Funktion, die nun alle Werte zwischen $-1$ und $+1$ annehmen kann. Für beide Schichten gilt:

\begin{equation} y_j = f(a_j) = \tanh(a_j) \end{equation}

Gesprochen wird das "Tangens Hyperbolicus von $a_j$". Allerdings darf man sich wegen des schwierigen Namens nichts besonders Kompliziertes (oder gar "Magisches") vorstellen. Man hat eine mathematische Funktion gesucht, die für sehr stark negative Werte von $a$ einen Wert nahe $-1$ liefert und nur wenige ansteigt. Für sehr große positive Werte soll sie einen Wert nahe $+1$ liefern und ebenfalls sehr wenig ansteigen. Den stärksten Anstieg soll sie für $a=0$ haben, also sozusagen "in der Mitte".

Die Tangens-Hyperbolicus-Funktion ist nun eine Funktion mit genau diesen Eigenschaften, die man am einfachsten hinschreiben kann: Python hat im Modul math die Funktion bereits vordefiniert. Jede andere Funktion mit ähnlichen Eigenschaften würde genauso funktionieren.

Die "Steilheit" der Funktion an den verschiedenen Stellen (mathematisch: die "Ableitung") dieser Funktion wird bezeichnet als \begin{equation} f'(a_j) = -\tanh(a_j)^2+1 \end{equation} Diese nimmt für sehr große und sehr kleine Werte von $a_j$ einen Wert nahe 0 an, für $a_j=0$ nimmt sie den Wert $1$ an, um $a_j=0$ herum steigt sie zunächst an und fällt dann wieder ab.

Die Tangens-Hyperbolicus-Funktion und ihre Ableitung (Steigung)[2]

Quellen

Suche

v
13.1.4.8
dev.inf-schule.de/informatiksysteme/kuenstliche-intelligenz/ml_nn_alternativ/mehrlagige_perzeptrone
dev.inf-schule.de/13.1.4.8
dev.inf-schule.de/@/page/vPwCpu7JawTzw9b1

Rückmeldung geben