Meine Gedanken zu synthetischen Daten

Führen Sie eine Analyse durch, um abzuschätzen, ob die Synthese von Daten eine Verbesserung bietet, anstatt sich auf eine begrenzte Menge „organischer“ Daten zu verlassen.

Motivation

Ich bin ziemlich skeptisch gegenüber der Wirksamkeit von synthetisch generierten Daten — Ein Vorhersagemodell kann nur so gut sein wie der Datensatz, mit dem es trainiert wird. Meine Skepsis entfachte in mir den Wunsch, diese Intuitionen durch objektive Untersuchungen zu untersuchen.

Vorausgesetztes Wissen

Es wird erwartet, dass die Leser dieses Artikels über ein mittleres Verständnis von Ideen im Zusammenhang mit maschinellem Lernen verfügen und bereits mit den folgenden Themen vertraut sind, um das Beste aus diesem Artikel herauszuholen:

  • Statistische Grundkenntnisse, wie die Bedeutung des Begriffs „Standardabweichung“
  • Vertrautheit mit neuronalen Netzwerken, SVM und Entscheidungsbäumen (wenn Sie nur mit einem oder zwei davon vertraut sind, ist das wahrscheinlich in Ordnung)
  • Ein Verständnis der grundlegenden Terminologie des maschinellen Lernens, wie z. B. der Bedeutung von „train/test/validate split“

Hintergrundinformationen zu synthetischen Daten

Die beiden gängigen Methoden zur Generierung synthetischer Daten sind:

  1. Zeichnen von Werten gemäß einer Verteilung oder Sammlung von Verteilungen
  2. Agentenbasierte Modellierung

In dieser Studie werden wir die erste Kategorie untersuchen. Beginnen wir mit einem Beispiel, um diese Idee zu festigen!

Stellen Sie sich vor, Sie versuchten anhand der gemessenen Größe und des gemessenen Gewichts festzustellen, ob ein Tier eine Maus, ein Frosch oder eine Taube war, aber Sie haben nur einen Datensatz mit Messungen für zwei von jedem Tier. Leider werden wir mit einem so kleinen Datensatz kein sehr gutes Modell trainieren können!

Eine Antwort auf dieses Problem besteht darin, mehr Daten zu synthetisieren, indem die Verteilungen dieser Merkmale geschätzt werden. Beginnen wir zum Beispiel mit dem Frosch (mit Verweis auf this Wikipedia-Artikel und nur unter Berücksichtigung erwachsener Frösche).

Das erste Merkmal, ihre durchschnittliche Länge (7,5 cm ± 1,5 cm), konnte durch Ziehen von Werten aus einer Normalverteilung mit einem Mittelwert von 7,5 und einer Standardabweichung von 1,5 generiert werden. Eine ähnliche Technik könnte verwendet werden, um ihr Gewicht vorherzusagen. Die Informationen, die wir haben, beinhalten jedoch nicht den typischen Gewichtsbereich, sondern nur, dass der Durchschnitt 22,7 g beträgt. Eine Idee wäre, eine willkürliche Standardabweichung von 10 % (2,27 g) zu verwenden. Leider ist dies nur das Ergebnis reiner Spekulation und daher wahrscheinlich ungenau.

Angesichts der Verfügbarkeit zuverlässiger Informationen zu ihren Merkmalen und da es recht einfach ist, diese Arten anhand dieser Merkmale zu unterscheiden, würde dies wahrscheinlich ausreichen, um ein gutes Modell zu trainieren. Wenn Sie jedoch zu differenzierteren Systemen mit mehr Funktionen wechseln, über die Sie auch weniger wissen, wird die Synthese nützlicher Daten erheblich schwieriger.

Diese Analyse verwendet die gleiche Idee wie die oben diskutierte Analogie. Wir werden einige Datensätze mit 10 Merkmalen erstellen. Diese Datensätze enthalten zwei verschiedene Klassifizierungskategorien mit einer gleichen Anzahl von Proben für jede Kategorie.

„Bio“-Daten

