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

vorherige Kapitel


20 Offset und Streuung: Zwei Hauptfehlerquellen


Anmerkung des Übersetzers Vor der Änderung hieß dieses Kapitel „Systematisch und zufällig: Zwei Hauptfehlerquellen“ , dh ich habe die Begriffe „zufällige Fehler“ und „systematische Fehler“ verwendet, um Verzerrung und Varianz zu übersetzen. Das Forummitglied robot @ Phaker hat jedoch in einem Kommentar zu Recht festgestellt, dass im Bereich des maschinellen Lernens in der russischen Terminologie für diese Begriffe die Konzepte "Verschiebung" und "Streuung" festgelegt sind. Ich habe mir die Arbeit von K.V. Woronzow, der zu Recht eine der Autoritäten auf dem Gebiet des maschinellen Lernens in Russland und der Ressourcen der Fachwelt ist, stimmte der Bemerkung robot @ Phaker zu . Trotz der Tatsache, dass es aus meiner Sicht eine tiefe sinnvolle Analogie zwischen der „Verzerrung“ und der „Varianz“ beim Training von Algorithmen und dem „systematischen Fehler“ und dem „zufälligen Fehler“ eines physikalischen Experiments gibt, werden sie außerdem gleichermaßen mathematisch ausgedrückt Es ist jedoch richtig, die in diesem Bereich festgelegten Begriffe zu verwenden. Daher habe ich die Übersetzung dieses und der folgenden Kapitel überarbeitet und die "Systematischen und zufälligen Fehler" durch "Versatz und Streuung" ersetzt. Ich werde mich in Zukunft an diesen Ansatz halten.


Angenommen, Ihre Trainings-, Validierungs- und Testmuster haben dieselbe Verteilung. Dann müssen Sie mehr Daten für das Training nehmen, dies wird nur die Qualität des Algorithmus verbessern, stimmt das?


Obwohl das Abrufen von mehr Daten den Job nicht beeinträchtigen kann, helfen neue Daten leider nicht immer so viel, wie Sie vielleicht erwarten. In einigen Fällen kann die Arbeit, zusätzliche Daten zu erhalten, eine Verschwendung von Aufwand sein. Wie man eine Entscheidung trifft - in welchen Fällen Daten hinzugefügt werden sollen und wann man sich keine Sorgen machen muss.


Beim maschinellen Lernen gibt es zwei Hauptfehlerquellen: Verzerrung und Streuung (Varianz). Wenn Sie wissen, was sie sind, können Sie entscheiden, ob Sie weitere Daten hinzufügen möchten. Außerdem können Sie Taktiken auswählen, um die Qualität des Klassifikators zu verbessern.


Angenommen, Sie hoffen, eine Katzen-ID mit einem Fehler von 5% zu erstellen. Im Moment beträgt Ihr Klassifikatorfehler in der Trainingsstichprobe 15%, in der Validierungsstichprobe 16%. In diesem Fall ist es unwahrscheinlich, dass das Hinzufügen von Trainingsdaten die Qualität signifikant erhöht. Sie sollten sich auf andere Systemänderungen konzentrieren. Wenn Sie Ihrem Trainingssatz weitere Beispiele hinzufügen, wird es für Ihren Algorithmus nur schwieriger, ein gutes Ergebnis für diesen Satz zu erzielen (warum dies in den folgenden Kapiteln erläutert wird).


Wenn der Prozentsatz Ihrer Fehler in der Trainingsstichprobe 15% beträgt (was einer Genauigkeit von 85% entspricht), Ihr Ziel jedoch der Prozentsatz der Fehler in 5% (95% Genauigkeit) ist, müssen Sie zunächst die Qualität Ihres Algorithmus in der Trainingsstichprobe verbessern. Die Qualität des Algorithmus in den Validierungs- / Testmustern ist normalerweise schlechter als die Qualität seiner Arbeit in der Trainingsprobe (in der Trainingsprobe). Sie müssen verstehen, dass die Ansätze, die Sie in Beispielen, mit denen Ihr Algorithmus vertraut ist, zu einer Genauigkeit von nicht mehr als 85% geführt haben, es Ihnen nicht ermöglichen, in Beispielen, die dieser Algorithmus noch nicht einmal gesehen hat, eine Genauigkeit von 95% zu erzielen.


