HerrKI mit seinem RoboterHerrKI KI verstehen · nachbauen · anwenden ⭐ 0 XP

Polynomiale Regression

Wie neuronale Netze nicht-lineare Funktionen lernen.

👋 HerrKI hier — heute lernt dein Netz, dass „mehr“ nicht immer besser ist

Gieß deine Pflanze doppelt so viel — wächst sie dann doppelt so schnell? Eben nicht: Zu wenig Wasser lässt sie verdursten, zu viel ertränkt sie. Die Wahrheit ist eine Kurve mit einem Optimum in der Mitte. Und eine Gerade — alles, was dein Netz bisher konnte — ist gegen so etwas chancenlos.

In „Multiple Regression“ hast du deinem Netz mehr Eingänge gegeben. Heute bekommt es zum ersten Mal Tiefe: einen Hidden Layer — eine Zwischenschicht aus 8 Neuronen zwischen Eingang und Ausgang. Mit ihr kann das Netz Geraden knicken, stapeln und zu Kurven zusammensetzen. Das ist der Moment, in dem neuronale Netze wirklich mächtig werden. 🚀

🎯 Was du hier lernst:
  • Was ein Hidden Layer ist — und warum er aus 1 Zahl 8 „Meinungen“ macht
  • Warum es ohne Aktivierungsfunktion (ReLU) keine Kurven gäbe
  • Warum 8 Neuronen mit derselben Formel trotzdem 8 verschiedene Dinge lernen
  • Der Unterschied zwischen Training und Inferenz

💡 Roter Faden: Wir gehen wieder den ganzen Weg — von der Gießkanne runter zu den Tensoren und mit einer fertigen Vorhersage wieder hoch.

🏗️ Die neue Architektur: eine Schicht dazwischen

Bisher sah dein Netz so aus: eine Zahl rein, ein Neuron rechnet, eine Zahl raus. Jetzt schieben wir eine Zwischenschicht ein — und plötzlich läuft jede Eingabe durch 8 Neuronen gleichzeitig:

📦
Input Layer [1] Wassermenge
Hidden Layer [8] 8 Neuronen (ReLU)
📦
Output Layer [1] Wachstum (cm)

📦 Was mit dem Tensor passiert:

  1. Input-Tensor: [1] — eine einzige Zahl, z. B. 250 ml
  2. Hidden Layer: [1] wird zu [8] — aus einer Zahl werden 8 verschiedene „Blickwinkel“
  3. Aktivierung (ReLU): jedes der 8 Neuronen schneidet Negatives ab: max(0, x)
  4. Output Layer: [8] wird zu [1] — die 8 Blickwinkel werden zu EINER Vorhersage gemischt

🔑 Schlüssel-Erkenntnis:

Der Hidden Layer ist wie ein Team aus 8 Gutachtern: Alle sehen dieselbe Wassermenge, aber jeder achtet auf etwas anderes — „ist es zu wenig?“, „ist es optimal?“, „ist es zu viel?“. Das Output-Neuron hört sich alle 8 Meinungen an und mischt daraus die endgültige Antwort.

📦 Schauen wir einer Zahl bei der Reise zu: 250 ml

Genug Überblick — wir schicken jetzt EINEN konkreten Wert durchs Netz und rechnen jeden Schritt mit. Das ist unser gewohnter Weg „runter zum Tensor“:

📥 Schritt 1: Input Layer

Tensor: [1]

[250]

Eine einzige Zahl: die Wassermenge in Milliliter.

🧠 Schritt 2: Hidden Layer — aus 1 mach 8

Transformation: [1][8]. Jedes der 8 Neuronen rechnet dieselbe Mini-Formel, aber mit eigenem Gewicht und Bias:

neuron[i] = input × gewicht[i] + bias[i]

Neuron 1 zum Beispiel:

neuron[0] = 250 × 0.05 + (−2.0) = 10.5

Alle 8 zusammen (vor ReLU):

[10.5, −5.2, 8.3, −1.0, 15.6, 3.2, −8.1, 12.4]

8 verschiedene „Blickwinkel“ auf dieselbe Wassermenge — manche positiv, manche negativ.

⚡ Schritt 3: ReLU — der Türsteher

Regel: ReLU(x) = max(0, x) — Positives darf durch, Negatives wird zu 0.

Vor ReLU:

[10.5, −5.2, 8.3, −1.0, 15.6, 3.2, −8.1, 12.4]

Nach ReLU:

[10.5, 0, 8.3, 0, 15.6, 3.2, 0, 12.4]

🔑 Warum dieser simple Schnitt alles ändert: Ohne ReLU wäre das ganze Netz — egal wie viele Schichten — nur eine kompliziert aufgeschriebene Gerade. Erst die Knicke machen Kurven möglich. In „Warum eine Gerade nicht reicht“ baust du solche Kurven aus einzelnen ReLU-Knicken selbst zusammen!