Jede Kategorie folgt bestimmten Normalverteilungen für jedes ihrer Merkmale. Beispielsweise hat das erste Feature einen Mittelwert von 1500 und eine Standardabweichung von 360 für Proben aus der ersten Kategorie und einen Mittelwert von 1300 und eine Standardabweichung von 290 für Proben aus der zweiten Kategorie. Die Verteilungen für die restlichen Funktionen finden Sie unten:

FeatureMittel 1Std. Entwickler 1Mittel 2Std. Entwickler 2
115003601300290
25924120059241500
39.2312.13.8
4291268fünfzehn
5184.218.54.0
662.411.173.213
70,420,020,420,03
86357684089
90,0520,0210,0630,027
1087.012587.0325

Diese Tabelle ist ziemlich dicht, aber sie kann wie folgt zusammengefasst werden:

  • Vier Merkmale, die sind praktisch nicht zu unterscheiden zwischen den Klassen,
  • Vier Merkmale, die erhebliche Überschneidungen haben, aber sein sollten teilweise unterscheidbarund
  • Zwei Funktionen, die sich nur geringfügig überschneiden und sollten normalerweise unterscheidbar sein.

Es werden zwei dieser Datensätze erstellt, ein Datensatz mit 1000 Stichproben, der als Validierungssatz reserviert wird, und ein weiterer Datensatz mit 1000 Stichproben, der für Schulungen/Tests verwendet werden kann.

Dadurch entsteht ein Datensatz, der die Klassifizierung vornimmt gerade hart genug.

Synthetische Daten

Jetzt fängt es an, interessant zu werden! Die synthetischen Daten folgen einer von zwei benutzerdefinierten Verteilungen. Das erste ist das, was ich als “Spikes-Verteilung.” Bei dieser Verteilung können die synthetischen Merkmale nur eine Handvoll diskreter Werte mit bestimmten Wahrscheinlichkeiten für jeden Wert annehmen. Wenn die ursprüngliche Verteilung beispielsweise einen Mittelwert von 3 und eine Standardabweichung von 1 hatte, könnten Sie eine Spitze bei haben 2 (27 %), 3 (46 %) und 4 (27 %).

Die zweite benutzerdefinierte Distribution nenne ich “Plateaus-Verteilung.” Diese Verteilung ist einfach eine stückweise gleichmäßige Verteilung. Die Wahrscheinlichkeit der Plateaus wird unter Verwendung der Wahrscheinlichkeit der Normalverteilung in der Mitte des Plateaus abgeleitet. Es kann eine beliebige Anzahl von Spitzen oder Plateaus verwendet werden, und je mehr Sie hinzufügen, desto mehr wird die Verteilung eher der Normalverteilung ähneln.

Zur Verdeutlichung zeigt die folgende Abbildung diese Verteilungen:
(Hinweis: Der Graph der Spitzenverteilung ist keine Wahrscheinlichkeitsdichtefunktion)

Distributionen.png

Der Prozess des Synthetisierens von Daten für dieses Problem wird eine sehr wichtige Annahme treffen, die zugunsten einer Angleichung der synthetischen Daten an die „organischen“ Daten fehlschlägt. Diese Annahme ist, dass der wahre Mittelwert und die Standardabweichung jedes Merkmal/Kategorie-Paares bekannt sind. Wenn die synthetischen Daten in Wirklichkeit zu weit von diesen Werten entfernt waren, konnte dies die Genauigkeit des trainierten Modells stark beeinträchtigen.

Okay, aber warum sollten Sie diese Distributionen verwenden? Wie werden sie der Realität zugeordnet?

Ich bin froh, dass du gefragt hast! In einem begrenzten Datensatz können Sie möglicherweise feststellen, dass ein Merkmal für eine bestimmte Kategorie eine Handvoll Werte annimmt. Stellen Sie sich vor, diese Werte wären:

(50, 75, 54, 49, 24, 58, 49, 64, 43, 36)

Oder wenn wir die Liste sortieren:

(24, 36, 43, 49, 49, 50, 54, 58, 64, 75)

