Abbildung 1-2: Der Machine-Learning-Ansatz
Wenn außerdem die Spammer bemerken, dass alle ihre E-Mails mit »Für Sie« geblockt werden, könnten sie stattdessen auf »4U« umsatteln. Ein mit traditionellen Programmiertechniken entwickelter Spamfilter müsste aktualisiert werden, um die E-Mails mit »4U« zu markieren. Wenn die Spammer sich ständig um Ihren Spamfilter herumarbeiten, werden Sie ewig neue Regeln schreiben müssen.
Ein auf Machine Learning basierender Spamfilter bemerkt dagegen automatisch, dass »4U« auffällig häufig in von Nutzern als Spam markierten Nachrichten vorkommt, und beginnt, diese ohne weitere Intervention auszusortieren (siehe Abbildung 1-3).
Abbildung 1-3: Automatisches Einstellen auf Änderungen
Machine Learning brilliert außerdem bei Aufgaben, die entweder zu komplex für herkömmliche Verfahren sind oder für die kein bekannter Algorithmus existiert. Betrachten Sie z.B. Spracherkennung: Sagen wir, Sie beginnen mit einer einfachen Aufgabe und schreiben ein Programm, das die Wörter »one« und »two« unterscheiden kann. Sie bemerken, dass das Wort »two« mit einem hochfrequenten Ton (»T«) beginnt, und könnten demnach einen Algorithmus hartcodieren, der die Intensität hochfrequenter Töne misst und dadurch »one« und »two« unterscheiden kann. Natürlich skaliert diese Technik nicht auf Tausende Wörter, die von Millionen von Menschen mit Hintergrundgeräuschen und in Dutzenden von Sprachen gesprochen werden. Die (zumindest heutzutage) beste Möglichkeit ist, einen Algorithmus zu schreiben, der eigenständig aus vielen aufgenommenen Beispielen für jedes Wort lernt.
Schließlich kann Machine Learning auch Menschen beim Lernen unterstützen (siehe Abbildung 1-4): ML-Algorithmen lassen sich untersuchen, um zu erkennen, was sie gelernt haben (auch wenn dies bei manchen Algorithmen kompliziert sein kann). Wenn z.B. der Spamfilter erst einmal mit genug Spam trainiert wurde, lässt sich die Liste von Wörtern und Wortkombinationen inspizieren, die als gute Merkmale von Spam erkannt wurden. Manchmal kommen dabei überraschende Korrelationen oder neue Trends ans Tageslicht und führen dadurch zu einem besseren Verständnis der Aufgabe. Das Anwenden von ML-Techniken zum Durchwühlen großer Datenmengen hilft dabei, nicht unmittelbar ersichtliche Muster zu finden. Dies nennt man auch Data Mining.
Zusammengefasst, ist Machine Learning hervorragend geeignet für:
Aufgaben, bei denen die existierenden Lösungen eine Menge Feinarbeit oder lange Listen von Regeln erfordern: Ein maschineller Lernalgorithmus vereinfacht oft den Code und schneidet besser ab als der klassische Ansatz.
Komplexe Aufgaben, für die es mit herkömmlichen Methoden überhaupt keine gute Lösung gibt: Die besten Machine-Learning-Techniken können vielleicht eine Lösung finden.
Fluktuierende Umgebungen: Ein Machine-Learning-System kann sich neuen Daten anpassen.
Erkenntnisse über komplexe Aufgabenstellungen und große Datenmengen zu gewinnen.
Abbildung 1-4: Machine Learning hilft Menschen beim Lernen.
Anwendungsbeispiel
Schauen wir uns ein paar konkrete Beispiele für Aufgaben des Machine Learning und die dabei eingesetzten Techniken an:
Produktbilder in der Herstellung analysieren, um sie automatisch zu klassifizieren
Dies ist Bildklassifikation, meist ausgeführt durch Convolutional Neural Networks (CNNs, siehe Kapitel 14).
Tumoren in Gehirnscans erkennen
Das ist eine semantische Segmentierung, bei der jedes Pixel im Bild klassifiziert wird (da wir die genaue Position und Form des Tumors bestimmen wollen), meist ebenfalls mithilfe von CNNs.
Nachrichtenartikel automatisch klassifizieren
Dies ist linguistische Datenverarbeitung (NLP, Natural Language Processing) und, spezifischer, Textklassifikation, die sich über rekurrente neuronale Netze (RNNs), CNNs oder Transformer angehen lässt (siehe Kapitel 16).
Beleidigende Kommentare in Diskussionsforen automatisch markieren
Dabei handelt es sich ebenfalls um Textklassifikation mit den gleichen NLP-Tools.
Automatisch lange Dokumente zusammenfassen
Dies ist ein Zweig der NLP namens Textextrahierung, ebenfalls mit den gleichen Tools.
Einen Chatbot oder persönlichen Assistenten erstellen
Dazu gehören viele NLP-Komponenten, unter anderem das Verstehen natürlicher Sprache (Natural Language Understanding, NLU) und Module zum Beantworten von Fragen.
Den Umsatz Ihrer Firma für das nächste Jahr basierend auf vielen Performancemetriken vorhersagen
Dies ist eine Regressionsaufgabe (also das Vorhersagen von Werten), die über ein Regressionsmodell wie ein lineares oder polynomisches Regressionsmodell (siehe Kapitel 4), eine Regressions-SVM (siehe Kapitel 5), einen Regressions-Random-Forest (siehe Kapitel 7) oder ein künstliches neuronales Netzwerk (siehe Kapitel 10) angegangen werden kann. Wollen Sie Zeitreihen vergangener Metriken mit einbeziehen, können Sie RNNs, CNNs oder Transformer nutzen (siehe die Kapitel 15 und 16).
Kreditkartenmissbrauch erkennen
Dies ist Anomalieerkennung (siehe Kapitel 9).
Kunden anhand ihrer Einkäufe segmentieren, sodass Sie für jeden Bereich unterschiedliche Marketingstrategien entwerfen können
Das ist Clustering (siehe Kapitel 9).
Einen komplexen, hochdimensionalen Datensatz in einem klaren und verständlichen Diagramm darstellen
Hier geht es um Datenvisualisierung, meist unter Verwendung von Techniken zur Datenreduktion (siehe Kapitel 8).
Einem Kunden basierend auf dessen bisherigen Käufen ein Produkt empfehlen, das ihn interessieren könnte
Dies ist ein Empfehlungssystem. Ein Ansatz ist, Käufe aus der Vergangenheit (und andere Informationen über den Kunden) in ein künstliches neuronales Netzwerk einzuspeisen (siehe Kapitel 10) und es dazu zu bringen, den wahrscheinlichsten nächsten Kauf auszugeben. Dieses neuronale Netzwerk würde typischerweise mit bisherigen Abfolgen von Käufen aller Kunden trainiert werden.
Einen intelligenten Bot für ein Spiel bauen
Dies