📤 Schritt 4: Output Layer — aus 8 mach 1

Transformation: [8][1]. Das Ausgabe-Neuron gewichtet alle 8 Meinungen und addiert sie zusammen:

output = h[0]×w[0] + h[1]×w[1] + … + h[7]×w[7] + bias output = 10.5×0.8 + 0×0.3 + 8.3×0.6 + … = 20.1

Finale Vorhersage: 20,1 cm Wachstum

🎯 Die ganze Reise in vier Zeilen

Input: [250] ← Wassermenge Hidden vor ReLU: [10.5, −5.2, 8.3, −1.0, 15.6, 3.2, −8.1, 12.4] Hidden nach ReLU: [10.5, 0, 8.3, 0, 15.6, 3.2, 0, 12.4] Output: [20.1] ← Wachstum in cm

🎲 Warum rechnen die 8 Neuronen nicht alle das Gleiche?

Die Frage ist absolut berechtigt: Alle 8 benutzen exakt dieselbe Formel input × gewicht + bias. Müssten sie dann nicht alle dasselbe Ergebnis liefern — und wir hätten 8-mal dasselbe Neuron bezahlt?

Die Antwort steckt in zwei Wörtern: Zufall + Feedback.

Schritt 1: Der Zufall verteilt die Startpositionen

Vor dem Training würfelt TensorFlow für jedes Neuron ein eigenes Startgewicht. Schon beim allerersten Forward Pass (Input: 250 ml) rechnet deshalb jedes Neuron etwas anderes:

NeuronStart-Gewicht (gewürfelt)250 × Gewichtnach ReLU
1+0.523+130.8130.8
2−0.812−203.00 ✂️
3+0.156+39.039.0
4−0.391−97.80 ✂️
5+0.687+171.8171.8
6+0.234+58.558.5
7−0.567−141.80 ✂️
8+0.445+111.3111.3

(Alle Biases starten bei 0, deshalb lassen wir sie in der Tabelle weg. ✂️ = von ReLU abgeschnitten.)

💡 Das nennt man „Symmetry Breaking“: Würden alle 8 mit demselben Gewicht starten, bekämen sie auch immer dasselbe Feedback — und blieben für alle Ewigkeit identische Klone. Der Zufall am Anfang bricht diese Symmetrie. Einmal verschieden, immer verschieden.

Schritt 2: Das Feedback verstärkt die Unterschiede

Bei der Backpropagation (kennst du aus „Gradient Descent“) fragt das Netz: „Wie viel hat JEDES Neuron zum Fehler beigetragen?“ Weil alle 8 unterschiedlich gerechnet haben, bekommt auch jedes seinen eigenen Korrektur-Befehl:

NeuronGradientKorrektur
1−0.42Gewicht wird kleiner
2+1.83Gewicht wird größer (weniger negativ)
3−0.87Gewicht wird kleiner
4+0.56Gewicht wird größer
5−1.21Gewicht wird kleiner
6−0.34Gewicht wird kleiner
7+0.91Gewicht wird größer
8−0.67Gewicht wird kleiner

✅ Der entscheidende Punkt: Jedes Neuron hat einen anderen Output produziert, deshalb bekommt jedes einen anderen Gradienten. Die Unterschiede werden mit jedem Trainingsschritt größer, nicht kleiner!

Schritt 3: Nach 300 Epochen — jeder hat seinen Job

Aus 8 zufälligen Startpunkten sind 8 Spezialisten geworden:

NeuronGelerntes GewichtSein Spezialgebiet
1+0.382Mittlere Wassermengen (linearer Anteil)
2−0.623„Zu wenig Wasser“-Detektor
3+0.891„Optimaler Bereich“-Detektor
4−0.287Unterstützt die „Zu wenig“-Erkennung
5+0.534Allgemeine Wachstumsrate
6+0.112Kleine Korrekturen
7−0.478„Zu viel Wasser“-Warner
8+0.723Verstärkt den optimalen Bereich

🎯 Darum lohnt sich das 8er-Team

  1. 🎲 Zufälliger Start: jedes Neuron beginnt woanders
  2. 📊 Andere Rechnung: andere Gewichte → andere Outputs
  3. 🔄 Anderes Feedback: jedes bekommt seinen eigenen Gradienten
  4. 🧠 Spezialisierung: über die Epochen entstehen 8 verschiedene „Rollen“

💡 Analogie: 8 Leute lösen gemeinsam ein Puzzle. Jeder fängt zufällig woanders an — und ganz von selbst wird einer zum Rand-Spezialisten und eine zur Himmel-Expertin. Niemand hat das eingeteilt! Genau so entstehen die „Zu-wenig-Wasser-Detektoren“ und „Übergieß-Warner“ in deinem Netz.

