← Zur Übersicht

Workshop: Python & Machine-Learning mit Jörg Sädtler - Teil 1 🐍 + 🤖

Einleitung

Python ist der Elefant im Raum [1], wenn es um Data-Science und Machine-Learning (ML) geht. Will man ML-Systeme in ein Produkt integrieren und betreiben, benötigt man Wissen, das über die einschlägige Literatur hinausgeht. Jörg Sädtler [2] hat Start-Ups in dem Bereich erfolgreich begleitet und teilte mit uns sein Wissen zu diesen Themen.

Jörg ist Experte zu dem Thema und Veteran der Start-Up-Szene. Zusammen mit anderen Experten arbeitet er bei SML-Consulting [3].

Grund genug ihn einzuladen und mit uns von den Anfängen und Grundlagen in Python und SciKit-Learn, über ein erprobtes Vorgehen beim Entwickeln von ML-Systemen, bis hin zu einer produktionsreifen Machine-Learning-Architektur in Amazon Web Services (AWS) zu diskutieren.

Wir hatten viel vor.

Aller Anfang ist schwer

Wir stellen uns immer wieder die Frage: Wie geht man bei einem Projekt mit ML-Komponenten überhaupt vor?— zunächst einmal bin ich froh, dass wir in dem Workshop mit einem kleinen Problem starten und uns Gedanken über die Natur und Struktur des Problem verschaffen, getreu dem Motto:

“We haven't got the money, so we'll have to think”

― Ernest Rutherford

Dabei fällt mir auf, dass "sich Gedanken über die Natur des Problems zu machen" bedeutet: Sich die Struktur der Daten genau anzusehen und zu verstehen. Also starten wir mit einer Visualisierung der Daten, um Schlüsse und Regeln aus den Daten abzuleiten abzuleiten. Diese Merkmale (Features) würden wir später im Code verpacken und benutzen, um die Modelle zu trainieren. Die Natur der Daten wird auch eine Rolle in der Auswahl des Modells spielen, denn nicht jedes Modell eignet sich für alle möglichen Daten.

Erst denken, dann handeln

Im Zeitalter von sehr günstigem Cloud-Computing und der schier endlos erscheinenden Rechenleistung wundert es nicht, wenn das Denken oft nicht im Fokus steht, sondern die schnelle und möglichst günstige Erreichung eines funktionierenden Etwas. Wir lernen von Jörg, dass es zwar möglich ist so schnell zu einem Modell zu kommen das funktioniert, aber es wahrscheinlich so an Grenzen stößt und schlimmer: Das Verhalten ist vielleicht nicht nachzuvollziehen.

Somit ist es gut, einen Überblick über sein Problem zu gewinnen, also nachzudenken was in den Daten steckt und wie die Merkmale aus den Zusammenhängen abgeleitet werden können.Mir kommt dieser Ansatz bekannt vor, denn während des Studiums, habe ich mich für Expertensysteme [4] interessiert. Das sind Programme, die einen Satz von Regeln kennen, um Entscheidungen in einer Fachdomäne zu treffen.

Das verringert die Abhängigkeit von Algorithmen, da der Satz an Regeln von Menschen formuliert und verstanden werden kann. Aus dem Verstehen erwächst ein Vertrauen in die Daten und das Modell und kann wiederum missionskritisch sein— so lernen wir aus Jörgs Erfahrungen—, sobald ein Projekt die Prototypenphase verlässt.

Die Güte der Daten ist entscheidend

In der Einleitung von Jörg erfahren wir von den zahlreichen Versuchen Daten zu erheben und mit den richtigen Label zu versehen, den Nutzern der Zielgruppe Lust zu machen an der Erhebung und nachträglichen Klassifikation teilzunehmen und zu verstehen wie die Daten aussehen. Er teilt mit Lessons-Learned und bespricht im Detail die Fehler, die gemacht wurden und was man besser machen kann.

Insbesondere wird deutlich: Will man ein solides Geschäftsmodell auf der Basis von ML aufbauen, ist ein Verständnis der Daten so essentiell, wie eine robuste Architektur der Lösung. Darüber hinaus sollte es eine Strategie geben, wie man eine gute Datenbasis gewährleistet. Dazu können z.B. die Benutzer mit einem Crowdsourcing-Ansatz [5] dazu gebracht werden, aktiv gute Daten zu liefern.

Fazit - Teil 1

Erkenntnisse wie diese helfen uns im Kundengeschäft bessere Empfehlungen abgeben zu können und machen unseren Workshop zu einem nachhaltigen Erfolg.

Zusammenfassend, sind wir in dem Workshop so vorgegangen:

  1. Einleitung und Erfahrungsaustausch

    Wir bei 5Minds sind nicht ganz unwissend in den Workshop gegangen. Mitglieder unserer Teams, haben verschiedene Erfahrungen in den Bereichen, teils aus dem Studium, vorherigen Kundenprojekten oder aus Hobbyprojekten— wie einen Songtextgenerator.

    Ich nehme mit: Gewinnung und Aufbereitung der Daten sind die wohl schwierigsten Themen in diesem Bereich und, wie Jörg uns zeigt, oft der am meisten unterschätzte Aufwand. Im Anschluss folgt das Verstehen der Daten und die Auswahl des Modells.

    Mit Jörg diskutieren wir, wie und wo die Grenzen zwischen Machine-Learning, Neuronalen Netzen und Künstlicher Intelligenz verlaufen.

  2. Hands-On

    In diesem Teil starten wir mit der vollen Analyse der Daten und trainieren die ersten Modelle. Wir waren erstaunt wie einfach es mit diesem Vorgehen zu einem Modell mit hoher Genauigkeit zu kommen.

    Das Hands-On nimmt den Großteil des Tages ein und gliederte sich so:

    1. Starten eine Jupyter-Umgebung [6]
    2. Analyse der Daten
    3. Auswahl eines geeigneten Verfahrens
    4. Training des Modells
  3. Besprechung einer ML-Architektur

    Persönlich der Teil, von dem ich am meisten gelernt habe. An dem Punkt, wie man eine tragfähige, produktionsreife Plattform für ein ML-Produkt entwirft, hört die einschlägige Literatur oft auf.

Die weiteren Teile dieses Serie, werden bald das Blog bereichern. Dabei beleuchten wir die anderen Abschnitte dieses Workshops im Detail. Hands-On und die Planung einer Architektur sind spannende Themen, über die wir viel gelernt haben und unser Wissen gerne teilen.

Bis dahin.