Einen benutzerdefinierten Bildklassifikator trainieren
Einige Klassifizierungsaufgaben, die für den Menschen schwierig sind, erweisen sich für neuronale Netze als recht einfach. Zum Beispiel können sich viele Menschen nicht an den Unterschied zwischen einem Kamel und einem Dromedar erinnern. Mit einem einfachen Feinabstimmungsverfahren kann ein neuronales Netz helfen.
Im Wolfram Neural Net Repository stehen verschiedenene Modelle zur Verfügung, die trainiert wurden, um das Hauptobjekt in einem Bild zu identifizieren. Hier ist ein Modell, das mit dem ImageNet-Klassifizierungsdatensatz trainiert wurde.
Im Originalzustand schaftt es das Modell nicht, ein Kamel von einem Dromedar zu unterscheiden, da in den ImageNet-Trainingsdaten lediglich ein Tier vorkommt.
Das Modell kann jedoch umgeschult werden, um diese spezifische Aufgabe besser zu erfüllen. Um die Umschulung durchzuführen, entfernen Sie die letzten Klassifizierungsschichten und ersetzen Sie sie durch einen Zweiklassen-Klassifikator.
Neue Trainingsdaten können mit WebImageSearch gesammelt werden.
Mit NetTrain wird das Netz auf die neuen Daten trainiert, wobei 10 % der Daten für Validierungsmessungen reserviert werden. Nur die letzte Klassifizierungsschicht wird trainiert.
Das neue Modell bietet eine wesentlich bessere Klassifizierung.
Mit dem gleichen Verfahren können Sie drei weitere mit ImageNet trainierte Klassifizierungsarchitekturen neu trainieren und die Genauigkeit der Klassifizierungen vergleichen.
Bei einer einfachen Aufgabe wie dieser ist die Genauigkeit ähnlich und es besteht keine Notwendigkeit, die leistungsfähigeren, aber langsameren Modelle einzusetzen. Das kleine ResNet ist ein guter Kompromiss zwischen Genauigkeit und Geschwindigkeit.