Digital resources in the Social Sciences and Humanities OpenEdition Our platforms OpenEdition Books OpenEdition Journals Hypotheses Calenda Libraries OpenEdition Freemium Follow us

IT – Teil 3

Wie läuft der Prozess des maschinellen Lernens ab?

Wie läuft maschinelles Lernen ab und welche Schritte sollte man beachten? Wie wird ein Modell für maschinelles Lernen erstellt? Auf dieses Thema wollen wir in diesem Beitrag eingehen und vor allem die relevanten Schritte in Bezug auf unsere Experimente mit keltischen Münzserien thematisieren.

Je nach Datengrundlage und Zielsetzung variiert der Ablauf; typischerweise lässt sich ein machine learning (ML)-Prozess aber in fünf Abschnitte einteilen (Abb. 1):

Abb. 1: Maschinen-Lernen als Prozessablauf mit verschiedenen Arbeitsschritten (Grafik: Ch. Deligio, ClaReNet).

1. Zielsetzung / Datenbeschaffung

Der erste Schritt ist die Definition des grundlegenden Problems bzw. des zu erreichenden Zieles. Eine große Rolle spielen die vorhandenen oder noch zu beschaffenden Daten, da die Anzahl und Qualität dieser eine entscheidende Rolle für das Ergebnis spielen. Ist die Aufgabe definiert und der Datensatz – in diesem Zusammenhang eine Sammlung von zusammengehörigen, oft ähnlichen Daten – vorhanden, so kann entschieden werden, welcher ML-Ansatz verfolgt werden soll (siehe Supervised und Unsupervised Learning). Möchte man einen supervised-Ansatz verfolgen, so wird zu den Daten (Abb. 2) auch eine sogenannte ground truth von möglichst hoher Qualität benötigt. Bei Bildern werden diese entsprechend mit Labels (Zuordnung zu einer Ziel-Klasse) oder Annotationen versehen.

Abb. 2: Fotografieren von Münzen mit der Danner-Fotoanlage quickPX-Travel: so erzeugen wir eine gute Datenbasis, die ground truth (Foto: Stadtarchiv Ingolstadt/U. Rössle).

2. Datenaufbereitung

Ist die Wahl des Ansatzes getroffen und die Datenbeschaffung abgeschlossen, kann die Datenaufbereitung (preprocessing) beginnen. Dieser Schritt ist von zentraler Bedeutung und besonders zeitintensiv, da er die Grundlage für das darauf folgende Trainieren des Algorithmus ist. Ziel während des preprocessing ist es, den Datensatz optimal vorzubereiten. Das Aufbereiten der Daten beginnt bereits beim Standardisieren des Datentyps. Kommen, wie in unserem Fall, die Bilder aus verschiedenen Quellen, so können diese beispielsweise im PNG- oder JPEG-Format vorliegen. Eventuell gibt es im Datensatz Ausreißer, sprich einzelne Daten, die weit vom Durchschnitt entfernt sind. Bei Münzen könnte es sich beispielsweise um eine einzelne Fehlprägung handeln. Weitere wichtige Schritte zur Datenaufbereitung sind unter anderem der Umgang mit unvollständigen Daten oder die Entfernung von Duplikaten.

Die bereits genannten Schritte haben sich mit dem Aufräumen des Datensatzes beschäftigt, anschließend folgen weitere Schritte, die sich dem Transformieren der Daten widmen. Darunter fällt die sog. Augmentation. Das bedeutet, dass durch Transformation die Datenanzahl gesteigert wird. Im Falle unserer Bilddaten können diese durch verschiedene Operationen wie spiegeln, rotieren oder zuschneiden augmentiert werden. Das Augmentieren der Daten hat ebenfalls eine positive Auswirkung auf die spätere Robustheit, sprich die performance auf neue, noch unbekannte und vom gesehenen Datensatz abweichende Daten. Besteht der Datensatz beispielsweise nur aus ausgerichteten Münzen, so kann das Modell verwirrt werden, wenn plötzlich eine rotierte Münze übergeben wird. Weiter sollte das Seitenverhältnis im gesamten Datensatz einheitlich sein. Eine weitere Möglichkeit ist die sog. Dimensionsreduzierung, beispielsweise kann ein RGB-Bild auf ein Graustufenbild reduziert werden.

Wird ein supervised-Ansatz verfolgt, so wird der Datensatz meistens noch in eine Trainings- und Testmenge untergliedert. Die Testmenge wird dann genutzt, um die Performance zu evaluieren, sprich zu berechnen, wie das erstellte Modell auf vorher noch nicht gesehene Bilder reagiert. Durch die vorhandenen Labels (Abb. 3) kann dann die Genauigkeit des Modells gemessen werden. Wird eine Klassifikation der Daten angestrebt, spielt die Balance der einzelnen Klassen eine große Rolle. Sind überwiegend Daten einer Klasse vorhanden, so wird das Modell eine Voreingenommenheit (overfitting) gegenüber dieser Klasse entwickeln. Neben der Balance spielt auch die tatsächliche Anzahl der Elemente je Klasse eine Rolle. In diesem Fall ist es schwer eine Mindestanzahl zu nennen, je nach Anwendungsfall und Schwierigkeit der zu erkennenden Unterschiede kann der Erfolg variieren.

Abb. 3: Die Münzen werden einzelnen Typen zugeordnet und so für die KI mit Labels versehen (Foto: Stadtarchiv Ingolstadt/U. Rössle).