Angenommen, wie oben angegeben, beträgt die Fehlerrate Ihres Algorithmus in der Validierungsstichprobe 16% (Genauigkeit 84%). Wir müssen den 16% -Fehler in zwei Komponenten aufteilen:


  • Erstens der Anteil der Algorithmusfehler in der Trainingsstichprobe. In diesem Beispiel sind es 15%. Wir nennen es informell Voreingenommenheit .
  • Zweitens, wie viel schlechter der Algorithmus bei der Validierungs- (oder Test-) Probe funktioniert als bei der Trainingsprobe. In unserem Beispiel ist es bei der Validierungsstichprobe 1% schlechter als bei der Trainingsstichprobe. Wir werden es auch inoffiziell als Varianz des Algorithmus betrachten.

Anmerkung des Autors In der Statistik gibt es eine genauere Definition für Verzerrung und Streuung (systematische und zufällige Fehler), aber dies sollte uns nicht stören. Grob gesagt gehen wir davon aus, dass die Verzerrung ein Fehler in Ihrem Algorithmus in Ihrem Trainingssatz ist, wenn Sie einen sehr großen Trainingssatz haben. Streuung - so viel schlechter arbeitet der Algorithmus an der Testprobe im Vergleich zur Trainingsprobe mit denselben Parametereinstellungen. Wenn Sie den Standardfehler verwenden, können Sie die Formeln schreiben, die diese beiden Größen definieren, und beweisen, dass der Gesamtfehler gleich der Summe aus Bias und Scatter (der Summe aus zufälligen und systematischen Fehlern) ist. Für unsere Zwecke zur Verbesserung von Algorithmen bei Problemen des maschinellen Lernens reicht jedoch eine informelle Definition von Verzerrung und Streuung aus.


Einige Änderungen im Training des Algorithmus wirken sich auf die erste Komponente der Fehlerverzerrung aus und verbessern die Leistung des Algorithmus in der Trainingsprobe. Einige Änderungen wirken sich auf die zweite Komponente aus - die Varianz - und helfen, den Algorithmus besser auf Validierungs- und Testproben zu verallgemeinern. Um die effektivsten Änderungen auszuwählen, die am System vorgenommen werden müssen, ist es äußerst hilfreich zu verstehen, wie sich jede dieser beiden Fehlerkomponenten auf den Gesamtsystemfehler auswirkt.


Anmerkung des Autors: Es gibt auch einige Ansätze, die gleichzeitig Verschiebung und Streuung reduzieren und die Systemarchitektur erheblich ändern. In der Regel sind sie jedoch schwieriger zu finden und umzusetzen.


Um die effektivsten Änderungen auszuwählen, die am System vorgenommen werden müssen, ist es äußerst hilfreich zu verstehen, wie sich jede dieser beiden Fehlerkomponenten auf den Gesamtsystemfehler auswirkt.


Die Entwicklung der Intuition, um zu verstehen, wie Beitrag zum Fehler beiträgt und welche Streuung, hilft Ihnen dabei, effektiv Möglichkeiten zur Verbesserung Ihres Algorithmus auszuwählen.


21 Beispiele für die Fehlerklassifizierung


Betrachten Sie unser Katzenklassifizierungsproblem. Ein idealer Klassifikator (zum Beispiel eine Person) kann eine hervorragende Qualität dieser Aufgabe erreichen.


Angenommen, die Qualität unseres Algorithmus ist wie folgt:


  • Fehler in der Trainingsstichprobe = 1%
  • Fehler in der Validierungsstichprobe = 11%

Was ist das Problem mit diesem Klassifikator? Unter Anwendung der Definitionen aus dem vorherigen Kapitel schätzen wir den Bias auf 1% und den Spread auf 10% (= 11% - 1%). Somit hat unser Algorithmus eine große Verbreitung . Der Klassifikator weist einen sehr geringen Fehler in der Trainingsstichprobe auf, kann die Trainingsergebnisse jedoch nicht auf eine Validierungsstichprobe verallgemeinern. Mit anderen Worten, wir haben es mit Überanpassung zu tun.


