Lösen der häufigsten Probleme bei der Bilderkennung

Einführung

Die meisten Klassifizierungsprobleme im Zusammenhang mit der Bilderkennung sind mit bekannten und bekannten Problemen behaftet. Beispielsweise sind häufig nicht genügend Daten vorhanden, um ein Klassifizierungssystem ordnungsgemäß zu trainieren. Die Daten weisen möglicherweise einige unterrepräsentierte Klassen auf. In den meisten Fällen bedeutet das Arbeiten mit nicht überprüften Daten das Arbeiten mit schlecht beschrifteten Daten.

Daten sind der Schlüssel, der bestimmt, ob Ihre Bemühungen fehlschlagen oder erfolgreich sind. Diese Systeme benötigen nicht nur mehr Daten als Menschen, um verschiedene Klassen zu lernen und zu unterscheiden. Sie benötigen tausende Male mehr, um die Arbeit zu erledigen.

Deep Learning stützt sich auf enorme Mengen hochwertiger Daten, um zukünftige Trends und Verhaltensmuster vorherzusagen. Die Datensätze müssen repräsentativ für die Klassen sein, die wir vorhersagen möchten. Andernfalls verallgemeinert das System die Verteilung der verzerrten Klassen und die Verzerrung ruiniert Ihr Modell.

Diese Probleme haben normalerweise eine gemeinsame Ursache. die Fähigkeit, große Datenmengen zu finden, zu extrahieren und zu speichern und diese Daten auf einer zweiten Ebene zu bereinigen, zu kuratieren und zu verarbeiten.

Während wir die Rechenleistung und die Datenspeicherkapazität erhöhen können, hat ein Rechner keine Chance, ein komplexes und großes neuronales Faltungsnetz mit einem großen Datensatz zu betreiben. Möglicherweise ist nicht genügend Speicherplatz vorhanden, und höchstwahrscheinlich ist nicht genügend Rechenleistung vorhanden, um das Klassifizierungssystem auszuführen. Sie erfordert auch den Zugriff auf paralleles / verteiltes Computing über Cloud-Ressourcen und das Verständnis für das Ausführen, Organisieren und Festlegen komplexer Cluster.

Es reicht jedoch nicht aus, über genügend Daten und Verarbeitungsleistung zu verfügen, um diese Probleme zu vermeiden.

In diesem Beitrag werden wir verschiedene Techniken untersuchen und diskutieren, mit denen die Probleme behoben werden können, die beim Arbeiten mit kleinen Datenmengen auftreten, wie das Klassenungleichgewicht verringert und eine Überanpassung verhindert werden kann.

Übertragen Sie das Lernen

Daten könnten die neue Kohle sein, zitiert Neil Lawrence, und wir wissen, dass Deep-Learning-Algorithmen große Mengen von beschrifteten Daten benötigen, um ein vollwertiges Netzwerk von Grund auf zu trainieren, aber wir verstehen oft nicht, wie viel Daten das bedeutet. Das Finden der Datenmenge, die Ihren Anforderungen entspricht, kann eine endlose Quelle der Frustration sein. Es gibt jedoch einige Techniken, z. B. das Erweitern oder Übertragen von Daten, mit denen Sie viel Energie und Zeit sparen, um Daten für Ihr Modell zu finden.

Transferlernen ist ein populärer und sehr leistungsfähiger Ansatz, der kurz gesagt als Lernprozess anhand eines vorab trainierten Modells zusammengefasst werden kann, das durch einen größeren Datensatz angewiesen wurde. Das bedeutet, ein vorhandenes Modell zu nutzen und es an Ihre eigenen Ziele anzupassen. Bei dieser Methode werden die letzten Schichten eines vorgefertigten Modells abgeschnitten und mit Ihrem kleinen Datensatz erneut trainiert. Es hat folgende Vorteile:

  • Es erstellt ein neues Modell gegenüber einem älteren Modell mit überprüfter Effizienz für Bildklassifizierungsaufgaben. Ein Modell kann beispielsweise auf einer CNN-Architektur wie Inception-v3 (ein von Google entwickeltes CNN) aufgebaut und mit ImageNet vorab trainiert werden.
  • Es verkürzt die Einarbeitungszeit, da die Wiederverwendung von Parametern eine Leistung ermöglicht, deren Erreichen Wochen dauern kann.

Unausgeglichene Daten

Oft ist das Verhältnis einer Gruppe von Labels innerhalb eines Datensatzes zu den anderen unausgewogen, und häufig handelt es sich bei dieser Minderheitengruppe von Labels um die Gruppe von Kategorien, an denen wir gerade wegen ihrer Seltenheit interessiert sind. Angenommen, wir haben ein Problem mit der binären Klassifizierung, Klasse X repräsentiert 95% der Daten und Klasse Y die anderen 5%. Das Modell reagiert daher empfindlicher auf Klasse X und weniger empfindlich auf Klasse Y. Wenn der Klassifikator eine Genauigkeit von 95% erreicht, wird die Klasse X grundsätzlich jedes Mal vorhergesagt.

Offensichtlich ist Genauigkeit hier keine angemessene Wertung. In dieser Situation sollten wir die Kosten der Fehler, die Präzision und den Rückruf berücksichtigen. Ein sinnvoller Ausgangspunkt ist eine 2-D-Darstellung der verschiedenen Arten von Fehlern, dh eine Verwirrungsmatrix. Im Kontext des Ergebnisses unserer Klassifizierung kann es als Methode zur Veranschaulichung der tatsächlichen Markierungen im Vergleich zur Markierungsvorhersage beschrieben werden, wie in der folgenden Abbildung dargestellt.

