Anfängerpraktikum (BSc Informatik) - Neural Networks From Scratch

Kursübersicht

Entdecke die Faszination des Maschinellen Lernens, indem du neuronale Netze wirklich von Grund auf programmierst. Wir starten mit einem simplen Polynomial-Curve-Fitting Problem und implementieren dann Schritt für Schritt in „plain Python“ ein neuronales Netz (Multi-Layer-Perceptron/MLP) sowie dessen Forward- und Backward-Pass. Anschließend beschleunigen wir unsere selbstgeschriebenen Algorithmen mit CuPy auf den GPUs unseres Clusters, um auch größere Architekturen und Datensätze verwenden zu können.

Das Praktikum wird in Gruppen von bis zu drei Studierenden durchgeführt. In der Einführungsphase erarbeiten alle Gruppen gemeinsam die Basis: algorithmische Grundlagen, Netzwerkstruktur und GPU-Beschleunigung. In der Projektphase wählt jede Gruppe ein eigenes „from-scratch“-Thema, bspw. eine CNN-Architektur, einen Transformer oder das Training eines MLP auf eine spezielle Anwendung unter Einsatz fortgeschrittener Training-Tricks. Regelmäßige Feedback-Runden begleiten euch dabei.

Im Verlauf des Kurses lernen wir außerdem Tools zur Überwachung, Verwaltung und Visualisierung eurer Experimente kennen, damit ihr Lernverläufe und Parameter der neuronalen Netze intuitiv nachvollziehen könnt.

Dozenten

Inhalte

  • Polynomal Curve Fitting : Verständnis für Über und Unterfitten einer komplexen Funktion zu Daten
  • Multi-Layer-Perceptron : Architektur, Forward- und Backward-Pass in Python, Training auf MNIST-Datensatz
  • CuPy-Beschleunigung : GPU-basiertes Training selbstgeschriebener Modelle
  • Experiment-Management & Visualisierung : Tracking, Logging und Plotting von Trainingsmetriken
  • Projektphase : Eigenes „from-scratch“-Thema, z.B. CNN, Transformer, Training-Strategien

Voraussetzungen

  • Gute Kenntnisse in Python und Numpy
  • Grundsätzliches Vorwissen zu Maschinellem Lernen (ML)
    • Erwartet wird: Generelles Verständnis für den Aufbau eines Neuronalen Netzes, speziell Multi-Layer-Perceptrons. Wissen um den generellen Trainingsablauf eines tiefen Neuronalen Netzes (DNN) via Backpropagation und Stochastic-Gradient-Descent.
    • Diese Kenntnisse können im Selbststudium (bspw. Deep Learning, Goodfellow et al.) oder in einer der folgenden Vorlesungen errungen werden: Learning (IML), Fundamentals of Machine Learning (IFML) , Advanced Machine Learning (IAML), Embedded Machine learning (MScTI_EML), Scalable and Robust Embedded Machine Learning (MScTI_SREML) oder ähnliche.
  • Vorausgesetzte Veranstaltungen
    • Einführung in die Praktische Informatik (IPI) oder Programmierkurs (IPK)
    • Lineare Algebra 1 (MA4) oder Mathematik für Informatik 1 (IMI1)

Hinweise

Das Praktikum folgt generell den Formalien für das Anfängerpraktikum B.Sc. Informatik (s. Modulhandbuch):

  • Leistungspunkte: 6 CP (2 + 4 ÜK)
  • Arbeitsaufwand: 180 h; davon mind. 15 Präsenzstunden
  • Die Prüfung besteht aus einer Präsentation im Poster-Session-Format sowie einem Report plus dokumentierter Python-Implementation des Projekts