-
Die Erfindung betrifft Verfahren zur Optimierung von Trainingsdaten und Machine-Learning-Modul-Parametern für ein computergestütztes Modell.
-
An solchen Programmen, die Machine Learning und Artificial Intelligence enthalten und benutzen, wurde vielfach die generelle Kritik geäußert, dass sie unzuverlässig und inakkurat arbeiten würden und eine korrekte Erfüllung der Aufgaben weder sicher noch reproduzierbar sei. Die Hersteller als Programmierer und ihre Kunden als Anwender stehen also vor dem Problem, die Programme zu testen und gegebenenfalls anwendungsbezogen zu optimieren, bevor sie industriell eingesetzt werden können.
-
Derartige Tests können ausgesprochen aufwändig werden, etwa bei Erkennungssystemen im Straßenverkehr oder bei Beratungen in Chats in Versicherungsunternehmen oder beim Instruieren von Werkzeugmaschinen, da vorab eine Unzahl möglicher Ereignisse zu simulieren ist. In manchen Anwendungsfällen müssen die Bots auch spätere zeitkritische Situationen bewältigen können und man möchte wissen, welche Rechenkapazitäten ungünstigstenfalls zur Verfügung gestellt werden müssen, damit die Programme noch in der Lage sind, rechtzeitig angemessen zu reagieren. Der Testumgebung kommt in solchen Fällen eine besondere Bedeutung zu.
-
Besondere Schwierigkeiten bereitet in all diesen Fällen die Absichtserkennung. So möchte man im Straßenverkehr nicht nur wissen, wo sich Hindernisse befinden, sondern auch, was andere Verkehrsteilnehmer beabsichtigen. Bei Spracherkennungssystemen möchte man sowohl wissen, ob man den Sprecher richtig verstanden hat, als auch, ob dessen Intention richtig verstanden worden ist, denn sonst kann das Programm keine sinnvolle Antwort generieren. In diesen Fällen ist die Absichtserkennung für die folgende Kommunikation von entscheidender Bedeutung, und zwar hinsichtlich Schnelligkeit, Zuverlässigkeit und Genauigkeit.
-
Die Aufgabe der Erfindung ist daher, ein Verfahren zur Optimierung von Trainingsdaten und Machine-Learning-Modul-Parametern für ein computergestütztes Modell zur Verfügung zu stellen.
-
Die Erfindung löst die Aufgabe durch ein Verfahren zur Optimierung von Trainingsdaten und Parametern für das Modell, welches dem maschinellen Lernen zugrunde gelegt wird.
-
Hierbei werden die folgenden Schritte nacheinander durchgeführt, wobei zur Unterscheidung von Fachbegriffen für diese englischsprachige Namen verwendet werden:
- a) Data Entry
- b) Training
- c) Validation Dataset
- d) Quality Metrics
- e) Findings
- f) Improvement Suggestions
- g) Dependency Tree
- h) Severity Impact Analysis
- i) Feedback Report Generation
- j) Request User for Action
- k) Implement Changes
- l) Trigger Re-Evaluation
-
Die einzelnen Schritte d) bis h) werden dabei als ein Schritt „Analysis“ zusammengefasst, wobei die Abfolge der einzelnen Schritte innerhalb dieses Schritts teilweise austauschbar ist.
-
Die Schritte j) bis I) werden im Schritt „Finalisation“ zusammengefasst, wobei diese Schritte optional sind.
-
Die Schritte sind einzeln bekannter Stand der Technik, neu ist deren Abfolge zur Optimierung der Ermittlung des Intent. Für den Sonderfall einer Sprachverarbeitung werden diese Schritte im Einzelnen kurz erläutert, in anderen Fällen ist die Bedeutung analog.
-
Im ersten Schritt „Data Entry“ erfolgt die Eingabe der Trainingsdaten in der Nutzerumgebung. Die Trainingsdaten sind normalerweise solche, deren Ergebnis bereits bekannt ist, damit später ermittelt werden kann, wieweit die Erkennung funktioniert hat. Die Darstellung erfolgt üblicherweise nach Klassen, die Klassen können dabei in hierarchischen Ebenen geordnet werden. Hauptursache für eine schlechte Erkennung von Klassen eines Klassifizierers sind unpassende Datenpunkte zu einer Klasse, Überschneidung von Datenpunkten zwischen Klassen und Eingabefehler in Trainingsdaten. In fortschrittlichen Entwickler-Programmen können die Eingabedaten mittels drag & drop am Bildschirm verschoben werden, um entsprechende Korrekturen vorzunehmen.
-
Im nachfolgenden Schritt „Training“ werden die Trainingsdaten in der Datenbank abgespeichert, hierbei werden üblicherweise verschiedene Microservices und API mit Validierung der Daten eingesetzt. Damit wird das Trainingsmodul in der Nutzerumgebung aufgerufen und es findet ein Trainieren des Klassifizierers statt. Das Training selbst erfolgt durch maschinelles Lernen.
-
Im nachfolgenden Schritt „Validation Dataset“ werden die Ergebnisse validiert, wobei übliche Algorithmen wie K-Fold Quer-Validierung, Bootstrapping, Leave-one-out validation und andere eingesetzt werden. Die Quer-Validierung kann dabei auf einem weniger rechenintensiven effizienteren Klassifizierungsmodell vorgenommen werden, dessen Tauglichkeit zur Validierung über Abstimmung und Vergleich von Vorhersageverhalten und Verteilung mit dem Hauptmodell sichergestellt wird.
-
Der Schritt „Validation Dataset“ umfasst umfasst die dynamische Anpassung von Modellparametern und Daten, und die statische Wahl eines geeigneten Klassifizierers. Er umfasst auch die Vorhersagen des Klassifizierers auf Testdaten, also auf Trainingsdaten, die nicht im ursprünglichen Testdatensatz enthalten sind, welche in der Nutzerumgebung eingegeben oder hochgeladen werden können.
-
Der Schritt „Validation Dataset“ umfasst auch synthetisch generierte Daten, welche die die Wahrscheinlichkeitsverteilung der Trainingsdaten oder der erwarteten zu klassifizierenden Daten nachzubilden versuchen. Dies geschieht beispielsweise durch Generative Adversial Networks oder mit Hilfe von synthetischen Dialogdaten, welche über Natural Language Generation erstellt werden.
-
Der Schritt „Validation Dataset“ umfasst auch die Vorhersagen des Klassifizierers auf die Trainingsdaten selbst.
-
Der nachfolgende Schritt „Quality Metrics“ betrifft die Errechnung der Qualitätsmetriken wie Accuracy, F-Score und Konfusionsmatrix aus dem Validierungsdatensatz. Weiterhin findet eine linguistische und syntaktische Prüfung von Datenmerkmalen statt, beispielsweise bezüglich der Nutzung von Sonderzeichen und dergleichen. Auch Ähnlichkeits-Scores zwischen Sätzen werden ermittelt, beispielsweise mittels Cosine-Similarity, bei der der Winkel zwischen Vektoren bestimmt wird.
-
Weiterhin bestimmt werden unüberwachtes Lernen, Clusteranalyse innerhalb des gesamten Modells sowie zwischen Klassen, einzelnen Datenmerkmalen oder beliebigen Untergruppen angewendet.
-
Errechnet wird eine Entfernungsmatrix zwischen einzelnen Sätzen. Ferner findet ein Clustering innerhalb einer schlecht erkannten Klasse statt, um eine bessere Unterteilung einer Klasse zu identifizieren.
-
In den beiden nachfolgenden Schritten „Findings“ und „Improvement Suggestions“ geht es um die Erstellung von Untersuchungsbefunden mit Handlungsanweisungen an den Nutzer zur Verbesserung des Modells für jede Ebene des Gesamtmodells des Klassifizierers, der Klassen und um einzelne Trainingsbeispiele. Untersuchungsbefunde sind Typen von allgemeinen oder von anwendungsspezifischen Problemen innerhalb der Trainingsdaten, deren Behebung wahrscheinlich eine Verbesserung der Erkennung und Trennschärfe des Klassifizierers zur Folge haben wird. Ein Beispiel ist „Intent A überschneidet sich mit Intent B“.
-
Die Erstellung von Untersuchungsbefunden erfolgt durch Anwendung von Regeln auf Qualitätsmetriken und umfasst die Anwendung eines maschinell gelernten Modells, welches mit von Validierungsdaten und Qualitätsmerkmalen als unabhängige Veränderliche Variablen trainiert wurde und daraus Untersuchungsbefunde vorhersagen kann.
-
Im nachfolgenden Schritt „Dependency Tree“ findet eine Erstellung eines Baums von Überschneidungen zwischen Klassen unter Anwendung eines Algorithmus zur Erfassung von Überschneidungen und Generierung eines Baums, beispielsweise „intent A überschneidet sich stark mit B, B stark mit C: A -> B -> C“. Hierbei findet eine Verknüpfung von Untersuchungsbefunden mit Handlungsempfehlungen zur Anpassungen der Trainingsdaten, diese wird vollzogen indem Datenmerkmale hinzugefügt, verändert oder entfernt werden, Klassen-Label geändert werden, und indem Klassen hinzugefügt, entfernt oder in der Klassenhierarchie anders zugeordnet werden, beispielsweise indem Intent A mit Intent B zusammengeführt wird.
-
Die Verknüpfung kann erfolgen statisch, durch festgegebene Regeln, oder dynamisch. Falls sich eine Klasse beispielsweise mit nur einer anderen Klasse überschneidet, sollten die beiden Klassen in einer Subhierarchie zusammengefügt werden, falls eine Klasse sich mit allen anderen Klassen überschneidet, sollte sie wahrscheinlich entfernt werden, oder bei erfolgreichem Clustering in bestimmte neue Unterklassen unterteilt werden. Das Verknüpfungsproblem kann ebenfalls wieder als maschinelles-Lernen-Problem gelöst werden
-
Im nachfolgenden Schritt „Severity Impact Analysis“ findet eine Verknüpfung eines Schweregrades mit den Untersuchungsbefunden statt. Hier wird eine dem menschlichen Nutzer verständliche Priorisierung und Klassifizierung der Untersuchungsbefunde vorgenommen, die Bildschirmausgabe kann beispielsweise durch farbliche Markierungen unterstützt werden, etwa rot für schwerwiegend, gelb für ordentlich und grün für gut.
-
Die Verknüpfung erfolgt statisch, durch festgegebene Regeln, oder dynamisch. Falls sich etwa eine Klasse mit nur einer anderen Klasse überschneidet, sollten die beiden Klassen in einer Subhierarchie zusammengefügt werden, falls eine Klasse sich mit allen anderen Klassen überschneidet, sollte sie wahrscheinlich entfernt werden, oder bei erfolgreichem clustering in bestimmte neue Unterklassen unterteilt werden. Das Verknüpfungsproblem kann ebenfalls wieder als maschinelles-Lernen-Problem gelöst werden.
-
Im nachfolgenden Schritt „Feedback Report Generation“ wird dem Entwickler, der die Optimierung durchführt, ein Zwischenergebnis präsentiert. Die Untersuchungsbefunde werden in der Datenbank gespeichert, validiert und per API an die Nutzerumgebung ausgegeben. Die Nutzerumgebung verarbeitet die Untersuchungsbefund-Daten und stellt diese geeignet im Zusammenhang mit dem Modell, Klassen, Trainingsbeispielen dar. Zur Anzeige des Schweregrades wird Programm-Logik angewendet. Damit sieht der Optimierer sofort, wo die Intenterkennung noch problematisch ist, die Darstellung aller Untersuchungsbefunde und Handlungsempfehlungen kann dabei als farbig unterlegte Listenansicht erfolgen.
-
Im nachfolgenden Schritt „Request User for Action“ werden für den Optimierer Handlungsanweisungen erarbeitet und vorgeschlagen. Hierzu erfolgen ein Vergleich und eine Darstellung von Unterschieden zwischen trainierten Klassifizerungsmodellen.
-
Im Backend oder in der Nutzerumgebung können Vergleiche zwischen Klassifizierungsmodellen auf Basis von Untersuchungsbefunden und Handlungsanweisung ermittelt und dargestellt werden. Angenommen, es werden die Modelle A und B verglichen, so könnte sich beispielsweise folgendes Szenario ergeben.
-
Als Lösung von Handlungsanweisungen könnte die Menge von Handlungsanweisungen, welche in Modell A vorhanden sind, in B fehlen. Es könnten auch neue Befunde auftauchen, bei einem Vergleich von Qualitäts-Metriken könnte sich ergeben, dass die Accuracy/Genauigkeit um einige Prozent gestiegen wäre, Im Vergleich würden sich die Unterschiede in Trainingsbeispielen, Klassen und Hierarchien zeigen.
-
Dies würde mit einer Verknüpfung der Befunde und Handlungsanweisung zu Änderungen im Modell führen, insbesondere auf Klassen- oder Datenpunktebene. Als Anweisungen könnten dann vorgeschlagen werden das Rückgängig machen von Änderungen und Erstellung oder Wiederherstellung eines verbesserten Modells, entweder selektiv nach Befunden und Änderungen, oder ganzheitlich, alle Änderungen könnten in der Nutzerumgebung wiederhergestellt werden durch Abfrage ans Backend oder der Datenbank.
-
Im nachfolgenden Schritt „Implement Changes“ geht es um die Umsetzung der Handlungsempfehlungen. Dazu werden direkte Möglichkeiten in der Nutzerumgebung an der Klasse oder einem Datenmerkmal zur Löschung oder Zusammenführung oder Hierarchieänderung bereitgestellt bzw. angeboten.
-
Die Umsetzung kann auch die automatische Ausführung von Handlungsanweisungen sein, etwa die Zusammenführung sich überschneidendender Klassen in einer Hierarchieebene oder die Verteilung von Datenmerkmalen einer unpassenden Klasse auf besser passende Klassen. Das kann auch komplett in einem Schritt durchgeführt werden, mit Darstellung des von der maschinenoptimierten Klassifizierers und den zugrunde liegenden Handlungsanweisungen.
-
Im nachfolgenden Schritt „Trigger Re-Evaluations“ stellt sich die Frage, ob die erreichten Ergebnisse bereits zufriedenstellend sind, oder ob ein weiterer Durchlauf erfolgen sollte.
-
Hierbei kommt es zur Anwendung eines vollumfänglich oder rekursiv maschinell optimierten Algorithmus zur Verbesserung der Trainingsdaten unter Berücksichtigung der Nutzerabsicht, etwa über ein maschinell gelerntes Modell, mit der Zielvorgabe, die Genauigkeit unter Berücksichtigung von Bedingungen zur Wahrung der Nutzerabsichten zu erhöhen, oder mittels Pruning Algorithmen, oder Unsupervised Learning. Weiter geeignete Modelle sind solche, welche auf einem Datensatz von Vorher/Nachher-Modellen trainiert wurden.
-
Auch solche Modelle, die durch geeignete Modifizierungen des Klassifizierers selbst erzeugt werden, beispielsweise indem selektiv für Klassen mit schlechter Erkennung ein genauerer, aber rechenintensivere Klassifizierungsalgorithmus zur Prüfung angewendet wird.
-
Ein Beispiel hierfür ist, dass zuerst das Datenmerkmal klassifiziert wird, und falls eine Klasse mit Cross-Validation-F-Score > 0.6 getroffen wird, die Klassifizierung als Ergebnis ausgegeben wird, und falls nicht, eine erneute Klassifizierung auf dem genaueren, aber rechenintensiveren Klassifizierungsalgorithmus vorgenommen wird und das Ergebnis zur Klassifizierung ausgegeben wird. Auch eine Hyper-Parameter Optimierung kann in diesem Sinne vorgenommen werden.
-
Auch eine Erweiterung der Trainingsbeispiele Natural Language Generation kann erfolgen. Anschließend erfolgt ein Vergleich und eine Darstellung von Unterschieden zwischen maschinell optimierten und vom Nutzer eingegebenen Klassifizierungsmodell, wie oben beschrieben.
-
In einer Ausgestaltung ist vorgesehen, dass ein Vergleichsalgorithmus benutzt wird. Hierbei werden die Schritte Data Entry bis Trigger Evaluation mehrfach durchlaufen, am Ende des jeweils erstellten Feedback Reports wird der Feedback Report jedoch mit dem des vorangegangenen Durchlaufs verglichen. Hierzu kommt ein Vergleichsalgorithmus zum Einsatz, der die Erkennungsqualität des Intents bewertet. Je nach Komplexität des Bewertungsvorgangs kann es sich beim Bewertungsergebnis um einen skalaren Wert oder um einen Vektor oder um eine Matrix handeln. Danach wird der Abstand der beiden Bewertungsergebnisse ermittelt, sinkt dieser Abstand unter einen vorgebbaren Grenzwert, wird die Schleife abgebrochen und der letzte erreichte Feedback-Report wird als Ergebnis weiterverarbeitet.
-
Das Verfahren wird verwendet für die Zusammenführung von Trainings-Datensätzen, die Ermittlung der Transparenz und Reproduzierbarkeit von Modellen für maschinelles Lernen oder die Optimierung von Machine Learning Modellen und Machine Learning Modellparametern.
-
Die Erfindung wird im Folgenden anhand von 3 Figuren näher erläutert.
- 1 zeigt ein Ablaufdiagramm, welches einmal durchlaufen wird.
- 2 zeigt ein Ablaufdiagramm, welches mehrfach durchlaufen wird.
- 3 zeigt den Vergleichsalgorithmus.
-
1 zeigt den Ablauf der Schritte
- 1 Data Entry
- 2 Training
- 3 Validation Dataset
- 4 Quality Metrics
- 5 Findings
- 6 Improvement Suggestions
- 7 Dependency Tree
- 8 Severity Impact Analysis
- 9 Feedback Report Generation
- 10 Request User for Action
- 11 Implement Changes
- 12 Trigger Re-Evaluation
-
Die Schritte 4 bis 8 entsprechen dabei dem Block „Analysis 100“, wobei die Reihenfolge der Schritte innerhalb dieses Blocks teilweise austauschbar ist. Die Schritte 10 bis 12 entsprechen dem Block „Finalisation 200“
-
2 zeigt den Ablauf der Schritte
- 1 Data Entry
- 2 Training
- 3 Validation Dataset
- 4 Quality Metrics
- 5 Findings
- 6 Improvement Suggestions
- 7 Dependency Tree
- 8 Severity Impact Analysis
- 9 Feedback Report Generation
- 10 Request User for Action
- 11 Implement Changes
- 12 Trigger Re-Evaluation
- 13 Rücksprung zum Anfang
-
Wie in 1 entsprechen die Schritte 4 bis 8 dabei dem Block „Analysis 100“, wobei die Reihenfolge der Schritte innerhalb dieses Blocks teilweise austauschbar ist. Die Schritte 10 bis 12 entsprechen dem Block „Finalisation 200.“
-
3 zeigt den Ablauf der Schritte
- 1 Data Entry
- 2 Training
- 3 Validation Dataset
- 4 Quality Metrics
- 5 Findings
- 6 Improvement Suggestions
- 7 Dependency Tree
- 8 Severity Impact Analysis
- 9 Feedback Report Generation
- 10 Request User for Action/ Beenden der Programms
- 11 Implement Changes
- 12 Trigger Re-Evaluation
- 13 Rücksprung zum Anfang
- 14 Feedback Report 1
- 15 Feedback Report 2
- 16 Comparison Algorithm
- 17 Automatic Improvement
-
Wie in 1 und 2 entsprechen die Schritte 4 bis 8 dabei dem Block „Analysis 100“, wobei die Reihenfolge der Schritte innerhalb dieses Blocks teilweise austauschbar ist. Die Schritte 10 bis 12 entsprechen dem Block „Finalisation 200.“ Und die Schritte 14 bis 16 dem Block „Comparison“ 300.
-
Mit diesem Verfahren ist auch eine Aussage über die Qualität des Modells möglich.