Übersetzung von Andrew Un's Buch, Leidenschaft für maschinelles Lernen, Kapitel 15-19

vorherige Kapitel


15. Gleichzeitige Bewertung mehrerer Ideen während der Fehleranalyse


Ihr Team hat einige Ideen, wie Sie die Katzenidentifikation in Ihrer Anwendung verbessern können:


  • Lösen Sie das Problem, dass Ihr Algorithmus Katzen Katzen zuweist
  • Lösen Sie das Problem mit der Tatsache, dass Ihr Algorithmus große Wildkatzen (Löwen, Panther usw.) als Hauskatzen erkennt
  • Verbessern Sie die Systemleistung bei unscharfen Bildern
  • ...

Sie können all diese Ideen gleichzeitig schätzen. Normalerweise erstelle ich eine spezielle Tabelle und fülle sie für ungefähr 100 Fälle falscher Klassifizierung der Validierungsprobe (dev) aus. Ich mache auch kurze Kommentare, die mir helfen können, mich an bestimmte Beispiele in der Folgezeit zu erinnern. Schauen wir uns zur Veranschaulichung dieses Prozesses eine Pivot-Tabelle an, die Sie aus einer kleinen Reihe von Beispielen Ihres Validierungsbeispiels (dev) erstellen können


BildHundeGroßkatzenFuzzyKommentare
1xUngewöhnlicher Pitbull
2
3xxLeo Foto im Zoo an einem regnerischen Tag aufgenommen
4xPanther hinter einem Baum
Anteil (%)25%50%50%

Bild 3 in der Tabelle gilt für Großkatzen und Fuzzy-Katzen. Aufgrund der Tatsache, dass wir ein Bild mehreren Fehlerkategorien zuordnen können, sind die Gesamtprozentsätze in der unteren Zeile nicht auf 100% beschränkt.


Trotz der Tatsache, dass Sie zu Beginn der Arbeit eine bestimmte Reihe von Kategorien für Fehler (Hunde, Großkatzen, Fuzzy-Bilder) erstellen können, während Sie diesen Kategorien manuell Klassifizierungsfehler zuweisen, können Sie neue Fehlertypen hinzufügen. Angenommen, Sie haben sich ein Dutzend Bilder angesehen und festgestellt, dass der Klassifizierer bei farbcodierten Instagram-Bildern viele Fehler gemacht hat. Sie können die Tabelle wiederholen, die Spalte "Instagram" hinzufügen und Fehler basierend auf dieser Kategorie neu klassifizieren. Wenn Sie die Beispiele, bei denen der Algorithmus falsch ist, manuell untersuchen und sich fragen, wie Sie als Person das Bild korrekt markieren konnten, können Sie neue Fehlerkategorien erkennen und sich möglicherweise inspirieren lassen, neue Lösungen zu finden.


Die nützlichsten Fehlerkategorien sind diejenigen, für die Sie eine Idee zur Verbesserung des Systems haben. Das Hinzufügen der Kategorie "Instagram" ist beispielsweise am nützlichsten, wenn Sie eine Idee haben, wie Sie Filter entfernen und das Originalbild wiederherstellen können. Sie sollten sich jedoch nicht nur auf die Fehlerkategorien beschränken, für die Sie ein Rezept zur Beseitigung dieser Fehler haben. Ziel des Fehleranalyseprozesses ist es, Ihre Intuition bei der Auswahl der vielversprechendsten Schwerpunkte zu entwickeln.


Die Fehleranalyse ist ein iterativer Prozess. Machen Sie sich keine Sorgen, wenn Sie es starten, ohne eine einzige Kategorie erstellt zu haben. Nachdem Sie einige Bilder angezeigt haben, haben Sie verschiedene Ideen zur Kategorisierung von Fehlern. Nachdem Sie mehrere Bilder manuell kategorisiert haben, möchten Sie möglicherweise neue Kategorien hinzufügen und Klassifizierungsfehler im Lichte neu hinzugefügter Kategorien usw. überprüfen.


Angenommen, Sie haben eine Fehleranalyse von 100 falsch klassifizierten Validierungsbeispielen durchgeführt und Folgendes erhalten:


BildHundeGroßkatzenFuzzyKommentare
1X.Ungewöhnlicher Pitbull
2X.
3X.X.Leo Foto im Zoo an einem regnerischen Tag aufgenommen
4X.Panther hinter einem Baum
...............
Anteil (%)8%43%61%