Durch Speichern der Nummer für jedes Etikett aus echten Positiven, falschen Positiven, echten Negativen und falschen Negativen, die aus den Vorhersagen des Modells ermittelt wurden, können wir die Leistung für jedes Etikett mit Rückruf und Genauigkeit schätzen. Präzision ist definiert als das Verhältnis:

Rückruf ist definiert als das Verhältnis:

Rückruf und / oder Präzision werden ein zugrunde liegendes Problem aufdecken, aber nicht lösen. Es gibt jedoch verschiedene Methoden, um die mit einem ausgeprägten Ungleichgewicht bei der Klassenverteilung verbundenen Probleme abzumildern:

  • Durch Zuweisen unterschiedlicher Koeffizienten zu jedem Etikett;
  • Durch erneutes Abtasten des ursprünglichen Datensatzes, entweder durch Überabtasten der Minderheitsklasse und / oder durch Unterabtasten der Mehrheitsklasse. Das heißt, Überabtastung kann zu Überanpassung führen, da die Klassifizierungsgrenzen strenger sind und kleine Datensätze zu Verzerrungen führen.
  • Durch Anwendung der SMOTE-Methode (Synthetic Minority Oversampling Technique), mit der dieses Problem behoben wird, werden die Daten weniger häufiger Klassen repliziert. Diese Methode wendet die gleichen Ideen für die Datenerweiterung an und ermöglicht die Erstellung neuer synthetischer Stichproben durch Interpolation zwischen benachbarten Instanzen der Minderheitsklasse.

Überanpassung

Wie wir wissen, lernt / verallgemeinert unser Modell die Hauptmerkmale eines Datensatzes durch Backpropagation und durch Minimierung einer Kostenfunktion. Jeder Schritt hin und her wird als Epoche bezeichnet, und mit jeder Epoche wird das Modell trainiert und die Gewichte angepasst, um die Kosten der Fehler zu minimieren. Um die Genauigkeit des Modells zu testen, besteht eine allgemeine Regel darin, den Datensatz in den Trainingssatz und den Validierungssatz aufzuteilen.

Der Trainingssatz wird verwendet, um das Modell abzustimmen und zu erstellen, das einen Vorschlag basierend auf den im Trainingssatz zugrunde liegenden Mustern enthält. Der Validierungssatz testet die Effizienz und Validierung des Modells basierend auf unsichtbaren Stichproben.

Die Änderung des Validierungsfehlers für einen realen Fall zeigt jedoch tendenziell mehr Sprünge und Abwärtsbewegungen:

Am Ende jeder Epoche testen wir das Modell mit dem Validierungssatz, und irgendwann beginnt das Modell, die Merkmale des Trainingssatzes zu speichern, während der Kostenfehler und die Genauigkeit der Proben auf dem Validierungssatz am schlimmsten werden. Wenn wir dieses Stadium erreichen, ist das Modell überpassend.

Die Auswahl der Größe und Komplexität des Netzwerks ist ein entscheidender Grund für eine Überanpassung. Komplexe Architekturen sind anfälliger für Überanpassungen, es gibt jedoch einige Strategien, um dies zu verhindern:

  • Erhöhung der Anzahl der Proben auf dem Trainingssatz; Wenn das Netzwerk mit mehr realen Fällen trainiert wird, wird es besser verallgemeinern.
  • Das Stoppen der Backpropagation bei Überanpassung ist eine weitere Option, bei der die Kostenfunktion und die Genauigkeit des Validierungssatzes für jede Epoche überprüft werden.
  • Die Anwendung einer Regularisierungsmethode ist eine weitere beliebte Option, um eine Überanpassung zu vermeiden.

L2 Regularisierung

Die L2-Regularisierung ist eine Methode, mit der die Komplexität eines Modells reduziert werden kann, indem größeren Einzelgewichten eine Einschränkung zugewiesen wird. Durch das Setzen einer Strafe verringern wir die Abhängigkeit unseres Modells von den Trainingsdaten.

Aussteigen

Dropout ist auch eine häufige Option für die Regularisierung. Es wird für die verborgenen Einheiten höherer Ebenen verwendet, sodass wir für jede Epoche unterschiedliche Architekturen erhalten. Grundsätzlich wählt das System zufällig Neuronen aus, die während des Trainings entfernt werden sollen. Infolgedessen muss das Netzwerk durch die ständige Neuskalierung der Gewichte allgemeinere Muster aus den Daten lernen.

Fazit

Wie wir gesehen haben, gibt es verschiedene Methoden und Techniken, um die häufigsten Klassifizierungsprobleme bei der Bilderkennung zu lösen. Jede hat ihre Vor- und Nachteile. Es gibt Probleme wie unausgeglichene Daten, Überanpassung, und häufig sind nicht genügend Daten verfügbar. Wie wir bereits erläutert haben, kann deren Auswirkung jedoch durch Transferlernen, Stichprobenverfahren und Regularisierungstechniken gemindert werden.

Dies ist ein Bereich, den wir weiter erforschen, während wir unsere eigene Imaginize-Bilderkennungstechnologie entwickeln. Diese neue Produktfunktion soll unseren eCommerce-Kunden helfen, die Klassifizierung, Kennzeichnung und Auffindbarkeit ihrer Produkte zu verbessern, indem sie Farben und Kategorien automatisch identifizieren und erkennen können.