Überanpassung: Keine Wunderwaffe?


21

Mein Verständnis ist , dass , selbst wenn nach ordnungsgemäßem Kreuzvalidierung und Modellauswahlverfahren, Überanpassung wird , wenn man sucht nach einem Modell passiert schwer genug , wenn man nicht erlegt Beschränkungen Modellkomplexität, period. Darüber hinaus wird häufig versucht, aus den Daten Strafen für die Modellkomplexität zu lernen, die den Schutz untergraben, den sie bieten können.

Meine Frage ist: Wie viel Wahrheit steckt in der obigen Aussage?

Ich höre oft ML-Praktiker sagen: " In meinem Unternehmen / Labor versuchen wir immer jedes verfügbare Modell (z. B. aus Bibliotheken wie Caret oder Scikit-Learn ), um zu sehen, welches am besten funktioniert. " Ich behaupte oft, dass dieser Ansatz leicht zu Überanstrengungen führen kann, selbst wenn sie es ernst meinen mit der Kreuzvalidierung und der Beibehaltung von Hold-Out-Sets, wie sie wollen. Außerdem ist es umso wahrscheinlicher, dass sie sich überanpassen, je schwerer sie suchen. Mit anderen Worten, Überoptimierung ist ein echtes Problem, und es gibt keine Heuristiken, mit denen Sie systematisch dagegen vorgehen können. Bin ich falsch, so zu denken?


Fragen Sie nach ML-spezifischen oder multivariaten Modellen im Allgemeinen?
Rumtscho

@rumtscho alles in ML.
Amelio Vazquez-Reina

1
Danke @CagdasOzgenc: " Je größer der Suchraum (die betrachteten Modelle), desto schlechter das Ergebnis" . Nicht sicher, auf welche Abstraktionsebene "Suchraum" Sie sich hier beziehen, aber mit "stark genug" meine ich natürlich, immer mehr Modelle zu durchsuchen und damit die Komplexität / den Suchraum des "Metamodells" zu erhöhen. (wenn Sie möchten), dass wir versuchen, zu passen.
Amelio Vazquez-Reina

Antworten:


8

Keine vollständige Antwort, aber eine Sache, die in dieser Diskussion übersehen wird, ist, was Cross-Validation (zum Beispiel) bedeutet, warum Sie es verwenden und was es abdeckt.

Das Problem, das ich bei der Suche sehe, ist, dass der Lebenslauf, den die Leute machen, oft innerhalb eines einzelnen Modells ist. Einfach durch Einstellen von afolds= Arguments der Modellanpassungsprozedur. Wenn Sie jedoch mehrere Modelle und sogar mehrere Verfahren zum Erstellen mehrerer Modelle aufrufen, fügen Sie eine oder zwei weitere Ebenen hinzu, die Sie nicht in den Lebenslauf eingeschlossen haben.

Sie sollten also einen verschachtelten Lebenslauf verwenden. Außerdem sollten sie "Target Shuffling" (Neuabtastung / Permutationstest) verwenden, um zu sehen, wie gut ihre Prozedur funktioniert, wenn Sie die Beziehung zwischen abhängigen und unabhängigen Variablen aufheben - dh wie viel besser sind Sie als zufällig Betrachten Sie Ihren gesamten Prozess?


1
+1. Die Modellauswahl mit einzelnen (oder zu wenigen) CV-Ebenen, in denen eine Rastersuche (Modellauswahl) durchgeführt wird, kann definitiv zu einer Überanpassung führen (für alle Interessierten empfehle ich z. B. dies und die darin enthaltenen Quellen). Ich hatte über "Target Shuffling" gelesen (für andere Leser empfehle ich diese Darstellung ), habe sie aber nie selbst verwendet. Ich frage mich, ob es auch missbraucht werden kann (z. B. wenn mehrere Tests letztendlich zu Fehlalarmen führen und damit erneut "hart genug" suchen (?)).
Amelio Vazquez-Reina

7

In meinen rund 4 Jahren Erfahrung habe ich festgestellt, dass das Ausprobieren jedes in caret (oder scikit-learn) erhältlichen Modells nicht unbedingt zu einer Überanpassung führt. Ich habe festgestellt, dass bei einem ausreichend großen Datensatz (über 10.000 Zeilen) und einem mehr oder weniger ausgeglichenen Klassengleichgewicht (dh bei keinem Klassenungleichgewicht wie bei Kreditrisiken oder Marketingproblemen) die Überanpassung in der Regel minimal ist. Es ist erwähnenswert, dass meine Rastersuche nach Optimierungsparametern in der Regel nicht mehr als 30 Permutationen pro Modell umfasst. Wenn Sie am äußersten Ende 100 oder 1.000 Permutationen pro Modell verwenden, würden Sie wahrscheinlich überanpassen.