🔄 Training vs. Inferenz — zwei Betriebsarten, ein Netz

Dein Netz kennt zwei Modi — genau wie du beim Lernen: Üben mit Lösungsheft (Training) und die Prüfung (Inferenz). Der ganze Unterschied steckt darin, was mit den Gewichts-Tensoren passiert:

🎓 Training (Üben mit Lösungsheft)

Ziel: Die Gewichte so lange anpassen, bis die Vorhersagen zu den bekannten Antworten passen.

1
Forward Pass

Input-Tensor → Hidden Layer → Output-Tensor

[250] → [8 Neuronen] → [20.5] (Vorhersage)
2
Loss berechnen

Wie falsch war die Vorhersage? (Kennst du aus „Fehler messen“)

Loss = (20 − 20.5)² = 0.25
3
Backward Pass (Backpropagation)

Der Fehler wandert rückwärts durchs Netz und berechnet für jedes einzelne Gewicht einen Gradienten — erst im Output Layer, dann im Hidden Layer.

4
Gewichte aktualisieren

Der Optimizer macht bei jedem Gewicht einen kleinen Schritt bergab:

W = W − Lernrate × Gradient

🎯 Inferenz (die Prüfung)

Ziel: Mit den fertig gelernten Gewichten neue Fragen beantworten.

1
Forward Pass

Input-Tensor → Hidden Layer → Output-Tensor

[300] → [8 Neuronen] → [19.2] (Vorhersage)

✅ Das war’s. Wirklich.

Kein Backward Pass, keine Gewichts-Updates. Die Gewichte sind eingefroren — das Netz wendet nur noch an, was es gelernt hat.

⚡ Deshalb ist Inferenz so schnell:

1× vorwärts rechnen statt vorwärts + rückwärts + Update. Genau darum kann dir ChatGPT in Sekunden antworten, obwohl sein Training Monate gedauert hat — du erlebst dort immer nur die Inferenz.

🚀 Jetzt trainierst du das Netz selbst!

🌱 Das Szenario

Wir simulieren 30 Messungen an unserer roten Pflanze mit Wassermengen von 0 bis 500 ml. Die Natur folgt dabei heimlich dieser Regel:

Wachstum = −0.0003 × (Wasser − 250)² + 20

Eine umgedrehte Parabel: Optimum bei 250 ml (20 cm Wachstum) — exakt der „Übergießen“-Effekt aus der Einleitung. Wichtig: Das Netz bekommt diese Formel nie zu sehen. Es kennt nur die 30 verrauschten Messpunkte und muss die Kurve selbst entdecken.

⚙️ Die Zutaten

  • Hidden Layer: 8 Neuronen mit ReLU — also bis zu 8 Knicke für die Kurve
  • Output Layer: 1 Neuron, linear — mischt die 8 Meinungen zusammen
  • Optimizer: Adam mit Lernrate 0.01 — der mitdenkende Schrittmacher aus „Gradient Descent“
  • 300 Epochen, Loss: Mean Squared Error („Fehler messen“)

📏 Und ja — normalisiert wird wieder! Diesmal aber nicht auf 0 bis 1 wie in „Daten vorbereiten“, sondern per z-Score: Jeder Wert wird zu „Wie weit weg vom Durchschnitt, gemessen in Streuungen?“. Anderes Rezept, gleiches Ziel — alle Zahlen in einen Bereich bringen, in dem das Netz gut lernt. Nach der Vorhersage rechnen wir natürlich wieder in ml und cm zurück.

🎲 Kleine Wette, bevor du drückst?

Nach dem Training zeigt dir eine Tabelle die echten gelernten Gewichte deiner 8 Neuronen. Meine Wette: Mehrere davon sind negativ. Warum sollte ein Netz, das Wachstum vorhersagt, „Bremser“-Neuronen brauchen? Weil die Parabel eine rechte Hälfte hat! Ab 250 ml muss irgendetwas im Netz rufen: „Stopp, jetzt wird’s schlechter!“ — und genau das erledigen die Neuronen mit negativem Gewicht. Schau nach dem Training nach, ob ich recht behalte. 😉

0%

🧠 Kurzer Check — hast du es?

1. Warum kann dein Netz jetzt Kurven lernen, während es vorher nur Geraden konnte?
2. Dein Hidden Layer hat 8 ReLU-Neuronen. Wie viele Knickstellen kann die gelernte Kurve höchstens haben?
3. Was passiert bei der Inferenz (deiner Vorhersage unten) NICHT mehr?
🚀 Weiter geht’s: Du hast eben erlebt, wie 8 ReLU-Knicke gemeinsam eine Parabel formen. In „Warum eine Gerade nicht reicht“ zerlegst du diesen Trick Stück für Stück — und danach wartet in „Exponentielle Regression“ dein erstes richtig tiefes Netz auf dich.