To content
Fakultät für Informatik

Einleitung

Das Fachprojekt "Reinforcement Learning" führt Studierende in das Gebiet des Reinforcement Learning (RL) ein und legt dabei einen Schwerpunkt auf die praktische Anwendung. RL ist ein Teilgebiet des maschinellen Lernens, das sich mit der Interaktion zwischen einem Agenten (KI) und seiner Welt beschäftigt. In dieser versucht der Agent ein gewünschtes Verhalten zu erlernen.

Der Agent interagiert in der Welt durch das Wählen der Bewegung. Er erhält Belohnung für gutes Verhalten und eine Strafe für schlechtes Verhalten. Nach einiger Zeit erlernt der Agent viel Belohnung zu bekommen und Strafe zu vermeiden.

Anwendung

Durch RL-Methoden können schwere Probleme gelöst werden, wie beispielsweise:

  • Robotersteuerung in der realen Welt
  • Crypto Trading KI
  • KI für Rocket League und Starcraft 2 auf Grandmaster-Level
  • KI für Schach, Go und Dota 2 auf Weltklasse-Niveau

Inhalt

Durch die Bearbeitung der folgenden Aufgaben wird den Studierenden ein fundiertes Verständnis vermittelt:

1 - Grundlagen:

Anfangs wird den Studierenden erklärt, wie Deep Neural Networks mithilfe von Python und PyTorch erstellt und trainiert werden können. Außerdem erhalten sie eine Einführung in die theoretischen Grundlagen des Reinforcement Learnings.

3 - Präsentation eines Papers:

Die Studierenden arbeiten in Gruppen von vier Personen zusammen. Jede Gruppe sucht sich ein einsteiger-freundliches RL-Paper aus (z.B. DQN, PPO, C51, SAC), das sie liest und anschließend präsentiert.

2 - RL Umgebung:

Jeder Studierende erstellt eine RL-Umgebung in Python. Dies kann ein Spiel sein z.B. Flappy Bird, Doodle Jump, CarRacing oder eine eigene Idee beinhalten. In diesen RL-Umgebungen muss eine Aufgabe definiert werden, die gelöst werden soll.

4 - Implementierung:

Danach wird das Paper von der Gruppe umfangreich mit vielen zusätzlichen Features implementiert und in den RL-Umgebungen der Studierenden getestet. Die Gruppen-Programmierung verwendet GitHub.

Voraussetzungen

Die Studierenden sollten solide Kenntnisse in den folgenden Kursen haben:

  • Vertrautheit mit der Programmiersprache Python
  • Mathematik für Informatik 1 (Mafi1)
  • Mathematik für Informatik 2 (Mafi2) oder
  • Höhere Mathematik I (HöMa1)
  • Höhere Mathematik II (HöMa2)

Empfohlene Kurse:

  • Probabilistic Reasoning and Machine Learning (PRML)