Die Art und Weise, wie Sie Ihre Frage formuliert haben, macht die Antwort ziemlich einfach: Im Extremfall ist eine Überanpassung wahrscheinlich, wenn nicht sogar sicher. Es gibt keine Silberkugel, und ich bezweifle, dass jemand etwas anderes vorschlagen würde. Es gibt jedoch immer noch ein einigermaßen breites Spektrum, in dem der Überpassungsgrad minimal genug ist, um akzeptabel zu sein. Es ist auf jeden Fall hilfreich, wenn sich in Ihrem Validierungs-Holdout-Set eine gesunde Menge an unsichtbaren Daten befindet. Noch besser ist es, mehrere unsichtbare Validierungs-Holdout-Sets zu haben. Ich habe das Glück, in einem Bereich zu arbeiten, in dem täglich große Mengen neuer Daten eingehen.

Wenn ich mit einem statischen Datensatz von weniger als 2.000 bis 3.000 Beobachtungen (z. B. schwer zu beschaffende medizinische Daten) nicht weiterkomme, verwende ich im Allgemeinen nur lineare Modelle, da ich häufig eine Überanpassung mit Gefälle festgestellt habe Boosten und Unterstützen von Vektormaschinen auf ausreichend kleinen Datensätzen. Andererseits habe ich mit einem Top-Kaggler (Top 5%) gesprochen, der sagte, er baue Zehntausende von Modellen für jeden Wettbewerb und setze sie dann zusammen, wobei er mehrere Tausend Modelle in seinem endgültigen Ensemble verwendete. Er sagte, dies sei der Hauptgrund für seinen Erfolg in den endgültigen Bestenlisten.


1
Ja. Ich habe mit Daten gearbeitet, die Beobachtungen in Millionenhöhe hatten. Egal welche Validierung ich ausprobiert habe (kfold, Bootstrapping und sogar einfaches Holdout), es gab kaum Unterschiede in den Modellen. Je größer Ihre Daten werden, desto weniger Sorgfalt müssen Sie auf Ihre Validierung verwenden.
Ricardo Cruz

Mit anderen Worten, kein Modell verfügt über genügend Freiheitsgrade, um sich Millionen von Beobachtungen zu merken.
Ricardo Cruz

5

Soviel hängt vom Maßstab ab. Ich wünschte, ich könnte damit rechnen, mehr als 2.000 bis 3.000 Fälle zu haben, wie dies bei @RyanZotti normalerweise der Fall ist. Ich habe selten 1/10 so viele. Das ist ein großer Unterschied in der Perspektive zwischen maschinellem Lernen mit "Big Data" und solchen, die in Bereichen wie der Biomedizin arbeiten.

Ich werde eine heuristische Erklärung meiner Sichtweise auf dieses Problem vorlegen. Das grundlegende Problem bei der Überanpassung ist, wie auf der Wikipedia-Seite beschrieben , die Beziehung zwischen der Anzahl der Fälle und der Anzahl der Parameter, die Sie auswerten. Beginnen Sie also mit der groben Vorstellung, dass Sie, wenn Sie M- Modelle haben, unter und p- Parametern pro Modell wählen, etwas in der Größenordnung von Mp- Parametern insgesamt auswerten .

Wenn die Gefahr einer Überanpassung besteht, gibt es zwei allgemeine Möglichkeiten, um zu einem verallgemeinerbaren Modell zurückzukehren: Reduzieren Sie die Anzahl der Parameter oder bestrafen Sie sie auf irgendeine Weise.

Bei ausreichend großen Datenmengen kann es vorkommen, dass Sie nie an eine Überanpassung kommen. Wenn Sie 20.000 Fälle und 20 verschiedene Modelle mit 100 Parametern pro Modell haben, sind Sie möglicherweise auch ohne Bestrafung nicht in Schwierigkeiten, da Sie immer noch 10 Fälle pro effektivem Parameter haben. Versuchen Sie diese Modellierungsstrategie nicht mit nur 200 Fällen.

Die Modellmittelung kann als eine Form der Bestrafung angesehen werden. In dem von @RyanZotti zitierten Beispiel des Kaggler ist die Anzahl der Fälle vermutlich enorm, und jedes der "mehreren tausend" Modelle im endgültigen Ensemble trägt einzeln nur einen kleinen Bruchteil des endgültigen Modells bei. Eine Überanpassung, die für ein bestimmtes Modell spezifisch ist, hat keinen großen Einfluss auf das Endergebnis, und die extrem große Anzahl von Fällen in einem Kaggler-Wettbewerb verringert die Gefahr einer Überanpassung weiter.

Wie bei so vielen Problemen hier lautet die einzig vernünftige Antwort: "Es kommt darauf an." In diesem Fall hängt es von der Beziehung zwischen der Anzahl der Fälle und der effektiven Anzahl der untersuchten Parameter sowie davon ab, wie viel Bestrafung angewendet wird.


