In dieser Lehrveranstaltung wollen wir uns mit den mathematischen Methoden und Algorithmen, auf denen das maschinelle Lernen basiert, auseinander setzen. Dazu zählen das Treffen von Vorhersagen durch Regressionsverfahren, das Erlernen von Entscheidungsregeln, die Grundlagen Neuronaler Netze sowie das Auffinden von zusammenhängenden Strukturen (Cluster) in Datensätzen. Neben den theoretischen Betrachtungen werden auch Beispiele an Hand von Jupyter Notebooks in der Programmiersprache Python untersucht und darin die gelernten Methoden implementiert. Die Veranstaltung beginnt mit einer Zusammenfassung der benötigten mathematischen Vorkenntnisse der Oberstufe und alle weiteren benötigte Kenntnisse werden davon ausgehend aufgebaut.

Kapitel 0 - Mathematische Vorkenntnisse

Bearbeiten

In diesem Kapitel werden einige grundlegende mathematische Methoden aufbereitet. Es wird dazu auf Konzepte aus der gymnasialen Oberstufe eingegangen und darauf aufgebaut. Zu den behandelten Themen zählen das Bilden von Ableitungen und Auffinden von Extremstellen, der Umgang mit Vektoren und das Beschreiben von Ebenen im Raum sowie den Abstand von Punkten zu diesen Ebenen. Dazu werden Matrizen und ihre Wirkung auf Vektoren diskutiert.

Kapitel 1 - Grundlagen des maschinellen Lernens

Bearbeiten

In diesem Kapitel werden einige grundlegende Begriffe des maschinellen Lernens vorgestellt und diskutiert.

Kapitel 2 - Einfache Regressionsverfahren

Bearbeiten

In diesem Kapitel wird darauf eingegangen, wie sich mit den Methoden der linearen Regression einfache Modelle zur Vorhersage einer kontinuerlichen Ausgabevariable erstellen lassen. Dies wird auf höherdimensionale und nicht lineare Probleme durch Feature Engineering erweitert. In einem Jupyter Notebook werden die entsprchenden Themen abschließend implementiert und an konkreten Beispielen erprobt.

Kapitel 3 - Klassifikationsverfahren

Bearbeiten

In diesem Kapitel werden die Grundlagen der Klassifikationsverfahren besprochen. Zunächst wird darauf eingegangen, wie dies durch einen einfachen Gradientenabstieg erfolgen kann und an einigen Beispielen mit einem Jupyter Notebook implementiert. Danach wird auf die spezielle Methode der Support Vector Machines eingegangen, die versuchen, eine möglichst gute Lösung im Versionspace zu finden.

Kapitel 4 - Neuronale Netze

Bearbeiten

In diesem Kapitel wird eine kleine Einführung in Neuronale Netze gegeben. Es wird behandelt, wie sie aufgebaut und mathematisch als eine Verkettung von Funktionen aufgefasst werden können. Auch wie sich Neuronale Netze ressourcenschonend durch Backpropagation trainieren lassen, soll hier behandelt werden. Schlussendlich werden die gelernten Konzepte in einem Jupyter Notebook an Beispielen erprobt.

Kapitel 5 - Unüberwachtes Lernen

Bearbeiten

In diesem Kapitel soll nur die Clusteranalyse an Hand des k-Means- und DBSCAN-Algorithmus untersucht werden.

Zum Trainieren künstlicher Intelligenz bedarf es häufig großer Datenmengen. Rohe Daten ohne Label sind dabei wesentlich leichter zu beschaffen als Daten mit Labeln. Daher bietet es sich an, Algorithmen zu entwickeln, die in der Lage sind, zusammenhängende Strukturen (Cluster) in den Datenpunkten zu finden.

KnitR zur Dokumentengenerierung

Bearbeiten

Die folgenden Folien beziehen sich auf die dynamische Dokumentengenerierung in KnitR.


Weiterführende Literatur

Bearbeiten

Hier soll eine kleine Auswahl an Lehrbüchern und weiteren Lernressourcen gegeben werden.

Bücher zu maschinellem Lernen

Bearbeiten
  • Data Science - Grundlagen, Statistik und maschinelles Lernen, Matthias Plaue, Springer Spektrum Berlin, (2021), [1]
  • Statistisches und maschinelles Lernen - Gängige Verfahren im Überblick, Stefan Richter, Springer Spektrum Berlin, (2019), [2]
  • Statistik und maschinelles Lernen - Eine mathematische Einführung in klassische und moderne Methoden, Mathias Trabs, Moritz Jirak, Konstantin Krenz, Markus Reiß, Springer Spektrum Berlin, (2021), [3]
  • Raul Rojas (1996) Neural Networks, Springer Verlag URL: https://www.inf.fu-berlin.de/inst/ag-ki/rojas_home/documents/1996/NeuralNetworks/neuron.pdf

Python Pakete

Bearbeiten
  • Tensorflow (EN) [4]
  • PyTorch (EN) [5]
  • Keras (EN) [6]

Siehe auch

Bearbeiten