Machine Learning Kurs CdV – Kochbuch


Worum es hier geht

Dieses „Kochbuch“ versammelt Links zu lauffähigen Codebeispielen. Dabei geht es um Techniken, die wir für das maschinelle Lernen und die dafür notwendige Aufbereitung von Daten brauchen. Es knüpft an einen Einführungskurs zum Thema maschinelles Lernen an.




Der Code liegt in Form von Jupyter-Notebooks in der Google-Colab Umgebung vor. Um die Programme auszuführen und zu verändern, müsst ihr auf einem Google-Account angemeldet sein. Wenn ihr mit der Nutzung von Jupyter-Notebooks und der Google-Colab Umgebung nicht vertraut seid, findet ihr hier ein kurzes Einführungsvideo:

Ein paar allgemeine Bemerkungen zum Kochbuch

Die Beispiele setzen Python Grundkenntnisse voraus. Auch mit den Grundlagen des maschinellen Lernens mit keras solltet ihr vertraut sein. Das Wichtigste hierzu zeigt der schon erwähnte Einführungskurs.

Wir haben uns bemüht, in den Beispielen möglichst isoliert die Lösung jeweils eines Problems (bzw. einer Gruppe zusammengehöriger Probleme) zu demonstrieren. Um den Blick für’s jeweils Wesentliche nicht zu verstellen, haben wir auf die Behandlung von Spezialfällen und auf Sicherheitsmechanismen verzichtet, etwa der Fehlerabfrage und -behandlung beim Laden von Mediendateien. Im praktischen Einsatz sollte das natürlich nicht fehlen!

Zudem ist es im praktischen Einsatz üblich, alle Importe zu Beginn einer Codedatei (bzw. eines Notebooks) zu machen. Um deutlich zu machen, welche Module wofür benötigt werden, haben wir es hier anders gemacht: Die Importe stehen in der Regel dort, wo sie zum ersten Mal benötigt werden!

Dieses Kochbuch ist ein Work-in-Progress Projekt. Kursiv gesetzte Rezepte sind geplant, aber noch nicht ausgearbeitet. Auch die veröffentlichten Rezepte sind hier und da noch nicht fertig kommentiert, an manchen Stellen könnte der Code sicher noch schöner sein…


Die Codebeispiele


Bilddateien laden, formatieren, vereinheitlichen

Bilddateien in Numpy Arrays umwandeln

Farbkanäle hinzufügen oder entfernen

Bilddateien skalieren

Bildformate vereinheitlichen


Filmdaten verarbeiten

Film in Einzelbilder zerlegen

Aus Einzelbildern einen Film bauen

Film im Jupyter Notebook abspielen


Konturen und Objekte erkennen

Konturen erkennen


Modelle und Ergebnisse Speichern

Modelle speichern und laden

Google Colab: Ergebnisse herunterladen


Generatoren konstruieren

Generatoren sind ein umfangreiches und komplexes Thema. Grob gesagt geht es darum: Statt die Trainingsdaten in einem Rutsch im Arbeitsspeicher vorzuhalten, können Generatoren die Trainingsdaten dynamisch erzeugen. Das hat vor allem zwei Vorteile:

  • Es können größere Datenmengen verarbeitet werden, als in den Arbeitsspeicher hineinpassen.
  • Generatoren können beliebig viele Variationen in die Lerndaten hineinbringen – Im Hinblick auf visuelle Daten zum Beispiel durch Spiegelungen, variierende Bildausschnitte etc.

Wir entwickeln das Thema Generatoren hier aufgrund der Komplexität in mehreren Schritten:

Das Sequence Objekt

Sinus Beispiel

Dateien laden

Dateien laden (schwarzweiß Version)

Dateien laden mit Validierer

Zufällige Bildauschnitte


Lambda Schichten und Tensoren

Was ist ein Lambda Ausdruck?

Einfache Lambda Schichten

Einfache Filter mit Lambda Schichten

Tensoren (Baustelle)

 


 

Projekt Frame Prediction

Dieser Bereich dient vor allem dem internen Austausch innerhalb unserer Maschinenlerner Gruppe und ist Archiv und Baustelle!

Frame Prediction Versuch I

Frame Prediction Versuch II

Frame Prediction Versuch III

Frame Prediction Versuch IV (Lehrfilme, sw)

Frame Prediction Versuch V (Cartoons, sw)

Frame Prediction Versuch VI (Cartoons, Farbe)

Ausprobierer


Dank

Diese Materialien werden im Rahmen des Projektes Coding da Vinci und in Kooperation mit dem Kulturzentrum Pavillon und dem Bildungsverein Hannover entwickelt.

Dank gilt der Stiftung Niedersachsen für die großzügige Unterstützung sowie: Beate Gonitzki, Marcus Munzlinger, Pina Merkert, Lambert Heller, Marcel Nema, Jonas Rahm und Sophia Sanner.