2

Ich denke, das ist eine sehr gute Frage. Ich möchte bei Kreuzvalidierungsexperimenten mit realen Daten immer die "U" -Formkurve beobachten. Meine Erfahrung mit realen Daten (~ 5 Jahre bei Kreditkartentransaktionen und Bildungsdaten) sagt mir jedoch nicht , dass eine Überanpassung in riesigen Mengen (Milliarden Zeilen) realer Daten leicht vorkommen kann .

Ich beobachte oft, dass Sie versuchen können, das Trainingsset zu überanstrengen, aber Sie können nicht zu viel tun (z. B. den Verlust auf 0 reduzieren), weil das Trainingsset sehr groß ist und viele Informationen und Geräusche enthält.

Gleichzeitig können Sie das komplizierteste Modell (ohne Regularisierung) zum Testen von Daten ausprobieren, und es scheint in Ordnung und sogar besser zu sein als einige Modelle mit Regularisierung.

Schließlich denke ich, dass meine Aussagen nur dann zutreffen könnten, wenn Sie Milliarden von Datenpunkten im Training haben. Intuitiv sind die Daten viel komplexer als Sie modellieren, damit Sie nicht überanpassen. Selbst wenn Sie für Milliarden Datenzeilen ein Modell mit Tausenden von Parametern verwenden, ist dies in Ordnung. Gleichzeitig können Sie sich die Berechnung für die Erstellung eines Modells mit Millionen freier Parameter nicht leisten.

Meiner Meinung nach ist dies auch der Grund, warum neuronales Netzwerk und Deep Learning heutzutage populär wurden. Im Vergleich zu Milliarden von Bildern im Internet reicht jedes Modell, das Sie sich leisten können, nicht aus, um übermäßig fit zu werden.


1

Ich stimme @ ryan-zotti zu, dass eine harte Suche nicht unbedingt zu einer Überanpassung führt - oder zumindest nicht zu einem Betrag, den wir als Überanpassung bezeichnen würden. Lassen Sie mich versuchen, meinen Standpunkt dazu darzulegen:

Box hat einmal gesagt:

Denken Sie daran, dass alle Modelle falsch sind. Die praktische Frage ist, wie falsch sie sein müssen, um nicht nützlich zu sein.

(Perfekt zu sein würde alle Daten erfordern, was wiederum die Notwendigkeit eines Modells an erster Stelle eliminieren würde).

Modelle, die falsch sind, umfassen auch Über- und Unterausstattung1. Aber wir werden uns nicht unbedingt darum kümmern oder es überhaupt bemerken. Die Frage ist, wie viel von dem Modell, das von der Realität abweicht, a) überhaupt gemessen werden kann und b) akzeptabel ist, es nicht als über- oder unterpassend zu bezeichnen - da beide immer ein wenig auf jedes Modell zutreffen, das wir jemals bauen werden. Wenn unsere Modelle am Ende unsere Anforderungen erfüllen , sondern zB Über- / Unterbau nur minimal oder Über- / Unterbau auf Teile von (möglichen) Daten , die nicht in unserem Anwendungsfall betrachtet würden wir es akzeptieren - es ist nicht unbedingt zu verhindern , alle über - / underfitting.

Dies führt zu einer korrekten Konfiguration zum Messen / Erkennen von Modellfehlern, um zu entscheiden, ob dies das ist, was wir haben möchten. Was wir also tun können, ist, den Prozess so robust wie möglich zu gestalten, indem wir versuchen, Daten mit minimalem Rauschen und repräsentativen und ausreichenden Stichproben zu erhalten, so gut wie möglich zu modellieren, auszuwerten und auszuwählen und dies alles auf vernünftige Weise zu tun (z. B. wenige) Proben, viele Funktionenweniger komplexes Modell; Wählen Sie das am wenigsten komplexe Modell mit noch akzeptabler Leistung usw.).

Denn: Am Ende werden wir immer Modellfehler / Über- / Unteranpassung haben - es ist die Fähigkeit, diesen Fehler in unserem Fokus des Interesses zu erkennen / zu messen , um vernünftige Entscheidungen zu treffen, die wichtig sind.


1a) Jedes Modell hat gleichzeitig ein Verzerrungs- und Varianzproblem (wir versuchen normalerweise, den richtigen Kompromiss zu finden, um unsere Bedürfnisse zu befriedigen). Modelle, die unsere Anforderungen erfüllen, werden notwendigerweise immer noch Vorurteile und Abweichungen aufweisen. b) Betrachten Sie verrauschte Daten und nicht repräsentative Stichproben als Gründe für eine Überanpassung. Jedes Modell modelliert notwendigerweise Rauschen sowie eine Beziehung, für die Teile der Information fehlen, so dass notwendigerweise falsche Annahmen getroffen werden.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.