ViZDoom ist schon richtig genial. Hinter dem Namen, der so leicht von der Zunge geht, steckt sehr viel. Doom. Deep Learning. Indoor Navigation. Eine Forschungsplattform. Ein internationaler Wettbewerb. Und vor allen Dingen Erinnerungen an meine Jugend.
Da fange ich an. In meiner Jugend. Etwas Persönliches. Ich gehöre wahrscheinlich zu einer demographischen Kohorte. Entweder „Generation X“ oder „Generation Y“. Abhängig davon, wo man die Grenze zieht. Ich verbrachte meine Jugend also in den 1990er-Jahren. Das war eine verrückte Zeit. Das Musikprogramm im TV war geprägt von Eurotrash, Happy Hardcore und Grunge. Helmut Kohl war fast die ganze Zeit Chef vom Land. Und das Spiel Doom hat alles umgekrempelt.
Doom in 1993 und in 2017.
Doom ist nicht der erste First-Person-Shooter. Killerspiel… Ich erwähne kurz die Killerspiele-Diskussion. Lasse sie aber von mir unbewertet. Das Spiel hat damals eine ordentliche Welle gemacht. Die Entwickler von id Software zeigten 1993, dass schnelle 3d-Grafiken auf einem PC möglich sind. Und sie brachten damit unter anderem die Entwicklung der 3d-Grafikkarten kräftig ins Rollen. Ohne die ganzen Spiele, wäre die Welt der GPUs nicht ganz so fortgeschritten. GPUs sind diese tollen Prozessoren, die für die hyperrealistischen 3d-Grafiken verantwortlich sind. Und GPUs sind die Werkzeuge mit denen wir heute unsere Neural Networks trainieren.
Ich denke ich bin 1994 in das Thema eingestiegen. Damals lernte ich Doom II kennen. Die Fortsetzung. Es hat eine Weile gedauert, bis ich voll in dieses Spiel eintauchen konnte. Und ich war begeistert. Keineswegs wegen der Gewalt. Die war ja nur eine Menge an roten Pixeln. Es war das Design, die Technik und das Eintauchen selbst, was mich so bewegt hat. Eine andere Sache war noch einschneidender: Die Erweiterbarkeit. Sogar als Nicht-Entwickler konnte man eigene Levels bauen und eigene Grafiken einsetzen. Ohne diese Erfahrungen wäre ich wahrscheinlich heute nicht der Entwickler, der ich bin.
Vor kurzem – also im Sommer 2017 – hatte ich das Vergnügen im Rahmen vom First Tuesday im MHPLab über ViZDoom zu reden. Das MHPLab lädt jeden ersten Dienstag im Monat Unternehmen, Startups und Kollegen ein. Die Verbindung von Deep Learning mit anderen Disziplinen liegt mir sehr am Herzen. Dass es Verbindungen zwischen Deep Learning und Indoor Navigation gibt kann man sich denken. Sich zu orientieren ist ein Merkmal von Intelligenz. Was hat das mit Doom zu tun? Das werde ich gleich erklären. Doch zunächst etwas Geniales aus der KI-Kiste. Selbstständiges Lernen.
Deep Reinforcement Learning lässt KIs selbstständig lernen.
Googles DeepMind hat mit dem Ansatz Deep Reinforcement Learning für ordentlich Furore gesorgt. Deep Reinforcement Learning ist Deep Learning plus Reinforcement Learning. Deep Learning ist Design, Training und Deploy von Deep Neural Networks. Reinforcement Learning ist Lernen anhand von Feedback, also Belohnung oder Bestrafung.
Deep Reinforcement Learning ist ein einfaches Konzept. Ein untrainiertes Neural Network wird in eine Lernumgebung gesetzt. Während des Trainings gibt es zwei Wege. Der Zufall entscheidet in jeder Runde welcher eingeschlagen wird. Der erste Weg beginnt mit einer beliebigen Aktion. Diese wird ausgeführt, die Belohnung wird berechnet und beides wird benutzt um das Netz zu trainieren. Der zweite Weg ist die Schätzung der höchsten Belohnung durch das Netz. Darauf trainiert es sich ja schließlich. Das Netz wird mit allen möglichen Aktionen gefüttert und die mit der höchsten, geschätzten Belohnung wird ausgeführt. Also immer hin und her. Zufällige Aktion und Lernen. Schätzen und Ausführen. Bis das Netz stabil ist.
So etwas ist sehr spannend wenn man es beobachtet. Das Neural Network zeigt am Anfang rein zufälliges Verhalten. Das erinnert an die Brownsche Teilchenbewegung. Chaos. Langsam kommt aber Ordnung und Struktur auf und wird sichtbar. Das Netz lernt das Problem zu beherrschen. Schritt für Schritt. Iteration für Iteration.
Das Team hinter DeepMind hat sich damals auf eine Reihe von Atari-Spiele-Klassikern gestürzt. Sie haben gezeigt, dass viele von diesen ohne großes Zutun von Deep Reinforcement Learning beherrscht werden können. Teilweise auch mit einer Präzision die über der menschlichen liegt. Das aktuelle Projekt ist Starcraft II. Das ist ein sehr bekanntes Echtzeitstrategiespiel und neuerdings ein Testbett für KI-Forschung. Genau wie ViZDoom.
ViZDoom in der Wissenschaft und als Wettbewerb.
ViZDoom nimmt den Klassiker Doom und wandelt ihn in ein ebensolches Testbett um. Es stellt Schnittstellen zur Verfügung, über die beliebige Künstliche Intelligenzen das Spiel spielen können. Man konzentriert sich hier nicht nur auf Neural Networks. Auch andere Ansätze sind erlaubt, sofern sie die gesteckten Ziele erreichen. Der Zugriff auf das Spiel selbst ist sehr schön gelöst. So steht zum Beispiel der gesamte sichtbare Screen zur Verfügung. Die KIs sehen also dasselbe wie die menschlichen Spieler. Das macht es spannend. Darüberhinaus gibt es noch den Depth-Buffer. Also quasi ein Radarbild der Umgebung in Form von Tiefeninformationen.
Eine kleine Anekdote… Ich finde den Wettbewerb hinter ViZDoom sehr toll. Man kann daran teilnehmen und so seine eigene KI-Schöpfung mit anderen vergleichen. Ich bin ein Freund davon. Besonders da ich vor Jahren den Multi-Agent Programming Contest (MAPC) an der Technischen Universität Clausthal mit organisiert habe. Mehrfach. MAPC ist auch ein Testbed für KIs, nur das hier die Szenarien anders geartet sind.
Diese Wettbewerbe haben den klaren Vorteil, dass sie die Wissenschaft spielerisch vorantreiben. Viele beflügelte Teilnehmer gehen förmlich darin auf, sich gegenseitig zu überholen. Die Ergebnisse sind signifikant. Und viele wundervolle Veröffentlichungen sind so entstanden.
ViZDoom und Indoor Navigation.
Obwohl ViZDoom auf einem Spiel der 1990er-Jahre basiert ist es meiner Meinung nach ideal geeignet für Indoor Navigation. Wir haben es hier mit einer 3d-Umgebung zu tun in der wir uns relativ frei bewegen können. Es ist alles komplett erweiterbar. Willst du etwa eine neue Umgebung bauen – etwa eine Replik eines Flughafens der mit Indoor Navigation zugänglicher gemacht werden soll – schnappe dir einfach einen gängigen Level-Editor und erstelle dir mit ein paar Klicks das Gewünschte. Das dauert nicht lange und du sparst dir auf jeden Fall die Datenbeschaffung der Realität. Für einen beeindruckenden Prototypen reicht das mehr als aus.
Das schöne an ViZDoom ist die Verbindung zu den Realbedingungen. Da mit simulierten Kameradaten trainiert wird kann man leicht den Schritt in die Realität machen. Ob das trainierte Neuronal Network nun eines ist, das in VizDoom trainiert wurde oder eines das mit Echtdaten gelernt hat… Das Model ist dasselbe und die Resultate aus ViZDoom lassen sich auf jede Echt-Endanwendung übertragen. Es muss einzig für neue Daten gesorgt werden. Die Architektur bleibt bestehen.
Zusammengefasst…
… macht ViZDoom einige spannende Schubladen auf. Abgesehen davon dass hier DER 3d-Klassiker schlechthin als Entwicklungsumgebung für Artificial Intelligence aufbereitet wurde. Hier kann man Deep Reinforcement Learning einsetzen. Also intelligente Agenten, die alleine und ohne Aufsicht trainieren. Und was hält uns davon ab, damit eine auf Deep Learning basierte Indoor-Navigation-Lösung als Prototypen zu entwickeln? Nichts!