Ich habe ein tiefes neuronales Netzwerkmodell und muss es auf meinem Datensatz trainieren, der aus ungefähr 100.000 Beispielen besteht. Meine Validierungsdaten enthalten ungefähr 1000 Beispiele. Da es einige Zeit dauert, um jedes Beispiel zu trainieren (ungefähr 0,5 Sekunden für jedes Beispiel) und um eine Überanpassung zu vermeiden, möchte ich ein vorzeitiges Anhalten anwenden, um unnötige Berechnungen zu vermeiden. Aber ich bin mir nicht sicher, wie ich mein neuronales Netz mit einem frühen Stopp richtig trainieren soll. Einige Dinge verstehe ich jetzt nicht ganz:
Was wäre eine gute Validierungshäufigkeit? Sollte ich mein Modell am Ende jeder Epoche auf die Validierungsdaten überprüfen? (Meine Losgröße ist 1)
Ist es der Fall, dass die ersten Epochen zu schlechteren Ergebnissen führen, bevor die Konvergenz zu einem besseren Wert einsetzt? Sollten wir in diesem Fall unser Netzwerk für mehrere Epochen trainieren, bevor wir nach einem frühen Stopp suchen?
Wie gehe ich mit dem Fall um, dass der Validierungsverlust hoch und runter gehen könnte? In diesem Fall könnte ein vorzeitiges Anhalten mein Modell daran hindern, weiter zu lernen, oder?
Danke im Voraus.
quelle
Antworten:
Es gibt keine Goldregel, die Berechnung des Validierungsfehlers nach jeder Epoche ist durchaus üblich. Da Ihr Validierungssatz viel kleiner als Ihr Trainingssatz ist, wird das Training nicht wesentlich verlangsamt.
Ja
Sie könnten, aber dann ist die Frage, wie viele Epochen Sie überspringen sollten. In der Praxis überspringen die Menschen also meistens keine Epoche.
Die Leute definieren normalerweise eine Geduld, dh die Anzahl der Epochen, die vor einem frühen Stopp gewartet werden müssen, wenn keine Fortschritte bei der Validierung erzielt wurden. Die Geduld wird oft irgendwo zwischen 10 und 100 eingestellt (10 oder 20 sind häufiger), aber es hängt wirklich von Ihrem Datensatz und Ihrem Netzwerk ab.
Beispiel mit Geduld = 10:
quelle
patience
Modellepochen zuvor gestoppt wurden (das 'beste' ohne weitere Verbesserungen)?Ich bin kürzlich auf eine Zeitung mit dem Titel "Early Stopping - but when?" Gestoßen. von Lutz Prechelt, der viele großartige Beispiele für das frühe Stoppen mit klaren Erklärungen zu den jeweiligen Aufgaben und Formeln enthält.
Hoffentlich kann ein Blick darauf helfen.
quelle
Um zu anderen hervorragenden Antworten beizutragen, können Sie auch - nicht aufhören. Ich für gewöhnlich:
Das macht natürlich nur Sinn, wenn Sie nicht im Minutentakt bezahlen (oder die Kosten gering genug sind) und wenn Sie das Training manuell beenden können. Der Vorteil ist, dass es im Nachhinein viel einfacher ist, den niedrigsten Validierungsfehler zu bestimmen.
quelle