Ich habe folgendes Diagramm:
Das Modell wird mit der folgenden Anzahl von Beispielen erstellt:
%Vor%Nach meinem Verständnis zeigt die Handlung, dass es keine Überanpassung gibt. Aber ich denke, Da die Stichprobe sehr klein ist, bin ich nicht sicher, ob das Modell allgemein ist genug.
Gibt es eine andere Möglichkeit, die Überanpassung als die obige zu messen?
Dies ist mein vollständiger Code:
%Vor%Also zwei Dinge hier:
Stratifizieren Sie Ihre Daten w.r.t. Klassen - Ihre Validierungsdaten haben eine völlig andere Klassenverteilung als Ihr Trainingssatz (Zugverband ist ausgeglichen, Validierungssatz dagegen nicht). Dies könnte sich auf Ihre Verluste und Messwerte auswirken. Es ist besser, die Ergebnisse zu stratifizieren, damit das Klassenverhältnis für beide Sets gleich ist.
Mit so wenigen Datenpunkten verwenden Sie mehr grobe Validierungsschemata strong> - wie Sie sehen können, haben Sie insgesamt nur 74 Bilder. In diesem Fall ist es kein Problem, alle Bilder in numpy.array
zu laden (Sie könnten weiterhin Daten mit flow
function erweitern) und Validierungsschemas verwenden, die schwer zu erhalten sind, wenn Sie Ihre Daten in einem Ordner haben. Die Schemata (von sklearn
), die ich dir empfehlen soll, sind:
Ich empfehle, die Vorhersagen als nächsten Schritt zu betrachten.
Wenn Sie beispielsweise anhand des oberen Diagramms und der Anzahl der bereitgestellten Stichproben feststellen, schwankt Ihre Validierungsprognose zwischen zwei Genauigkeiten, und der Unterschied zwischen diesen Vorhersagen ist genau eine Probe, die richtig geschätzt wurde.
Also sagt Ihr Modell mehr oder weniger die gleichen Ergebnisse voraus (plus minus eine Beobachtung) ohne Rücksicht auf die Anpassung. Das ist ein schlechtes Zeichen.
Auch die Anzahl der Merkmale und trainierbaren Parameter (Gewichte) ist für die angegebene Anzahl von Proben viel zu hoch. All diese Gewichte haben einfach keine Chance, tatsächlich trainiert zu werden.
Ihr Validierungsverlust ist konstant niedriger als der Trainingsverlust. Ich wäre Ihren Ergebnissen ziemlich verdächtig. Wenn Sie sich die Validierungsgenauigkeit ansehen, sollte es nicht so sein.
Je weniger Daten Sie haben, desto weniger Vertrauen können Sie in etwas haben. Sie haben also recht, wenn Sie sich nicht sicher sind, ob Sie überziehen. Das einzige, was hier funktioniert, ist das Sammeln von mehr Daten, entweder durch Datenerweiterung oder durch Kombination mit einem anderen Datensatz.
Wenn Sie die Überausstattung Ihres aktuellen Modells messen möchten, können Sie das Modell auf Ihrem kleinen Testset testen und jedes Mal 34 Proben aus dem validate set
auswählen, d. h. durch die Funktion sample
mit der Einstellung replace=TRUE
. Indem Sie Samples auswählen, die Sie von Ihrem validate set
ersetzen, können Sie mehr "extreme" Datasets erstellen und so eine bessere Schätzung darüber erhalten, wie stark die Vorhersage basierend auf Ihren verfügbaren Daten variieren könnte. Diese Methode wird bagging oder bootstrap aggregating genannt.
Tags und Links r deep-learning machine-learning keras