Wird ein unsupervised-Ansatz gewählt, so kann der gesamte Datensatz weitergegeben werden. Sind keine Labels vorhanden, muss die Performance manuell evaluiert werden. Die Balance im Datensatz spielt natürlich auch hier eine Rolle, jedoch ist diese nicht immer bestimmbar.

3. Training

Nach der Datenaufbereitung folgt nun das Erstellen eines Modells. Es existieren verschiedene Algorithmen für Klassifikation, Regression oder Clustering. Für unsere Münzbilder werden wir in unseren Experimenten convolutional neural networks (CNN) nutzen, unter anderem in Kombination mit Clusteralgorithmen, wie k-Means.

Ist ein Algorithmus gewählt, werden sog. Hyperparameter festgelegt, d.h. Parameter, die vor dem Training definiert und nicht vom Algorithmus verändert werden. Anschließend kann mit dem sog. Training begonnen und die Arbeit an die KI übergeben werden. Das Resultat ist ein trainiertes Modell; dieses gilt es nun im nächsten Schritt zu evaluieren.

4. Evaluation

Wie bereits erwähnt, unterscheidet sich der Ablauf je nach Ansatz. Bei einem supervised-Ansatz kann zuerst die erreichte Performance auf den Trainingsdaten gemessen werden und anschließend auf den Testdaten evaluiert werden, so kann beobachtet werden wie das Modell auf unbekannte Eingaben reagiert. Wird ein unsupervised-Ansatz verfolgt und sind keine Label vorhanden, ist das Ergebnis hingegen manuell zu beurteilen. Beispielsweise können im Falle eines Clusteralgorithmus die verschiedenen gebildeten Gruppen (Cluster) betrachtet werden. Je nach Performance kann der Trainingsschritt (3.) wiederholt und Parameter des Modells angepasst werden. Ist die erreichte Performance zufriedenstellend, so kann das Modell gespeichert und für den nächsten Schritt bereitgestellt werden. Anzumerken ist hier, dass “zufriedenstellend” von der eigenen Vorstellungen, dem Datensatz und der Zielsetzung abhängig ist.

Unabhängig vom Ansatz ist es hilfreich, im Falle der hier genutzten CNNs zu beobachten, wie die Entscheidung bzw. anhand welcher Merkmale (features) diese getroffen wurde und nicht nur anhand der gemessenen Genauigkeit. Hierzu kann die Entscheidung z. B. durch das Nutzen von Gradient-weighted Class Activation Mapping (Grad-CAM[1]) visualisiert werden (Abb. 4). Zu erwähnen ist hier, dass neuronale Netzwerke eigenständig trainieren und Entscheidungen gewichten und der Einblick in diesem Prozess nicht ganz trivial ist. Das Thema der Erklärbarkeit solcher CNNs ist immer noch ein sehr aktuelles und offenes Gebiet. Durch Methoden wie Grad-CAM kann durch sog. heatmaps visualisiert werden, wo die “heißen” Regionen für das CNN liegen.

Abb. 4: Für das Netzwerk relevante Bereiche werden durch Grad-CAM visualisiert. Die roten Bereiche sind die wichtigsten (Foto: Jersey Heritage (CATII-H-21779A), Heatmap: Ch. Deligio, ClaReNet).

Durch die Visualisierung ist es nun möglich einzuschätzen, ob das Modell wie gewünscht funktioniert. Gewünscht in diesem Fall heißt, dass die Vorhersage anhand einer sinnvollen Region des Bildes getroffen wurde. Es kann vorkommen, dass die Performance zwar gut ist, die Entscheidung jedoch anhand eines unerwarteten Bereichs getroffen wurde. Darunter zählen Schäden an der Münze, Hintergrundmotive oder auch Unterschiede in der Aufnahme. Im Projekt ClaReNet ist vor allem die Entscheidung des Modells von Interesse, bzw. anhand von welchen Bereichen diese getroffen wird und ob aus KI-Sicht ein relevanter Bereich im Fokus liegt, der so noch nicht in der Numismatik diskutiert worden ist.

5. Anwendung

Nachdem die Daten beschafft und aufbereitet worden sind, das Modell trainiert und evaluiert ist, kann es nun für die geplante Anwendung genutzt werden. Es gilt nun auch hier zu beobachten, wie es auf neue und unbekannte Daten weiterhin performt. Ein continuous-learning-Ansatz[2] wird derzeit von uns hier nicht verfolgt.

Schwierig wird es vor allem dann, wenn die Daten, beispielsweise Bilder, sich stark von den Trainingsdaten unterscheiden. Bei der Übertragung von Modellen auf andere Datensätze kann es ohne neues Training zu einem Einbruch in der Performance kommen.

Quellen

A. Müller / S. Guide, Introduction to Machine Learning with Python: A Guide for Data Scientists (2016).

S. Raschka / V. Mirjalili, Python Machine Learning: Machine Learning and Deep Learning with Python, scikit-learn, and TensorFlow (2017).

R. Selvaraju et al., Grad-CAM: Visual Explanations from Deep Networks via Gradient-based Localization (2017).

[1] https://arxiv.org/abs/1610.02391

[2] https://towardsdatascience.com/how-to-apply-continual-learning-to-your-machine-learning-models-4754adcd7f7f

 

cd

[zum vorherigen Teil] – [zum nächsten Teil]