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.
ARVE Error: src mismatch
provider: youtube
url: https://www.youtube.com/watch?v=vv7DmRLG5Vg
src in org: https://www.youtube-nocookie.com/embed/vv7DmRLG5Vg?feature=oembed&width=840&height=1000&discover=1
src in mod: https://www.youtube-nocookie.com/embed/vv7DmRLG5Vg?width=840&height=1000&discover=1
src gen org: https://www.youtube-nocookie.com/embed/vv7DmRLG5Vg
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
Filmdaten verarbeiten
Aus Einzelbildern einen Film bauen
Film im Jupyter Notebook abspielen
Konturen und Objekte erkennen
Modelle und Ergebnisse Speichern
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:
Dateien laden (schwarzweiß Version)
Lambda Schichten und Tensoren
Einfache Filter mit Lambda Schichten
Projekt Frame Prediction
Dieser Bereich dient vor allem dem internen Austausch innerhalb unserer Maschinenlerner Gruppe und ist Archiv und Baustelle!
Frame Prediction Versuch IV (Lehrfilme, sw)
Frame Prediction Versuch V (Cartoons, sw)
Frame Prediction Versuch VI (Cartoons, Farbe)
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.