01.07.2026, 13:00 Uhr
Universität Wien
Besprechungsraum 4.34
Währinger Str. 29
1090 Wien
Titel: Detection of Code Smells in Reinforcement Learning
Applications
Kurzfassung:
Reinforcement Learning ist neben überwachtem und unüberwachtem Lernen eines der drei
grundlegenden Paradigmen des maschinellen Lernens. Es befasst sich mit der optimalen
Entscheidungsfindung eines Agenten und untersucht, wie ein intelligenter Agent in einer
dynamischen Umgebung handeln sollte, um ein Belohnungssignal zu maximieren. Das
Kernproblem des Reinforcement Learning besteht darin, dass ein Agent lernen muss, eine
gute Abfolge von Entscheidungen zu treffen, zu bewerten, was eine gute Entscheidung
ausmacht, und eine Strategie zu entwickeln, die langfristig den erwarteten Gesamtertrag
maximiert. Solche Systeme und Projekte werden häufig von Datenanalystinnen und
Datenanalysten oder Forschenden entwickelt, die nicht immer über einen Hintergrund in
der Softwareentwicklung verfügen. Daher ist es wichtig, mögliche Engpässe, Fehler oder
Code-Probleme zu analysieren, die aus Sicht der Softwareentwicklung als ‘Code Smells’
bezeichnet werden. Das Erkennen und Beheben solcher Code Smells ist entscheidend für
die Entwicklung gut strukturierter, skalierbarer, sicherer und robuster Reinforcement-
Learning-Systeme.
Ziel dieser Masterarbeit ist es, häufig auftretende Code Smells in Reinforcement-
Learning-Anwendungen zu identifizieren, zu kategorisieren und eine praktische Lösung
für ihre automatisierte Erkennung bereitzustellen. Dadurch soll die Codequalität von
Reinforcement-Learning-Anwendungen verbessert werden. Die Arbeit gliedert sich in zwei
Hauptteile. Der erste Teil dient als Grundlage für den zweiten Teil und konzentriert sich
darauf, Reinforcement-Learning-spezifische Code Smells anhand einer begrenzten Anzahl
von Projekten zu definieren und zu kennzeichnen. Dazu wurde der Quellcode ausgewählter
Projekte manuell analysiert, um eine fundierte Liste wiederkehrender Reinforcement-
Learning-spezifischer Code Smells zu erstellen. Auf dieser Grundlage wurden sechs
Kategorien von Code Smells definiert, die sich an den Bereichen orientieren, die sie
im Reinforcement-Learning-Prozess am stärksten beeinflussen: HYPERPARAMETER,
TRAINING, EVALUATION, CODESTYLE, AGENT und ENVIRONMENT.
Der zweite Teil der Arbeit umfasst die Entwicklung eines Tools zur Automatisierung
der Erkennung von Reinforcement-Learning-spezifischen Code Smells. Das Tool wurde
auf 51 Open-Source-Repositories aus verschiedenen Anwendungsbereichen angewendet.
Insgesamt wurden dabei 4.872 Code-Smell-Instanzen identifiziert. Die Kategorie ‘HYPERPARAMETER’
war mit 29,9 % am stärksten vertreten, gefolgt von ‘EVALUATION’ mit
25,0 %, ‘TRAINING’ mit 22,7 % und ‘CODESTYLE’ mit 19,9 %. Die Verteilung der Code-
Smell-Kategorien zeigte sich über die untersuchten Domänen hinweg weitgehend konsistent.
Dies deutet darauf hin, dass entsprechende Qualitätsprobleme in Reinforcement-Learning-
Projekten regelmäßig auftreten und nicht auf einzelne Anwendungsbereiche beschränkt
sind.
Die Arbeit leistet damit einen Beitrag zur systematischen Qualitätsbewertung von
Reinforcement-Learning-Codebasen. Sie zeigt, dass sich bestimmte Implementierungs-
Anti-Patterns automatisiert erkennen lassen, insbesondere solche, die die Reproduzierbarkeit,
die experimentelle Validität sowie die Zuverlässigkeit und Leistungsfähigkeit von
Reinforcement-Learning-Systemen beeinträchtigen können.