Diese Bachelor-Thesis untersucht den Einsatz von Reinforcement Learning unter Verwendung von
Stable Baselines3. Reinforcement Learning dient als Methode zur Regelung von Systemen mit
unbekannten Zustandsübergängen, insbesondere wenn ein zugrundeliegendes Modell fehlt und nur
eine Zielfunktion gegeben ist. Die Arbeit nutzt die Reinforcement-Learning-Algorithmen DQN, A2C
und PPO, um virtuelle Systeme wie z.B. das inverse Pendel zu steuern. Das angewendete Werkzeug
Stable Baselines3 basiert auf Python und bietet vorimplementierte Algorithmen und
Simulationsumgebungen. Die Arbeit konzentriert sich darauf, die Fähigkeit von Reinforcement
Learning zu untersuchen und stabile Regelungssysteme ohne bekanntes Modell einzulernen. Die
Ergebnisse zeigen, dass DQN, A2C und PPO mehrheitlich stabile Regelungen ermöglichen, wobei
Optimierungsmöglichkeiten mit längeren Einlernprozessen bestehen. Die Nutzung von Stable
Baselines3 für benutzerdefinierte Umgebungen wird ebenfalls untersucht und mit den Ergebnissen
der vorimplementierten Umgebungen verglichen. Die Arbeit schliesst mit der Erkenntnis, dass Stable
Baselines3 ein leistungsfähiges Werkzeug für Reinforcement-Learning-Anwendungen ist, betont
jedoch die Notwendigkeit einer umfangreichen Einarbeitung aufgrund anfänglicher Komplexität.
This bachelor thesis investigates the use of reinforcement learning using stable baselines3.
Reinforcement learning is used as a method to control systems with unknown state transitions,
especially when an underlying model is missing and only one objective function is given. The work
uses the reinforcement learning algorithms DQN, A2C and PPO to control virtual systems such as the
inverse pendulum. The applied tool Stable Baselines3 is based on Python and provides preimplemented
algorithms and simulation environments. The work focuses on investigating the ability
of reinforcement learning to learn stable control systems without a known model. The results show
that DQN, A2C and PPO provide mostly stable control, with optimization opportunities with longer
learning processes. The use of stable baselines3 for user-defined environments is also investigated
and compared with the results of the pre-implemented environments. The paper concludes that
Stable Baselines3 is a powerful tool for reinforcement learning applications, but emphasizes the need
for extensive training due to initial complexity.
Bei der Durchflusszytometrie werden grosse Mengen an Daten über die aktuelle Probe erzeugt. Um neue Erkenntnisse aus den Daten dieser Probe zu gewinnen, müssen diese anschliessend aufbereitet und analysiert werden.
Um die Aufbereitung und anschliessende Analyse der Daten möglichst effizient, gleich-zeitig aber auch an die aktuelle Situation angepasst durchführen zu können, wurde im Rahmen dieser Arbeit eine diagnostische Datenpipeline für die Verarbeitung und Ana-lyse von Durchflusszytometrie-Daten erstellt. Dazu standen diverse Datensätze sowie bereits geschriebener Analysecode zur Verfügung, der in die Datenpipeline integriert wurde. Die Datenpipeline kann in ihrem finalen Zustand unterschiedliche Daten korrekt einlesen, die Analyse gemäss dem vorgegebenen Workflow durchführen und die Er-gebnisse, die in Form von verschiedenen Datentypen vorliegen, abspeichern.
Um die Datenpipeline zu erstellen wurde der vorhandene Code analysiert und an-schliessend in kleinere Codestücke segmentiert. Die Segmentierung erfolgte gemäss eines Datenflussdiagramms, welches erarbeitet wurde und die einzelnen Komponen-ten der Datenpipeline sowie deren Schnittstellen aufzeigt. Anschliessend wurde die Datenpipeline gemäss der erarbeiteten Struktur in einer dafür spezialisierten Software «Apache NiFi» implementiert.
Die Datenpipeline konnte gemäss Vorgabe umgesetzt werden und ermöglicht in ihrem finalen Zustand eine einfache und effiziente Analyse der Durchflusszytometrie-Daten. Die Segmentierung des Codes ermöglicht es dem Benutzer zudem, eine individuelle Analyse, angepasst an den aktuellen Datensatz und die Bedürfnisse des Anwenders, durchzuführen.
During the flow cytometry process, large amounts of data are generated about the current sample that is being analyzed. To gain insights from the sample, this data must be preprocessed and analyzed afterwards.
To preprocess and analyze this data as efficiently as possible, but also individually adopted to the needs of its user, a diagnostic data pipeline was created as part of this project. For this purpose, at the beginning of this project, test datasets as well as anal-ysis code were available, which were integrated into the data pipeline. The data pipe-line reads in the test datasets, performs the analysis according to the specified work-flow and saves the results of the analysis which comes in many distinct types and forms.
To create the data pipeline, the existing code was analyzed and then segmented into smaller snippets of code. The segmentation was done according to a data flow diagram that was developed and which shows the individual components of the data pipeline as well as their interfaces. Subsequently, the data pipeline was implemented according to the developed structure within a specialized software.
The data pipeline has been implemented according to specifications and in its final state allows for simple and efficient analysis of the flow cytometry data. The segmen-tation of the code also allows the user to perform an individual analysis, according to the current data and what he or she wants to find out about it.