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

Multiple Lineare Regression

Mehrere Eingaben gleichzeitig verarbeiten — Wohnungspreise vorhersagen.

👋 HerrKI hier — heute wird es realistisch: mehrere Ursachen gleichzeitig

Öffne ein Immobilienportal: Warum kostet die eine Wohnung 800 € und die andere 1.400 €? Nicht wegen EINER Zahl — Größe, Zimmerzahl und Baujahr spielen zusammen hinein. Fast jedes echte Problem sieht so aus. Solche Einflussgrößen nennt man Features — und heute lernt dein Netz zum ersten Mal, mehrere davon gleichzeitig zu verrechnen.

Aus Tensor-Sicht ändert sich dabei nur eines: Statt Shape [1] hat jede Eingabe jetzt Shape [3] — drei Zahlen pro Wohnung. Das Neuron macht daraus wie immer eine gewichtete Summe. Alles, was du in „Lineare Regression“ gelernt hast, gilt unverändert weiter — und obendrauf findest du im Vergleichs-Experiment heraus, mit welchen Einstellungen ein Netz am besten lernt.

🎯 Was du hier lernst:
  • ✅ Wie man mehrere Features als Input nutzt (Input Shape)
  • ✅ Was ist Batch-Training? (Mehrere Beispiele gleichzeitig)
  • ✅ Wie man Feature-Normalisierung macht (wichtig!)
  • ✅ Wie man Vorhersagen mit mehreren Inputs macht

Unser Fall heute: 10 Wohnungen mit Fläche, Zimmerzahl und Entfernung zum Zentrum — und ihren Kaltmieten. In den Daten steckt eine versteckte Preisregel. Du darfst gleich erst selbst raten (und wetten!), dann treten 4 Netze mit verschiedenen Einstellungen im Wettrennen an: Wer findet die Regel am besten? 🏁

💡 HerrKI-Tipp: Input Shape = Anzahl Features. 3 Features? inputShape: [3]. Jedes Neuron im ersten Layer bekommt alle 3 Werte! 🧮

🏠 Die Trainingsdaten: 10 Wohnungen aus dem Portal

📦 Tensor-Perspektive: Diese Tabelle wird zu X mit Shape [10, 3] (10 Wohnungen × 3 Features) und Y mit Shape [10, 1] (die Mieten).

Wohnung📐 Fläche (m²)🚪 Zimmer📍 Entfernung (km)💶 Kaltmiete
145210640 €
26025920 €
330115310 €
480381.150 €
5100431.540 €
655212720 €
770320790 €
8120521.850 €
94016610 €
10904181.120 €

🤫 Auch hier steckt eine exakte Regel drin — aber diesmal wirst selbst DU sie nicht durch Hingucken finden. Drei Ursachen gleichzeitig sind für Menschenaugen schwer zu entwirren. Für ein Neuron nicht.

✍️ Versuch es erst von Hand — wie ein Neuron

Ein Neuron mit 3 Eingängen rechnet nichts anderes als eine gewichtete Summe (die Matrixzeile aus „Tensor-Operationen“). Rate doch mal Gewichte — sagen wir 8 €/m², 100 €/Zimmer, −5 €/km, Basis 300 € — und prüfe an Wohnung 4 (80 m², 3 Zi., 8 km):

Miete ≈ 8·80 + 100·3 + (−5)·8 + 300 = 640 + 300 − 40 + 300 = 1.200 € Tabelle sagt: 1.150 € → 50 € daneben. Gar nicht schlecht geraten!

Aber gilt deine Raterei auch für die anderen 9 Wohnungen? (Spoiler: Wohnung 3 verhaut sie um über 100 €.) Genau DAS ist das Problem, das gleich 4 Netze lösen — sie probieren nicht 1×, sondern hunderte Male, und messen nach jedem Versuch den Fehler über ALLE Wohnungen gleichzeitig.

🎲 Deine Wette vor dem Rennen: Welches der drei Features bekommt ein NEGATIVES Gewicht? (erst tippen, dann aufklappen)

Die Entfernung zum Zentrum! Mehr Kilometer = weniger Miete, also muss ihr Gewicht unter null liegen. Das Spannende: niemand sagt das dem Netz. Es startet mit Zufallsgewichten — und wenn gleich in den Ergebniskarten bei „Entfernung“ ein Minus steht, hat es diesen Zusammenhang ganz allein aus den 10 Zeilen gelernt. Achte drauf! 👀

⚖️ Eine Sache noch, bevor es losgeht: Fläche läuft von 30–120, Zimmer nur von 1–5 — völlig verschiedene Skalen! Damit die große Fläche die kleinen Zimmer nicht überbrüllt, rechnen wir alle Features vor dem Training auf 0–1 um (Normalisierung — das ganze Warum samt Live-Duell: „Alles auf eine Skala“). Die Ergebniskarten rechnen die gelernten Gewichte für dich wieder in €/m², €/Zimmer und €/km zurück.

