c't 21/2018
S. 166
Know-how
Reinforcement-Learning
Aufmacherbild
Bild: Albert Hulm

Zuckerbrot und Peitsche

Einer selbst gebauten KI per verstärkendem Lernen beibringen Pong zu spielen

Beim Reinforcement-Learning trainiert man eine KI wie einen Hund mit Belohnungen und Bestrafungen. Als Testfeld dafür eignen sich besonders Retrospiele, da sie nur wenigen Regeln folgen und sich die alte Hardware leicht emulieren lässt. Mit Keras, dem OpenAI Gym und wenigen Zeilen Python-Code trainieren Sie ein neuronales Netz, das ziemlich gut Pong spielt.

Es ist 1977, Sie sitzen vorm Fernseher und spielen Pong auf Ihrem neuen Spielzeug der Zukunft, dem Atari 2600. Zu Beginn sind Sie dem Computergegner noch unterlegen, aber schnell verstehen Sie das Prinzip des Spiels und nach einiger Übung schaffen Sie es, den Computergegner recht zuverlässig zu besiegen. Ihnen kommt der Gedanke, ob nicht auch ein Computer so wie Sie von selbst lernen könnte, Pong zu spielen. Im Jahr 1977 war das noch Science-Fiction – 2018 ist es ein überschaubares Programmierprojekt. Denn nach über 40 Jahren wissenschaftlichen Fortschritts sind solche selbstlernenden Systeme endlich realisierbar. Heute können Sie so ein System – mit etwas Geduld – selbst auf Ihrem Computer trainieren.

Wann immer Sie ein Problem anhand von Daten lösen wollen, statt einen Algorithmus zu programmieren, brauchen Sie maschinelles Lernen. Das vermutlich bekannteste Beispiel für Maschinenlernen ist seit ein paar Jahren die Bilderkennung. Wenn Sie selbst ein System trainieren, welches entscheidet, ob sich auf einem Bild ein Hund oder eine Katze befindet, dann benötigen Sie eine große Anzahl an Beispielbildern, die Sie manuell in die beiden Klassen „Hund“ und „Katze“ einsortieren. Nachdem Sie eine Netzwerkstruktur ausgewählt haben, beispielsweise ein Convolutional Neural Network (CNN), präsentieren Sie diesem System die Bilder und die dazugehörigen Klassen. Wenn Sie alles richtig trainiert haben, kann das CNN nach dem Training auch bei Bildern, die es noch nie gesehen hat, entscheiden, ob sich darauf ein Hund oder eine Katze befindet. Das funktioniert, ohne dass Sie dem Computer beibringen mussten, was genau einen Hund von einer Katze unterscheidet. Das CNN lernt diese Unterschiede selbst anhand der präsentierten Daten (Deep Learning). Man bezeichnet diese Art des maschinellen Lernens als „supervised“, da Sie dem System als „Aufseher“ mitgeteilt haben, welche Antwort (Klasse) es für eine bestimmte Eingabe erzeugen soll.