Wie schlecht ist Hyperparameter-Tuning außerhalb der Kreuzvalidierung?


20

Ich weiß, dass das Optimieren von Hyperparametern außerhalb der Kreuzvalidierung zu verzerrt hohen Schätzungen der externen Validität führen kann, da der Datensatz, mit dem Sie die Leistung messen, derselbe ist, den Sie zum Optimieren der Features verwendet haben.

Ich frage mich, wie schlimm dieses Problem ist . Ich kann verstehen, wie schlecht es für die Funktionsauswahl wäre, da Sie auf diese Weise eine Vielzahl von Parametern abstimmen können. Aber was ist, wenn Sie so etwas wie LASSO (das nur einen Parameter hat, die Regularisierungsstärke) oder eine zufällige Gesamtstruktur ohne Feature-Auswahl (die einige Parameter haben kann, aber nichts so Dramatisches wie das Hinzufügen / Löschen von Noise-Features) verwenden?

Wie optimistisch können Sie in diesen Szenarien mit einer Schätzung des Trainingsfehlers rechnen?

Ich würde mich über jede Information darüber freuen - Fallstudien, Artikel, Anekdaten usw. Danke!

EDIT: Zur Verdeutlichung spreche ich nicht über die Schätzung der Modellleistung auf Trainingsdaten (dh überhaupt keine Kreuzvalidierung verwenden). Mit "Hyperparameter-Optimierung außerhalb der Kreuzvalidierung" meine ich die Verwendung der Kreuzvalidierung nur zur Schätzung der Leistung jedes einzelnen Modells, jedoch ohne eine äußere, zweite Kreuzvalidierungsschleife zur Korrektur der Überanpassung innerhalb des Hyperparameter-Optimierungsverfahrens (im Unterschied zu Überanpassung während des Trainings). Siehe zB die Antwort hier .

Antworten:


17

Die Auswirkungen dieser Verzerrung können sehr groß sein. Ein gutes Beispiel dafür sind die offenen Wettbewerbe für maschinelles Lernen, die auf einigen Konferenzen zum maschinellen Lernen angeboten werden. Diese haben in der Regel ein Trainingsset, ein Validierungsset und ein Testset. Die Konkurrenten können die Etiketten weder für den Validierungssatz noch für den Testsatz (offensichtlich) sehen. Der Validierungssatz wird verwendet, um die Rangfolge der Teilnehmer auf einer Rangliste zu bestimmen, die jeder sehen kann, während der Wettbewerb läuft. Es ist weit verbreitet, dass diejenigen, die am Ende des Wettbewerbs an der Spitze der Rangliste stehen, aufgrund der Testdaten in der endgültigen Rangliste nur einen sehr geringen Rang haben. Dies liegt daran, dass sie die Hyperparameter für ihre Lernsysteme optimiert haben, um ihre Leistung auf der Bestenliste zu maximieren, und dabei die Validierungsdaten überpasst habenindem sie ihr Modell abstimmen. Erfahrene Benutzer schenken der Rangliste wenig oder gar keine Beachtung und nehmen strengere unvoreingenommene Leistungsschätzungen vor, um ihre Methodik zu leiten.

Das Beispiel in meinem Aufsatz (von Jacques erwähnt) zeigt, dass die Auswirkungen dieser Art von Verzerrung genauso groß sein können wie die Unterschiede zwischen Lernalgorithmen. Daher wird die kurze Antwort nicht verwendet, wenn Sie verzerrte Leistungsbewertungsprotokolle verwenden Ich bin wirklich daran interessiert herauszufinden, was funktioniert und was nicht. Die Grundregel lautet: "Behandeln Sie die Modellauswahl (z. B. die Optimierung von Hyperparametern) als integralen Bestandteil des Modellanpassungsverfahrens und schließen Sie diese in jede Falte der Kreuzvalidierung ein, die für die Leistungsbewertung verwendet wird."

