Informatik

Forward Propagation einfach erklärt und berechnet

Forward Propagation einfach erklärt und berechnet
Forward Propagation einfach erklärt und berechnet
Für Quiz, Lückentext, Lernkarten und Fortschritt ist JavaScript nötig. Alle Inhalte und Lösungen bleiben direkt lesbar.

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.

Deine Lernziele

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:

  1. Die Eingabewerte werden bereitgestellt.
  2. Jedes Neuron bildet aus ihnen eine gewichtete Summe.
  3. Es addiert seinen Bias.
  4. Eine Aktivierungsfunktion verarbeitet das Ergebnis.
  5. Die Aktivierung wird an die nächste Schicht weitergegeben.
  6. Die Ausgabeschicht erzeugt die Vorhersage.
Definition

Forward Propagation

Forward Propagation, auf Deutsch Vorwärtspropagierung oder Vorwärtsdurchlauf, ist die schichtweise Berechnung einer Netzausgabe mit den aktuell geltenden Gewichten und Biases.

Merke

Forward Propagation berechnet eine Vorhersage. Sie verändert dabei nicht selbst die Gewichte.

Lückentext

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.

Lösungen: Lücke 1: Gewicht; Lücke 2: Bias; Lücke 3: Aktivierungsfunktion; Lücke 4: nächste Schicht. Gewichte bestimmen den Einfluss der Eingaben. Der Bias verschiebt die gewichtete Summe. Erst danach erzeugt die Aktivierungsfunktion das weitergegebene Signal.
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.

Beispiel

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.

Teste dich
Frage 1 von 1MittelEin Neuron erhält $x_1=3$ und $x_2=2$. Es gilt $w_1=0{,}5$, $w_2=-1$ und $b=0{,}5$. Welche Ausgabe erzeugt ReLU?
Lösung: 0 — Die Voraktivierung ist $z=3\cdot0{,}5+2\cdot(-1)+0{,}5=-0{,}5$. Daher ist $a=\max(0;-0{,}5)=0$.
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.

Gut zu wissen

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)$.

Beispiel

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.

Teste dich
Frage 1 von 1MittelEine Schicht verbindet 4 Eingabewerte mit 3 Neuronen. Welche Form hat ihre Gewichtsmatrix bei der hier verwendeten Konvention?
Lösung: 3 Zeilen und 4 Spalten — Jedes der 3 Zielneuronen benötigt ein Gewicht für jeden der 4 Eingabewerte. Deshalb hat die Matrix die Form $3\times4$.
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.

Merke

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.

Teste dich
Frage 1 von 2LeichtWelche Aktivierungsfunktion erzeugt eine Verteilung über mehrere Klassen, deren Werte zusammen 1 ergeben?
Lösung: Softmax — Softmax bezieht jeden Ausgabewert auf alle Ausgabewerte und normalisiert sie zu einer Verteilung mit Summe 1.
Frage 2 von 2MittelEin Netz soll einen beliebigen Zahlenwert für den Energieverbrauch vorhersagen. Welche Ausgabe ist am ehesten geeignet?
Lösung: Eine lineare Ausgabe — Bei einer Regression wird häufig eine lineare Ausgabeschicht verwendet. Ob der Wertebereich zusätzlich eingeschränkt werden muss, hängt von der konkreten Aufgabe ab.
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.

Teste dich
Frage 1 von 1SchwerDer Bias des Ausgabeneurons wird von $0{,}25$ auf $-0{,}25$ geändert. Alle anderen Werte bleiben gleich. Wie verändert sich die lineare Ausgabe?
Lösung: Sie sinkt um 0,5 auf 0,75. — Bei einer linearen Ausgabe verschiebt der Bias das Ergebnis direkt. Die neue Ausgabe ist $2\cdot0{,}5+(-1)\cdot0-0{,}25=0{,}75$.
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:

  1. Forward Propagation berechnet die Vorhersage.
  2. Eine Verlustfunktion vergleicht Vorhersage und Zielwert.
  3. Backpropagation berechnet, wie die Parameter zum Verlust beitragen.
  4. Ein Optimierungsverfahren passt Gewichte und Biases an.
  5. 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.

Definition

Verlustfunktion

Eine Verlustfunktion misst, wie stark eine Vorhersage vom gewünschten Ziel abweicht. Sie liefert das Bewertungssignal für die anschließende Parameteranpassung.

Teste dich
Frage 1 von 2LeichtWelcher Schritt verändert die Gewichte eines Netzes?
Lösung: Das Parameterupdate durch ein Optimierungsverfahren — Backpropagation liefert Gradienten. Erst das anschließende Optimierungsverfahren verwendet sie, um Gewichte und Biases anzupassen.
Frage 2 von 2SchwerEin bereits trainiertes Netz erhält ein neues Bild und soll nur eine Klasse vorhersagen. Was wird dafür mindestens benötigt?
Lösung: Ein Vorwärtsdurchlauf mit den trainierten Parametern — Für eine Vorhersage werden die neuen Eingabedaten mit den bereits trainierten Gewichten und Biases vorwärts verarbeitet.
Karteikasten
Karteikasten

Überlege zuerst selbst und drehe die Karte anschließend zum Prüfen um.

Alles auf einen Blick
Mindmap
  • 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
Teste dich
Frage 1 von 3LeichtWas bezeichnet $z$ in der Gleichung $a=g(z)$?
Lösung: Die Voraktivierung vor Anwendung der Aktivierungsfunktion — Zuerst entsteht $z$ aus gewichteten Eingaben und Bias. Danach berechnet $g(z)$ die Aktivierung $a$.
Frage 2 von 3MittelEine Schicht hat 5 Eingänge und 4 Neuronen. Wie viele Gewichte und Biases besitzt sie insgesamt?
Lösung: 24 — Es gibt $5\cdot4=20$ Gewichte und 4 Biases. Damit besitzt die Schicht $20+4=24$ Parameter.
Frage 3 von 3SchwerBei zwei verschiedenen Eingaben erzeugt ein Netz exakt dieselbe Ausgabe. Welche Aussage folgt daraus sicher?
Lösung: Beide Eingaben führten mit den aktuellen Parametern zur gleichen Ausgabe. — Die gleiche Ausgabe verrät nicht, dass die Eingaben gleich waren. Forward Propagation kann unterschiedliche Eingaben auf denselben Wert abbilden und verändert dabei keine Gewichte.

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.

Passend dazu