Jetzt wissen Sie, dass die Arbeit an einem Projekt zur Beseitigung der fehlerhaften Einstufung von Hunden als Katzen bestenfalls 8% der Fehler beseitigt. Wenn Sie an Big Cats oder Fuzzy Images arbeiten, können Sie eine erheblich größere Anzahl von Fehlern beseitigen. Daher können Sie eine dieser beiden Kategorien auswählen und sich auf sie konzentrieren. Wenn Ihr Team über genügend Mitarbeiter verfügt, um gleichzeitig in mehreren Bereichen zu arbeiten, können Sie mehrere Ingenieure bitten, sich mit Großkatzen zu befassen, und den Rest der Bemühungen auf unscharfe Bilder konzentrieren.


Die Fehleranalyse bietet keine strenge mathematische Formel, die Ihnen sagt, welcher Aufgabe Sie die höchste Priorität zuweisen müssen. Sie müssen auch den Fortschritt korrelieren, der bei der Arbeit an den verschiedenen Fehlerkategorien erzielt wurde, und den Aufwand, der für diese Arbeit aufgewendet werden muss.


16. Löschen von Validierungs- und Testproben aus falsch gekennzeichneten Beispielen


Bei der Analyse von Fehlern stellen Sie möglicherweise fest, dass einige Beispiele in Ihrem Validierungsbeispiel falsch gekennzeichnet sind (der falschen Klasse zugeordnet). Wenn ich "falsch beschriftet" sage, meine ich, dass die Bilder bereits falsch klassifiziert wurden, als sie von einer Person markiert wurden, bevor der Algorithmus dies erkannte. Das heißt, beim Markieren des Beispiels (x, y) für y wurde der falsche Wert angegeben. Angenommen, einige Bilder, in denen keine Katzen vorhanden sind, werden fälschlicherweise als Katzen enthaltend gekennzeichnet und umgekehrt. Wenn Sie den Verdacht haben, dass der Prozentsatz der falsch gekennzeichneten Beispiele signifikant ist, fügen Sie die entsprechende Kategorie hinzu, um die falsch gekennzeichneten Beispiele zu verfolgen:


BildHundeGroßkatzenFuzzyMarkup-FehlerKommentare
..................
98X.Irrtümlicherweise als Katze im Hintergrund bezeichnet
99X.
100X.Gemalte Katze (nicht echt)
Anteil (%)8%43%61%6%

Müssen Sie falsch markierte Daten in Ihrem Validierungsmuster korrigieren? Ich möchte Sie daran erinnern, dass die Aufgabe der Verwendung eines Validierungsmusters darin besteht, Ihnen bei der schnellen Bewertung von Algorithmen zu helfen, damit Sie entscheiden können, ob Algorithmus A besser als B ist. Wenn der Anteil eines falsch gekennzeichneten Validierungsmusters Sie daran hindert, ein solches Urteil zu fällen, ist es sinnvoll, Zeit zu verbringen Korrektur von Fehlern bei der Kennzeichnung der Validierungsprobe.


Stellen Sie sich zum Beispiel vor, dass die Genauigkeit Ihres Klassifikators wie folgt ist:


  • Die Gesamtgenauigkeit der Validierungsprobe ............. ..90% (10% Gesamtfehler)
  • Fehler im Zusammenhang mit Markup-Fehlern …………… ..0.6% (6% des Gesamtfehlers in der Validierungsstichprobe)
  • Fehler aus anderen Gründen .............. 9,4% (94% des Gesamtfehlers in der Validierungsstichprobe)

Hier ist ein Fehler von 0,6% aufgrund einer falschen Kennzeichnung möglicherweise nicht signifikant genug in Bezug auf einen Fehler von 9,4%, den Sie verbessern könnten. Die manuelle Korrektur der Markup-Fehler des Validierungsmusters ist nicht überflüssig, ihre Korrektur ist jedoch nicht kritisch, da es keine Rolle spielt, ob der tatsächliche Gesamtfehler Ihres Systems 9,4% oder 10% beträgt


Angenommen, Sie verbessern Ihren Katzenklassifikator und haben die folgenden Genauigkeitsmetriken erreicht:


  • Die Gesamtgenauigkeit der Validierungsprobe ............. ..98% (2% Gesamtfehler)
  • Fehler im Zusammenhang mit Markup-Fehlern …………… ..0.6% (30% des Gesamtfehlers in der Validierungsstichprobe)
  • Fehler aus anderen Gründen .............. 1,4% (70% des Gesamtfehlers in der Validierungsstichprobe)