📚 Die wichtigsten Hyperparameter

🔄

Epochen (Epochs)

Was ist das?

Eine Epoche = Ein kompletter Durchlauf durch alle Trainingsdaten.

Beispiel:

Bei uns: „50 Epochen“ = das Netz blättert 50-mal durch alle 10 Wohnungen und dreht nach jeder Runde an seinen 3 Gewichten. Modell 2 bekommt 200 Runden — viermal mehr Übung.

🔍 Effekt:

  • Zu wenig: Modell lernt nicht genug
  • Perfekt: Modell lernt optimal
  • Zu viel: Overfitting — auswendig gelernt statt verstanden (das ganze Drama dazu: Kapitel „Overfitting“)
📈

Lernrate (Learning Rate)

Was ist das?

Wie groß die Schritte sind, mit denen das Modell seine Gewichte anpasst.

Analogie:

Der Schritt aus Kapitel 118, in Zahlen: Steigung +2,0 und LR 0,01 → Gewicht 0,30 → 0,28 (Trippelschritt). Mit LR 0,05 → 0,30 → 0,20 (Riesenschritt — schneller, aber wackliger).

🔍 Effekt:

  • Zu klein (0.0001): Training dauert ewig
  • Perfekt (0.001-0.01): Schnell & stabil
  • Zu groß (0.1+): Modell "springt" und konvergiert nie
🧠

Optimizer

Was ist das?

Die Strategie, wie das Modell lernt.

Wir nutzen Adam:

  • Adam: Intelligent, adaptiv, robust
  • Passt die Lernrate automatisch an
  • Funktioniert mit verschiedenen Learning Rates

🔍 Effekt:

Beispiel: Ein naiver Schritt wollte 0,03 → 2,03 springen — Adam bremst auf ≈ 0,04. Deshalb überlebt Modell 4 gleich (vermutlich!) sogar die riskante LR 0,05.

📦

Batch Size (nicht heute)

Was ist das?

Wie viele Beispiele gleichzeitig verarbeitet werden.

Heute:

Bei uns passen alle 10 Wohnungen auf einmal in einen Tensor [10, 3] — ein einziger „Batch“. Bei Millionen Datensätzen füttert man häppchenweise (Mini-Batches).

🏁 Vergleichstraining starten

Wir trainieren jetzt 4 Modelle gleichzeitig mit unterschiedlichen Hyperparametern:

  • Modell 1: Wenig Epochen (50), normale LR (0.01), Adam
  • Modell 2: Viele Epochen (200), normale LR (0.01), Adam
  • Modell 3: Mittlere Epochen (100), kleine LR (0.001), Adam
  • Modell 4: Mittlere Epochen (100), hohe LR (0.05), Adam

💡 Experiment: Modell 4 testet, ob Adam auch mit einer höheren Learning Rate (0.05) klarkommt. Normalerweise wäre 0.05 zu groß, aber Adam ist robust und könnte es schaffen!

Welches Modell wird am besten abschneiden? 🏆

🔬 Wie funktioniert das im Detail?

📈 Learning Rate - Die Schrittgröße beim Lernen

Stell dir vor, du stehst auf einem Berg im Nebel und willst ins Tal (= bester Gewichtswert). Du kannst nicht sehen, wo genau das Tal ist, aber du fühlst, in welche Richtung es abwärts geht. Dieses Bild kennst du schon: In „Gradient Descent zum Anfassen“ bist du den Berg selbst hinuntergestapft — hier siehst du, was die Schrittgröße im ECHTEN Training anrichtet.

🏔️ Die Berg-Analogie

LR = 0.0001 (zu klein)
🐌

Winzige Schritte

Effekt: Du bewegst dich millimeterweise. Sicher, aber es dauert ewig bis zum Tal!

⏰ Training: Sehr langsam

LR = 0.001-0.01 (perfekt)
🚶

Normale Schritte

Effekt: Du gehst mit vernünftigen Schritten. Schnell und sicher ins Tal!

✅ Training: Optimal!

LR = 0.1+ (zu groß)
🦘

Riesige Sprünge

Effekt: Du springst wild umher, fliegst über das Tal hinweg und findest es nie!

❌ Training: NaN/Fehler

🎯 Was passiert konkret mit den Gewichten?

Bei jedem Trainingsschritt berechnet das Modell: "In welche Richtung muss ich die Gewichte ändern?"
Die Learning Rate bestimmt: "Wie weit gehe ich in diese Richtung?"