Betrachten Sie nun diese Situation:


  • Fehler in der Trainingsstichprobe = 15%
  • Fehler in der Validierungsstichprobe = 16%

Dann schätzen wir den Bias auf 15% und den Spread auf 1%. Dieser Klassifikator war in der Trainingsprobe schlecht trainiert, während sein Fehler in der Validierungsprobe etwas größer ist als in der Trainingsprobe. Somit hat dieser Klassifikator eine große Vorspannung, aber eine kleine Streuung. Es kann gefolgert werden, dass dieser Algorithmus unteranpasst .


Wir berücksichtigen auch die folgende Fehlerverteilung:


  • Fehler in der Trainingsstichprobe = 15%
  • Fehler in der Validierungsstichprobe = 30%

In diesem Fall beträgt der Bias 15% und der Spread ebenfalls 15%. Dieser Klassifikator hat eine hohe Vorspannung und Streuung: Er funktioniert in der Trainingsprobe nicht gut, hat eine hohe Vorspannung und seine Qualität in der Validierungsprobe ist viel schlechter als in der Trainingsprobe, d. H. Die Streuung ist ebenfalls groß. Dieser Fall ist im Hinblick auf Umschulung / Untererziehung schwer zu beschreiben, da dieser Klassifikator sowohl umgeschult als auch untererzogen ist.


Betrachten Sie abschließend diese Situation:


  • Fehler in der Trainingsstichprobe = 0,5%
  • Fehler in der Validierungsstichprobe = 1%

Dies ist ein großartiger Klassifikator mit geringer Vorspannung und Streuung. Herzlichen Glückwunsch an die Ingenieure zu einem hervorragenden Ergebnis!


22 Vergleich mit optimaler Fehlerrate


In unserem Beispiel für die Erkennung von Katzen ist der ideale Fehleranteil das Niveau, das dem „optimalen“ Klassifikator zur Verfügung steht, und dieses Niveau liegt nahe bei 0%. Eine Person, die ein Bild betrachtet, kann fast immer erkennen, ob eine Katze auf dem Bild vorhanden ist oder nicht, und wir können hoffen, dass die Maschine dies früher oder später genauso gut tut.


Es gibt jedoch komplexere Aufgaben. Stellen Sie sich zum Beispiel vor, Sie entwickeln ein Spracherkennungssystem und stellen fest, dass 14% der Audioaufnahmen so viele Hintergrundgeräusche oder so unleserliche Sprache aufweisen, dass selbst eine Person nicht erkennen kann, was dort gesagt wurde. In diesem Fall kann sogar das "optimalste" Spracherkennungssystem einen Fehler im Bereich von 14% aufweisen.


Angenommen, unser Algorithmus hat in unserer Spracherkennungsaufgabe die folgenden Ergebnisse erzielt:


  • Fehler in der Trainingsstichprobe = 15%
  • Fehler in der Validierungsstichprobe = 30%

Die Qualität des Klassifikators in der Trainingsstichprobe ist mit einer Fehlerrate von 14% bereits nahezu optimal. In diesem Fall haben wir daher nicht viele Möglichkeiten, die Verzerrung zu verringern (den Algorithmus in der Trainingsstichprobe zu verbessern). Es ist jedoch nicht möglich, die Funktionsweise dieses Algorithmus auf eine Validierungsprobe zu verallgemeinern, daher gibt es ein großes Feld für Streuungsreduktionsaktivitäten .


