Video: Optimierung der Wärmeverteilung 2024
Die Möglichkeit, eine maschinelle Lernhypothese effektiv zu validieren, ermöglicht eine weitere Optimierung des gewählten Algorithmus. Der Algorithmus liefert den größten Teil der Vorhersageleistung für Ihre Daten, da er Signale aus Daten erkennen und die wahre funktionale Form der Vorhersagefunktion ohne Überanpassung und große Varianz der Schätzungen erfüllen kann. Nicht jeder maschinelle Lernalgorithmus passt am besten zu Ihren Daten, und kein einziger Algorithmus kann jedem Problem gerecht werden. Es liegt an Ihnen, das Richtige für ein bestimmtes Problem zu finden.
Eine zweite Quelle der Vorhersageleistung sind die Daten selbst, wenn sie entsprechend transformiert und ausgewählt werden, um die Lernfähigkeiten des gewählten Algorithmus zu verbessern.
Die endgültige Leistungsquelle ergibt sich aus der Feineinstellung der Hyperparameter des Algorithmus, dh der Parameter, die Sie vor dem Lernen festlegen und die nicht aus den Daten gelernt werden. Ihre Rolle besteht darin, a priori eine Hypothese zu definieren, während andere Parameter es a posteriori, spezifizieren, nachdem der Algorithmus mit den Daten interagiert und durch Verwendung eines Optimierungsprozesses bestimmte Parameterwerte findet. besser arbeiten, um gute Vorhersagen zu erhalten.
Nicht alle maschinellen Lernalgorithmen erfordern viel Überparametertuning, aber einige der komplexesten Algorithmen tun das, und obwohl solche Algorithmen immer noch out of the box funktionieren, kann das Ziehen der rechten Hebel einen großen Unterschied machen. in der Richtigkeit der Vorhersagen. Selbst wenn die Hyperparameter nicht aus Daten gelernt werden, sollten Sie die Daten berücksichtigen, an denen Sie arbeiten, wenn Sie Hyperparameter festlegen, und Sie sollten die Wahl auf der Grundlage der Kreuzvalidierung und der sorgfältigen Bewertung der Möglichkeiten treffen.
Komplexe maschinelle Lernalgorithmen, die am meisten der Varianz von Schätzungen ausgesetzt sind, bieten viele Möglichkeiten, die sich in einer großen Anzahl von Parametern ausdrücken. Mit ihnen umzugehen lässt sie sich mehr oder weniger an die Daten anpassen, von denen sie lernen. Manchmal kann zu viel Hyper-Parameter-Twiddling dazu führen, dass der Algorithmus falsche Signale aus den Daten erkennt. Das macht Hyper-Parameter selbst zu einer unentdeckten Varianzquelle, wenn Sie anfangen, sie zu sehr zu manipulieren, basierend auf einer festen Referenz wie einem Testsatz oder einem wiederholten Kreuzvalidierungsschema.
Sowohl R als auch Python bieten Slicing-Funktionalitäten, die Ihre Eingabematrix in Zug-, Test- und Validierungsteile unterteilen. Insbesondere für komplexere Testverfahren, wie Kreuzvalidierung oder Bootstrapping, bietet das Scikit-learn-Paket ein vollständiges Modul, und R verfügt über ein spezielles Paket, das Funktionen zum Aufteilen, Vorverarbeiten und Testen von Daten bietet.Dieses Paket wird Caret genannt.
Die möglichen Kombinationen von Werten, die Hyper-Parameter bilden können, entscheiden darüber, wo nach Optimierungen zu suchen ist. Wie bei der Beschreibung des Gradientenabfalls beschrieben, kann ein Optimierungsraum Wertkombinationen enthalten, die besser oder schlechter arbeiten. Selbst wenn Sie eine gute Kombination gefunden haben, können Sie nicht sicher sein, dass dies die beste Option ist. (Dies ist das Problem, bei der Minimierung des Fehlers in lokalen Minima stecken zu bleiben.)
Als eine praktische Möglichkeit zur Lösung dieses Problems ist die beste Möglichkeit, Hyperparameter für einen auf bestimmte Daten angewendeten Algorithmus zu überprüfen, indem man sie alle testet. Kreuzvalidierung und die beste Kombination auswählen. Dieser einfache Ansatz, der als Rastersuche bezeichnet wird, bietet unbestreitbare Vorteile, da Sie den Bereich möglicher Werte systematisch in den Algorithmus eingeben und feststellen können, wann das allgemeine Minimum eintritt.
Auf der anderen Seite hat die Rastersuche auch ernsthafte Nachteile, da sie rechenintensiv ist (Sie können diese Aufgabe auf modernen Multicore-Computern leicht parallel ausführen) und recht zeitaufwendig ist. Darüber hinaus verbessern systematische und intensive Tests die Möglichkeit von Fehlern, da einige gute, aber gefälschte Validierungsergebnisse durch Rauschen im Datensatz verursacht werden können.
Einige Alternativen zur Rastersuche sind verfügbar. Anstatt alles zu testen, können Sie versuchen, den Raum möglicher Hyperparameterwerte zu erforschen, die durch rechenintensive und mathematisch komplexe nichtlineare Optimierungstechniken (wie die Nelder-Mead-Methode) gesteuert werden, indem Sie einen Bayes'schen Ansatz verwenden (wobei die Anzahl der Tests minimiert wird). Vorteil früherer Ergebnisse) oder durch Zufallssuchen.
Überraschenderweise funktioniert zufällige Suche unglaublich gut, ist einfach zu verstehen und basiert nicht nur auf blindem Glück, obwohl es zunächst so aussehen mag. In der Tat ist der Hauptpunkt der Technik, dass, wenn Sie genug zufällige Tests auswählen, Sie tatsächlich genug Möglichkeiten haben, die richtigen Parameter zu finden, ohne Energie beim Testen von leicht unterschiedlichen Kombinationen ähnlich durchführender Kombinationen zu verschwenden.
Die folgende grafische Darstellung erklärt, warum die Zufallssuche funktioniert. Eine systematische Untersuchung, obwohl nützlich, neigt dazu, jede Kombination zu testen, was sich in eine Verschwendung von Energie umwandelt, wenn einige Parameter das Ergebnis nicht beeinflussen. Eine zufällige Suche testet tatsächlich weniger Kombinationen, aber mehr im Bereich jedes Hyperparameters, eine Strategie, die sich als gewinnend erweist, wenn, wie oft, bestimmte Parameter wichtiger sind als andere.
Gittersuche mit zufälliger Suche vergleichen.Damit die randomisierte Suche gut funktioniert, sollten Sie 15 bis maximal 60 Tests durchführen. Es macht Sinn, auf zufällige Suche zurückzugreifen, wenn eine Rastersuche eine größere Anzahl von Experimenten erfordert.