Machine Learning – Ein Überblick

Ein Fachbeitrag von Tobias Surmann, Senior Software Developer

Einleitung

Machine Learning ist derzeit in aller Munde. Eindrucksvolle Anwendungsbeispiele sind z. B. die automatische Zusammenfassung von Texten (siehe z. B. Beta Writer von Springer Nature) oder die automatische Textgenerierung (siehe z. B. OpenAI GPT-2). Deep Fakes ermöglichen die Erzeugung täuschend echter Bilder oder Videos mithilfe von tiefen neuronalen Netzen (siehe z. B. thispersondoesnotexist.com oder FakeApp).

KIs schlagen mittlerweile die besten menschlichen Spieler – sowohl in jahrhundertealten Brettspielen wie Go als auch in modernen Echtzeitcomputerspielen wie Starcraft II. Machine Learning ist in vielen weiteren Bereichen einsetzbar: beispielsweise bei der Erkennung von Betrugsversuchen in der Versicherungswirtschaft oder im Bankenwesen, bei der Analyse des Kaufverhaltens, zur Unterstützung der Diagnostik in der Medizin und sie spielen auch eine große Rolle im Kontext von Zukunftsthemen wie z. B. selbstfahrenden Autos.

Was versteht man unter dem Begriff „Künstliche Intelligenz“ (KI)? KI ist ein Teilgebiet der Informatik, in dem es um die Nachahmung menschlichen Verhaltens und Denkens geht und welches auf die autonome und automatische Aufgabenerledigung abzielt. Man unterscheidet schwache und starke KI. Während schwache KIs schon heute sehr gut darin sind, bestimmte Anwendungsprobleme in einem abgegrenzten Bereich zu lösen (z. B. Bildklassifizierung), spricht man von starker KI, wenn diese in der Lage ist, die menschliche Leistung auf allen Anwendungsgebieten zu erreichen bzw. zu übertreffen (englisch AGI, Artificial General Intelligence). Machine Learning (ML) ist ein Teilgebiet der Künstlichen Intelligenz.

KIs werden hier nicht explizit programmiert, sondern sie lernen die Muster, die in Daten vorhanden sind und können auf dieser Basis verallgemeinern und somit auch für bisher unbekannte Eingabedaten die korrekten Ergebnisse liefern. Deep Learning ist wiederum ein Teilgebiet des Machine Learnings. Hier werden tiefe neuronale Netze mit einer Vielzahl von Schichten verwendet, um Probleme zu lösen. Sie benötigen hierfür jedoch verhältnismäßig große Datenmengen als Eingabe sowie hoch parallelisierte Rechenleistung (in Form von GPUs/TPUs) für eine möglichst effiziente Berechnung. In Zeiten von Big Data und Cloud Computing kann diesen Anforderungen mittlerweile genüge getan werden. Ein Nachteil von neuronalen Netzen ist die schlechte Nachvollziehbarkeit des Problemlösungswegs durch den Menschen.

Für das Training eines ML-Algorithmus werden Trainingsdaten benötigt.

  • Ein Datensatz (Tabelle) besteht aus mehreren Datenpunkten (Zeilen).
  • Ein Datenpunkt kann Werte zu mehreren Merkmalen / Features (Spalten) aufweisen.
  • Zu einem Datenpunkt können ein oder mehrere zugehörige Ausgaben vorhanden sein. Diese werden Labels oder Targets genannt.

Machine Learning kann nach verschiedenen Kriterien klassifiziert werden. Folgende Klassifikationen werden klassischerweise vorgenommen:

  • Klassifikation nach menschlicher Überwachung
  • Klassifikation nach der Fähigkeit, inkrementell aus einem kontinuierlichen Datenstrom dazuzulernen
  • Klassifikation nach Art der Verallgemeinerung
Klassifikation nach menschlicher Überwachung

Beim überwachten Lernen (Supervised Learning) enthält der Trainingsdatensatz zusätzlich zu den Merkmalen auch Labels. Man unterscheidet die Regression und die Klassifikation.

  • Bei der Regression werden auf Basis der Eingabedaten kontinuierliche numerische Werte ausgegeben. Z. B. lässt sich auf Basis der Merkmale eines Autos (Marke, Modell, Pferdestärken, …) der Wert desselben bestimmen.
  • Bei der Klassifikation werden hingegen diskrete Werte ausgegeben, wobei diese jeweils für eine bestimmte Klasse stehen. Ein Beispiel hierfür ist die Klassifikation von Bildern nach der abgebildeten Tierart.