Dieser Fall ähnelt dem dritten Beispiel aus dem vorherigen Kapitel, in dem der Fehler in der Trainingsstichprobe ebenfalls 15% und der Fehler in der Validierungsstichprobe 30% beträgt. Wenn die optimale Fehlerrate bei etwa 0% liegt, bietet der Fehler in der Trainingsstichprobe von 15% viel Raum für Arbeiten zur Verbesserung des Algorithmus. Mit dieser Annahme können Bemühungen zur Verringerung der Verzerrung im Algorithmus sehr fruchtbar sein. Wenn jedoch der optimale Anteil an Klassifizierungsfehlern nicht unter 14% liegen kann, deutet ein ähnlicher Anteil an Algorithmusfehlern in der Trainingsstichprobe (d. H. Im Bereich von 14 bis 15%) darauf hin, dass die Möglichkeiten zur Verringerung der Vorspannung nahezu ausgeschöpft sind.


Für Probleme, bei denen sich der optimale Anteil der Klassifizierungsfehler erheblich von Null unterscheidet, kann eine detailliertere Fehlerstrukturierung vorgeschlagen werden. Wir betrachten weiterhin das obige Beispiel mit Spracherkennung. Ein Gesamtfehler von 30% in der Validierungsprobe kann in die folgenden Komponenten zerlegt werden (die Fehler in der Testprobe können auf die gleiche Weise analysiert werden):


  • Optimale Verzerrung (unvermeidbare Verzerrung): 14%. Stellen Sie sich vor, wir haben beschlossen, dass selbst das bestmögliche Spracherkennungssystem der Welt eine Fehlerrate von 14% aufweist. Wir werden dies als den „unvermeidbaren“ Teil des Versatzes des Lernalgorithmus bezeichnen.
  • Vermeidbare Verzerrung : 1%. Dieser Wert wird als Differenz zwischen dem Fehleranteil in der Trainingsstichprobe und dem optimalen Fehleranteil berechnet.

Anmerkung des Autors: Wenn sich herausstellt, dass dieser Wert negativ ist, zeigt Ihr Algorithmus in der Trainingsprobe einen kleineren Fehler als den „optimalen“. Dies bedeutet, dass Sie den Trainingssatz umgeschult haben und Ihr Algorithmus sich an die Beispiele (und deren Klassen) des Trainingssatzes erinnert hat. In diesem Fall sollten Sie sich auf Methoden konzentrieren, um die Streuung zu verringern, anstatt die Verzerrung weiter zu verringern.


  • Varianz : 15%. Der Unterschied zwischen Fehlern in der Trainingsstichprobe und in der Validierungsstichprobe

In Bezug auf unsere vorherigen Definitionen hängen Verschiebung und Wegwerfverschiebung wie folgt zusammen:


Vorspannung (Vorspannung) = Optimale Vorspannung ( "unvermeidbare Vorspannung" ) + Einwegvorspannung ( "vermeidbare Vorspannung" )


Anmerkung des Autors : Diese Definitionen werden ausgewählt, um besser zu erklären, wie die Qualität des Lernalgorithmus verbessert werden kann. Diese Definitionen unterscheiden sich von den formalen Definitionen von Verzerrung und Streuung in der Statistik. Technisch gesehen sollte das, was ich als "Versatz" definiere, als "Fehler in der Datenstruktur (er kann nicht identifiziert und beseitigt werden)" und "Verzerrung beseitigen" als "Lernalgorithmus-Verzerrung, die die optimale Verzerrung überschreitet" definiert werden. .


Die vermeidbare Verzerrung zeigt, wie schlechter die Qualität Ihres Algorithmus in der Trainingsstichprobe ist als die Qualität des „optimalen Klassifikators“.


Die Grundidee der Varianz bleibt dieselbe. Theoretisch können wir die Streuung immer auf nahezu Null reduzieren, indem wir an einer ausreichend großen Trainingsstichprobe trainieren. Daher ist jede Streuung „vermeidbar“, wenn eine ausreichend große Stichprobe vorhanden ist, sodass es keine „unvermeidbare Ausbreitung“ (unvermeidbare Varianz) geben kann.


Stellen Sie sich ein anderes Beispiel vor, bei dem der optimale Fehler 14% beträgt und wir haben:


  • Fehler in der Trainingsstichprobe = 15%
  • Fehler in der Validierungsstichprobe = 16%