Um Daten für diese Funktion zu generieren, könnten Sie diese in drei Abschnitte aufteilen, wobei der erste Abschnitt die kleinsten 20 %, die 60 % in der Mitte der zweite Abschnitt und der dritte Abschnitt die größten 20 wären %. Unter Verwendung dieser drei Abschnitte könnten Sie dann ihre Mittelwerte und ihre Standardabweichungen berechnen: etwa (30, 6,0), (50,5, 4,6) bzw. (69,5, 5,5). Wenn die Standardabweichungen tendenziell ziemlich niedrig sind, sagen wir etwa 10 % oder weniger des entsprechenden Mittelwerts, könnten Sie diesen Abschnitt als Spitze bei diesem Mittelwert behandeln. Andernfalls könnten Sie diesen Abschnitt als Plateau mit einer Breite behandeln, die doppelt so groß ist wie die Standardabweichung dieses Abschnitts und um den Mittelwert dieses Abschnitts zentriert ist.

Oder mit anderen Worten, sie leisten gute Arbeit, indem sie eine unvollkommene Datensynthese nachahmen.

Mit diesen Verteilungen werden zwei Datensätze mit 800 Stichproben erstellt – einer mit den Spikes und ein anderer mit den Plateaus. Die Modelle werden mit vier verschiedenen Datensätzen trainiert, um die Nützlichkeit jedes einzelnen zu vergleichen:

  • Vollständig – Der vollständige organische Datensatz mit 1000 Stichproben (wird verwendet, um eine Vorstellung von einer Obergrenze zu bekommen)
  • Real – Nur 20 % des organischen Beispieldatensatzes (Simulation der Situation ohne Hinzufügen synthetischer Daten)
  • Spikes – Der „Real“-Datensatz kombiniert mit dem Spike-Datensatz (1000 Proben)
  • Plateaus – Der “echte” Datensatz kombiniert mit dem Datensatz des Plateaus (1000 Proben)

Nun zum spannenden Teil!

Um die Stärke jedes dieser Datensätze zu testen, wurden drei verschiedene Techniken des maschinellen Lernens verwendet: Multi-Layer Perceptrons (MLPs), Support Vector Machines (SVMs) und Decision Trees. Da bestimmte Merkmale viel größer sind als andere, wurde zur Unterstützung des Lernens die Merkmalsskalierung genutzt, um die Daten zu normalisieren. Die Hyperparameter der verschiedenen Modelle wurden unter Verwendung einer Gittersuche abgestimmt, um die Wahrscheinlichkeit zu maximieren, zum stärksten Satz von Hyperparametern zu gelangen.

Insgesamt wurden 24 verschiedene Modelle auf acht verschiedenen Datensätzen trainiert, um eine Vorstellung davon zu bekommen, welche Auswirkungen die synthetischen Daten auf die Effektivität des Lernens hatten. Fühlen Sie sich frei, den Code zu überprüfen hier!

Trommelwirbel bitte…

Nach vielen Stunden der Abstimmung von Hyperparametern und dem Aufschreiben von Genauigkeitsmessungen tauchten einige kontraintuitive Ergebnisse auf! Die vollständigen Ergebnisse finden Sie in den folgenden Tabellen:

MLP

VollRealSpitze 9Plateau 9Spitze 5Plateau 5Spitze 3Plateau 3
97,095.397.895.897.798,095.397.4

SVM

VollRealSpitze 9Plateau 9Spitze 5Plateau 5Spitze 3Plateau 3
97.396.397.297,597.297.195.997.3

Entscheidungsbaum

VollRealSpitze 9Plateau 9Spitze 5Plateau 5Spitze 3Plateau 3
94.891.190.494.591.794.785.193.2

In diesen Tabellen bezieht sich “Spike 9” oder “Plateau 9” auf die Verteilung und die Anzahl der verwendeten Spikes/Plateaus. Die Werte in den Zellen sind die resultierenden Genauigkeiten der Modelle, die unter Verwendung der entsprechenden Zug-/Testdaten trainiert/getestet und dann anhand der Validierungsdaten validiert wurden. Denken Sie auch daran, dass die Kategorie „Vollständig“ eine theoretische Obergrenze für die Genauigkeit sein sollte und die Kategorie „Real“ unsere Basislinie ist, die wir ohne synthetische Daten erreichen könnten.

