Um es etwas technischer auszudrücken: Unser Bildklassifizierungsmodell basiert auf dem beliebten ResNet-Modell. ResNet ist ein tiefes neuronales Faltungsnetzwerk, das bei Bildklassifizierungsaufgaben weit verbreitet ist. Das einfachste Modell dieser Art ist ResNet18, das aus 18 Faltungsschichten und Residual Mappings besteht, die es dem Netzwerk ermöglichen, das Problem des verschwindenden Gradienten zu entschärfen, indem sie den Fluss der Gradienten direkt durch die Schichten des Netzwerks ermöglichen. Dies wird durch die Einführung von „Abkürzungsverbindungen“ erreicht, die eine oder mehrere Schichten überspringen, so dass das Netz Identitätszuordnungen effizienter lernen kann. Diese verbleibenden Verbindungen tragen dazu bei, die hohe Leistung auch bei zunehmender Netztiefe aufrechtzuerhalten, was ResNet-Modelle besonders effektiv für Aufgaben mit komplexen, hierarchischen Mustern in Bilddaten macht.
Vorgefertigte ResNet-Modelle, die über PyTorch verfügbar sind, stellen eine der schnellsten und einfachsten Möglichkeiten dar, ein Klassifizierungsmodell zum Laufen zu bringen. Diese Netzwerke wurden mit dem ImageNet-Datensatz trainiert, einem riesigen Datensatz mit über 14 Millionen Bildern, der einer der am häufigsten verwendeten Datensätze im Bereich der Computer Vision ist. Obwohl das vortrainierte ResNet-Modell ein sehr kompetentes Modell für den ImageNet-Datensatz ist, unterscheiden sich die Bilder, die wir klassifizieren wollen, stark von den Standard-ImageNet-Bildern, so dass das Modell erst modifiziert werden muss, bevor wir es für unsere Aufgabe verwenden können.
Die erste Änderung, die wir vornehmen müssen, ist die Änderung der Ausgabe des Modells. Das ursprüngliche Modell kann 1000 verschiedene Klassen vorhersagen, was bedeutet, dass die Ausgabe des Modells eine lineare Schicht mit 1000 Knoten ist. Da wir nur 10 verschiedene Klassen vorhersagen möchten, müssen wir das Modell so ändern, dass die Ausgabe des Modells eine lineare Ebene mit 10 Knoten ist.
Bei der Feinabstimmung eines Modells für maschinelles Lernen wird ein vorhandenes Modell auf einem benutzerdefinierten Datensatz neu trainiert, um die Genauigkeit der Vorhersagen auf der Grundlage der spezifischen Daten zu verbessern. Es ist möglich, bestimmte Schichten eines neuronalen Netzes während der Umschulung einzufrieren, so dass nur bestimmte Schichten trainiert werden, die für eine spezifische Feinabstimmung der letzten linearen Klassifizierungsschicht des modifizierten ResNet verwendet werden können. Dieser Ansatz ermöglicht es dem Modell, die allgemeinen Merkmale, die es bereits aus großen Datensätzen wie ImageNet gelernt hat, beizubehalten und sich gleichzeitig an die spezifischen Muster und Nuancen des benutzerdefinierten Datensatzes anzupassen. Die Feinabstimmung der endgültigen Klassifizierungsschicht ist oft effizienter und erfordert weniger Daten als das Training eines Modells von Grund auf, was zu einer besseren Leistung bei speziellen Aufgaben führt.
Nach der Feinabstimmung des geänderten Modells kann es getestet werden, indem es Vorhersagen über unbekannte Daten macht. Wenn die Leistungskennzahlen des Modells akzeptabel sind, kann das Modell in einer Produktionsumgebung für eine Vielzahl von Zwecken eingesetzt werden - die Vorhersagen können gesammelt und für Fertigungsberichte verwendet werden, oder das Modell kann mit autonomen oder halbautonomen Systemen verknüpft werden, um Aktionen durchzuführen, wenn bestimmte Vorhersagen eintreten.