30% Ihres Fehlers sind auf eine falsche Kennzeichnung der Bilder des Validierungsmusters zurückzuführen. Dieser Anteil trägt wesentlich zum Gesamtfehler bei der Beurteilung der Genauigkeit Ihres Systems bei. In diesem Fall lohnt es sich, die Kennzeichnung der Validierungsprobe zu verbessern. Wenn Sie falsch beschriftete Beispiele entfernen, können Sie herausfinden, wo Ihre Klassifizierungsfehler näher bei 1,4% oder 2% liegen. Es gibt einen signifikanten relativen Unterschied zwischen 1,4 und 2.


Es ist nicht ungewöhnlich, dass falsch beschriftete Bilder eines Validierungs- oder Testmusters Ihre Aufmerksamkeit erst dann auf sich ziehen, wenn sich Ihr System so stark verbessert hat, dass die mit falschen Beispielen verbundene Fehlerrate im Verhältnis zum Gesamtfehler in diesen Beispielen zunimmt.


Im nächsten Kapitel wird erläutert, wie Sie Fehlerkategorien wie Hunde, Großkatzen und Fuzzy verbessern können, während Sie an der Verbesserung von Algorithmen arbeiten. In diesem Kapitel haben Sie gelernt, dass Sie den mit der Kategorie „Layoutfehler“ verbundenen Fehler reduzieren und die Qualität verbessern können, indem Sie das Datenmarkup verbessern.


Unabhängig davon, welchen Ansatz Sie zum Markieren des Validierungsmusters verwenden, vergessen Sie nicht, ihn auf das Layout des Testmusters anzuwenden, damit Ihre Validierungs- und Testmuster dieselbe Verteilung aufweisen. Wenn Sie denselben Ansatz für Validierungs- und Testmuster anwenden, vermeiden Sie das in Kapitel 6 beschriebene Problem, wenn Ihr Team die Qualität des Algorithmus in der Validierungsprobe optimiert und später feststellt, dass diese Qualität auf der Grundlage einer anderen als der Validierungstestprobe bewertet wurde.


Wenn Sie Ihr Markup verbessern möchten, sollten Sie dies überprüfen. Überprüfen Sie sowohl das Markup von Beispielen, die Ihr System falsch klassifiziert hat, als auch das Markup von Beispielen, die korrekt klassifiziert wurden. Es ist möglich, dass sowohl das anfängliche Markup als auch Ihr Lernalgorithmus im selben Beispiel falsch waren. Wenn Sie nur das Markup der Beispiele korrigieren, bei denen Ihr System einen Fehler in der Klassifizierung gemacht hat, können Sie einen systematischen Fehler in Ihre Bewertung einbringen. Wenn Sie 1000 Beispiele für Validierungsmuster nehmen und Ihr Klassifikator eine Genauigkeit von 98,0% aufweist, ist es einfacher, 20 falsch klassifizierte Beispiele als 980 korrekt klassifizierte Beispiele zu überprüfen. Aufgrund der Tatsache, dass es in der Praxis einfacher ist, nur falsch klassifizierte Beispiele zu überprüfen, kann sich in einigen Fällen ein systematischer Fehler in die Validierungsmuster einschleichen. Ein solcher Fehler ist zulässig, wenn Sie nur an der Entwicklung von Anwendungen interessiert sind. Es ist jedoch ein Problem, wenn Sie Ihr Ergebnis in einem wissenschaftlichen Forschungsartikel verwenden möchten oder Messungen der Genauigkeit des Algorithmus an einer Testprobe benötigen, die völlig frei von systematischen Fehlern ist.


17. Wenn Sie eine große Validierungsstichprobe haben, teilen Sie diese in zwei Teilstichproben auf und betrachten Sie nur eine davon.


Angenommen, Sie haben eine große Validierungsstichprobe, die aus 5000 Beispielen besteht, bei denen die Fehlerrate 20% beträgt. Daher klassifiziert Ihr Algorithmus etwa 1000 Validierungsbilder nicht korrekt. Die manuelle Bewertung von 1000 Bildern wird lange dauern, daher entscheiden wir uns möglicherweise, nicht alle für Fehleranalysezwecke zu verwenden.


In diesem Fall würde ich die Validierungsstichprobe definitiv in zwei Teilstichproben aufteilen, von denen Sie eine beobachten werden und die andere nicht. Es ist wahrscheinlich, dass Sie den Teil, den Sie manuell analysieren, neu trainieren. Sie können den Teil, den Sie nicht für die manuelle Analyse verwenden, zum Konfigurieren von Modellparametern verwenden.


Auge


