🧠 Neuronale Netze

Lernen — Forward & Backpropagation

Wie ein neuronales Netz aus Fehlern lernt — vorwärts rechnen, rückwärts korrigieren.

Der Lernzyklus

Training eines neuronalen Netzes ist ein wiederholter Vier-Schritt-Tanz pro Trainingsbeispiel (oder Batch):

1. Vorwärts

Forward Pass

Input wandert durch alle Schichten. Jedes Neuron berechnet seine gewichtete Summe + Aktivierung. Am Ende fällt eine Vorhersage y^\hat{y} heraus.

2. Bewerten

Loss berechnen

Vergleiche y^\hat{y} mit dem echten Label yy über eine Loss-Funktion L\mathcal{L}. Der Loss ist eine einzige Zahl — die „Strafe” für diese Vorhersage.

3. Rückwärts

Backward Pass

Berechne L/w\partial \mathcal{L}/\partial w für jedes Gewicht im Netz — per Kettenregel rückwärts von der Output-Schicht zum Input.

4. Update

Gewichte anpassen

Jedes Gewicht wird in die Richtung verschoben, die den Loss reduziert. Wiederhole für viele Beispiele und Epochen.

Forward Propagation

Pro Neuron in einer Schicht: gewichtete Summe der Inputs, dann Aktivierung.

Schritt 1: Netto-Input

z(l)=W(l)a(l1)+b(l)z^{(l)} = W^{(l)} a^{(l-1)} + b^{(l)}

Die Matrix W(l)W^{(l)} enthält die Gewichte zwischen Schicht l1l-1 und Schicht ll, a(l1)a^{(l-1)} ist die Aktivierung der vorigen Schicht.

Schritt 2: Aktivierung anwenden

a(l)=f(z(l))a^{(l)} = f(z^{(l)})

Mit ff als Aktivierungsfunktion (Sigmoid, ReLU, Tanh — je nach Layer). Die Ausgabe a(l)a^{(l)} wird zum Input der nächsten Schicht.

Schritt 3: Bis zum Output

Die finale Vorhersage ist die Aktivierung der letzten Schicht:

y^=a(L)\hat{y} = a^{(L)}

Backpropagation

Sobald der Loss berechnet ist, muss das Netz wissen: „Welches Gewicht hat wie viel zum Fehler beigetragen?” Die Antwort liefert die Kettenregel der Differentialrechnung, rückwärts durchs Netz angewendet.

Beispiel-Loss

Mean Squared Error

L=12(y^y)2\mathcal{L} = \frac{1}{2} (\hat{y} - y)^2

Für jeden Output-Neuron wird der Beitrag zum Loss berechnet — der Gradient L/y^\partial \mathcal{L}/\partial \hat{y} ist der erste Schritt der Rückwärts-Reise.

Gewichts-Gradient via Kettenregel

Lwij(l)=La(l)a(l)z(l)z(l)wij(l)\frac{\partial \mathcal{L}}{\partial w_{ij}^{(l)}} = \frac{\partial \mathcal{L}}{\partial a^{(l)}} \cdot \frac{\partial a^{(l)}}{\partial z^{(l)}} \cdot \frac{\partial z^{(l)}}{\partial w_{ij}^{(l)}}

Jeder Term ist lokal berechenbar — die Magie ist, dass die Kettenregel die Gradienten effizient rückwärts durch alle Schichten propagiert.

Gradient Descent — Gewichte updaten

Mit dem Gradienten in der Hand: jedes Gewicht wird einen kleinen Schritt gegen die Steigung verschoben.

Die Update-Regel

wneu=waltαLww_{\text{neu}} = w_{\text{alt}} - \alpha \cdot \frac{\partial \mathcal{L}}{\partial w}

α\alpha ist die Lernrate — der wichtigste Hyperparameter. Zu groß: das Modell oszilliert. Zu klein: das Training dauert ewig.

Backpropagation ist nicht der eigentliche Lern-Algorithmus — sie ist nur die effiziente Gradienten-Berechnung. Den tatsächlichen Lern-Schritt macht der Optimizer (SGD, Adam, …), der den Gradienten in ein Gewichts-Update übersetzt.