Effiziente Machine Learning Algorithmen

    Nummer
    eml
    ECTS
    3.0
    Spezifizierung
    Analysieren und Implementieren von effizienten ML Algorithmen
    Anspruchsniveau
    Advanced
    Inhalt

    Machine Learning Algorithmen setzen mathematische Modelle in Code um und ermöglichen so, aus Daten Muster zu extrahieren, welche zur Vorhersage und anderen Zwecken eingesetzt werden können. Rechnerische Effizienz ist dabei von grosser Bedeutung, da zum Finden optimaler Modell-Koeffizienten und Hyperparameter oft sehr viele Rechenoperationen ausgeführt werden müssen.


    Die Implementierung von Machine Learning Algorithmen ist somit im Kern das effiziente Verwenden numerischer Operationen auf geeigneten Datenstrukturen. Es können dazu einerseits theoretische Überlegungen zu Operationenanzahl und Laufzeit angestellt werden, andererseits müssen auch praktische Rahmenbedingungen, wie beispielsweise die physische Verteilung von Daten über verschiedene Speichermedien hinweg, die Transportkosten von Daten und Rechenanweisungen etc. berücksichtigt werden.

    Lernergebnisse

    Grundlagen effizienten numerischen Rechnens

    Studierende verstehen theoretische Laufzeit-Berechnungen und können sie als Entscheidungsgrundlage für die Wahl von Algorithmen einsetzen. Sie können Algorithmen auf ihre Laufzeit analysieren. Sie sind mit dem Bau von Rechnern und Rechner-Infrastruktur vertraut. Sie wissen wie Rechenoperationen darauf ausgeführt werden kann und wie dies die Laufzeiten praktisch beeinflusst.


    Effiziente Algorithmen und Datenstrukturen

    Die Studierenden sind mit verschiedenen Methoden und Datenstrukturen der effizienten Programmierung vertraut:


    Dynamic Programming, Greedy Algorithms, Memoisation, Metaheuristiken (Genetic, Ant Colony, Particla Swarm Optimisation, ...), Linear Programming, and Binary Search Trees.


    Effiziente Implementierung von ML-Algorithmen und deren Analyse

    Studierende können effiziente Implementierungen von standard ML-Algorithmen vornehmen: Random Forests, MLP, kMeans, kNN, .. und deren rechnerische Effizienz / Laufzeit abschätzen und vermessen.

    Modulbewertung
    Note
    Baut auf folgenden Modulen auf
    Grundkompetenz Machine Learning, Grundkompetenz Programmieren, Algorithmen Programmieren, Softwarekonstruktion
    Modultyp
    Portfoliomodul