Lassen Sie uns unser oben beschriebenes Beispiel fortsetzen, in dem der Algorithmus 1000 Beispiele von 5000, die die Validierungsstichprobe bilden, falsch klassifiziert hat. Stellen Sie sich vor, Sie möchten 100 Fehler für die Analyse verwenden (10% aller Fehler in der Validierungsstichprobe). Wir müssen zufällig 10% der Beispiele aus der Validierungsstichprobe auswählen und daraus das „ Eyeball Dev Set “ ( Eyeball Dev Set ) zusammenstellen. Wir haben sie benannt, damit wir uns immer daran erinnern, dass wir diese Beispiele mit unseren eigenen Augen studieren.


Anmerkung des Übersetzers: Aus meiner Sicht klingt die Definition der „Augapfelauswahl“ überhaupt nicht harmonisch (insbesondere aus Sicht der russischen Sprache). Aber bei allem Respekt vor Andrew (und unter Berücksichtigung, dass ich mir nichts Besseres ausgedacht habe) werde ich diese Definition verlassen


(Für ein Spracherkennungsprojekt, in dem Sie Audioclips anhören, verwenden Sie möglicherweise stattdessen etwas wie „Validierungsbeispiel für Ohren“.) Somit besteht die Validierungsprobe des Augapfels aus 500 Beispielen, in denen ungefähr 100 falsch klassifiziert sein sollten. Das zweite Teilbeispiel des Validierungsbeispiels, das wir als Blackbox-Entwickler-Set bezeichnen , besteht aus 4.500 Beispielen. Mit der „Black Box-Unterabtastung“ können Sie die Qualität der Klassifizierer automatisch bewerten und ihren Fehleranteil messen. Sie können dieses Teilbeispiel auch verwenden, um zwischen Algorithmen zu wählen oder Hyperparameter zu konfigurieren. Sie sollten jedoch vermeiden, Beispiele für dieses Teilbeispiel mit eigenen Augen zu betrachten. Wir verwenden den Begriff „Black Box“, weil wir eine Teilstichprobe ihrer Komponente als „Black Box“ verwenden.
ca. Übersetzer : d. h. das Objekt, dessen Struktur wir nicht kennen
die Qualität der Klassifikatoren zu bewerten.


Bild


Warum trennen wir die Validierungsstichprobe explizit in die Unterprobe „Augapfel“ und die Teilstichprobe „Black Box“?
Da Sie irgendwann die Beispiele in der „Augapfel-Unterabtastung“ zunehmend spüren (verstehen), steigt die Wahrscheinlichkeit, dass Sie diese Unterabtastung erneut trainieren. Um die Umschulung zu steuern, verwenden wir das „Black Box Subsampling“. Wenn Sie feststellen, dass die Qualität der Algorithmen im Eyeball-Sample erheblich schneller wächst als die Qualität im Black-Box-Sample, haben Sie anscheinend den Eyeball umgeschult. In diesem Fall müssen Sie möglicherweise die vorhandene Teilmenge des Augapfels verwerfen und eine neue erstellen, indem Sie weitere Beispiele aus der Black Box in den Augapfel verschieben oder einen neuen Teil der markierten Daten übernehmen.


Wenn Sie also die Validierungsstichprobe in „Augapfel-Teilstichprobe“ und „Black-Box-Teilstichprobe“ unterteilen, können Sie den Moment sehen, in dem Sie durch die manuelle Fehleranalyse die Augapfel-Teilstichprobe erneut trainieren.


18 Wie groß sollten die Augapfelprobe und die Black-Box-Probe sein?


Ihre Augapfelprobe sollte groß genug sein, damit Sie die Hauptkategorien von Klassifizierungsfehlern für Ihren Algorithmus finden können. Wenn Sie an einer Aufgabe arbeiten, die eine Person erledigen kann (z. B. das Erkennen von Katzen in Bildern), können Sie die folgenden ziemlich groben Empfehlungen geben:


  • Ein Validierungsmuster des Augapfels, das 10 Fehler Ihres Klassifikators enthält, wird als sehr klein angesehen. Mit nur 10 Fehlern ist es sehr schwierig, die Auswirkungen verschiedener Fehlerkategorien auf die Qualität des Klassifikators genau zu bewerten. Wenn Sie jedoch nur sehr wenige Daten haben und es keine Möglichkeit gibt, der Augapfelprobe weitere Beispiele hinzuzufügen, ist dies immer noch besser als nichts und hilft auf jeden Fall bei der Priorisierung der Arbeit am Projekt.
  • Wenn Ihr Klassifikator bei einer Probe des Augapfels etwa 20 Mal falsch ist, können Sie die Hauptfehlerquellen grob abschätzen.
  • Mit ungefähr 50 Fehlern erhalten Sie eine gute Vorstellung von den Hauptfehlerquellen Ihres Klassifikators.
  • Wenn Sie ungefähr 100 Fehler haben, erhalten Sie ein sehr gutes Verständnis dafür, woher die Hauptfehler stammen. Ich habe Leute getroffen, die manuell noch mehr Fehler analysiert haben, manchmal bis zu 500. Warum nicht, wenn Sie genug Daten haben.

