Künstliche Intelligenz ist zur Zeit ein heißes Thema. Es vergeht keine Woche, in der man nicht in den Medien von neuen Algorithmen oder Anwendungsbereichen berichtet - selbstfahrende Autos, Menschen werden von Algorithmen in Spielen geschlagen, natürlichsprachige Kommunikation mit virtuelle Assistenten. Doch wie wird ein System intelligent? Dieser Blogpost gibt einen Einblick in der spannende Welt des Maschinellen Lernens bzw. Machine Learning (ML). Wir schauen uns an, was es bedeutet, wie es funktioniert, und welche Ausprägungen es gibt.

Wieso Maschinelles Lernen?

Ein System zu programmieren, das automatisiert Entscheidungen trifft, ist keine triviale Aufgabe. Nehmen wir ein uns allen bekanntes Problem: Spam-E-Mails erkennen. Wie würde man diese Aufgabe intuitiv bewältigen? Wir können uns zum Beispiel die Spam-Mails anschauen und die Wörter oder Phrasen identifizieren, die typischerweise nur in unerwünschten vorkommen. Wenn diese in einer eingehenden E-Mail gefunden werden, soll diese als Spam markiert werden, also der klassische Filter-Ansatz.

So kommt man zwar schnell auf Ergebnisse, doch man muss ständig neue Regeln programmieren, da neue Themen in den Spam-Mails auftauchen. Oder vielleicht haben die Betrüger neue Schreibweisen für bereits geblockte Begriffe benutzt, und unser Filter funktioniert nicht mehr. Auf lange Sicht ist also diese Lösung nicht effizient und mit viel manuellem Aufwand verbunden.

Wir haben also eine Lösung gefunden, doch scheitern langfristig an Details, da alles, was das System gelernt hat, von uns kommen muss. Um eine wirklich tragbare Lösung zu haben, muss das automatisch passieren. Das System soll selbst besser werden, anhand der vorhandenen Daten. Es soll selbst “lernen”.

Was ist Maschinelles Lernen?

Eine häufig zitierte formelle Definition für maschinelles Lernen wurde von Tom M. Mitchell im Jahr 1997 gegeben:

A computer program is said to learn from experience E with respect to some class of tasks T and performance measure P, if its performance at tasks in T, as measured by P improves with experience E.

Nehmen wir diese Definition unter die Lupe mit unserem Spam-Mail-Beispiel. Wir haben Daten, die in zwei Kategorien aufgeteilt sind, Spam und Ham (unerwünscht und erwünscht): Die Aufgabe T wäre für uns also, aus den vorgegebenen Daten die Wörter oder Phrasen zu identifizieren, die uns bei der Unterscheidung helfen werden. Das soll jedoch automatisch und nicht manuell geschehen. Wir können an der Stelle statistische Methoden nutzen, die wir hier nicht näher erläutern werden. Das Ergebnis von dieser Aufgabe T ist ein “Modell” - ein Regelwerk, das uns erlaubt bei einer neuen E-Mail zu entscheiden, in welche Kategorie sie fällt.

Wenn wir eine Untermenge der E-Mails aus beiden Kategorien wählen, auf die das Ergebnis von T getestet werden kann, können wir P messen. Da wir wissen, was dabei herauskommen soll, können wir die Vorschläge des Modells automatisiert auf Korrektheit überprüfen. Wir wissen also, ob ein Modell “besser” ist als ein anderes. Jetzt fehlt uns also nur Erfahrung. Um diese zu sammeln, können wir die Daten für T zum Beispiel jedes Mal zufällig wählen. So können wir unterschiedliche Modelle generieren, die wir miteinander vergleichen können, um P zu optimieren (stets das Modell wählen, das bei den Testdaten die wenigsten Fehler gemacht hat).

Wir haben nun unsere manuelle Lösung in eine Lösung überführt, die mit maschinellem Lernen funktioniert. Unser Aufwand als Benutzer ist dabei darauf reduziert worden, dem Algorithmus jede neue Spam-E-Mail zu melden, die wir in unserem Postfach finden, so dass dieser sich neu trainieren kann.

