Detailansicht
Detection of code smells in reinforcement learning applications
Georgiana Teodora Filip
Art der Arbeit
Masterarbeit
Universität
Universität Wien
Fakultät
Fakultät für Informatik
Studiumsbezeichnung bzw. Universitätlehrgang (ULG)
Masterstudium Medieninformatik
Betreuer*in
Uwe Zdun
DOI
10.25365/thesis.81430
URN
urn:nbn:at:at-ubw:1-27748.51010.350080-4
Link zu u:search
(Print-Exemplar eventuell in Bibliothek verfügbar)
Abstracts
Abstract
(Deutsch)
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.
Abstract
(Englisch)
Reinforcement learning is one of the three basic machine learning paradigms, alongside supervised learning and unsupervised learning. It is an area concerned with the optimal decision-making of an agent and how an intelligent agent should take action in a dynamic environment to maximize a reward signal. The core problem in reinforcement learning focuses on how an intelligent agent can make a good sequence of decisions, evaluate what constitutes a good decision, and learn to reach the optimal solution and maximize the long-term reward. Such systems and projects are often developed by data analysts who might not always have a software engineering background. Therefore, it is important to analyze possible bottlenecks, bugs, or code issues, referred to as code smells from a software engineering perspective. Identifying and improving code smells is crucial for maintaining a well-structured, scalable, secure, and robust reinforcement learning system. The scope of this master thesis is to find the most common code smells, categorize them and provide a practical solution on how to detect them, in order to improve the code quality of the reinforcement learning applications. The work of this thesis is structured in two main parts. The first part, serves as foundation work for the second part, and it focuses on defining and labeling reinforcement learning specific code smells on a limited set of project, manually analyzing source code and compiling a solid list of reinforcement learning specific code smells. We defined six different categories of reinforcement specific code smells, based on the areas they impacts most in the reinforcement learning process: HYPERPARAMETER, TRAINING, EVALUATION, CODESTYLE, AGENT, and ENVIRONMENT. The second part of the thesis consists of building a tool to automate the process of labeling reinforcement learning specific code smells. The tool was applied to 51 open-source repositories spanning different application domains, resulting in 4,872 positive detections. HYPERPARAMETER smells are the most prevalent category (29.95%), followed by EVALUATION (24.98%), TRAINING (22.66%), and CODESTYLE (19.87%). The distribution of code smells categories is consistent across domains, suggesting that these quality issues occur regularly in reinforcement learning projects, regardless of application area. This work represents a stepping stone towards systematic quality assessment of reinforcement learning codebases, providing automated detection of implementation anti-patterns that directly affect reproducibility and experimental validity, can lead to bugs and suboptimal performance of the systems.
Schlagwörter
Schlagwörter
(Deutsch)
Softwarequalität Code-Mängel Code Smells verstärkendes Lernen reinforcement learning RL RL applications
Schlagwörter
(Englisch)
software quality code smells reinforcement learning RL reinforcement learning applications
Autor*innen
Georgiana Teodora Filip
Haupttitel (Englisch)
Detection of code smells in reinforcement learning applications
Publikationsjahr
2026
Umfangsangabe
ix, 80 Seiten : Illustrationen
Sprache
Englisch
Beurteiler*in
Uwe Zdun
AC Nummer
AC17915138
Utheses ID
81334
Studienkennzahl
UA | 066 | 935 | |