Im vorherigen Kapitel haben wir einen Klassifikator mit solchen Indikatoren als High-Bias-Klassifikator klassifiziert. Unter den gegenwärtigen Bedingungen sagen wir, dass der „vermeidbare Bias“ 1% und der Spread etwa 1% beträgt. Somit funktioniert der Algorithmus bereits recht gut und es gibt fast keine Reserven, um die Qualität seiner Arbeit zu verbessern. Die Qualität dieses Algorithmus liegt nur 2% unter dem Optimum.


Aus diesen Beispielen geht hervor, dass die Kenntnis des Ausmaßes des schwerwiegenden Fehlers hilfreich ist, um über weitere Maßnahmen zu entscheiden. In der Statistik wird die optimale Fehlerrate auch als Bayes-Fehlerrate bezeichnet .


Wie finde ich die Größe der optimalen Fehlerrate heraus? Bei Aufgaben, mit denen eine Person gut zurechtkommt, wie z. B. Bilderkennung oder Dekodierung von Audioclips, können Sie die Prüfer bitten, die Daten zu markieren und anschließend die Genauigkeit des menschlichen Markups im Trainingsmuster zu messen. Dies gibt eine Schätzung der optimalen Fehlerrate. Wenn Sie an einem Problem arbeiten, mit dem selbst eine Person nur schwer fertig werden kann (z. B. um vorherzusagen, welcher Film empfohlen oder welche Werbung dem Benutzer gezeigt werden soll), ist es in diesem Fall ziemlich schwierig, den optimalen Fehleranteil zu ermitteln.


Im Abschnitt Vergleich mit der Leistung auf menschlicher Ebene, Kapitel 33 bis 35, werde ich den Prozess des Vergleichs der Qualität eines Lernalgorithmus mit dem Qualitätsniveau, das eine Person erreichen kann, ausführlicher erörtern.


In den letzten Kapiteln haben Sie gelernt, wie Sie die entfernbare / nicht behebbare Verzerrung und Streuung bewerten, indem Sie den Anteil der Klassifizierungsfehler in den Trainings- und Validierungsbeispielen analysieren. Im nächsten Kapitel wird untersucht, wie Sie anhand der Schlussfolgerungen aus einer solchen Analyse entscheiden können, ob Sie sich auf Methoden konzentrieren möchten, die die Verzerrung verringern, oder auf Methoden, die die Ausbreitung verringern. Ansätze zur Bekämpfung von Verzerrungen unterscheiden sich stark von Ansätzen zur Verringerung der Streuung. Daher hängen die Techniken, die Sie in Ihrem Projekt anwenden müssen, um die Qualität zu verbessern, stark von dem ab, was derzeit das Problem ist - große Verzerrung oder große Streuung.


Lesen Sie weiter!


23 Offsets und Streuung beseitigen


Hier ist eine einfache Formel zur Beseitigung von Verzerrung und Streuung:


  • Wenn Sie eine große vermeidbare Verzerrung haben, erhöhen Sie die Komplexität Ihres Modells (z. B. erhöhen Sie Ihr neuronales Netzwerk durch Hinzufügen von Schichten oder (und) Neuronen).
  • Wenn Sie weit verbreitet sind, fügen Sie Ihrem Trainingssatz Beispiele hinzu.

Wenn Sie die Möglichkeit haben, das neuronale Netzwerk zu vergrößern und dem Trainingssatz unbegrenzt Daten hinzuzufügen, können Sie ein gutes Ergebnis für eine große Anzahl von maschinellen Lernaufgaben erzielen.


In der Praxis führt das Vergrößern des Modells letztendlich zu Rechenschwierigkeiten, da das Training sehr großer Modelle langsam ist. Sie können auch die für das Training verfügbaren Daten ausschöpfen. (Auch im Internet natürlich die Anzahl der Bilder mit Katzen!)


