Maschinelles Lernen ist heute so präsent wie nie zuvor. Während das Konzept der künstlichen Intelligenz erst im Sommer 1956
mit der Dartmouth Conference offiziell als akademisches Fachgebiet anerkannt wurde und vor 20 Jahren noch mit massiven
Imageproblemen zu kämpfen hatte, ist es heute nicht mehr aus unserem Alltag wegzudenken. Nicht nur für soziale Medien,
für wirtschaftliche Marktanalysen, für die Medizin oder für unsere Smartphones ist maschinelles Lernen von hoher Bedeutung,
sondern auch Fahrzeuge sind schon fast in der Lage völlig auto- nom im herkömmlichen Strassenverkehr zu manövrieren. Unter
den verschiedene Methoden des maschinellen Lernens wurden künstliche neuronale Netze nach dem biologischen Vorbild des Gehirns
über die letzten Jahre immer bekannter und erfolgreicher. Zu diesem Aufschwung haben bessere Computer und vor allem die
Verfügbarkeit von riesigen Datenmengen beigetragen.
Es gab verschiedene Gründe, die mich zu meiner Themenwahl führten. Zum einen konnte ich mich aufgrund der Aktualität dieses
Themas schon länger für das maschinelle Lernen im Allgemeinen begeistern, doch was mich stets am meisten interessierte, war
die Technik hinter den Maschinen. Es waren vor allem die theoretischen Konzepte der Mathematik und Informatik, die meine
Aufmerksamkeit erregten und da ich schon seit Langem wissen wollte, wie maschinelles Lernen mit künstlichen neuronalen Netzen
funktioniert, habe ich mich dazu entschieden, die Maturaarbeit als Chance dafür zu nutzen. Zudem war mir schon vor der
Themenwahl bewusst, dass ich neben der schriftlichen Arbeit auch gerne ein Produkt erstellen würde. Als ich dann begann
die Programmiersprache Python kennenzulernen, führte dies schnell zur endgültigen Entscheidung eine künstliche Intelligenz
zu programmieren.
Das Hauptziel meiner Arbeit war das Erstellen eines Programms mit der Programmiersprache Python zur Klassifizierung von
handgezeichneten Gegenständen mit einer künstlichen Intelligenz, wobei mich unter anderem der riesigen Quick, Draw! Datensatz
von Google inspirierte. Um ein möglichst effektives Programm zu erstellen, habe ich mich zwar dazu entschieden, die äusserst
bekannte Programmbibliothek PyTorch zu verwenden, doch trotzdem war mein zusätzliches Ziel die grundlegende Mathematik des
Trainings eines einfachen neuronalen Netzes mit dem Gradientenabstiegsverfahren als Optimierungsalgorithmus zu verstehen.
Zuerst wird in Kapitel 2 meiner Maturaarbeit die Struktur und der Umgang mit dem Quick, Draw! Datensatz erläutert. In Kapitel
3 wird dann ein einfaches neuronales Netz mathematisch beschrieben und es werden die unter anderem auch von PyTorch verwendeten
Gleichungen für das Gradientenabstiegsverfahren hergeleitet. In Kapitel 4 werden verschiedenste, während meiner praktischen
Arbeit verwendete, Möglichkeiten zur Optimierung des Trainings eines neuronalen Netzes vorgestellt. Zum Schluss werden in
Kapitel 5 die Ergebnisse meiner praktischen Arbeit zusammengetragen, vorgestellt und analysiert. Zudem befinden sich im
Anhang die Quellcodes zu den vier von mir erstellten und verwendeten Programmen, die einen wesentlichen Teil meiner Maturaarbeit
ausmachen.
Machine learning is more present today than ever before. While the concept of artificial intelligence was only officially recognized as an academic discipline during the Dartmouth Conference in the summer of 1956—and faced significant image problems 20 years ago—it has now become an integral part of our daily lives. Machine learning is not only highly significant for social media, economic market analysis, medicine, and smartphones, but vehicles are now nearly capable of navigating conventional road traffic entirely autonomously. Among the various methods of machine learning, artificial neural networks, modeled after the biological brain, have become increasingly well-known and successful in recent years. This rise has been driven by better computers and, most importantly, the availability of massive amounts of data.
There were various reasons that led me to choose this topic. On the one hand, the current relevance of this subject had already sparked my enthusiasm for machine learning in general. However, what always interested me the most was the technology behind the machines. It was primarily the theoretical concepts of mathematics and computer science that captured my attention, and since I had long wanted to understand how machine learning with artificial neural networks works, I decided to use my senior project as an opportunity to explore this topic. Furthermore, I was already aware before choosing my topic that I wanted to create a product alongside the written work. When I began learning the programming language Python, this quickly led to my final decision to program an artificial intelligence.
The main goal of my work was to create a program using the Python programming language to classify hand-drawn objects with artificial intelligence. I was inspired, among other things, by Google's massive Quick, Draw! dataset. To create the most effective program possible, I decided to use the well-known PyTorch library. However, an additional goal of mine was to understand the fundamental mathematics of training a simple neural network using the gradient descent method as an optimization algorithm.
Chapter 2 of my matura paper explains the structure and handling of the Quick, Draw! dataset. Chapter 3 then provides a mathematical description of a simple neural network and derives the equations for the gradient descent method, which is also used by PyTorch. Chapter 4 introduces various approaches I used during my practical work to optimize the training of a neural network. Finally, Chapter 5 compiles, presents, and analyzes the results of my practical work. The appendix also includes the source codes for the four programs I developed and used, which constitute a significant part of my senior project.