Die Tatsache, dass Regularisierung weniger anfällig für Überanpassung als Merkmalsauswahl ist, ist genau der Grund, warum LASSO usw. gute Möglichkeiten zur Durchführung der Merkmalsauswahl sind. Die Größe des Bias hängt jedoch von der Anzahl der Features, der Größe des Datensatzes und der Art der Lernaufgabe ab (dh es gibt ein Element, das von einem bestimmten Datensatz abhängt und von Anwendung zu Anwendung unterschiedlich ist). Aufgrund der Datenabhängigkeit ist es besser, die Größe des Bias mithilfe eines unvoreingenommenen Protokolls zu schätzen und den Unterschied zu vergleichen (der Hinweis, dass die Methode in diesem speziellen Fall robust gegenüber einer Überanpassung bei der Modellauswahl ist, kann von Interesse sein an sich).

GC Cawley und NLC Talbot (2010), "Überanpassung bei der Modellauswahl und anschließende Auswahlverzerrung bei der Leistungsbewertung", Journal of Machine Learning Research, 11, S. 2079, Abschnitt 5.2.)


7
  • Die Tendenz, von der Sie sprechen, hängt immer noch hauptsächlich mit Überanpassung zusammen.
  • Sie können das Risiko gering halten, indem Sie nur sehr wenige Modelle zur Korrektur des Regularisierungs-Hyperparameters auswerten und eine geringe Komplexität innerhalb der plausiblen Auswahl wählen.

  • Wie @MarcClaesen hervorhebt, funktioniert die Lernkurve für Sie, wodurch die Tendenz etwas gemindert wird. Die Lernkurve ist jedoch in der Regel nur in sehr wenigen Fällen steil, und dann ist auch die Überanpassung ein viel größeres Problem.

Am Ende würde ich erwarten, dass die Voreingenommenheit stark davon abhängt

  • die Daten (es ist schwer, ein univariates Problem zu übertreffen ...) und
  • Ihre Erfahrung und Ihr Modellierungsverhalten: Ich halte es für möglich, dass Sie sich für eine annähernd angemessene Komplexität für Ihr Modell entscheiden, wenn Sie über ausreichende Erfahrung sowohl mit der Art des Modells als auch mit der Anwendung verfügen und sich äußerst gut verhalten und nicht nachgeben die Versuchung für komplexere Modelle. Aber natürlich kennen wir Sie nicht und können daher nicht beurteilen, wie konservativ Ihre Modellierung ist.
    Außerdem ist es normalerweise nicht das, was Sie wollen , zuzugeben, dass Ihr ausgefallenes statistisches Modell sehr subjektiv ist und Sie keine Fälle mehr haben, in denen Sie eine Validierung durchführen müssen. (Nicht einmal in Situationen, in denen ein besseres Gesamtergebnis erwartet wird.)

Ich verwende LASSO nicht (da die Auswahl von Variablen aus physikalischen Gründen für meine Daten nicht sinnvoll ist), aber PCA oder PLS funktionieren normalerweise gut. Ein Grat wäre eine Alternative, die LASSO nahe kommt und für die Art der Daten besser geeignet ist. Mit diesen Daten habe ich eine Größenordnung mehr Fehlklassifizierungen bei der "Shortcut-Validierung" im Vergleich zur richtigen unabhängigen (äußeren) Kreuzvalidierung gesehen. In diesen Extremsituationen hat die Shortcut-Validierung meiner Erfahrung nach verdächtig gut ausgesehen, z. B. 2% Fehlklassifizierungen => 20% bei ordnungsgemäßer Kreuzvalidierung.