Viele Algorithmen zur Regression können auch zur Klassifikation eingesetzt werden und umgekehrt (Beispiel: Klassifikation mittels logistischer Regression, um Wahrscheinlichkeiten für die Klassenzugehörigkeit zu ermitteln). Beim unüberwachten Lernen (Unsupervised Learning) enthält der Trainingsdatensatz keine Labels. Folgende Themenbereiche werden in diesem Kontext betrachtet:

  • Clustering
    Ziel ist es, Cluster (Gruppen von ähnlichen Datenpunkten) in einem Datensatz zu finden. Im Gegensatz zur Klassifikation (s. o.) sind die Klassen demnach nicht vorgegeben (Beispiel: k-Means-Verfahren).
  • Visualisierung
    Ziel ist die Darstellung hochdimensionaler Daten in 2D oder 3D und zwar unter Beibehaltung der Strukturen (d. h. zum Beispiel ohne, dass sich Cluster gegenseitig überlappen). Dies unterstützt menschliche Betrachter bei der Analyse bzw. Interpretation der Daten und dem Auffinden von Mustern.

– Bei der Projektion werden die Datenpunkte lotrecht auf eine Hyperebene fallen gelassen. Dabei wird die Hyperebene so gewählt, dass möglichst wenige Informationen verloren gehen.

– Beim Manifold Learning sind die Daten in einer lokal d-dimensionalen Hyperebene verdreht oder verzerrt in den übergeordneten n-dimensionalen Raum eingebettet (d < n). Mithilfe von Manifold Learning können diese entzerrt werden (Beispiel: Swiss Roll).

  • Dimensionsreduktion
    Bei der Dimensionsreduktion wird die Anzahl der Merkmale reduziert. Dies geschieht durch die Zusammenführung korrelierender Merkmale. Die Merkmale „Kilometerstand“ und „Alter“ von Autos korrelieren beispielsweise miteinander und lassen sich zu dem Merkmal „Abnutzung“ zusammenfassen. Genutzt werden derartige Verfahren v. a. zur Performancesteigerung nachgelagerter ML-Algorithmen.
  • Anomalie-Erkennung
    Ziel ist die Identifikation ungewöhnlicher Datenpunkte. Derartige Verfahren finden z. B. Anwendung bei der Erkennung von betrügerischen Kreditkartentransaktionen oder bei der Erkennung von defekten Sensoren in der Produktion.
  • Lernen von Assoziationsregeln
    Hier geht es um das Aufdecken interessanter Beziehungen zwischen Merkmalen in einem Datensatz. Ein typisches Anwendungsbeispiel aus diesem Bereich sind automatisch erzeugte Kaufempfehlungen (Kunden, die X kaufen, kaufen auch Y).

Beim halb-/teilüberwachten Lernen (Semi-Supervised Learning) werden Algorithmen eingesetzt, die mit nur teilweise gelabelten umgehen können. Im unüberwachten Teil solcher Algorithmen geht es meist darum, die Labels im Trainingsdatensatz für nachgelagerte Algorithmen zu vervollständigen. Dies ist wichtig, da das manuelle Labeln von Datensätzen sehr aufwändig sein kann.

Das Bestärkende Lernen (Reinforcement Learning) verfolgt im Gegensatz zu den bisher vorgestellten Klassen einen prinzipiell anderen Ansatz, da die Trainingsdaten nicht a priori zur Verfügung stehen. Im Mittelpunkt steht stattdessen ein Software-Agent, welcher mit seiner Umwelt interagiert. Er kann den Zustand seiner Umgebung beobachten und Aktionen darin ausführen. Eine Aktion führt zu einem neuen Umgebungszustand und ist evtl. mit einer Belohnung (Reward) verbunden. In der Trainingsphase muss der Agent eine Strategie (Policy) lernen, die zu einer insgesamt maximalen Belohnung führt.

Auch beim Aktiven Lernen (Active Learning) steht Im Vordergrund, dass das Labeln von Datenpunkten teuer ist. Statt wie beim Supervised Learning im Vorhinein alle Datenpunkte durch einen Lehrer bzw. ein Orakel (als Supervisor) labeln zu lassen, findet das Labeln interaktiv statt. Der Algorithmus wählt die zu lernenden Datenpunkte gemäß einer Befragungsstrategie aus und fragt den Supervisor nach dem korrekten Label. Dadurch werden insgesamt weniger zu labelnde Datenpunkte benötigt.