Überwacht vs. nicht-überwacht

In unserer Lösung für das Spam-Problem haben wir von einer bestimmten Kategorie des maschinellen Lernens Gebrauch gemacht - das überwachte ML. Das bedeutet, dass wir dem Algorithmus geholfen haben - in diesem Fall, indem wir die Daten vorbereitet haben, die zwei Ergebniskategorien vorgegeben haben sowie sichergestellt, dass die Aufteilung der Dokumente auf die Kategorien korrekt ist.

Eine andere Kategorie des maschinellen Lernens kommt auch ohne Vorarbeit aus. Ein Beispielansatz aus dem nicht-überwachten maschinellen Lernen ist das Clustering: Gruppen und Struktur in einer vorgegebenen Datenmenge erkennen.

Um das anhand eines Beispiels zu erläutern, stellen wir uns eine Kundendatenbank eines Online-Shops vor. Uns liegen Informationen über die Benutzer und deren Käufe vor. Mit Clustering können wir Ähnlichkeiten unter den Benutzern erkennen, und Gruppen (Kundensegmente) bilden. Das kann uns zum einen helfen, unseren Kundenstamm besser zu verstehen, zum anderen aber auch, uns Werkzeuge geben, um die Empfehlungen neuer Produkte für unsere Kunden zu optimieren. Wie erwähnt - bei diesem Ansatz ist keine Vorarbeit notwendig. Wir müssen allerdings in diesem Fall die Ergebnisse manuell überprüfen, da wir erst einmal keinen Automatismus dafür haben.

Alles mit Machine Learning lösen?

Maschinelles Lernen, so toll es auch ist, ist keine magische Lösung für jedes beliebige Probem. Ein wichtiger Grund dafür ist: Fehlerfreies maschinelles Lernen gibt es nicht. Bei dem Prozess des Lernens geht es darum, Fehler zu minimieren. Diese in der Praxis komplett beseitigen zu wollen, ist utopisch.

Wann also ist so ein Ansatz dann sinnvoll? Ein Beispiel wäre: Wenn die Aufgabe zu komplex ist. Sei es, dass die Lösung zu schwierig ist (Computer Vision), oder weil die Spezialfälle einer simplen Lösung zu viele sind, um sie manuell abzubilden (so wie in unser Spam-Beispiel).

In der Praxis findet Maschine Learning oft Einsatz in Big Data. Das hat neben den genannten Gründen auch einen weiteren: Die Ergebnisse sind (bei gleichem Algorithmus) mit mehr Eingabedaten in der Regel besser. Bei kleineren Datenmengen oder Problemen, die leicht und fehlerfrei von Hand programmiert werden können, wäre maschinelles Lernen also nicht unbedingt der beste Ansatz.

Wir haben das Konzept von Machine Learning und zwei wichtige Kategorien daraus grob umrissen. Wenn man die Erwartungshaltung hat, ML funktioniere vollkommen selbstständig und fehlerfrei mit beliebigen Datenmengen, wird man schnell enttäuscht. Doch wenn man sich die Zeit nimmt, Vorverarbeitung der Daten und Optimierung, bzw. Moderation der Ergebnisse zu betreiben, und wenn man geringe Fehlerquoten in Kauf nimmt, können komplexe Probleme, die sich anderweitig nicht (oder schwer) programmatisch lösen, mit überschaubarem Aufwand bewältigt werden.

Anderenfalls, um das Beispiel von oben aufzugreifen: zwei bis drei Spam-Mails am Tag sind mit deutlich weniger Aufwand manuell identifiziert.


Sie finden das interessant und können sich vorstellen, dass Ihnen maschinelles Lernen bei Ihren Daten helfen kann? Dann melden Sie sich bei uns - wir beraten Sie gern und helfen Ihnen, eine passende Lösung zu finden.