Angenommen, die Fehlerrate Ihres Klassifikators beträgt 5%. Um mit Sicherheit ungefähr 100 falsch gekennzeichnete Beispiele in der Augapfelprobe zu erhalten, sollte diese Probe ungefähr 2000 Beispiele enthalten (da 0,05 * 2000 = 100). Je kleiner die Fehlerrate Ihres Klassifikators ist, desto größer ist die Stichprobe des Augapfels, um eine ausreichend große Stichprobe von Fehlern für die Analyse zu erhalten.


Wenn Sie an einer Aufgabe arbeiten, bei der es selbst für Menschen schwierig ist, Beispiele korrekt zu klassifizieren, sind Übungen zur Überprüfung der Validierungsprobe des Augapfels nicht besonders nützlich, da schwer zu verstehen ist, warum der Algorithmus das Beispiel nicht korrekt klassifizieren konnte. In diesem Fall können Sie die Einstellung für die Augapfelabtastung überspringen. Wir werden Empfehlungen für solche Projekte in den folgenden Kapiteln diskutieren.


Und was ist mit dem „Black Box Sampling“? Wir haben bereits erwähnt, dass das Validierungsmuster im allgemeinen Fall 1000 - 10000 Beispiele enthält. Um diese Aussage zu ergänzen, liefert eine Black-Box-Validierungsstichprobe von 1.000 bis 10.000 Beispielen normalerweise (häufig) genügend Daten, um Hyperparameter zu konfigurieren und zwischen Modellen zu wählen. Wenn Sie jedoch mehr Daten zur Auswahl einer Black-Box verwenden, wird dies nicht schlechter. Eine Black-Box-Auswahl von 100 Beispielen reicht sicherlich nicht aus, ist aber dennoch nützlich (besser als nichts).


Wenn Sie eine kleine Validierungsprobe haben, sind möglicherweise nicht genügend Daten vorhanden, um sie in Augapfel- und Black-Box-Proben zu unterteilen, sodass beide groß genug sind und den oben beschriebenen Zwecken dienen können. In diesem Fall müssen Sie möglicherweise Ihre gesamte Validierungsprobe als Augapfelprobe verwenden.
Das heißt, Sie werden alle Daten aus dem Validierungsmuster manuell untersuchen.


Ich glaube, dass die Auswahl des Augapfels wichtiger ist als die Auswahl der Black Box (vorausgesetzt, Sie arbeiten an einem Problem, bei dem die Leute gut darin sind, Klassen zu definieren und Beispiele manuell zu überprüfen, können Sie sich ein Bild von Ihren Daten machen). Wenn Sie nur eine Auswahl des Augapfels zur Verfügung haben, können Sie an der Analyse von Fehlern, der Auswahl von Modellen und der Einstellung von Hyperparametern arbeiten, indem Sie nur diesen verwenden. Der Nachteil, nur mit der Auswahl des Augapfels zu arbeiten, besteht darin, dass in diesem Fall das Risiko einer Umschulung des Modells in der Validierungsstichprobe zunimmt.


Wenn Sie über genügend Daten verfügen, hängt die Stichprobengröße des Augapfels hauptsächlich davon ab, wie viel Zeit Sie für die manuelle Datenanalyse verwenden können. Zum Beispiel habe ich selten jemanden getroffen, der mehr als 1000 Fehler manuell analysiert hat.


19 Schlussfolgerungen: Grundlegende Fehleranalyse


  • , , ,
  • . , — . , .
  • , 100 , , . , .
  • , , . , , .
  • , . , 1000-10000 .
  • Wenn Ihre Validierungsprobe nicht groß genug ist, um sie in eine Augapfelprobe und eine Black-Box-Probe aufzuteilen, verwenden Sie einfach die Augapfelvalidierungsprobe, um Fehler manuell zu analysieren, Modelle auszuwählen und Hyperparameter zu konfigurieren.

Fortsetzung

Source: https://habr.com/ru/post/de419885/


All Articles