Unterschiedliche Architekturen von Algorithmusmodellen, z. B. unterschiedliche Architekturen neuronaler Netze, ergeben unterschiedliche Werte für Verzerrung und Streuung in Bezug auf Ihre Aufgabe. Ein Schacht der jüngsten Deep-Learning-Forschung hat eine große Anzahl innovativer Modellarchitekturen für neuronale Netze geschaffen. Wenn Sie also neuronale Netze verwenden, kann Sachbücher eine großartige Inspirationsquelle sein. Es gibt auch eine große Anzahl hervorragender Implementierungen von Algorithmen in Open Source, beispielsweise auf GitHub. Die Ergebnisse von Versuchen, neue Architekturen zu verwenden, sind jedoch wesentlich weniger vorhersehbar als die oben angegebene einfache Formel: Erhöhen Sie die Größe des Modells und fügen Sie Daten hinzu.


Eine Vergrößerung des Modells verringert normalerweise die Verzerrung, kann jedoch auch zu einer Erhöhung der Streuung führen, und das Risiko einer Umschulung steigt ebenfalls. Das Problem der Umschulung tritt jedoch nur auf, wenn Sie keine Regularisierung verwenden. Wenn Sie eine gut konzipierte Regularisierungsmethode in Ihr Modell aufnehmen, können Sie das Modell normalerweise sicher vergrößern, ohne eine Umschulung zuzulassen.


Angenommen, Sie wenden Deep Learning mithilfe der L2-Regularisierung oder des Dropout an ( Anmerkung des Übersetzers : Informationen zum Dropout finden Sie beispielsweise hier: https://habr.com/company/wunderfund/blog/330814/ ), wobei Sie Regularisierungsparameter verwenden, die einwandfrei funktionieren Validierungsprobe. Wenn Sie das Modell vergrößern, bleibt die Qualität Ihres Algorithmus normalerweise gleich oder wächst. ein deutlicher Rückgang ist unwahrscheinlich. Der einzige Grund, warum wir uns weigern müssen, das Modell zu vergrößern, ist der große Rechenaufwand.


24 Der Kompromiss zwischen Offset und Spread


Sie haben vielleicht von dem "Kompromiss zwischen Offset und Streuung" gehört. Unter den vielen Änderungen, die an Lernalgorithmen vorgenommen werden können, gibt es solche, die die Verzerrung verringern und die Streuung erhöhen oder umgekehrt. «» .


, — () , , . , , .


( ). , , , .


, , . , , , , .


, , . .


, , .


25


, :


  • (, ): , . , , , .
  • , , . , ( ). , . ; , , , , .
  • (L2 , L1 , Dropout): , , .
  • (, ) : ,

:


  • : , .

26


, / .


, , , , , . , , . . .


, - . , , 100 , , . , :


Kommentare
1X.
2X.X.
3X.X.
4X.
% -75%25%50%

, , . , .


, -, , . , - , , , - . , , .


27


, :


  • : , , .
  • (L1 , L2 , dropout): , .
  • (. . , ): , . , .
  • / : , . (, 1000 900) . ( 1000 100 10 ) , , . , , , , , , , . , , .
  • () ( / ). ! , , . , . . . , . , , .

Hier gebe ich zwei zusätzliche taktische Techniken an, die das wiederholen, was in den vorhergehenden Kapiteln in Bezug auf die Verringerung der Voreingenommenheit gesagt wurde:


  • Ändern Sie die eingehenden Zeichen basierend auf dem Verständnis der Fehleranalyse : Angenommen, Ihre Fehleranalyse hat zu der Idee geführt, dass Sie zusätzliche Symptome erstellen können, die dem Algorithmus helfen, einige Fehlerkategorien zu beseitigen. Diese neuen Funktionen reduzieren sowohl die Streuung als auch den Versatz. Theoretisch kann das Hinzufügen neuer Merkmale die Verbreitung erhöhen; In diesem Fall können Sie jedoch jederzeit die Regularisierung nutzen, die normalerweise die Zunahme der Streuung ausgleicht.
  • Ändern Sie die Modellarchitektur (z. B. die neuronale Netzwerkarchitektur), um sie für Ihre Aufgabe besser geeignet zu machen: Dieser Ansatz kann sowohl die Verzerrung als auch die Streuung verringern.

Fortsetzung

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


All Articles