In diesem letzten Teil meiner Serie werde ich teilen, was ich bei der Auswahl eines Modells für die Auswahl eines Modells gelernt habe Bildklassifizierung und wie man dieses Modell fein einstellt. Ich werde auch zeigen, wie Sie das Modell nutzen können, um Ihren Etikettierungsprozess zu beschleunigen und schließlich Ihre Bemühungen zu rechtfertigen, indem Sie Nutzungs- und Leistungsstatistiken generieren.
In Teil 1Ich habe über den Prozess des Kennzeichnungsvorgangs Ihrer Bilddaten besprochen, die Sie in Ihrem Bildklassifizierungsprojekt verwenden. Ich habe gezeigt, wie „gute“ Bilder definieren und Unterklassen erstellen. In Teil 2Ich habe verschiedene Datensätze über die üblichen Zugvalidations-Check-Units mit Benchmark-Sätzen sowie zum Umgang mit synthetischen Daten und doppelten Bildern übergegangen. In Teil 3Ich habe erklärt, wie unterschiedliche Bewertungskriterien auf ein geschultes Modell im Vergleich zu einem bereitgestellten Modell angewendet werden und Benchmarks verwendet werden, um zu bestimmen, wann ein Modell bereitgestellt werden soll.
Modellauswahl
Bisher habe ich viel Zeit darauf konzentriert, die Bildermenge zu kennzeichnen und zu kuratieren und auch die Modellleistung zu bewerten, die wie das Einstellen des Wagens vor das Pferd stellt. Ich versuche nicht zu minimieren, was es braucht, um ein massives neuronales Netzwerk zu entwerfen – dies ist ein sehr wichtiger Teil der Anwendung, die Sie aufbauen. In meinem Fall habe ich ein paar Wochen damit verbracht, mit verschiedenen verfügbaren Modellen zu experimentieren, bevor ich mich für einen entschieden habe, der zur Rechnung passte.
Sobald Sie eine Modellstruktur auswählen, nehmen Sie normalerweise keine wesentlichen Änderungen daran vor. Für mich, sechs Jahre nach dem Einsatz, benutze ich immer noch denselben. Insbesondere habe ich Inception V4 ausgewählt, da es eine große Eingangsbildgröße und eine angemessene Anzahl von Ebenen enthält, um subtile Bildfunktionen aufzunehmen. Es führt auch in der CPU schnell genug inferenz durch, sodass ich keine teure {Hardware} ausführen muss, um das Modell zu bedienen.
Ihre Kilometerleistung kann variieren. Das Hauptauftrieb ist jedoch, dass die Fokussierung auf Ihre Daten Dividenden zahlt, um nach dem besten Modell zu suchen.
Feinabstimmung
Ich werde einen Prozess teilen, den ich sehr intestine funktioniert. Nachdem ich mich für das zu verwendende Modell entschieden hatte, initialisierte ich die Gewichte zufällig und ließ das Modell für etwa 120 Epochen vor dem Verbesserungsplateau mit einer ziemlich bescheidenen Genauigkeit wie 93percenteinbessert. Zu diesem Zeitpunkt habe ich die Bewertung des geschulten Modells durchgeführt (siehe Teil 3) Um den Datensatz zu reinigen. Ich habe auch neue Bilder als Teil der Datenpipeline aufgenommen (siehe Teil 1) und die Datensätze für den nächsten Trainingslauf vorbereitet.
Bevor ich mit dem nächsten Trainingslauf startete, nehme ich einfach das zuletzt trainierte Modell, polste die Ausgangsschicht und füge es mit zufälligen Gewichten wieder hinzu. Da die Anzahl der Ausgabeklassen in meinem Fall ständig zunimmt, muss ich diese Ebene trotzdem aufnehmen, um die neue Anzahl von Klassen zu berücksichtigen. Wichtig ist, dass ich den Relaxation der ausgebildeten Gewichte so lasse, wie sie waren, und erlaube ihnen, für die neuen Klassen weiter zu aktualisieren.
Dadurch kann das Modell viel schneller trainieren, bevor die Verbesserungen stehen. Nachdem das Coaching diesen Vorgang Dutzende Male wiederholt hat, erreicht das Coaching nach etwa 20 Epochen ein Plateau, und die Testgenauigkeit kann 99percenterreichen! Das Modell baut auf den auf niedrigen Merkmalen auf, die es aus den vorherigen Läufen festgelegt hat, während die Ausgangsgewichte erneut gelernt werden, um eine Überanpassung zu verhindern.
Ich habe eine Weile gebraucht, um diesem Prozess zu vertrauen, und für ein paar Jahre trainierte ich jedes Mal von Grund auf neu. Aber nachdem ich dies versucht hatte und die Trainingszeit (ganz zu schweigen von den Kosten der Cloud -GPU) gesehen habe, während die Genauigkeit weiter stieg, begann ich, den Prozess anzunehmen. Noch wichtiger ist, dass ich weiterhin die Evaluierungsmetriken der bereitgestellten Modell feststellen kann, die solide Leistungen zurückgeben.
Augmentation
Während des Trainings können Sie Transformationen auf Ihren Bildern (als „Augmentation“ bezeichnet) anwenden, um Ihnen mehr Vielfalt von Ihrem Datensatz zu verleihen. Bei unseren Zootieren ist es ziemlich sicher, links-rechts-Flop, leichte Rotationen im Uhrzeigersinn und gegen den Uhrzeigersinn und eine geringfügige Größenänderung, die ein- und auszoomt.
Stellen Sie unter Berücksichtigung dieser Transformationen sicher, dass Ihre Bilder immer noch als gute Trainingsbilder fungieren können. Mit anderen Worten, ein Bild, in dem das Motiv bereits klein ist, ist mit einem Zoom noch kleiner. Sie möchten additionally wahrscheinlich das Unique wegwerfen. Einige Ihrer Originalbilder müssen möglicherweise um 90 Grad neu ausgerichtet werden, um aufrecht zu sein, da eine weitere Rotation sie ungewöhnlich aussehen lässt.
Massenidentifikation
Wie ich in erwähnt habe Teil 1Sie können das geschulte Modell verwenden, um Sie bei der Kennzeichnung von Bildern einzeln zu unterstützen. Der Weg, dies noch weiter zu nehmen, besteht darin, Ihr neu geschultes Modell Hunderte gleichzeitig zu identifizieren, während Sie eine Liste der Ergebnisse erstellen, die Sie dann filtern können.
Normalerweise haben wir große Sammlungen von unbeschrieben Bilder, die entweder durch die regelmäßige Verwendung der Anwendung oder auf andere Mittel einhergehalten sind. Erinnern aus Teil 1 Beweisen Sie interessante Bilder, aber Sie haben keine Ahnung, was es ist. Durch die Verwendung der Bulk -Identifikationsmethode können wir die Sammlungen schnell durchsuchen, um die Kennzeichnung zu zielen, sobald wir wissen, was sie sind.
Durch die Kombination Ihrer aktuellen Bildzählungen mit den Bulk -Identifikationsergebnissen können Sie Klassen ansprechen, die eine erweiterte Abdeckung benötigen. Hier sind einige Möglichkeiten, wie Sie die Massenidentifikation nutzen können:
- Erhöhen Sie niedrige Bildzahlen – Einige Ihrer Klassen haben möglicherweise gerade den Grenzwert für die Aufnahme in das Trainingssatz gemacht, was bedeutet, dass Sie weitere Beispiele benötigen, um die Abdeckung zu verbessern. Filter für Bilder mit geringer Zählungen.
- Ersetzen Sie inszenierte oder synthetische Bilder -Einige Klassen können ausschließlich mit Bildern ohne Actual-Welt erstellt werden. Diese Bilder sind möglicherweise intestine genug, um mit dem Einstieg zu beginnen, aber möglicherweise zu Leistungsproblemen führen, da sie anders aussehen als normalerweise durch. Filter für Klassen, die von inszenierten Bildern abhängen.
- Finden Sie Look-Alike-Klassen – Eine Klasse in Ihrem Datensatz sieht möglicherweise wie eine andere aus. Nehmen wir beispielsweise an, Ihr Modell kann eine Antilope identifizieren und die wie eine Gazelle aussieht, die Ihr Modell noch nicht identifizieren kann. Das Festlegen eines Filters für Antilopen und eine niedrigere Konfidenz -Punktzahl kann Gazelle -Bilder aufzeigen, die Sie kennzeichnen können.
- Unbekannte Etiketten – Möglicherweise haben Sie nicht gewusst, wie Sie die Dutzenden niedlicher Wallaby -Bilder identifizieren können, additionally haben Sie sie unter „unbekannt“ gerettet, weil es ein gutes Bild struggle. Jetzt, da Sie wissen, was es ist, können Sie für den Look-Alike-Känguru filtern und schnell eine neue Klasse hinzufügen.
- Massenentfernung niedriger Punktzahlen – Um Ihre große Sammlung von unbeschriebenen Bildern zu reinigen, die nichts wert sind, das es wert ist, kennzeichnend zu werden, stellen Sie einen Filter für die niedrigsten Punktzahlen fest.
Wegwerftrainingslauf
Erinnern Sie sich an die Entscheidung, die ich getroffen habe, um Bildabschnitte zu haben Teil 2was es uns ermöglicht, eine angemessene Anzahl von Beispielbildern einer Klasse zu gewährleisten, bevor wir ein Modell für die Öffentlichkeit schulen und servieren. Das Downside ist, dass Sie möglicherweise eine Reihe von Klassen haben, die sind Nur Unter Ihrem Cutoff (in meinem Fall 40) und es nicht in das Modell schaffen.
Die Artwork und Weise, wie ich mich dem nähere, ist mit einem „Wegwerf“ -Auslauf, den ich nicht zur Produktion bewegen möchte. Ich werde den niedrigeren Grenzwert von 40 auf vielleicht 35 verringern, meine Zugvalidations-Check-Units bauen, dann trainieren und bewerten, wie ich es normalerweise tue. Der wichtigste Teil davon ist die Massenidentifikation am Ende!
Es besteht die Möglichkeit, dass ich irgendwo in der großen Sammlung unbeschriebener Bilder die wenigen finde, die ich brauche. Wenn Sie die Massenidentifikation mit diesem Wegwerfmodell durchführen, können Sie sie finden.
Leistungsberichterstattung
Ein sehr wichtiger Aspekt einer Anwendung für maschinelles Lernen ist, Nutzungs- und Leistungsberichte zu zeigen. Ihr Supervisor möchte wahrscheinlich sehen, wie oft die Anwendung verwendet wird, um die Kosten zu rechtfertigen, und Sie als ML -Ingenieur möchten sehen, wie das neueste Modell im Vergleich zum vorherigen funktioniert.
Sie sollten die Protokollierung in Ihr Modell aufbauen, das jede Transaktion durch das System aufzeichnet. Auch die manuellen Bewertungen von Teil 3 Sollten Sie aufgezeichnet werden, damit Sie über die Leistung für Dinge wie die Genauigkeit im Laufe der Zeit, nach Modellversion, durch Konfidenzbewertung, nach Klasse usw. berichten können. Sie können Traits erkennen und Anpassungen vornehmen, um die Gesamtlösung zu verbessern.
Es gibt viele Berichterstattungsinstrumente, daher werde ich den anderen nicht empfehlen. Stellen Sie einfach sicher, dass Sie so viele Informationen wie möglich sammeln, um diese Dashboards zu erstellen. Dies rechtfertigt die Zeit, den Aufwand und die Kosten, die mit der Aufrechterhaltung der Anwendung verbunden sind.
Abschluss
Wir haben in dieser vierteiligen Serie viel Boden zum Erstellen eines Picture-Klassifizierungsprojekts und in der realen Welt behandelt. Alles beginnt mit den Daten, und indem Sie die Zeit und den Aufwand in die Aufrechterhaltung der Bildbibliothek von höchster Qualität investieren, können Sie eine beeindruckende Modellleistung erreichen, die das Vertrauen und das Vertrauen Ihrer Geschäftspartner gewinnen.
Als a MaschinenlerningenieurSie sind in erster Linie für den Aufbau und die Bereitstellung Ihres Modells verantwortlich. Aber es hört hier nicht auf – tauche in die Daten ein. Je vertrauter Sie mit den Daten sind, desto besser werden Sie die Stärken und Schwächen Ihres Modells verstehen. Schauen Sie sich die Bewertungen genau an und nutzen Sie sie als Gelegenheit, den Datensatz anzupassen.
Ich hoffe, diese Artikel haben Ihnen geholfen, neue Möglichkeiten zu finden, um Ihr eigenes Projekt für maschinelles Lernen zu verbessern. Übrigens, lassen Sie die Maschine nicht das ganze Lernen erledigen – als Menschen ist es unsere Aufgabe, unser eigenes Lernen fortzusetzen, additionally hören Sie niemals auf!
Vielen Dank, dass Sie diesen tiefen Tauchgang mit mir in einen datengesteuerten Ansatz zur Modelloptimierung aufgenommen haben. Ich freue mich auf Ihr Suggestions und wie Sie dies auf Ihre eigene Anwendung anwenden können.