Ich kann Ihnen jedoch keine reellen Zahlen geben, die direkt auf Ihre Frage zutreffen:

  • Bisher kümmerte ich mich mehr um andere Arten von "Verknüpfungen", die in meinem Bereich vorkommen und zu Datenlecks führen, z. B. Kreuzvalidierungsspektren anstelle von Patienten (große Verzerrung! Ich kann Ihnen 10% Fehlklassifizierung zeigen -> 70% = Vermutung unter 3 Klassen) oder ohne Berücksichtigung der PCA in der Kreuzvalidierung (2 - 5% -> 20 - 30%).
  • In Situationen, in denen ich mich entscheiden muss, ob die eine Kreuzvalidierung, die ich mir leisten kann, für die Modelloptimierung oder für die Validierung ausgegeben werden soll, entscheide ich mich immer für die Validierung und lege den Komplexitätsparameter aus Erfahrung fest. PCA und PLS eignen sich gut als Regularisierungstechniken, da der Komplexitätsparameter (# Komponenten) in direktem Zusammenhang mit den physikalisch / chemischen Eigenschaften des Problems steht (z. B. kann ich mir vorstellen, wie viele chemisch unterschiedliche Stoffgruppen von Bedeutung sind). Aus physikalisch-chemischen Gründen weiß ich, dass die Komponenten wie Spektren aussehen sollten, und wenn sie verrauscht sind, bin ich überpasst. Die Erfahrung kann jedoch auch darin bestehen, die Modellkomplexität an einem alten Datensatz aus einem früheren Experiment zu optimieren, der im Allgemeinen ähnlich genug ist, um die Übertragung von Hyperparametern und die anschließende Verwendung zu rechtfertigender Regularisierungsparameter für die neuen Daten.
    Auf diese Weise kann ich nicht behaupten, das optimale Modell zu haben, aber ich kann behaupten, eine vernünftige Schätzung der Leistung zu haben, die ich bekommen kann.
    Und mit der Patientennummer, die ich habe, ist es sowieso unmöglich, statistisch aussagekräftige Modellvergleiche durchzuführen (denken Sie daran, dass meine gesamte Patientennummer unter der empfohlenen Stichprobengröße für die Schätzung eines einzelnen Anteils liegt [nach der hier von @FrankHarrell angegebenen Faustregel]).

Warum führen Sie nicht einige Simulationen durch, die so nah wie möglich an Ihren Daten sind, und lassen Sie uns wissen, was passiert?


Zu meinen Daten: Ich arbeite mit spektroskopischen Daten. Die Datensätze sind in der Regel sehr breit: einige zehn unabhängige Fälle (Patienten; obwohl in der Regel viele Messungen pro Fall). Ca. aus meinen Spektren und spektrale Auflösung zu reduzieren.


5

Wenn Sie nur den Hyperparameter für das LASSO auswählen, ist kein verschachtelter Lebenslauf erforderlich. Die Auswahl der Hyperparameter erfolgt in einer einfachen CV-Interaktion.

λ

LiTiλTiLich

λ

(Dies ist nicht die einzige Methode zur Auswahl von Hyperparametern, aber die häufigste. Es gibt auch das von GC Cawley und NLC Talbot (2010) diskutierte und kritisierte "Median" -Verfahren in performance evaluation ", Journal of Machine Learning Research, 11 , S.2079 , Abschnitt 5.2.)

λλ

Ich kenne zwei experimentelle Ergebnisse bei der Messung des Bias dieser Schätzung (im Vergleich zu einem wahren Generalisierungsfehler für synthetische Datensätze).

beide offen zugänglich.

Sie benötigen einen verschachtelten Lebenslauf, wenn:

a) Sie möchten zwischen einem LASSO und einigen anderen Algorithmen wählen, insbesondere wenn diese auch Hyperparameter aufweisen

λ

λ

Schließlich ist verschachtelter Lebenslauf nicht die einzige Möglichkeit, eine vernünftige unvoreingenommene Schätzung des erwarteten Verallgemeinerungsfehlers zu berechnen. Es hat mindestens drei weitere Vorschläge gegeben


2
Können Sie erklären, was Sie unter "Es gibt keinen Lebenslauf für die Auswahl von Hyperparametern" verstehen? Nach dem, was Sie geschrieben haben, kann ich nicht verstehen, ob Sie das OP warnen möchten, dass es nicht geschachtelt hat, oder ob Sie behaupten, dass es so etwas überhaupt nicht gibt.
cbeleites unterstützt Monica

(+1) für eine kurze Erläuterung des Problems und gute Referenzen. Aber, wie @cbeleites betont, ist der erste Satz ziemlich verwirrend: Es scheint beabsichtigt zu sein, ein Missverständnis zu korrigieren, das das OP nicht hat.
Scortchi

@cbeleites (und Scortchi) - Ich beantworte das OP "EDIT:", in dem (meiner Meinung nach) behauptet wird, dass er CV zur Auswahl von Parametern verwendet ("Kreuzvalidierung nur zur Schätzung der Leistung jedes einzelnen Modells") und Er ist besorgt, dass er keinen verschachtelten Lebenslauf verwendet hat ("aber keine äußere, zweite Kreuzvalidierungsschleife, um eine Überanpassung innerhalb des Hyperparameter-Optimierungsverfahrens zu korrigieren"). Ich habe versucht, ihm zu sagen, dass es in der Parameterauswahl keinen äußeren Lebenslauf gibt.
Jacques Wainer

@JacquesWainer: Ich glaube, er möchte "eine Überanpassung innerhalb der Hyperparameter-Optimierungsprozedur korrigieren", wenn Sie die Out-of-Sample-Leistung der Prozedur abschätzen (Ihre Situation b ), anstatt den ausgewählten Wert des Hyperparameters mithilfe eines verschachtelten CV zu korrigieren. In jedem Fall macht Ihre Bearbeitung den Anfang Ihrer Antwort klarer.
Scortchi

Ja, ich wollte "die naive Leistungsschätzung für eine Überanpassung innerhalb des Hyperparameter-Abstimmungsverfahrens korrigieren", nicht "die abgestimmten Hyperparameter für eine Überanpassung korrigieren" oder ähnliches. Die Verwirrung tut mir leid; Ich hätte genauer sagen sollen, dass ich mir Sorgen um die Fehlerabschätzung und nicht um die Parameterauswahl mache.
Ben Kuhn

2

Jeder komplexe Lernalgorithmus, wie SVM, neuronale Netze, Zufallsforst, ... kann eine 100% ige Trainingsgenauigkeit erreichen, wenn Sie ihn zulassen (zum Beispiel durch schwache / keine Regularisierung), was eine absolut schreckliche Generalisierungsleistung zur Folge hat.

κ(xich,xj)=exp(-γxich-xj2)γ=100%

Kurz gesagt, Sie können leicht mit einem perfekten Klassifikator auf Ihrem Trainingsset enden, der auf einem unabhängigen Testset absolut nichts Nützliches gelernt hat. So schlimm ist es.


Ich spreche nicht davon, das Modell außerhalb der Kreuzvalidierung zu trainieren . Ich spreche über die Optimierung der Hyperparameter (und immer noch Kreuzvalidierung, um die Leistung jedes Satzes von Hyperparametern zu schätzen). Ich werde den Beitrag bearbeiten, um dies zu klären.
Ben Kuhn,

100%

Warum denke ich, dass ich erwäge, keine Kreuzvalidierung zu verwenden? Ich sagte speziell: "... und benutze immer noch Kreuzvalidierung, um die Leistung jedes Satzes von Hyperparametern zu schätzen."
Ben Kuhn

1
γ=γγ

2
Ich habe Ihre Frage völlig falsch verstanden. Vor der Bearbeitung war es sehr verwirrend. Die Tendenz, an der Sie interessiert zu sein scheinen, ist übrigens nicht unbedingt positiv. da viele Ansätze drastisch bessere Modelle liefern, wenn mehr Trainingsdaten angegeben werden, was insbesondere für kleine Trainingssätze + Kreuzvalidierung relevant ist.
Marc Claesen
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.