Ready Steady Go: Maschinelles Lernen in der Praxis

Maschinelles Lernen in der Praxis - Tools und Tricks|Entwicklungsumgebung für Maschinelles Lernen in der Praxis|CRISP DM für das Maschinelle Lernen in der Praxis|Get Ready - ML in der Praxis|CRISP-DM für das Maschinelle Lernen in der Praxis||
© elenabsl/stock.adobe.com

Bevor man mit Maschinellem Lernen beginnt, gibt es mögliche offene Fragen zu klären: Wie wende ich Maschinelles Lernen in der Praxis an? Welche Werkzeuge passen auf meine Fragestellung? Und wo finde ich weiterführende Informationen, um ML praktisch anzuwenden? Dieser Beitrag aus dem Alltag der ML2R Forscher*innen ist Teil unserer „ML Basics“ Reihe und soll einen Einstieg in die Praxis und Hinweise zu weiteren Ressourcen geben. Wie man dabei vorgeht, erklären wir in drei Schritten.

Schritt 1: Mindset

Maschinelles Lernen verbindet man wahrscheinlich als erstes mit fortgeschrittener Mathematik und Programmierexpertise, aber Maschinelles Lernen ist zugänglicher geworden – auch ohne viel Programmiererfahrung oder Mathematik-Studium. Das beweist unter anderem ein Gemüsebauer aus Japan. Makoto Koike hat sich mithilfe einer ML Platform den Sortierprozess von Gurken automatisiert. Seine Grundlage: ein starkes Interesse und 7000 Gurkenbilder. Doch was benötigt man, um Maschinelles Lernen eigenständig anzuwenden?

Realistisch ist, dass ein gewisses Verständnis von Analysis, Linearer Algebra und Programmieren nötig ist,um das „Basecamp“ zu verlassen und mehr als eine logistische Regression auf einen grundlegenden Datensatz anzuwenden. Wir sind der Überzeugung, dass dieses Grundverständnis mit den passenden Ressourcen und Zeit erreichbar ist. Eine kleine Auswahl an zugänglichen Ressourcen haben wir am Ende des Artikels zusammengestellt. Vielmehr wollen wir hier zuallererst betonen, dass die Einstellung eine große Rolle spielt und zwei Punkte dabei hervorheben:

  1. Maschinelles Lernen ist keine Magie.
    Es ist eine Wunschvorstellung mit einem Knopfdruck gewünschte Resultate zu erhalten. In der Anwendung, insbesondere in der Datenaufbereitung, steckt 80% der Arbeit. Darauf sollte man sich einstellen, um keine falschen Erwartungen zu haben.
  2. Maschinelles Lernen ist ein Werkzeug.
    Hinter der Anwendung steht immer eine Problemstellung, die gelöst werden will. Teilweise ist die beste Lösung dafür ein simpler Regel-basierter oder ein operativer Ansatz. Für jeden Ansatz gibt es unterschiedliche Werkzeuge, die passend ausgewählt werden sollten.

Schritt 1 in einem Satz: Maschinelles Lernen zu beherrschen ist erreichbar und es ist wichtig bei den Zielen realistisch zu bleiben.

Schritt 2: Struktur

Für robuste und anwendungsbezogene Lösungen braucht es einen systematischen Prozess. Selbst für kleine Projekte lohnt es sich einen Prozess zu verfolgen, um nicht in eine Sackgasse zu laufen. Dabei kann sich ein Prozess durch trial-and-error entwickeln oder man orientiert sich an vorhandenen, standardisierten Abläufen. Der CRISP-DM Cycle (Cross Industry Standard Process for Data Mining) ist ein Prozess, der ein gutes Grundgerüst bildet und den wir bei Projekten fast immer aufgreifen.

CRISP DM.drawio - Lamarr Institute for Machine Learning (ML) and Artificial Intelligence (AI)
© ML2R

Der CRISP-DM besteht aus folgenden sechs Phasen:

  1. Business Understanding – Problemstellung identifizieren
  2. Data Understanding – Daten erfassen und untersuchen
  3. Data Preparation – Datenvorverarbeitung
  4. Modeling – Methoden auswählen, Modell trainieren und testen
  5. Evaluation – Ergebnis anhand Aufgabenstellung überprüfen
  6. Deployment – Bericht, Modellintegration etc.

In der Ausführung ist der Prozess flexibel. So kann es zum Beispiel gut passieren, dass man in der Phase Evaluation feststellt, dass die Ergebnisse noch nicht der Zielstellung entsprechen. In diesem Fall springt man zur Phase Business Understanding, um weitere Optionen auszuloten, zum Beispiel ob weitere Daten verfügbar sind, die man zur Verbesserung der Modelle hinzuziehen kann. Der Prozess dient dazu frühzeitig Hindernisse zu identifizieren: Sind Daten vorhanden oder müssen sie erst beschafft oder sogar generiert werden? Ist die Datenqualität ausreichend? Reicht diese Modellgüte den Anforderungen? Mit einem klaren Prozess lassen sich diese Fragen zeitig klären.