Neues Gewicht = Altes Gewicht - (Learning Rate × Gradient)

🧠 Adam Optimizer - Die intelligente Lernstrategie

Der Optimizer entscheidet, wie intelligent das Modell die Gewichte anpasst. Wir nutzen Adam - einer der besten Optimizer!

⚙️ Wie Adam funktioniert

📊 Learning Rate Effekte
⚖️

Was passiert bei verschiedenen LR?

  • LR 0.001: Sehr langsam, aber sicher
  • LR 0.01: Optimal für die meisten Fälle
  • LR 0.05: Schnell, aber riskant
  • LR 0.1+: Meist NaN!

📐 Formel bleibt gleich:

w = w - (LR × gradient)

Nur die LR-Zahl ändert sich!

💡 Tipp: Adam kann mit größeren LR besser umgehen als andere Optimizer!

🚀 Adam (Adaptive Moment Estimation)
🧠

Wie es funktioniert:

  1. Berechne Fehler (Loss)
  2. Berechne Gradient (Richtung)
  3. Passe Schrittgröße intelligent an:
    • Große Schritte am Anfang
    • Kleine Schritte nahe am Ziel
    • Merkt sich vorherige Gradienten
  4. Wiederhole

📐 Formel (vereinfacht):

w = w - (adaptierte_LR × gradient)

✅ Vorteil: Intelligent, adaptiv, meist schneller
❌ Nachteil: Komplexer, braucht mehr Speicher

🔍 Konkrete Beispiel-Rechnung mit Adam

Stellen wir uns vor, unser Gewicht ist gerade w = 0.03 und wir wollen w = 0.05 erreichen.

Wie Adam das Gewicht anpasst:

Epoche 1:

w = 0.0300 - (0.01 × -0.5) = 0.0350

Gradient: -0.5 → Gewicht erhöhen!

Epoche 2:

w = 0.0350 + 0.0032 = 0.0382

Adam passt die Schrittgröße an

Nach mehreren Epochen:

w → 0.05 🎯

Perfekt gelernt!

⚡ Adam macht intelligente, adaptive Schritte und erreicht das Ziel schnell und stabil!

📦 Was passiert mit den Tensoren?

🔄 Der komplette Trainingsablauf

Schritt für Schritt:
1
Forward Pass (Vorhersage)

Input-Tensor [100] fließt durch das Netz:
output = input × gewicht + bias = 100 × 0.03 + 0 = 3.0
Output-Tensor [3.0]

2
Loss berechnen (Fehler messen)

Erwarteter Output: 5.0, Tatsächlicher Output: 3.0
Loss = (5.0 - 3.0)² = 4.0 ← Der Fehler!

3
Backward Pass (Gradient berechnen)

Berechne: "In welche Richtung muss ich das Gewicht ändern, um den Fehler zu verringern?"
Gradient für Gewicht = -200 (negative = Gewicht erhöhen!)

4
Adam Update (Gewicht anpassen)

Der rohe Gradient ist riesig (−200): Ein naiver Schritt 0.03 − 0.01 × (−200) = 2.03 würde meilenweit über das Ziel (0.05) hinausschießen!
Adam begrenzt deshalb die Schrittweite auf ungefähr Lernraten-Größe: neues_gewicht ≈ 0.03 + 0.01 = 0.04
Genau das heißt „adaptiv“: Die Richtung kommt vom Gradienten, die Schrittgröße bleibt unter Kontrolle.

5
Wiederhole (nächste Epoche)

Mit dem neuen Gewicht starten wir wieder bei Schritt 1. Nach vielen Epochen konvergiert das Gewicht zu ≈0.05!

🎯 Zusammenfassung: Was macht der Optimizer mit Tensoren?
  • Liest die aktuellen Gewichts-Tensoren
  • Berechnet Gradienten-Tensoren (Richtung der Änderung)
  • Wendet die Learning Rate an (Schrittgröße)
  • Aktualisiert die Gewichts-Tensoren
  • Bei Adam: Passt die Schrittgröße intelligent pro Gewicht an!

🧠 Kurzer Check — hast du es?

1. Für Fläche, Zimmerzahl und Entfernung lernt dein Netz einen Gewichts-Tensor mit Shape [3]. Warum drei?
2. Nach dem Training sind die Gewichte (0,5 · 10 · −5) für (m² · Zimmer · km Entfernung). Was bedeutet das Minus?
3. Was macht der Adam-Optimizer besser als ein stur fester Lernschritt?

Du verstehst jetzt, wie Hyperparameter im Detail funktionieren! Weiter geht es mit „Polynomiale Regression“ — dort bekommt dein Netz seinen ersten Hidden Layer und lernt Kurven.