Methoden des maschinellen Lernens

Ein kleiner Einblick in die Welt der Künstlichen Intelligenz
coding

Einführung

Das maschinelle Lernen (ML) ist ein Bereich der Künstlichen Intelligenz (KI) und beschreibt die Anwendung von Algorithmen, um Zusammenhänge zwischen Daten und Informationen zu erlernen. Dies ist insbesondere der Fall, wenn ein Computer für eine Aufgabe nicht mit expliziten Vorgaben programmiert werden kann oder diese so komplex sind, dass das Ausformulieren der Vorgaben nur unter enormen Zeit- und Ressourceneinsatz erfolgen kann. Ähnlich dem Menschen eignet sich der Computer das Wissen durch die Auswertung von Erfahrungen an. Ein solches System gibt für Eingaben bestimmte Ausgaben aus. Das Lernen beschreibt dabei, dass die Ausgaben durch Lernprozesse verbessert bzw. optimiert werden. Dazu werden dem System Rückmeldungen gegeben, wie gut die Ausgabe die Aufgabe, repräsentiert durch die Eingabe, gelöst hat. Für die Art und Weise der Rückmeldungen gibt es verschiedene Möglichkeiten und anhand dieser werden die Methoden des maschinellen Lernens eingeteilt. 

Dabei handelt es sich um das überwachte Lernen (Supervised Learning), bestärkende Lernen (Reinforcement Learning) und unüberwachte Lernen (Unsupervised Learning). Für jede dieser Methoden gibt es eine Vielzahl von Verfahren für unterschiedlichste Zielstellungen. Welches Verfahren sich für eine bestimmte Anwendung eignet, ist stark von der Problemstellung abhängig. Allerdings ist es ratsam, die Unterschiede und Erfordernisse der drei Methoden zu kennen. Dies beschleunigt die Entwicklung eines geeigneten Modells, die Auswahl eines Verfahrens und stellt generell die Grundlage des maschinellen Lernens dar. Im Folgenden werden die Methoden kurz vorgestellt und auf die Erfordernisse eingegangen.

machine_learning_data

1. Supervised Learning

Beim überwachten Lernen wird die Ausgabe des Systems korrigiert. Entsprechend dieser Korrektur werden die internen Parameter optimiert, um die Ausgabe an die Vorgabe anzupassen. Dazu wird dem System ein Datensatz mit Eingabe- und Sollwerten übergeben. Für jeden Eingabewert wird ein Ausgabewert bestimmt und anschließend mit dem Sollwert verglichen. Für das Training wird ein Teil des Datensatzes verwendet, der andere Teil wird als Testdatensatz eingesetzt um das System zu validieren. Einige Verfahren für diese Methode sind künstliche Neuronale Netze mit Backpropagation, k-Nearest-Neighbor-Algorithmen zur Klassifikation oder Support-Vector-Machines. Besondere Beachtung muss bei dieser Methode dem Erstellen und Annotieren des Datensatzes gewidmet werden. Als Beispiel sei hier ein System zur Erkennung von Objekten in Bildern genannt. Die Eingangsdaten sind die Bilder, in denen das System aus z. B. 20 Klassen Objekte klassifizieren soll. Bei der Erstellung des Datensatzes ist auf eine gute Generalisierung alle Objekte (bzw. Klassen) zu achten. Die Sollwerte werden dem System als annotierte Bilder übergeben. In diesen sind die zu erkennenden Objekte bereits markiert und einer Klasse (einem Label) zugeordnet.

2. Reinforcement Learning

Beim bestärkenden Lernen führt ein Agent eine Aktion aus. Anhand einer Belohnungsfunktion erhält der Agent für seine Aktion eine Belohnung. Die Aktion ist hierbei die Ausgabe, die mit einer Belohnung an den Agenten bewertet wird. Der Agent versucht für zukünftige Aktionen seine Belohnung zu maximieren und somit ein gewünschtes Verhalten zu entwickeln. Die Belohnung wird anhand des Zustands aus der Umgebung (Environment) bestimmt. Verfahren für diese Methode ist das Q-Learning oder der SARSA-Algorithmus. Beim Reinforcement Learning müssen zwei Dinge beachtet werden. Erstens muss die Umgebung gut bekannt und beobachtbar sein, zweitens dürfen zukünftige Aktionen nur von der Gegenwart (dem aktuellen Zustand) abhängig sein (Markov-Regel). Ebenso muss für das Erlernen einer optimalen Lösung eine geeignete Explorationsstrategie entwickelt werden. Dies bedeutet, dem Agenten muss es möglich sein, verschiedene Aktionen auf einen Zustand auszuprobieren, um so eine möglicherweise bessere Lösung zu entdecken. 

3. Unsupervised Learning

Im Gegensatz zum überwachten Lernen besteht der Datensatz beim unüberwachten Lernen nur aus den Eingabedaten. Es wird kein Sollwert für die Ausgabe mit übergeben und somit findet auch keine Einteilung der Eingabedaten in Klassen statt. Das unüberwachte Lernen wird verwendet um Zusammenhänge und Charakteristika in Datenmengen zu finden und Ausnahmen in diesen zu erkennen. Dazu werden Regelmäßigkeiten in den Eingabedaten mit Hilfe von Ähnlichkeitsmaßen und Bewertungsfunktionen ermittelt. Allerdings spielt die Vorauswahl der relevanten Merkmale für die Einteilung der Daten eine große Rolle. Anhand dieser Relevanz entscheidet sich wie die Gruppierung der Daten stattfindet. Beispiele für Verfahren des unüberwachten Lernens sind Clustering, Dimensionalitätsreduktion oder der k-means-Algorithmus.

Quellen:

Awad, M.; Khanna, R.: Efficient Learning Machines, 2015, Apress Media

Lorenz, U.: Reinforcement Learning, 2020, Springer Vieweg

Paaß, G.; Hecker, D.: Künstliche Intelligenz, 2020, Springer Vieweg

Kramer, O.: Computational Intelligence, 2009, Springer

Bildmaterial: Unsplash