Diese Frage mag zu offen sein, um eine endgültige Antwort zu erhalten, aber hoffentlich nicht.
Algorithmen für maschinelles Lernen, wie SVM, GBM, Random Forest usw., haben im Allgemeinen einige freie Parameter, die über eine Faustregel hinaus auf jeden Datensatz abgestimmt werden müssen. Dies wird im Allgemeinen mit einer Art Neuabtastungstechnik (Bootstrap, CV usw.) durchgeführt, um die Parameter anzupassen, die den besten Verallgemeinerungsfehler ergeben.
Meine Frage ist, können Sie hier zu weit gehen? Die Leute reden davon, Gittersuchen durchzuführen, aber warum nicht einfach als Optimierungsproblem behandeln und den bestmöglichen Parametersatz ermitteln? Ich habe in dieser Frage nach einigen Mechanismen dieser Frage gefragt, aber sie hat nicht viel Beachtung gefunden. Vielleicht wurde die Frage schlecht gestellt, aber vielleicht stellt die Frage selbst einen schlechten Ansatz dar, den die Leute im Allgemeinen nicht tun?
Was mich stört, ist die fehlende Regularisierung. Ich könnte durch erneutes Abtasten feststellen, dass 647 Bäume in einem GBM für diesen Datensatz mit einer Interaktionstiefe von 4 am besten wachsen, aber wie sicher kann ich sein, dass dies für neue Daten gilt (unter der Annahme der neuen Population) ist identisch mit dem Trainingsset)? Da es keinen vernünftigen Wert gibt, auf einen Wert zu "schrumpfen" (oder, wenn Sie so wollen, keine informativen Vorinformationen), erscheint eine erneute Probenahme als das Beste, was wir tun können. Ich höre einfach nichts darüber, deshalb frage ich mich, ob ich etwas vermisse.
Offensichtlich ist es mit einem hohen Rechenaufwand verbunden, viele Iterationen durchzuführen, um das letzte bisschen Vorhersagekraft aus einem Modell herauszuholen. Dies ist also eindeutig etwas, was Sie tun würden, wenn Sie die Zeit / das Grunzen haben, die Optimierung und jedes bisschen zu tun der Leistungsverbesserung ist wertvoll.
Antworten:
Es gibt eine endgültige Antwort auf diese Frage: "Ja, es ist mit Sicherheit möglich, ein auf Kreuzvalidierung basierendes Modellauswahlkriterium zu übertreffen und ein Modell zu erhalten, das schlecht verallgemeinert! ". Meiner Ansicht nach scheint dies nicht allgemein anerkannt zu sein, stellt jedoch eine erhebliche Gefahr für die Anwendung von Methoden des maschinellen Lernens dar und ist das Hauptaugenmerk meiner aktuellen Forschung; Ich habe bisher zwei Artikel zu diesem Thema geschrieben
GC Cawley und NLC Talbot, Überanpassung bei der Modellauswahl und anschließende Auswahlverzerrung bei der Leistungsbewertung, Journal of Machine Learning Research, 2010. Research, vol. 11, S. 2079-2107, Juli 2010. ( www )
Dies zeigt, dass eine Überanpassung bei der Modellauswahl ein erhebliches Problem beim maschinellen Lernen darstellt (und Sie können stark verzerrte Leistungsschätzungen erhalten, wenn Sie bei der Modellauswahl während der Leistungsbewertung Abstriche machen)
GC Cawley und NLC Talbot, Verhinderung einer Überanpassung bei der Modellauswahl durch Bayes'sche Regularisierung der Hyperparameter, Journal of Machine Learning Research, Band 8, Seiten 841-861, April 2007. ( www )
Hierbei wird das auf der Kreuzvalidierung basierende Modellauswahlkriterium reguliert, um eine bessere Überanpassung bei der Modellauswahl zu versuchen (was ein Schlüsselproblem ist, wenn Sie einen Kernel mit vielen Hyperparametern verwenden).
Ich schreibe gerade eine Abhandlung über die rastersuchbasierte Modellauswahl, aus der hervorgeht, dass es durchaus möglich ist, ein zu feines Raster zu verwenden, bei dem Sie ein Modell erhalten, das einem von vielen ausgewählten Modell statistisch unterlegen ist gröberes Raster (es war eine Frage in StackExchange, die mich dazu inspirierte, mich mit der Rastersuche zu befassen).
Hoffe das hilft.
PS Eine vorurteilsfreie Leistungsbewertung und eine zuverlässige Modellauswahl können zwar rechenintensiv sein, aber meiner Erfahrung nach lohnt es sich. Eine geschachtelte Kreuzvalidierung, bei der die äußere Kreuzvalidierung für die Leistungsschätzung und die innere Kreuzvalidierung für die Modellauswahl verwendet wird, ist ein guter grundlegender Ansatz.
quelle
Kreuzvalidierung und Bootstrap haben gezeigt, dass sie Schätzungen der Fehlerrate liefern, die durch den Bootstrap über Kreuzvalidierung nahezu unbefangen und in einigen Fällen genauer sind. Das Problem bei anderen Methoden wie der Resubstitution besteht darin, dass Sie durch Schätzen des Fehlers in demselben Datensatz, in den Sie den Klassifikator einfügen, die Fehlerrate stark unterschätzen und möglicherweise zu Algorithmen führen, die zu viele Parameter enthalten und zukünftige Werte nicht so genau vorhersagen Ein Algorithmus, der auf eine kleine Anzahl von Parametern zugeschnitten ist. Der Schlüssel zur Verwendung statistischer Methoden besteht darin, dass die Daten, die Sie für den Klassifizierer verwenden, typisch für die Daten sind, die Sie in Zukunft sehen werden, wenn die Klassen fehlen und vom Klassifizierer vorhergesagt werden müssen. Wenn Sie denken, dass die zukünftigen Daten sehr unterschiedlich sein könnten, können statistische Methoden nicht helfen, und ich ziehe
quelle
Ich vermute, eine Antwort ist, dass Sie im Kontext der Optimierung versuchen, ein globales Minimum für eine
noisy
Kostenfunktion zu finden . Sie haben also alle Herausforderungen einer mehrdimensionalen globalen Optimierung sowie eine stochastische Komponente, die der Kostenfunktion hinzugefügt wird.Viele der Ansätze zur Bewältigung der Herausforderungen lokaler Minima und eines teuren Suchraums weisen Parameter auf, die möglicherweise angepasst werden müssen, z. B. simuliertes Tempern oder Monte-Carlo-Methoden.
Ich vermute, Sie könnten in einem idealen, rechnerisch unbegrenzten Universum versuchen, ein globales Minimum Ihres Parameterraums mit angemessen engen Grenzen für die Abweichung und Varianz Ihrer Schätzung der Fehlerfunktion zu finden. Ist dies ein Szenario, wäre die Regularisierung kein Problem, da Sie ad infinitum eine neue Stichprobe erstellen könnten.
Ich vermute, dass Sie sich in der realen Welt leicht in einem lokalen Minimum befinden.
Wie Sie bereits erwähnt haben, handelt es sich um ein separates Problem, das jedoch aufgrund von Stichprobenproblemen im Zusammenhang mit den Ihnen zur Verfügung stehenden Daten und der Beziehung zur tatsächlichen zugrunde liegenden Verteilung des Stichprobenraums zu Überanpassungen führt.
quelle
Es hängt stark vom Algorithmus ab, aber Sie können es sicherlich - obwohl es in den meisten Fällen nur eine harmlose Verschwendung von Aufwand ist.
Nun, (basierend auf einer Vorgehensweise in guten Fachzeitschriften) ist eine vollständige externe Validierung der Parameterauswahl nicht etwas, was Sie rigoros tun müssen (im Gegensatz zur Validierung der Featureauswahl), sondern nur dann, wenn die Optimierung kursorisch ist und der Klassifikator eher unempfindlich gegenüber Die Parameter.
quelle
Ja, die Parameter können während der Quervalidierung oder des Bootstrap-Vorgangs an das Trainings- und Test-Set angepasst werden. Es gibt jedoch einige Methoden, um dies zu verhindern. Die erste einfache Methode besteht darin, dass Sie Ihren Datensatz in drei Partitionen aufteilen, eine zum Testen (~ 20%), eine zum Testen optimierter Parameter (~ 20%) und eine zum Anpassen des Klassifikators mit festgelegten Parametern. Dies ist nur möglich, wenn Sie einen ziemlich großen Datensatz haben. In anderen Fällen wird eine doppelte Kreuzvalidierung empfohlen.
Romain François und Florent Langrognet, "Double Cross Validation for Model Based Classification", 2006
quelle