NN07 - Training & Testing

Kurze Übersicht

Training und Testing

  • Der tatsächliche Erfolg eines Modells wird nicht durch niedrige Trainingskosten gemessen, sondern durch geringe Kosten auf ungesehenen Daten, d.h. hohe Vorhersagekraft, gute Generalisierung!

  • Die Menge aller gelabelten Daten in Trainingsset und Testset aufteilen, Testset nicht während des Trainings einsetzen!.

    • Ein bezeichnet den Fehler auf dem Trainingsset, auch in-sample error.
    • Eout bezeichnet den Fehler auf dem gesamten Eingaberaum X, auch out-of-sample error. Eout ist der eigentliche Indikator für den zukünftigen Erfolg des Modells, ist uns aber nicht zugänglich.
    • Etest bezeichnet den Fehler auf dem Testset und ist eine Näherung für Eout.

    Analogie:
    Ein : Erfolg in Übungsaufgaben und Probeprüfungen.
    Etest : Erfolg in Endprüfung.

  • Die Näherung Etest sollte möglichst genau sein, damit es als ein verlässliches Gütesiegel dienen kann.

    • Das Testset sollte genug Daten enthalten. Üblicher Anteil an Testdaten:
      • bei |D|100.000 ca. 20%
      • bei |D|10.000.000 ca. 1%
      • Beispiel: Hat man 1000 Beispiele im Testset, wird Etest mit 98% Wahrscheinlichkeit in der ±5% Umgebung von Eout liegen (für theoretische Grundlagen und Herleitung siehe [AbuMostafa2012, S. 39-69]).
    • Trainingsdaten und Testdaten sollten möglichst aus derselben Verteilung kommen, wie die zukünftigen Real-World-Daten.
  • Wichtige Bemerkung:

    • Testdaten nicht anfassen, bis das Modell Einsatzbereit ist!
    • Die Testdaten dürfen in keinster Weise bei der Auswahl der endgültigen Hypothese eingesetzt werden, weder bei der Berechnung der Parameter (Training), noch bei der Bestimmung der Hyperparameter (Hyperparameter-Tuning).
    • Sobald der Testfehler die Auswahl der endgültigen Hypothese beeinflusst, kann sie nicht mehr als "Gütesiegel" eingesetzt werden.
      CHECK: Hätte man zufällig andere Testdaten gewählt, könnte sich dadurch die endgültige Hypothese ändern?