Klassifikation nach der Fähigkeit, inkrementell aus einem kontinuierlichen Datenstrom dazuzulernen
Beim Batch-Lernen (Batch-Learning) werden für das Training immer alle alten sowie die neu hinzukommenden Datenpunkte benötigt und in einem Schritt verarbeitet. Kommen neue Daten hinzu, müssen also die alten Datenpunkte wieder und wieder mittrainiert werden, was zu einem hohen Ressourcenverbrauch führt. Eine schnelle Anpassung an neue Datenpunkte ist daher nicht möglich. Daraus resultiert auch, dass ein Training bei solchen Verfahren nur außerhalb des Produktivsystems möglich ist (Offline-Learning). Bei umfangreichen Datensätzen können Verfahren dieser Art evtl. auch gar nicht eingesetzt werden – z. B. weil die Datenmenge nicht in den verfügbaren Arbeitsspeicher passt. Sinnvoll ist der Einsatz v. a. dann, wenn sich bereits gelernte alte Datenpunkte ändern können und eine hohe Präzision der Voraussagen wichtig ist.

Der Vorteil beim Online-Lernen (Online-Learning) besteht darin, dass alte Datenpunkte beim Training nicht mehr betrachtet werden. Dem Modell werden nur die neu hinzukommenden Datenpunkte hinzugefügt. Dies erfolgt i. d. R. paketweise (Mini-Batches). Daraus resultiert ein insgesamt deutlich geringerer Ressourcenverbrauch als beim Batch-Lernen. Außerdem ist es so möglich, Datenmengen zu verarbeiten, die nicht im Ganzen in den Arbeitsspeicher passen (Out-Of-Core-Learning). Zudem können einmal gelernte Datenpunkte verworfen werden, was Speicherplatz einspart. Solche Verfahren müssen in der Produktivumgebung gut überwacht werden, um das Lernen minderwertiger Datenpunkte zu verhindern (Beispiel: defekter Sensor). Dies kann z. B. mittels Anomalie-Erkennung realisiert werden.

Klassifikation nach Art der Verallgemeinerung

Beim Instanzbasierten Lernen stehen alle Datenpunkte einzeln zur Verfügung, was zu entsprechendem Speicherbedarf führt. Wird eine Abfrage durchgeführt, dann erfolgt die Verallgemeinerung durch Anwendung eines Ähnlichkeitsmaßes. Die Berechnung erfolgt i. d. R. zum Zeitpunkt der Abfrage (Lazy Learning). Beim k-Nearest-Neighbor-Verfahren werden bspw. die k nächstgelegenen Datenpunkte betrachtet, um für den angefragten Datenpunkt ein Ergebnis zu berechnen.

Beim Modellbasierten Lernen werden hingegen nicht alle Datenpunkte vorgehalten. Stattdessen wird – je nach Komplexität der Problemstellung – eine mathematische Hypothesenfunktion derart gewählt (z. B. Gerade, Polynom, Neuronales Netz), dass hierüber die zu lernende Funktion möglichst genau angenähert werden kann. Dazu besitzt die Hypothesenfunktion entsprechende Koeffizienten, welche im ML v. a. im Kontext von neuronalen Netzen Gewichte genannt werden. Während des Trainings werden die Gewichte so bestimmt, dass die Hypothesenfunktion über alle trainierten Datenpunkte möglichst nah am Sollwert liegt – insgesamt also ein möglichst minimaler Fehler entsteht, was wiederum einem geringen Verallgemeinerungsfehler entspricht. Um nicht alle Gewichtskombinationen ausprobieren zu müssen (was entsprechend berechnungs- und laufzeitintensiv ist), existieren Verfahren, die ein zielgerichtetes Vorgehen erlauben (z. B. Gradient Descent). Das zu speichernde Modell besteht aus der Hypothesenfunktion und ihren konkreten Gewichtswerten. Dies führt zu einem deutlich geringeren Speicherbedarf als beim Instanzbasierten Lernen. Darüber hinaus ist die Abfrage auf dem trainierten Modell (Inferenz) auch weniger berechnungsintensiv.

Fazit

Machine Learning liefert faszinierende Ergebnisse. Die o. g. Ausführungen liefern einen ersten Überblick über diesen mittlerweile sehr umfangreichen Teilbereich der Künstlichen Intelligenz.