Ein wichtiger Hinweis ist, dass die Trainings-/Testgenauigkeiten für (fast) jeden Versuch signifikant größer waren als die Validierungsgenauigkeiten. Obwohl MLP beispielsweise bei Spikes-5 97,7 % erzielte, erzielte es bei den Zug-/Testdaten für denselben Versuch 100 % bzw. 99 %. Dies kann zu erheblichen Überschätzungen der Wirksamkeit des Modells führen, wenn es in der realen Welt verwendet wird. Den vollständigen Satz dieser Messungen finden Sie auf der GitHub für dieses Projekt.

Schauen wir uns diese Ergebnisse genauer an.

Sehen wir uns zunächst die Trends zwischen den Modellen an (d. h. die Auswirkungen der Art des synthetischen Datensatzes über alle Techniken des maschinellen Lernens hinweg). Es scheint, dass das Hinzufügen weiterer Spitzen/Plateaus nicht unbedingt beim Lernen half. Sie können im Allgemeinen eine Verbesserung zwischen 3 vs. 5 Spikes/Plateaus sehen, die sich jedoch entweder abflacht oder leicht abfällt, wenn Sie 5 vs. 9 betrachten.

Für mich scheint dies kontraintuitiv zu sein. Ich erwartete eine fast konstante Verbesserung, wenn mehr Spitzen/Plateaus hinzugefügt wurden, da dies zu einer Verteilung führen würde, die eher der Normalverteilung ähnelt, die zum Synthetisieren der Daten verwendet wird.

Betrachten wir nun Trends innerhalb des Modells (dh die Auswirkungen verschiedener synthetischer Datensätze auf bestimmte Techniken des maschinellen Lernens). Für die MLPs schien es ein Glücksfall zu sein, ob Spitzen oder Plateaus zu einer besseren Leistung führen würden. Bei den SVMs schienen sowohl Spitzen als auch Plateaus ungefähr gleich gut zu funktionieren. Für die Entscheidungsbäume sind Plateaus jedoch ein klarer Gewinner.

Insgesamt wurden jedoch durchweg deutliche Verbesserungen bei der Verwendung der synthetischen Datensätze beobachtet!

Zukünftige Arbeit

Ein wichtiger Faktor, den es zu beachten gilt, ist, dass die Ergebnisse dieses Artikels, obwohl sie in gewisser Weise nützlich sind, immer noch ziemlich spekulativ sind. Ein paar weitere Blickwinkel müssen analysiert werden, um mit Sicherheit behaupten zu können, endgültige Schlussfolgerungen zu ziehen.

Eine Annahme, die gemacht wurde, ist, dass jede Klasse nur einen “Typ” hat, aber das ist in der realen Welt nicht immer der Fall. Zum Beispiel sind ein Dobermann und ein Chihuahua beides Hunde, aber ihre Gewichtsverteilung würde sehr unterschiedlich aussehen.

Darüber hinaus handelt es sich im Wesentlichen nur um einen einzigen Datensatztyp. Ein weiterer Aspekt, der berücksichtigt werden sollte, ist das Ausprobieren ähnlicher Experimente, außer mit Datensätzen, die unterschiedliche Dimensionen von Merkmalsräumen haben. Das könnte beispielsweise bedeuten, 15 Merkmale statt 10 oder Datensätze zu haben, die Bilder emulieren.

Ich plane, die Forschung fortzusetzen, um den Umfang dieser Studie zu erweitern, also bleiben Sie dran!


Über den Autor

Eric erwarb seinen Bachelor-Abschluss in Software Engineering und seinen Master-Abschluss in Machine Learning. Derzeit arbeitet er als Ingenieur für maschinelles Lernen in Toronto, Kanada. Er hat an Problemen im Zusammenhang mit NLP, Computer Vision und Business-Intelligence-Systemen mit LSTMs, CNNs, Entscheidungsbaum-Ensembles, SVMs und vielen mehr gearbeitet!

Wenn Sie mehr über ihn erfahren möchten, erkunden Sie ihn Seite? ˅.

Similar Posts

Leave a Reply

Your email address will not be published.