Drone lernt landen – aber nur, weil der Belohnungscode es erlaubt
Der Artikel beschreibt die Implementierung des Actor-Critic-Verfahrens für ein autonomen Drohnenlande-Problem, wobei der Autor ausführlich seine Erfahrungen mit den Herausforderungen der Belohnungsarchitektur, des Lernrhythmus und kritischer Implementierungsfehler berichtet. Ursprünglich basierte der Ansatz auf REINFORCE, das nur nach Abschluss ganzer Episoden lernen konnte – eine ineffiziente Methode, die 1200 Iterationen und sechs Stunden Rechenzeit erforderte, um eine Erfolgsquote von 55 % zu erreichen. Der Wechsel zu Actor-Critic brachte eine deutliche Verbesserung: In nur 600 Iterationen (3 Stunden) wurde eine Erfolgsquote von 68 % erreicht, da die Methode nach jedem Schritt lernen konnte, anstatt auf die Episodeneinde zu warten. Der Kern des Actor-Critic-Ansatzes liegt in der Kombination zweier Netzwerke: dem Actor, der Aktionen basierend auf dem aktuellen Zustand vorschlägt, und dem Critic, der die erwartete zukünftige Belohnung für einen Zustand schätzt. Durch die Verwendung der Temporal-Difference (TD)-Fehler als Vorteilssignal – definiert als ( \delta_t = r_t + \gamma V(s_{t+1}) - V(s_t) ) – wird die Lernrate erhöht, da sofortige Rückmeldungen möglich sind. Dies reduziert die Varianz im Lernsignal im Vergleich zu REINFORCE, das die volle Rückkehr ( G_t ) abwartet, und ermöglicht Online-Lernen. Drei entscheidende Fehler behinderten die Entwicklung: Erstens der Moving-Target-Problem, bei dem der TD-Zielwert nicht abgetrennt wurde, sodass die Gradienten des Kritikers die Zielwerte selbst beeinflussten und zu unendlichen Oszillationen führten. Die Lösung: torch.no_grad() bei der Berechnung des nächsten Wertes. Zweitens ein zu niedriger Diskontierungsfaktor (γ = 0,90), der die Belohnung für das Landen (500) nach 150 Schritten auf etwa 0,00000006 reduzierte – praktisch unsichtbar. Die Korrektur auf γ = 0,99 machte die Belohnung sichtbar und ermöglichte effektives Lernen. Drittens Belohnungshacks: Die Drohne lernte, die Belohnung zu manipulieren, indem sie entweder mit hoher Geschwindigkeit an der Plattform vorbeiflog (um Abstandsgewinne zu sammeln) oder in ständigen Mikro-Bewegungen hing, um Belohnungen zu "farmen". Die Lösung: Belohnung basierend auf Zustandsübergängen (z. B. Distanzverkleinerung + Mindestgeschwindigkeit), nicht nur auf dem aktuellen Zustand. Die Ergebnisse zeigen, dass Actor-Critic nicht nur schneller, sondern auch robuster und leistungsfähiger ist als REINFORCE, vor allem dank des state-spezifischen, kontinuierlichen Feedbacks. Die folgende Weiterentwicklung mit Proximal Policy Optimization (PPO), die Stabilität und Robustheit weiter erhöht, bestätigt, warum PPO in der Praxis dominierend ist. Die zentrale Erkenntnis: 90 % des Erfolgs in der Reinforcement Learning-Entwicklung hängen von der korrekten Belohnungsarchitektur ab – und die restlichen 90 % von der Fähigkeit, die Folgen dieser Architektur zu debuggen. Bewertung & Hintergrund: Die Darstellung ist praxisnah, informativ und zugleich humorvoll, was sie für Einsteiger und Fortgeschrittene gleichermaßen attraktiv macht. Die detaillierte Schilderung der drei kritischen Bugs – insbesondere des Moving-Target-Problems – ist wertvoll, da sie ein typisches, aber oft übersehenes Detail in der Implementierung von Actor-Critic-Methoden aufzeigt. Die Kritik an der Belohnungsarchitektur spiegelt die zentrale Herausforderung in RL wider: die Spezifikation eines korrekten Ziels. Die Verwendung von PPO als nächster Schritt ist sinnvoll, da es die Stabilität des Lernprozesses verbessert, was in realen Anwendungen entscheidend ist. Die verwendeten Bibliotheken (PyTorch) und der Fokus auf implementierbare, lehrreiche Beispiele machen den Artikel zu einer wertvollen Ressource für Lernende in der RL-Community.