Schritt 2 in einem Satz: Ein Prozess erleichtert die Anwendung.

Schritt 3: Werkzeug

Um das „Basecamp“ zu verlassen, benötigt man neben der richtigen Herangehensweise und einem Prozess das passende Werkzeug. Die ML Werkzeuge reichen von Editoren, über Programmiersprachen zu Entwicklungsumgebungen und Business Intelligence Tools. Im Prinzip kann jede Programmiersprache für ML Anwendungen verwendet werden. Dabei bieten einige Programmiersprachen passende Bibliotheken an und erleichtern damit die Umsetzung. Wenn man wenig Programmiererfahrung hat, eignen sich unter anderem folgende Tools zum Einstieg: WEKA (open source), RapidMiner (all-rounder) und KNIME (insbesondere für Data Mining).

Programmiersprachen: GitHub zufolge ist Python die meistverwendete Programmiersprache im Bereich ML. Auf Platz 2 steht C++ und Platz drei und 4 belegen JavaScript und Java:

1  Python
2  C++
3  JavaScript
4  Java
5  C#
6  Julia
7  Shell
8  R
9  TypeScript
10  Scala

Entwicklungsumgebungen: Für alles, was über einfaches Ausprobieren hinausgeht, ist eine Entwicklungsumgebung zu empfehlen. Nach einem Bericht von kaggle ist die beliebteste Entwicklungsumgebung JupyterLab, gefolgt von Visual Studio Code und PyCharm.

Entwicklungsumgebung - Lamarr Institute for Machine Learning (ML) and Artificial Intelligence (AI)
© ML2R
Die Ergebnisse der Kaggle-Umfrage zu dem Thema, welche Entwicklungsumgebungen von den Befragten genutzt werden.

Das Library Fundament: Hat man eine Entwicklungsumgebung gewählt, bieten einige Programmiersprachen passende Bibliotheken an. Im Folgenden gehen wir auf beliebte Python Bibliotheken ein, die wir auch im Rahmen von ML2R nutzen.

  • Pandas – für Datenverarbeitung, praktisch für das Bearbeiten von „DataFrames“ sowie das Ein- und Auslesen von csv Dateien
  • NumPy – für Arrays und Matrizen
  • SciPy  – für Berechnungen wie zum Beispiel Matrizenmultiplikation und Optimierungsfunktionen
  • Scikit-learn – für klassische Algorithmen (Klassifikation, Regression, Clustering, Dimensionsreduktion)
  • TensorFlow und PyTorch – für tiefe neuronale Netze

Anwendungsspezifische Werkzeuge: Je nach Anwendungsfall und Komplexität sind weitere Tools notwendig. Die Visualisierung ist eine essentielle Aufgabe eines Data Scientisten und dient dazu (a) sich über die Eigenschaften der Eingangsdaten klarer zu werden und (b) Ergebnisse eines ML-Algorithmus greifbarer zu machen. Für die Visualisierung empfehlen sich matplotlib und plotly. Außerdem bietet streamlit beispielsweise die Möglichkeit schnell eine App zu erstellen. Für die Analyse von Bilddaten ist OpenCV essentiell, während bei der Analyse von Textdaten spaCy empfehlenswert ist. Ist schon abzuschätzen, dass viele Modellversionen entstehen werden, ist MLFlow eine Überlegung wert. Und muss man große Datenmengen bewältigen, ist Apache Spark als Framework für GPU Computing und parallele Datenverarbeitung eine gute Anlaufstelle. Die genannten Bibliotheken bieten einen Einstieg und bilden nur einen kleinen Bereich des Gesamtangebots ab. Für weitere Anforderungen wird man in der Fülle des Bibliothekangebots schnell fündig.

Schritt 3 in einem Satz: Das passende Werkzeug ist für die Zielstellung relevant.

Der Weg zur ML Anwendung

Nach diesem Beitrag solltet ihr die folgenden drei Schritte nicht vergessen:

  1. Schritt 1: Maschinelles Lernen zu beherrschen ist erreichbar und es ist wichtig bei den Zielen realistisch zu bleiben.
  2. Schritt 2: Ein Prozess erleichtert die Anwendung.
  3. Schritt 3: Das passende Werkzeug ist für die Zielstellung relevant.

In drei Schritten, das heißt mit dem Mindset, einem Prozess und dem passenden Werkzeug ist man gerüstet, um sich auf das ML Spielfeld zu begeben. Dann gibt es nur noch eins zu tun: einfach anfangen! Es stehen online zahlreiche Ressourcen zum weiteren Lernen und sich Austesten zur Verfügung.

Hier ist eine kurze Sammlung an hilfreichen weiterführenden Ressourcen:

Katharina Beckh,

13. Januar 2021

Themen

Katharina Beckh

Katharina Beckh ist wissenschaftliche Mitarbeiterin am Lamarr-Standort des Fraunhofer IAIS. Ihr Forschungsschwerpunkt liegt auf dem menschenorientierten Maschinellen Lernen. Sie beschäftigt sich mit interaktiven Lernalgorithmen und erklärbaren Sprachmodellen.

Weitere Blogartikel