LSTM Wortvorhersage mit TensorFlow.js

Trainingsfortschritt:

Diskussion

Grundlegend habe ich beobachtet, dass es sehr viele "Stellschrauben" gibt, welche das Ergebnis beeinflussen. Ich habe sowohl mit verschiedenen Trainingstexten experimentiert, als auch mit diversen Parametern. Die Texte sind entscheidend für die Vorhersagegenauigkeit des trainierten Modells. Allerdings spielen auch andere Parameter eine Rolle. Beispielsweise beeinflusst die Anzahl der bei der Vorhersage betrachteten, schon vorhanden Worte enorm das Ergebnis. Ich habe eine lange Zeit benötigt, um das Modell zum Laufen zu bekommen, da sich immer wieder neue Herausforderungen ergaben. Als alles lief, konnte ich allerdings experimentieren.

Dokumentation

Technische Frameworks:
TensorFlow.js (Modell) - Modellierung, Training & Vorhersage eines LSTM-Sprachmodells im Browser
Plotly (Visualisierung) - Visualisierung der Trainings-Loss-Kurve
HTML/CSS - Struktur und Styling der Benutzeroberfläche
JavaScript - Steuerung der Logik, Training, Eingaben, Interaktionen

Fachlicher Ansatz: Grundlegend ist der Code in seiner "Rohform" aus einem Zusammenspiel zwischen Vorlesungsunterlagen, Internetrecherche und Vorkenntnissen entstanden. Durch "Try and Error" habe ich ihn zusammen mit KI stetig angepasst und verbessert. Eine der Zahlreichen herausforderungen hierbei war, dass ich mit https://www.gutenberg.org/ als Trainingsdaten begonnen hatte und ich hier mit dem kompletten Text an die Grenzen von TensorFlow gestoßen bin. Schließlich musste ich hier eine allgemein gültige Begrenzung einbauen. Das stetige Auftreten solcher "simpler" aber in Summe doch sehr zeitintensiver Fehler hat in meinem Fall tatsächlich ein Großteil des Arbeitsaufwands ausgemacht. Das Anpassen verschiedenster Parameter und Probieren unterschiedlichster Trainingsdaten hingegen war dann deutlich entspannter.