Forward Propagation einfach erklärt und berechnet
Bei der Forward Propagation fließen numerische Eingaben Schicht für Schicht durch ein neuronales Netz. Jedes Neuron berechnet zunächst eine gewichtete Summe, addiert einen Bias und wendet anschließend eine Aktivierungsfunktion an. Die letzte Schicht liefert die Vorhersage.
Hake ab, was du schon kannst — und komm am Ende hierher zurück!
Wie läuft die Information vorwärts?
Ein Feedforward-Netz ordnet seine Neuronen in Schichten an. Die Verbindungen führen von der Eingabe über eine oder mehrere versteckte Schichten zur Ausgabe. Es gibt keinen Rückweg zu einer früheren Schicht.
Der Vorwärtsdurchlauf folgt immer demselben Grundmuster:
- Die Eingabewerte werden bereitgestellt.
- Jedes Neuron bildet aus ihnen eine gewichtete Summe.
- Es addiert seinen Bias.
- Eine Aktivierungsfunktion verarbeitet das Ergebnis.
- Die Aktivierung wird an die nächste Schicht weitergegeben.
- Die Ausgabeschicht erzeugt die Vorhersage.
Forward Propagation
Forward Propagation, auf Deutsch Vorwärtspropagierung oder Vorwärtsdurchlauf, ist die schichtweise Berechnung einer Netzausgabe mit den aktuell geltenden Gewichten und Biases.
Forward Propagation berechnet eine Vorhersage. Sie verändert dabei nicht selbst die Gewichte.
Wähle in jeder Lücke die passende Form und prüfe anschließend deine Antworten.
Ein Neuron multipliziert jede Eingabe mit ihrem , addiert einen und wendet anschließend eine an. Das Ergebnis wird an die weitergegeben.
Wie rechnet ein einzelnes Neuron?
Ein Neuron erhält die Eingaben $x_1,\ldots,x_n$. Zu jeder Eingabe gehört ein Gewicht $w_i$. Zuerst entsteht die Voraktivierung $z$:
$$z=w_1x_1+w_2x_2+\cdots+w_nx_n+b$$
Der Bias $b$ wirkt wie ein zusätzlicher, stets vorhandener Eingang. Danach wird die Aktivierungsfunktion $g$ angewandt:
$$a=g(z)$$
$a$ heißt Aktivierung. Sie ist die Ausgabe des Neurons und kann zur Eingabe der nächsten Schicht werden.
Ein Neuron erhält $x_1=2$ und $x_2=-1$. Seine Gewichte sind $w_1=0{,}5$ und $w_2=1$, der Bias ist $b=0{,}5$.
Zuerst wird gewichtet und addiert:
$$z=0{,}5\cdot2+1\cdot(-1)+0{,}5=0{,}5$$
Als Aktivierungsfunktion dient ReLU. Da $z$ positiv ist, bleibt der Wert erhalten:
$$a=\max(0;0{,}5)=0{,}5$$
Das Neuron gibt also 0,5 weiter.
Wie wird ein ganzes Netz berechnet?
In einer Schicht werden viele Neuronen parallel berechnet. Ihre Gewichte bilden eine Matrix, ihre Biases und Aktivierungen bilden Vektoren.
Für Schicht $l$ gilt:
$$z^{(l)}=W^{(l)}a^{(l-1)}+b^{(l)}$$
$$a^{(l)}=g\left(z^{(l)}\right)$$
Die Eingabe wird als $a^{(0)}=x$ bezeichnet. Bei insgesamt $L$ Schichten mit trainierbaren Parametern ist die endgültige Vorhersage:
$$\hat y=a^{(L)}$$
Hat die vorherige Schicht $n_{l-1}$ Neuronen und die neue Schicht $n_l$ Neuronen, dann besitzt $W^{(l)}$ genau $n_l$ Zeilen und $n_{l-1}$ Spalten. Jede Zeile enthält die Eingangsgewichte eines Zielneurons.
Eine Schicht mit $n_{l-1}$ Eingängen und $n_l$ Neuronen besitzt $n_{l-1}n_l$ Gewichte und $n_l$ Biases. Ihre Parameterzahl lautet daher $P_l=n_l(n_{l-1}+1)$.
Ein Netz hat 2 Eingaben, 3 versteckte Neuronen und 2 Ausgabeneuronen.
- Versteckte Schicht: $3\cdot2+3=9$ Parameter
- Ausgabeschicht: $2\cdot3+2=8$ Parameter
- Gesamtes Netz: $9+8=17$ Parameter
Die Eingabeschicht wird dabei nicht als Schicht mit trainierbaren Parametern gezählt.
Welche Aktivierungsfunktion passt?
Ohne nichtlineare Aktivierungsfunktionen bliebe auch eine Folge mehrerer linearer Schichten insgesamt eine lineare Transformation. Aktivierungsfunktionen erlauben dem Netz, komplexere Beziehungen darzustellen.
ReLU in versteckten Schichten
ReLU setzt negative Werte auf 0 und lässt positive Werte unverändert:
$$g(z)=\max(0,z)$$
Sie wird häufig in versteckten Schichten eingesetzt.
Sigmoid für eine binäre Ausgabe
Die Sigmoidfunktion bildet Werte auf den Bereich von 0 bis 1 ab:
$$g(z)=\frac{1}{1+e^{-z}}$$
Ein einzelner Sigmoid-Ausgang kann bei einer binären Klassifikation als Wahrscheinlichkeit für eine der beiden Klassen interpretiert werden.
Softmax für mehrere Klassen
Softmax verarbeitet alle Ausgabewerte gemeinsam:
$$g_i(z)=\frac{e^{z_i}}{\sum_j e^{z_j}}$$
Die Ergebnisse liegen zwischen 0 und 1 und ergeben zusammen 1. Dadurch können sie eine Wahrscheinlichkeitsverteilung über mehrere Klassen darstellen.
Die Aktivierung der Ausgabeschicht richtet sich nach der Aufgabe: häufig Sigmoid für zwei Klassen, Softmax für mehrere Klassen und eine lineare Ausgabe für Regression.
Vollständiges Beispiel mit zwei Schichten
Das folgende Netz besitzt zwei Eingaben, zwei versteckte ReLU-Neuronen und ein lineares Ausgabeneuron.
Die Eingabe lautet:
$$x_1=2,\qquad x_2=-1$$
Für das erste versteckte Neuron gelten die Gewichte $0{,}5$ und $1$ sowie der Bias $0{,}5$:
$$z_1^{(1)}=0{,}5\cdot2+1\cdot(-1)+0{,}5=0{,}5$$
$$a_1^{(1)}=\max(0;0{,}5)=0{,}5$$
Für das zweite versteckte Neuron gelten die Gewichte $-1$ und $2$ sowie der Bias $1$:
$$z_2^{(1)}=(-1)\cdot2+2\cdot(-1)+1=-3$$
$$a_2^{(1)}=\max(0;-3)=0$$
Das Ausgabeneuron verwendet die Gewichte $2$ und $-1$, den Bias $0{,}25$ und eine lineare Aktivierung:
$$\hat y=2\cdot0{,}5+(-1)\cdot0+0{,}25=1{,}25$$
Die Vorhersage des Netzes ist 1,25. Wichtig ist die Reihenfolge: Erst werden beide versteckten Aktivierungen vollständig berechnet, dann dienen sie als Eingaben der Ausgabeschicht.
Was geschieht beim Training und bei der Inferenz?
Forward Propagation verwendet die aktuellen Parameter, erzeugt aber allein noch kein Lernen. Beim überwachten Training entsteht eine Schleife:
- Forward Propagation berechnet die Vorhersage.
- Eine Verlustfunktion vergleicht Vorhersage und Zielwert.
- Backpropagation berechnet, wie die Parameter zum Verlust beitragen.
- Ein Optimierungsverfahren passt Gewichte und Biases an.
- Mit den neuen Parametern beginnt der nächste Vorwärtsdurchlauf.
Die im Vorwärtsdurchlauf berechneten Zwischenwerte werden für Backpropagation benötigt. Nach abgeschlossenem Training reicht für eine neue Vorhersage normalerweise der Vorwärtsdurchlauf. Diese Anwendung eines trainierten Modells heißt Inferenz.
Verlustfunktion
Eine Verlustfunktion misst, wie stark eine Vorhersage vom gewünschten Ziel abweicht. Sie liefert das Bewertungssignal für die anschließende Parameteranpassung.
Karteikasten
Überlege zuerst selbst und drehe die Karte anschließend zum Prüfen um.
Alles auf einen Blick
- Forward Propagation
- Eingabe: numerisch dargestellte Merkmale
- Gewichtete Summe: Gewichte bestimmen den Einfluss
- Bias: verschiebt die Voraktivierung
- Aktivierung: verarbeitet die Voraktivierung
- Versteckte Schichten: geben Aktivierungen weiter
- Ausgabeschicht: erzeugt die Vorhersage
- Training: liefert Werte für Verlust und Backpropagation
- Inferenz: nutzt den Vorwärtsdurchlauf allein
Abschluss-Check
Du beherrschst den Kern des Vorwärtsdurchlaufs, wenn du bei jeder Schicht zuerst $z=Wa+b$ berechnest, danach die passende Aktivierungsfunktion anwendest und erst dann zur nächsten Schicht weitergehst.
Mit Google fortfahren