Validierung und Modellauswahl

  • Das Ziel ist es, das Modell mit bester Generalisierung, also kleinstem Eout zu bestimmen. Eout ist jedoch unbekannt und die Näherung Etest darf nicht bei der Modellauswahl eingesetzt werden.

  • LÖSUNG: Einen weiteren Teil der Daten als Validierungsset (auch development set) beiseitelegen und nicht für das Training (i.e. Minimierung des Trainingsfehlers Ein) verwenden!

  • Bemerkung:
    Das Wort Modell kann je nach Kontext unterschiedliche Bedeutungen annehmen.
    Ein Modell im aktuellen Kontext ist als ein Paar (H,A) von Hypothesenraum (bzw. Modellarchitektur) und Lernalgorithmus definiert.

    • Die Auswahl eines Modells kann aus einer Menge von Modellen unterschiedlicher Art erfolgen (z.B. lineare Modelle, polynomiale Modelle, neuronale Netze), oder von Modellen derselben Art aber mit unterschiedlichen Hyperparametern (z.B. Neuronale Netze mit unterschiedlicher Anzahl von versteckten Schichten).
    • Außerdem kann dieselbe Modellarchitektur H mit unterschiedlichen Lernalgorithmen trainiert werden, was wiederum die endgültige Hypothese beeinflussen kann. Die Bestimmung der Hyperparameter von A (wie z.B. Optimierungsfunktion, Lernrate, Kostenfunktion, Regularisierungsparameter usw.) sind daher auch Teil der Modellauswahl.
  • Der Validierungsfehler Eval kann nun als Entscheidungsgrundlage an verschiedenen Stellen des Lernrpozesses eingesetzt werden, wie zum Beispiel:

    • Bei der Auswahl geeigneter Hyperparameter wie z.B. Anzahl Schichten, Anzahl Zellen/Schicht, Aktivierungsfunktion, Regularisierungsparameter (siehe Abbildung 1).
    Abbildung 1 - Einsatz der Validierung für das Hyperparameter-Tuning

    Abbildung 1 - Einsatz der Validierung für das Hyperparameter-Tuning

    • Bei der Auswahl der endgültigen Hypothese ( Parameterauswahl!): unter allen Hypothesen, die während des Trainings durchlafen werden, wähle jene mit kleinstem Eval (siehe Abbildung 2).
    Abbildung 2 - Einsatz der Validierung bei der Auswahl der entgültigen Hypothese

    Abbildung 2 - Einsatz der Validierung bei der Auswahl der entgültigen Hypothese

    • Bei der graphischen Darstellung von Lernkurven für die Diagnose von Über- und Unteranpassung (siehe Abbildung 3).
    Abbildung 3 - Lernkurven

    Abbildung 3 - Lernkurven

  • Übliche train/val/test Aufteilung der Daten (in Prozent):

    • bei |D|100.000 ca. 60/20/20
    • bei |D|10.000.000 ca. 98/1/1
  • Bemerkung:
    Das Modell ist trainiert für gute Ergebnisse auf Trainingsdaten und "fine-tuned" für gute Ergebnisse auf den Validierungsdaten. Ergebnisse auf Testdaten werden mit hoher wahrscheinlichkeit schlechter ausfallen, als auf Validierungsdaten (Eval ist eine zu optimistische Näherung).

  • Sind Validierungs- und/oder Trainingsset zu klein, führt das zu schlechten Näherungen Eval und folglich zu schlechten Entscheidungen.

    • Bei der Aufteilung muss ein gutes Trade-off gefunden werden.
    • Wenn kein Gütesiegel notwendig ist, kann man auf das Testset verzichten und die Daten in Trainings- und Validierungsset aufteilen.
    • Für eine bessere Näherung mit weniger Validierungsdaten kann k-fache Kreuzvalidierung eingesetzt werden (wenn genug Rechenkapazität vorhanden ist).

K-fache Kreuzvalidierung (engl. k-fold cross-validation):

  • Das Modell (Hm,Am) wird k mal trainiert und validiert, jedes mal mit unterschiedlichen Trainings- und Validierungsmengen:

    • Die Trainingsdaten werden in k disjunkte Teilmengen D1,D2,...,Dk aufgeteilt.

    • Bei dem i-ten Training werden die Teilmenge Di für die Berechnung des Validierungsfehlers ei:=Eval(hm(i)) und die restlichen k1 Teilmengen für das Training verwendet.

    • Der Kreuzvalidierungsfehler des Modells (Hm,Am) ist der Durchschnitt der k Validierungsfehler e1,e2,...,ek (siehe Abbildung 4). ECV(m):=1ki=1kei=1ki=1kEval(hm(i))

    Abbildung 4 - Kreuzvalidierung

    Abbildung 4 - Kreuzvalidierung

  • Bemerkung: Die Kreuzvalidierung wird nur bei der Modellauswahl eingesetzt: es liefert verlässlichere Näherungen für Eout und führt daher zu besseren Entscheidungen. Das zuletzt ausgewählte Modell wird danach wie gewohnt auf den gesamten Trainigsdaten (ausgenommen Testdaten) trainiert und zum Schluss mit den Testdaten evaluiert.

Lernziele
  • (K2) Trainings-, Validierungs- und Testfehler
  • (K2) Zweck einer Testmenge
  • (K2) Kreuzvalidierung
  • (K2) Hyperparameter-Tuning
  • (K2) Lernkurven
Quellen