Maschinelles Lernen
Maschinelles Lernen (engl. „Machine Learning“, häufig als ML abgekürzt), hat sich über die letzten Jahrzehnte zu einem zentralen Bestandteil der Künstlichen Intelligenz entwickelt. Im letzten Post hatte ich ML nur kurz im Zusammenhang mit KI-Technologien erwähnt, heute möchte ich detaillierter darauf eingehen.
Was ist Maschinelles Lernen?
Maschinelles Lernen ist ein Teilbereich der Künstlichen Intelligenz. Im Kern geht es darum, dass bestimmte Algorithmen aus Daten lernen und automatisch Muster erkennen. Dies macht das gewählte ML-Modell „von selbst“; es müssen keine Regeln oder Logiken explizit programmiert werden. Die Fähigkeit, dynamisch aus Daten lernen zu können, macht maschinelles Lernen so besonders und leistungsstark.
Etwas vereinfacht kann man den ML-Prozess etwa so beschreiben:
- Man sammelt möglichst viele Daten, die für die Fragestellung relevant sind.
- Diese Daten speist man in einen ML-Algorithmus (Modelltraining) und erhält ein trainiertes Modell
- Nun kann man neue Datenpunkte in das Modell geben und z.B. eine Prognose erhalten
Der Prozess kann je nach Lernmethode etwas unterschiedlich aussehen. Auf Lernmethoden werde ich weiter unten noch eingehen.
Praktische Beispiele für Maschinelles Lernen
Das erste Beispiel ist ein Klassiker in der ML-Welt: Die Unterscheidung zwischen Spam- und Nicht-Spam-E-Mails. Als Datengrundlage können zehntausende von Mails dienen, welche bereits in Spam/Nicht-Spam klassifiziert sind. Nun werden noch bestimmte Merkmale aus jeder Mail extrahiert (z.B. Anzahl der Zeichen, Beinhaltet Link, Domainendung des Absenders) und das ML-Modell kann trainiert werden. Mit diesem Modell können nun neue Mails klassifiziert werden. Solche Modelle sind der Grund dafür, warum einige Mails automatisch im Spam-Ordner landen.
Ein weiteres Beispiel ist die Kundensegmentierung im E-Commerce. Angenommen eine Firma hat bereits eine gut gefüllte Datenbank mit Kundendaten. Mit Hilfe eines geeigneten ML-Modells könnte man nun die Kunden bestimmten Gruppen zuordnen, indem Kunden mit ähnlichen Eigenschaften gruppiert werden. Die herangezogenen Merkmale könnten Alter, Geschlecht, Ort, oder historisches Kaufverhalten sein, sofern diese vorhanden sind. Anschließend, nachdem das Modell Gruppen gefunden hat, können wir diese untersuchen und benennen. So gibt es vielleicht Kunden, die regelmäßig eine bestimmte Produktkategorie kaufen. Mit diesem Wissen könnte man individualisierte Angebote schicken, weil man sich dadurch einen höheren Absatz erhofft.
Lernmethoden
Überwachtes Lernen
Überwachtes Lernen (engl. „Supervised Learning“) ist der am häufigsten verwendete Ansatz im maschinellen Lernen. Die Trainingsdaten bestehen aus den Werten der Zielvariablen (z.B. Spam/Nicht-Spam) und den Werten der Prädiktoren (z.B. Zeichenanzahl, Link, Domain). Es werden hier auch häufig die englischen Begriffe „Labels“ und „Features“ verwendet. Der Algorithmus kennt beim überwachten Lernen somit die „richtige Antwort“ und lernt nun die Zusammenhänge zwischen Prädiktoren und der Zielvariablen. So kann das Modell anschließend für Daten verwendet werden, bei denen Werte der Zielvariablen (Labels) nicht vorhanden sind, es also nur die Prädiktoren (Features) gibt. Bekannte Algorithmen für überwachtes Lernen sind: Lineare und Logistische Regression, Entscheidungsbäume, oder Support Vector Machines.
Unüberwachtes Lernen
Beim unüberwachten Lernen (engl. „Unsupervised Learning“) gibt es keine Zielvariable. Somit ist der Use Case hier auch nicht das prognostizieren von Werten; vielmehr zielt unüberwachtes Lernen darauf ab, Muster, Zusammenhänge und Strukturen innerhalb der Daten selbst zu erkennen. Typische Algorithmen sind: k-Means Clustering oder Principal Component Analysis (Dimensionalitätsreduktion).
Verstärkendes Lernen
Verstärkendes Lernen (engl. „Reinforcement Learning“) ist ein Lernansatz, bei dem ein Agent durch Interaktion mit seiner Umgebung lernt, um ein bestimmtes Ziel zu erreichen. Dabei trifft der Agent Entscheidungen und erhält positives oder negatives Feedback (Belohnungen bzw. Bestrafungen), je nachdem ob die Entscheidungen gut (= zielführend) oder schlecht (= nicht zielführend) waren. Durch wiederholtes Feedback lernt der Agent und passt sein Verhalten an, um die Chance auf Belohnung zu maximieren.
Weitere Lernmethoden
Neben den drei genannten Lernmethoden gibt es noch einige weitere. So ist semi-überwachtes Lernen ein hybrider Ansatz und verwendet gelabelte und ungelabelte Daten. Bei einer anderen Methode, dem aktiven Lernen, wählt der Algorithmus die Datenpunkte aus, die er zum Lernen verwenden möchte.
Schritte in einem ML-Projekt
Im Folgenden gehe ich auf die typischen Schritte in einem ML-Projekt ein. Beachte, dass diese je nach Projekt bzw. Produkt ganz unterschiedlich aussehen können.
- Datenaufnahme und Validierung: Am Anfang steht die Erfassung der benötigten Daten aus verschiedenen Quellen, z.B. Dateien, Datenbanken oder Web-APIs. Die Daten müssen dabei auf Qualität und Konsistenz überprüft werden, um sicherzustellen, dass sie für das ML-Modell geeignet sind.
- Datenaufbereitung: Dieser Schritt kann sehr komplex sein und beinhaltet viele Aspekte. Die Rohdaten werden bereinigt und gefiltert, verschiedene Datenquellen werden zusammengefügt, Daten werden aggregiert, usw.
- Feature Engineering: In diesem Schritt werden relevante Merkmale (Features) erstellt, die zur Vorhersage der Zielvariable verwendet werden. Dies kann z.B. das Kombinieren von Variablen oder das Erstellen neuer Variablen aus vorhandenen Daten beinhalten.
- Modelltraining: Nun kann das ML-Modell trainiert werden, indem es mit Trainingsdaten „gefüttert“ wird. Dabei lernt das Modell die Beziehung zwischen den Features und den Labels.
- Modellanalyse und -überprüfung: Die Leistung des trainierten Modells wird anhand von Testdaten bewertet. Diese Daten sind so aufgebaut wie die Trainingsdaten, aber wurden beim Training nicht berücksichtigt. Das Modell kennt die Daten also noch nicht und somit kann man schätzen, wie es im Livebetrieb abschneiden würde. Für die Bewertung werden verschiedene Metriken verwendet, um die Genauigkeit und Qualität des Modells zu bestimmen.
- Modellbereitstellung: Wenn das Modell optimiert wurde und zufriedenstellend auf den Testdaten performt, kann es in einer Produktionsumgebung bereitgestellt werden. Dort wird es z.B. Vorhersagen auf neuen, realen Daten treffen. Doch auch im Livebetrieb muss die Qualität durchgehend überwacht werden.
Herausforderungen und Lösungen
Schauen wir uns nun noch ein paar Herausforderungen an, die beim maschinellen Lernen auftreten (können). Zum Glück hat man über die Zeit verschiedene Lösungsstrategien entwickelt, die ich auch benennen werde.
Overfitting, Underfittung und Bias-Variance Tradeoff
Overfitting tritt auf, wenn ein Modell zu stark an die Trainingsdaten angepasst ist und dadurch schlecht auf neue, unbekannte Daten generalisiert. Das kann u.a. dadurch kommen, dass das Modell zu komplex geworden ist. Underfitting ist quasi das Gegenteil: Die zugrundeliegenden Muster in den Daten werden vom Modell nicht ausreichend erfasst. Vielleicht ist das Modell zu simpel oder die Menge der Trainingsdaten war zu gering.
Der Begriff „Bias-Variance Tradeoff“ beschreibt die Dynamik zwischen Overfitting und Underfitting. Ein Modell mit hohem Bias hat systematische Abweichungen von den Zielwerten und neigt zum Underfitting; ein Modell mit hoher Varianz reagiert empfindlich auf Schwankungen in den Trainingsdaten und neigt eher zum Overfitting. Um ein optimales Gleichgewicht zwischen Bias und Varianz zu erreichen, kann man Regularisierungstechniken anwenden, die Komplexität des Modells anpassen oder die Menge der Trainingsdaten variieren.
Unbalancierte Klassen
Wenn die Verteilung der Zielklassen in den Trainingsdaten unausgeglichen ist, dann liegen unbalancierte Daten vor. Dadurch kann ein ML-Algorithmus die Minderheitenklasse vernachlässigen, was wahrscheinlich zum Problem werden kann. Um dies zu lösen, kann man Techniken wie Over- oder Undersampling einsetzen, die Klassen unterschiedlich gewichten, oder sogar weitere Daten synthetisch erzeugen.
Fehlende Daten
Fehlende oder inkorrekte Daten können die Leistung eines ML-Modells beeinträchtigen, oder sogar zu Fehlern beim Modelltraining führen. Man kann Fälle mit fehlenden Daten vollständig entfernen, oder man setzt sogenannte Imputationstechniken ein, die einen fehlenden Wert z.B. durch den Mittelwert ersetzen. Man sollte immer versuchen, die Ursache des Fehlens von Daten zu ergründen, da man so noch mehr Verständnis für die Daten entwickeln kann.
Zusammenfassung
Dies war eine kleine Einführung in das Thema Maschinelles Lernen. ML ist ein zentraler Bestandteil der Künstlichen Intelligenz, der es Algorithmen ermöglicht, automatisch Muster und Zusammenhänge aus Daten zu erkennen. Dadurch kann an vielen Stellen ein Mehrwert geschaffen werden (z.B. automatische Spam-Erkennung oder Kundensegmentierung). Es gibt verschiedene Lernmethoden, darunter v.a. überwachtes, unüberwachtes und verstärkendes Lernen. Außerdem haben wir uns die Schritte eines typischen ML-Projekts sowie einige Herausforderungen und Lösungsansätze angeschaut.