Alle guten Softwareentwicklungsprojekte stecken viel Energie in
ihre Apps zu testen. Ebenso empfehlen wir Ihnen dringend, Ihre
ML-Modell zur Bestimmung der Richtigkeit seiner Vorhersagen.
Trainings-, Validierungs- und Test-Datasets
Sie sollten ein Modell an einem anderen Satz von Beispielen testen
das zum Trainieren des Modells verwendet wird. Wie Sie noch lernen werden,
etwas später
anhand verschiedener Beispiele die Eignung Ihres Modells besser belegen als Tests.
für denselben Satz Beispiele.
Woher stammen diese verschiedenen Beispiele? Traditionell gibt es beim maschinellen Lernen
erhalten Sie diese unterschiedlichen Beispiele,
indem Sie das ursprüngliche Dataset aufteilen. Möglicherweise
gehen Sie daher davon aus, dass Sie das ursprüngliche Dataset in zwei Teilmengen aufteilen sollten:
Angenommen, Sie trainieren mit dem Trainings-Dataset und bewerten anhand des Test-Datasets
in mehreren Runden. In jeder Runde verwenden Sie die Testergebnisse
eine Anleitung zum Aktualisieren von Hyperparametern und dem Feature-Set. Können Sie
ein Problem mit diesem Ansatz erkennen? Wählen Sie nur eine Antwort aus.
Wenn Sie diesen Vorgang mehrmals wiederholen, kann das dazu führen,
um implizit an die Besonderheiten des Test-Datasets anzupassen.
Ja! Je häufiger Sie
dasselbe Test-Dataset verwenden,
desto wahrscheinlicher ist es, dass das Modell
eng mit dem Test-Dataset übereinstimmt.
Wie ein Lehrer,
der die Prüfung unterrichtet, das Modell versehentlich
zum Test-Dataset passen, was das Modell erschwert
an reale Daten anzupassen.
Dieser Ansatz ist in Ordnung. Schließlich trainieren Sie auf dem
Trainings-Dataset und die Auswertung
anhand eines separaten Test-Datasets.
Tatsächlich gibt es hier ein subtiles Problem. Überlegen Sie,
allmählich schief gehen.
Dieser Ansatz ist rechenintensiv. Nicht ändern
nach jeder Testrunde Hyperparameter oder
Feature-Sets zu ermitteln.
Häufige Tests sind teuer, aber wichtig. Häufig
Tests sind weitaus kostengünstiger als zusätzliches Training. Wird optimiert
Hyperparameter und das Feature Set
Budget von Zeit und Rechenressourcen
beim Budget einplanen,
um daran zu arbeiten.
Das Dataset in zwei Datasets aufzuteilen, ist zwar eine gute Idee,
Ein besserer Ansatz besteht darin, das Dataset in drei Teilmengen zu unterteilen.
Neben dem Trainings-Dataset und dem Test-Dataset ist die dritte Teilmenge:
Ein Validierungs-Dataset
den ersten Test des Modells durchführt, während es trainiert wird.
Verwenden Sie das Validierungs-Dataset, um die Ergebnisse des Trainings-Datasets zu bewerten.
Nach wiederholter Verwendung des Validierungs-Datasets ist es wahrscheinlich, dass Ihr Modell
Nutzen Sie das Test-Dataset, um Ihr Modell nochmals zu überprüfen.
Die folgende Abbildung veranschaulicht diesen Workflow.
In der Abbildung ist „Tweak-Modell“ Änderungen am Modell
– vom Ändern der Lernrate über das Hinzufügen oder Entfernen
bis hin zur Entwicklung eines
neuen Modells.
Am Ende dieses Workflows wählen Sie das Modell aus, das im Test-Dataset am besten abschneidet.
Der in Abbildung 10 gezeigte Workflow ist optimal, aber selbst mit diesem Workflow
Test-Datasets und Validierungs-Datasets „verschleißen“ weiterhin. bei wiederholter Verwendung.
Das heißt, je häufiger Sie dieselben Daten verwenden, um Entscheidungen
Hyperparameter-Einstellungen oder andere Modellverbesserungen
dass das Modell gute
Vorhersagen für neue Daten trifft.
Aus diesem Grund empfiehlt es sich, mehr Daten zum „Aktualisieren“ zu sammeln der Test
und Validierungs-Dataset. Ein Neuanfang ist ein guter Anfang.
Übung: Teste deine Intuition
Sie haben alle Beispiele im Dataset zufällig angeordnet und
die gemischten Beispiele in Training, Validierung und Test
festgelegt. Der Verlustwert Ihres Test-Datasets ist jedoch sehr niedrig.
dass Sie einen Fehler vermuten. Was könnte schief gelaufen sein?
Viele der Beispiele im Test-Dataset sind Duplikate von Beispielen.
im Trainings-Dataset.
Ja. Dies kann in einem Dataset mit vielen redundanten
Beispiele. Wir empfehlen dringend, doppelte Beispiele aus
das Test-Dataset vor dem Testen.
Training und Tests sind nicht deterministisch. Manchmal
ist Ihr Testverlust unglaublich gering. Führen Sie den Test erneut aus, um zu bestätigen, dass
Ergebnis.
Obwohl der Verlust bei jedem Durchlauf geringfügig variiert, sollte er nicht variieren.
von denen Sie glauben, dass Sie
bei der ML-Lotterie gewonnen haben.
Das Test-Dataset enthielt zufällig Beispiele, die die
gut funktioniert hat.
Da die Beispiele gut nach dem Zufallsprinzip angeordnet wurden, ist dies sehr unwahrscheinlich.
Weitere Probleme mit Test-Datasets
Wie die vorherige Frage zeigt, können doppelte Beispiele die Modellbewertung beeinflussen.
Nach der Aufteilung eines Datasets in
Trainings-, Validierungs- und Test-Datasets
Löschen Sie alle Beispiele im Validierungs- oder Test-Dataset, die Duplikate sind von
Trainingsbeispiele. Der einzige faire Test eines Modells
neue Beispiele, keine Duplikate.
Stellen Sie sich beispielsweise ein Modell vor, das vorhersagt, ob es sich bei einer E-Mail um Spam handelt.
die Betreffzeile, den E-Mail-Text und die E-Mail-Adresse des Absenders.
Angenommen, Sie teilen die Daten in Trainings- und Test-Datasets mit einer Aufteilung von 80:20 auf.
Nach dem Training erreicht das Modell eine Genauigkeit von 99% für das Trainings-Dataset und
mit dem Test-Dataset. Wahrscheinlich wäre eine geringere Genauigkeit
für das Test-Dataset zu erwarten,
Schauen Sie sich die Daten noch einmal an und stellen Sie fest, dass viele der Beispiele aus dem Test
Duplikate von Beispielen im Trainings-Dataset sind. Das Problem ist, dass Sie
versäumen, doppelte Einträge für dieselbe Spam-E-Mail aus Ihrer Eingabe zu entfernen
bevor Sie die Daten aufteilen. Sie haben versehentlich mit einigen der
Ihre Testdaten.
Zusammenfassend lässt sich sagen, dass ein gutes Test-Dataset oder Validierungs-Dataset alle
folgenden Kriterien:
Sie ist groß genug, um statistisch signifikante Testergebnisse zu erhalten.
Repräsentativ für das Dataset als Ganzes. Mit anderen Worten: Wählen Sie
einem Test-Dataset mit anderen
Eigenschaften als das Trainings-Dataset.
Repräsentativ für die realen Daten, auf die das Modell stößt
als Teil seines Geschäftszwecks.
Im Trainings-Dataset wurden keine Beispiele dupliziert.
Übungen: Wissen testen
Bei einem einzelnen Dataset
mit einer festen Anzahl von Beispielen
Welche der folgenden Aussagen ist richtig?
Jedes Beispiel, das beim Testen des Modells verwendet wird, ist ein Beispiel weniger.
das Modell trainieren.
Die Unterteilung von Beispielen in Trainings-/Test-/Validierungs-Datasets ist ein Nullsummenspiel.
Dies ist der zentrale Kompromiss.
Die Anzahl der Beispiele im Test-Dataset muss größer sein als
Anzahl der Beispiele im Validierungs-Dataset
Theoretisch sollten das Validierungs-Dataset und der Testtest die gleichen
oder ungefähr so viele Beispiele geben.
Die Anzahl der Beispiele im Test-Dataset muss größer sein als
Die Anzahl der Beispiele im Validierungs- oder Trainings-Dataset.
Die Anzahl der Beispiele im Trainings-Dataset ist normalerweise größer als
Anzahl der Beispiele im Validierungs- oder Test-Dataset Allerdings
gibt es keine prozentualen
Anforderungen für die verschiedenen Sätze.
Angenommen, Ihr Test-Dataset enthält genügend Beispiele, um eine
einen statistisch signifikanten
Test durchgeführt hat. Außerdem sind Tests mit
liefert das Test-Dataset nur einen geringen Verlust. Das Modell schnitt jedoch ab,
in der realen Welt nicht gut funktioniert. Was solltest du tun?
Stellen Sie fest, wie sich das ursprüngliche Dataset von realen Daten unterscheidet.
Ja. Selbst die besten Datasets sind nur eine Momentaufnahme realer Daten.
die zugrunde liegende
Ground Truth
ändert sich im Laufe der Zeit. Ihr Test-Dataset entsprach Ihren
das Training so festgelegt ist, dass eine gute Modellqualität vorgeschlagen wird,
wahrscheinlich nicht genau mit realen Daten übereinstimmt.
Möglicherweise müssen Sie ein neues Dataset neu trainieren und testen.
Führen Sie den Test noch einmal mit demselben Test-Dataset durch. Die Testergebnisse können
eine Anomalie.
Erneute Tests können leicht unterschiedliche Ergebnisse liefern,
ist diese Taktik
wahrscheinlich nicht sehr hilfreich.
Wie viele Beispiele sollte das Test-Dataset enthalten?
Ausreichend Beispiele für einen statistisch signifikanten Test.
Ja. Wie viele Beispiele sind das? Sie müssen experimentieren.