Deep Learning EA2: Regression mit FFNN

Datensatz Vorschau

 

R1: Datensätze

R2: Vorhersage y_unverrauscht(x)

R3: Vorhersage y_best(x)

R4: Vorhersage y_overfit(x)

Diskussion

Für das Modell "R2: y_unverrauscht(x)" wurde ein moderater Ansatz von 100 Neuronen pro hidden Layers und 100 Epochen verwendet, um ein gutes Trainingsergebnis zu erzielen. Für "R3: y_best(x)" waren 200 Trainingsläufe notwendig, um einen ähnlichen Loss für Training und Test zu erzielen. Für das Modell "R4: y_overfit(x)" sollte wie der Name ahnen lässt, bewusst ein Overfitting erzeugt werden. Hier wurde das Modell mit 500 Neuronen pro Layers und 1000 Trainingsepochen bewusst überdimensioniert, was zu einem Trainings-Loss von sehr geringen 0.05 und einem Test-Loss von rund 0.15 führte. Hier sieht man, dass das Modell das Rauschen in den Trainingsdaten "mit gelernt" hat. Es hat sich zu sehr auf die Trainingsdaten angepasst, und war dann mit neuen Daten (Test) nicht mehr im Stande, einen vergleichbar geringen Loss zu erzielen.

Ich habe gelernt, dass eine zu hohe Modellkapazität bei kleinen Datensätzen problematisch ist und der visuelle Vergleich von Trainings- und Testkurven wichtige Hinweise liefert. Außerdem zeigte sich, dass der Einfluss von Zufall (Initialisierung, Batch-Reihenfolge) nicht vernachlässigt werden darf. Wenn keine Trainingsdatenpunkte am linken Rand der x-Achse vorhanden waren, führte das unweigerlich zu schlechteren Testergebnissen. Andersherum konnten mit einer ausgewogenen Verteilung deutlich bessere Testergebnisse erzielt werden, wie hier auch gezeigt wird.

Dokumentation

Technisch

  • Foundation Sites: Für das responsive Grid-Layout und UI-Komponenten.
  • TensorFlow.js: Für das Training und die Ausführung neuronaler Netze direkt im Browser.
  • Chart.js: Zur grafischen Darstellung der Trainings- und Testergebnisse.
  • tfjs-vis: Ergänzendes Tool zur Visualisierung von TensorFlow-Modellen.

Besonderheit: Die Modelle werden vollständig clientseitig trainiert und können interaktiv gespeichert werden. Es ist kein Backend erforderlich.

Fachlich

Es wurden drei Modelle zur Regressionsvorhersage implementiert:

  • y_unverrauscht(x): Vorhersage eines sauberen Datensatzes (Benchmark-Modell).
  • y_best(x): Bestmöglich generalisiertes Modell auf verrauschtem Datensatz.
  • y_overfit(x): Modell mit zu hoher Komplexität, das Overfitting demonstriert.

Die Implementierung folgt einem didaktischen Ansatz zur Veranschaulichung des Overfitting-Problems bei neuronalen Netzen. Alle Daten werden zufällig generiert oder als Datei geladen.