🌱 Gewächshaus-Klimasteuerung — Q-Learning live
Beobachte, wie ein echter Q-Learning-Verstärkungslern-Agent lernt, die Heizung und Lüftung eines simulierten Gewächshauses live zu steuern, wobei er seine Q-Tabelle bei jeder Episode aus Temperatur-Belohnungs-Feedback echt aktualisiert.
Über die Gewächshaus-Klimasteuerung
Echte Gewächshäuser jonglieren jede Stunde des Tages mit zwei widersprüchlichen Zielen: die Luft nahe einer idealen Temperatur und Luftfeuchtigkeit für die Pflanzen zu halten und dabei keine Energie zu verschwenden. Diese Simulation trainiert einen echten tabellarischen Q-Learning-Agenten, um genau dieses Problem zu lösen. Der Zustand ist eine diskretisierte Ablesung (Temperatur-Bin × Luftfeuchtigkeits-Bin × Tageszeit-Bin) eines einfachen thermischen/feuchtigkeitsbasierten Modells eines Gewächshauses, das auf einen Tag/Nacht-Außentemperaturzyklus, Sonneneinstrahlung und Pflanzentranspiration reagiert. Der Aktionsraum umfasst vier Heizungs-/Lüftungskombinationen. Jede Trainingsepisode durchläuft 24 simulierte Stunden, sammelt eine Belohnung, die das Verlassen des Komfortbands und den Heizenergieverbrauch bestraft, und führt nach jedem einzelnen Schritt das echte Bellman-Update Q(s,a) ← Q(s,a) + α[r + γ·max Q(s′,a′) − Q(s,a)] aus — nichts an der Lernkurve ist geskriptet.
🔬 Was gezeigt wird
Eine live, ungescriptete Episoden-Belohnungs-Lernkurve, erzeugt aus Tausenden echter Trainingsepisoden, eine epsilon-greedy-Explorationsstrategie, die über diese Episoden abklingt, und ein 3D-Gewächshaus, dessen Glasfärbung sich von kaltem Blau über Zielgrün zu heißem Rot verschiebt, während sich die Innentemperatur ändert, mit einer glühenden Heizung und einer angeschlagenen Lüftungsklappe, die sich mit den tatsächlich gewählten Aktionen des Agenten öffnet und schließt.
🎮 Bedienung
Passe die Regler für Lernrate α, Diskontfaktor γ und Epsilon-Zerfall an, drücke dann Trainieren und beobachte, wie die Belohnungskurve ansteigt. Nutze „Q-Tabelle zurücksetzen", um den Agenten wieder bei null anfangen zu lassen, und nutze „Agent beobachten" / „Thermostat beobachten", um eine vollständige 24-Stunden-Episode eines der beiden Regler in der 3D-Szene abzuspielen, mit Live-Anzeigen für Temperatur, Luftfeuchtigkeit, Heizung und Lüftung.
💡 Wusstest du schon?
Der naive Thermostat-Ausgangswert verwendet exakt dieselbe Physik und Belohnungsfunktion wie der Q-Learning-Agent — er reagiert einfach mit festen Schwellenwerten auf die aktuelle Temperatur und Luftfeuchtigkeit. Da er sich nicht wie der trainierte Agent an der Tageszeit ausrichten kann, erzielt ein gut trainierter Q-Learning-Agent typischerweise eine merklich höhere durchschnittliche Episodenbelohnung, sobald seine Explorationsrate abgeklungen ist.
Häufig gestellte Fragen
Was ist Q-Learning und wie unterscheidet es sich vom überwachten Lernen?
Q-Learning ist ein modellfreier Verstärkungslernalgorithmus: Ein Agent interagiert mit einer Umgebung, führt Aktionen aus und lernt rein aus der numerischen Belohnung, die er erhält, ohne jemals die „korrekte" Aktion für eine gegebene Situation gezeigt zu bekommen. Überwachtes Lernen trainiert stattdessen mit gekennzeichneten Beispielen korrekter Eingabe-Ausgabe-Paare. Hier wird der Gewächshaus-Regler nie angewiesen, „die Heizung jetzt einzuschalten" — er entdeckt diese Strategie selbst, indem er Aktionen ausprobiert, beobachtet, ob die resultierende Temperatur und Luftfeuchtigkeit eine gute oder schlechte Belohnung erzielt haben, und seine Q-Tabelle entsprechend über Tausende simulierter Tage aktualisiert.
Wie balanciert die Epsilon-Greedy-Strategie Exploration und Exploitation?
Bei jedem Schritt wählt der Agent mit Wahrscheinlichkeit ε eine zufällige Aktion (Exploration) oder mit Wahrscheinlichkeit 1−ε die Aktion mit dem höchsten bekannten Q-Wert (Exploitation). Zu Beginn des Trainings startet ε bei 1,0, sodass sich der Agent fast zufällig verhält und breite Erfahrung darüber sammelt, was bei jeder Heizungs-/Lüftungskombination geschieht. Nach jeder Episode wird ε mit einem Zerfallsfaktor (z. B. 0,985) multipliziert und auf ein kleines Minimum begrenzt, sodass die Exploration sanft abnimmt, während der Agent zunehmend die gelernte Strategie nutzt — genau die Epsilon-Zerfallskurve, die du live anpassen und beim Aktualisieren beobachten kannst.
Was steuern die Lernrate (α) und der Diskontfaktor (γ) tatsächlich?
Das Bellman-Update lautet Q(s,a) ← Q(s,a) + α·[r + γ·max Q(s′,a′) − Q(s,a)]. Alpha (die Lernrate) steuert, wie stark jede neue Erfahrung den bestehenden Q-Wert überschreibt — ein hohes α passt sich schnell an, kann aber verrauscht und instabil sein, ein niedriges α ist glatter, konvergiert aber langsamer. Gamma (der Diskontfaktor) steuert, wie stark sich der Agent um zukünftige Belohnungen gegenüber der unmittelbaren kümmert: Ein γ nahe 0 macht ihn kurzsichtig, während ein γ nahe 1 ihn für den gesamten 24-Stunden-Zyklus planen lässt.
Warum werden Temperatur und Luftfeuchtigkeit für den Zustandsraum in Bins diskretisiert?
Tabellarisches Q-Learning benötigt eine endliche Anzahl von Zuständen, sodass Q(s,a) als einfache Nachschlagetabelle gespeichert und aktualisiert werden kann. Diese Simulation teilt die Gewächshaustemperatur in 2°C-Bins, die Luftfeuchtigkeit in 10%-Bins und die Tageszeit in vier 6-Stunden-Blöcke ein, was 1.000 diskrete Zustände und 4 diskrete Aktionen ergibt. Gröbere Bins lernen schneller, steuern aber weniger präzise; feinere Bins steuern präziser, benötigen aber mehr Episoden, um jeden Q-Wert zu füllen — der klassische Kompromiss bei der Auflösung des Zustandsraums, der auch Funktionsapproximation (Deep-Q-Netzwerke) bei größeren Problemen motiviert.
Wie ist die Belohnungsfunktion gestaltet, um reale Ziele des Gewächshausbetriebs widerzuspiegeln?
Die Belohnung jedes Schritts ist negativ: Sie bestraft die quadrierte Abweichung der Temperatur außerhalb eines Toleranzbands von ±2,5°C um 22°C, eine kleinere quadrierte Strafe für Luftfeuchtigkeit außerhalb eines ±12%-Bands um 60%, sowie feste Energiekosten, wann immer die Heizung läuft. Das Quadrieren der Abweichung bestraft große Ausschläge viel stärker als kleine, während die konstanten Heizkosten den Agenten davon abhalten, die Heizung ständig auf Hochtouren laufen zu lassen. Die Summe dieser Belohnungen über eine 24-Stunden-Episode zu maximieren ist mathematisch gleichbedeutend damit, das Gewächshaus komfortabel zu halten und gleichzeitig den Energieverbrauch zu minimieren.
Warum wird der trainierte Agent mit einem festen Thermostat-Ausgangswert verglichen?
Ein einfaches Thermostat schaltet die Heizung unterhalb einer niedrigen Temperaturschwelle ein und öffnet die Lüftung oberhalb einer hohen Temperatur- oder Luftfeuchtigkeitsschwelle — genau die Art regelbasierter Steuerung, die in günstigen realen Reglern zu finden ist. Dieselbe feste Regel durch die identische Physik und Belohnungsfunktion laufen zu lassen, ergibt einen fairen, direkten Maßstab. Da der Q-Learning-Agent seine Aktion gemeinsam an Tageszeit und Luftfeuchtigkeit ausrichten kann, übertrifft ein gut trainierter Agent typischerweise die durchschnittliche Episodenbelohnung des naiven Thermostats, sobald epsilon genug abgeklungen ist, damit er das Gelernte nutzen kann.
Lernt der Agent weiter, wenn ich α, γ oder den Epsilon-Zerfall mitten im Training ändere?
Ja. Die drei Regler werden von der laufenden Trainingsschleife bei jeder Episode direkt gelesen, sodass ihre Veränderung sofort beim nächsten Bellman-Update wirksam wird — es gibt keinen versteckten Neustart. Ein sehr hoch eingestelltes α macht die Belohnungskurve sichtbar unruhiger, während ein langsamerer Epsilon-Zerfall den Agenten länger explorieren lässt (und seine Belohnungskurve flacher hält), bevor er sich darauf einpendelt, seine Strategie zu nutzen.
Ein tabellarischer Q-Learning-Agent trainiert an einem simulierten thermischen/feuchtigkeitsbasierten Gewächshausmodell, aktualisiert Q(s,a) echt über die Bellman-Gleichung mit einer epsilon-greedy-Strategie, die über die Episoden abklingt, und wird live gegen ein fest eingestelltes Thermostat gemessen.
3D · Three.js / WebGL-Renderer · 60 FPS Ziel · läuft vollständig clientseitig, keine Installation