DE102023127605A1 - Generator für synthetische Datensätze - Google Patents

Generator für synthetische Datensätze Download PDF

Info

Publication number
DE102023127605A1
DE102023127605A1 DE102023127605.0A DE102023127605A DE102023127605A1 DE 102023127605 A1 DE102023127605 A1 DE 102023127605A1 DE 102023127605 A DE102023127605 A DE 102023127605A DE 102023127605 A1 DE102023127605 A1 DE 102023127605A1
Authority
DE
Germany
Prior art keywords
synthetic
dataset
data set
input
samples
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
DE102023127605.0A
Other languages
English (en)
Inventor
Shalini De Mello
Christian Jacobsen
Xunlei Wu
Stephen Tyree
Alice Li
Wonmin Byeon
Shangru Li
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Nvidia Corp
Original Assignee
Nvidia Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Nvidia Corp filed Critical Nvidia Corp
Publication of DE102023127605A1 publication Critical patent/DE102023127605A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/0985Hyperparameter optimisation; Meta-learning; Learning-to-learn
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • General Health & Medical Sciences (AREA)
  • Biomedical Technology (AREA)
  • Biophysics (AREA)
  • Computational Linguistics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Health & Medical Sciences (AREA)
  • Image Analysis (AREA)

Abstract

Maschinelles Lernen ist ein Prozess, der ein Modell aus einem gegebenen Datensatz erlernt, wobei das Modell dann verwendet werden kann, um Vorhersagen über neue Daten zu treffen. Um die Kosten zu senken, die mit dem Sammeln und Kennzeichnen realer Datensätze zur Verwendung beim Trainieren des Modells verbunden sind, können Computerprozesse synthetisch Datensätze erzeugen, die reale Daten simulieren. Die vorliegende Offenbarung verbessert die Effektivität solcher synthetischen Datensätze für das Training von maschinellen Lernmodellen, die in realen Anwendungen eingesetzt werden, insbesondere durch die Erzeugung eines synthetischen Datensatzes, der speziell auf eine spezifizierte nachgelagerte Aufgabe abzielt (z. B. eine bestimmte Computervision-Aufgabe, eine bestimmte Aufgabe zur Verarbeitung natürlicher Sprache usw.).

Description

  • Technisches Gebiet
  • Die vorliegende Offenbarung betrifft die Erzeugung synthetischer Trainingsdaten zur Verwendung beim Training von maschinellen Lernmodellen.
  • Hintergrund
  • Maschinelles Lernen ist eine Technik der künstlichen Intelligenz, bei der ein Computerprozess ein Modell aus einem gegebenen Datensatz lernt, das dann dazu verwendet werden kann, eine Vorhersage über neue Daten zu treffen. Beim maschinellen Lernen wird das Modell also aus den Daten gelernt, anstatt als vorkonfigurierte Gleichung definiert zu werden. Wie bereits erwähnt, stützt sich das maschinelle Lernen auf einen bestimmten Datensatz, um das Modell zu trainieren, so dass die Genauigkeit des Modells direkt an die Qualität des Datensatzes gebunden ist.
  • Üblicherweise werden maschinellen Lernmodelle an realen Datensätzen trainiert, d. h. an realen Datenaufzeichnungen oder anderen in der realen Welt erfassten Daten, die in der Regel manuell mit den Informationen markiert werden, die für das maschinelle Lernen zum Erlernen eines relevanten Modells erforderlich sind. Beispielsweise kann ein Modell, das die Klassifizierung eines Objekts in einem Bild vorhersagt, an einem Datensatz von realen Bildern von Objekten trainiert werden, die mit ihren jeweiligen Objektklassifizierungen markiert wurden. Es hat sich zwar gezeigt, dass das Trainieren von Modellen an immer größeren realen Datensätzen die Genauigkeit solcher Modelle verbessert, wenn sie für eine nachgelagerte Aufgabe verwendet werden, doch kann das Sammeln großer realer Datensätze unerschwinglich teuer sein, beispielsweise aufgrund der Erfassung und erforderlichen Markierung der realen Daten.
  • Um dieses Problem anzugehen, hat das Trainieren von Modellen des maschinellen Lernens an synthetisch erzeugten Daten in den letzten Jahren stark an Bedeutung gewonnen, mit dem Ziel, die mit dem Sammeln und Markieren realer Datensätze verbundenen Kosten erheblich zu senken. Die vollständige Erzeugung von Datensätzen aus synthetischen Erzeugungsprozessen kann die Kosten erheblich senken und ermöglicht eine bessere Kontrolle während der Entwicklung. Andererseits können diese Modelle nicht effektiv in einem realen Bereich eingesetzt werden (d. h. um Vorhersagen für reale Daten zu treffen), insbesondere da die neuesten synthetischen Erzeugungsprozesse auf einer Randomisierung des Bereichs beruhen, ohne die spezielle nachgelagerte Aufgabe zu berücksichtigen, für die das Modell verwendet werden soll. Infolgedessen führt die Kluft zwischen dem synthetischen und dem realen Bereich zu einer schlechten Verallgemeinerung des Modells auf Anwendungen in der realen Welt.
  • Es besteht daher die Notwendigkeit, diese Probleme und/oder andere mit dem Stand der Technik verbundene Probleme zu lösen. Beispielsweise besteht Bedarf an der Erzeugung eines synthetischen Datensatzes, der zum Trainieren eines maschinellen Lernmodells verwendet werden kann, wobei der synthetische Datensatz speziell auf eine bestimmte nachgelagerte Aufgabe abzielt.
  • Zusammenfassung
  • Es werden ein Verfahren, ein computerlesbares Medium und ein System zur Erzeugung eines synthetischen Datensatzes offenbart. Ein Eingabedatensatz wird verarbeitet, um einen synthetischen Datensatz zu erzeugen, der auf eine spezifizierte nachgelagerte Aufgabe abzielt. Außerdem wird der synthetische Datensatz ausgegeben.
  • Kurzbeschreibung der Zeichnungen
    • 1 stellt ein Verfahren zum Erzeugen eines synthetischen Datensatzes gemäß einer Ausführungsform dar.
    • 2 stellt ein Verfahren zum Gewichten von Samples in einem synthetischen Eingabedatensatz gemäß einer Ausführungsform dar.
    • 3 stellt ein Verfahren zum Kuratieren eines Eingabedatensatzes, um einen synthetischen Datensatz zu bilden, gemäß einer Ausführungsform dar.
    • 4 stellt ein Flussdiagramm eines Systems, das einen synthetischen Datensatz aus einem Eingabedatensatz kuratiert, gemäß einer Ausführungsform dar.
    • 5 stellt ein Verfahren zum aktiven Synthetisieren eines Eingabedatensatzes, um einen kleineren synthetischen Datensatz zu bilden, gemäß einer Ausführungsform dar.
    • 6 stellt ein Flussdiagramm eines Systems, das aktiv einen synthetischen Datensatz aus einem Eingabedatensatz synthetisiert, gemäß einer Ausführungsform dar.
    • 7 stellt ein Verfahren zum Verwenden eines maschinellen Lernmodells in einer nachgelagerten Aufgabe, gemäß einer Ausführungsform dar.
    • 8A stellt eine Inferenz- und/oder Trainingslogik gemäß mindestens einer Ausführungsform dar;
    • 8B stellt eine Inferenz- und/oder Trainingslogik gemäß mindestens einer Ausführungsform dar;
    • 9 stellt das Training und den Einsatz eines neuronalen Netzes gemäß mindestens einer Ausführungsform dar;
    • 10 stellt ein beispielhaftes Rechenzentrumssystem gemäß mindestens einer Ausführungsform dar.
  • Detaillierte Beschreibung
  • 1 stellt ein Verfahren 100 zum Erzeugen eines synthetischen Datensatzes gemäß einer Ausführungsform dar. Das Verfahren 100 kann von einer Vorrichtung durchgeführt werden, die in einer Ausführungsform eine Verarbeitungseinheit, ein Programm, eine kundenspezifische Schaltung oder eine Kombination davon aufweist. In einer anderen Ausführungsform kann ein System, das einen nichtflüchtigen Speicher aufweist, der Anweisungen enthält, und ein oder mehrere Prozessoren, die mit dem Speicher in Verbindung stehen, die Anweisungen ausführen, um das Verfahren 100 durchzuführen. In einer anderen Ausführungsform kann ein nichtflüchtiges computerlesbares Medium Computerbefehle speichern, die, wenn sie von einem oder mehreren Prozessoren einer Vorrichtung ausgeführt werden, die Vorrichtung veranlassen, das Verfahren 100 durchzuführen.
  • In Operation 102 wird ein Eingabedatensatz verarbeitet, um einen synthetischen Datensatz zu erzeugen, der auf eine spezifizierte nachgelagerte Aufgabe abzielt. Im Rahmen der vorliegenden Beschreibung bezieht sich der Eingabedatensatz auf einen Datensatz, der eingegeben (z. B. abgerufen, gesammelt usw.) wird, um verarbeitet zu werden und einen synthetischen Datensatz zu erzeugen, der auf eine spezifizierte nachgelagerte Aufgabe abzielt. In einer Ausführungsform umfasst der Eingabedatensatz einen synthetischen Eingabedatensatz oder, mit anderen Worten, einen synthetisch erzeugten Teil von Daten (d. h., der durch einen zumindest teilweise automatisierten Computerprozess erzeugt wurde). In einer Ausführungsform umfasst der Eingabedatensatz einen Eingabedatensatz aus der realen Welt, d. h. einen Teil der in der realen Welt erfassten Daten (z. B. in Kamerabildern, Videos usw.).
  • In einer Ausführungsform, in der der Eingabedatensatz sowohl den synthetischen Eingabedatensatz als auch den realen Eingabedatensatz enthält, kann der synthetische Eingabedatensatz eine größere Anzahl von Samples enthalten als der reale Eingabedatensatz. In einer Ausführungsform kann der Eingabedatensatz, wie z. B. der synthetische Eingabedatensatz und/oder der reale Eingabedatensatz, markierte Samples enthalten. Die Markierungen können spezifisch für die nachgelagerte Aufgabe sein (z. B. verwendbar für das Training eines maschinellen Lernmodells für die nachgelagerte Aufgabe). In einer Ausführungsform kann die nachgelagerte Aufgabe in den markierten realen Datensätzen dargestellt werden. Bei der nachgelagerten Aufgabe kann es sich um eine Computervision-Aufgabe (z. B. Objekterkennung, Segmentierung usw.), eine Aufgabe zur Verarbeitung natürlicher Sprache usw. handeln.
  • Wie oben erwähnt, wird der Eingabedatensatz verarbeitet, um den synthetischen Datensatz zu erzeugen, der auf eine spezifizierte nachgelagerte Aufgabe abzielt. Der synthetische Datensatz, der durch die Verarbeitung des Eingabedatensatzes erzeugt wird, bezieht sich auf einen Datensatz, der durch einen zumindest teilweise automatisierten Computerprozess erzeugt wird und der auf die spezifizierte nachgelagerte Aufgabe abzielt. In einer Ausführungsform umfasst der synthetische Datensatz also keine Daten, die in der realen Welt gesammelt (z. B. erfasst) wurden, wie Bilder der realen Welt usw.
  • In einer Ausführungsform kann der synthetische Datensatz, der auf die angegebene nachgelagerte Aufgabe abzielt, aus dem Eingabedatensatz kuratiert werden. Dementsprechend kann die Verarbeitung des Eingabedatensatzes das Kuratieren (z. B. Reduzieren, Aussortieren usw.) des Eingabedatensatzes umfassen. Beispielsweise kann eine bestimmte Anzahl am höchsten gewichteter synthetischer Samples im Eingabedatensatz bestimmt werden, und die am höchsten gewichteten synthetischen Samples können als synthetischer Datensatz ausgewählt werden (z. B. unter Entfernung der restlichen synthetischen Samples).
  • In einer anderen Ausführungsform kann der synthetische Datensatz aus dem Eingabedatensatz synthetisiert werden. Dementsprechend kann die Verarbeitung des Eingabedatensatzes das Synthetisieren (z. B. Vergrößern, Erweitern usw.) des Eingabedatensatzes umfassen. Beispielsweise kann der synthetische Datensatz neu erzeugte synthetische Samples enthalten, die den Eingabedatensatz erweitern. In einer Ausführungsform können die neu erzeugten synthetischen Samples zusätzliche synthetische Samples enthalten, die über mehrere Iterationen erzeugt wurden. In einer Ausführungsform können die neu erzeugten synthetischen Samples zusätzliche synthetische Samples enthalten, die erzeugt werden durch: Bestimmen einer definierten Anzahl von am höchsten gewichteten synthetischen Samples, die im Eingabedatensatz enthalten sind, Berechnen einer generativen Parameterverteilung der am höchsten gewichteten synthetischen Samples, die im Eingabedatensatz enthalten sind, Auswählen von mehreren Syntheseparametern, basierend auf der generativen Parameterverteilung, und Erzeugen der zusätzlichen synthetischen Samples, basierend auf den mehreren Syntheseparametern.
  • In einer Ausführungsform kann die Verarbeitung mit einem Meta-Lernalgorithmus durchgeführt werden. In einer Ausführungsform kann der Meta-Lernalgorithmus mehrere synthetische Samples, die im Eingabedatensatz enthalten sind, neu gewichten. Die aus der Neugewichtung resultierenden Samplegewichte können für die oben beschriebene Kuration des Eingabedatensatzes und/oder die Synthese des Eingabedatensatzes verwendet werden.
  • In einer Ausführungsform kann die Verarbeitung des Eingabedatensatzes das Erlernen einer Bedeutung des synthetischen Sample und ihrer Erzeugungsparameter in Bezug auf die nachgelagerte Zielaufgabe für jedes aus mehreren synthetischen Samples einschließen, die im Eingabedatensatz enthalten sind. In einer Ausführungsform kann die Bedeutung als Gewicht angegeben werden. Das Gewicht kann durch die oben erwähnte Neugewichtung bestimmt werden. In einer Ausführungsform kann der synthetische Datensatz dann basierend auf der erlernten Bedeutung für jede der mehreren im Eingabedatensatz enthaltenen synthetischen Samples erzeugt werden.
  • Der synthetische Datensatz wird erzeugt, um die angegebene nachgelagerte Aufgabe zu erfüllen, indem die angegebene nachgelagerte Aufgabe während der Verarbeitung des Eingabedatensatzes berücksichtigt wird. In einer Ausführungsform, in der der Eingabedatensatz den synthetischen Eingabedatensatz und den realen Eingabedatensatz umfasst, können die Samples des synthetischen Eingabedatensatzes, wie oben beschrieben, basierend auf den Samples des realen Eingabedatensatzes neu gewichtet werden. Beispielsweise kann die Neugewichtung der synthetischen Eingabedatensatzproben in Bezug auf einen Verlust des realen Datensatzes gemäß der nachgelagerten Aufgabe durchgeführt werden. In einer Ausführungsform kann der synthetische Datensatz entsprechend für die nachgelagerte Aufgabe optimiert werden.
  • In Operation 104 wird der synthetische Datensatz ausgegeben. Die Ausgabe des synthetischen Datensatzes kann für jeden gewünschten Zweck erfolgen. In einer Ausführungsform wird der synthetische Datensatz als Trainingsdatensatz zum Trainieren eines maschinellen Lernmodells für die nachgelagerte Zielaufgabe ausgegeben. In einer Ausführungsform kann das Verfahren 100 ferner das Trainieren des maschinellen Lernmodells für die nachgelagerte Zielaufgabe unter Verwendung des synthetischen Datensatzes umfassen. Durch das Trainieren des maschinellen Lernmodells am synthetischen Datensatz, der speziell für die nachgelagerte Aufgabe erzeugt wurde, kann die Leistung des maschinellen Lernmodells bei reduzierten Trainings- und Datensatzrenderingkosten verbessert werden.
  • Es sollte beachtet werden, dass das Verfahren 100 durchgeführt werden kann, um einen synthetischen Datensatz für eine beliebige nachgelagerte Aufgabe zu erzeugen. Dementsprechend kann das Verfahren 200 nach Belieben wiederholt werden, um verschiedene synthetische Datensätze für verschiedene nachgelagerte Aufgaben zu erzeugen.
  • Weitere Ausführungsformen werden nun in der Beschreibung der nachfolgenden Figuren bereitgestellt. Es sollte beachtet werden, dass die Ausführungsformen, die hier unter Bezugnahme auf das Verfahren 100 der 1 offenbart werden, für jede der Ausführungsformen der übrigen nachstehenden Figuren gelten und/oder in Kombination mit ihnen verwendet werden können. Es sollte beachtet werden, dass der gemäß dem Verfahren 100 erzeugte synthetische Datensatz in den nachfolgenden Beschreibungen als synthetischer Ausgabedatensatz bezeichnet werden kann, um einen solchen synthetischen Datensatz von dem synthetischen Eingabedatensatz zu unterscheiden, der oben und an anderer Stelle in den offenbarten Ausführungsformen erwähnt wird.
  • 2 stellt ein Verfahren 200 zur Gewichtung von Samples in einem synthetischen Eingabedatensatz gemäß einer Ausführungsform dar. Das Verfahren 200 kann gemäß dem Verfahren 100 von 1 durchgeführt werden. Beispielsweise kann das Verfahren 200 verwendet werden, um Gewichte der Samples des synthetischen Eingabedatensatzes zu bestimmen, die wiederum verwendet werden können, um einen synthetischen Eingabedatensatz zu kuratieren und/oder zu synthetisieren, um einen synthetischen Ausgabedatensatz zu bilden, der auf eine nachgelagerte Aufgabe abzielt. Die oben beschriebenen Definitionen und Ausführungsformen können auch für die Beschreibung der vorliegenden Ausführungsform gelten.
  • In Operation 202 wird auf einen Eingabedatensatz mit einem synthetischen Eingabedatensatz und einem realen Eingabedatensatz zugegriffen. Auf den synthetischen Eingabedatensatz und den realen Eingabedatensatz kann aus demselben oder aus verschiedenen Repositorys zugegriffen werden. Der synthetische Eingabedatensatz und der reale Eingabedatensatz können für eine bestimmte nachgelagerte Aufgabe mit einem Etikett versehen werden.
  • In Operation 204 wird jedes Sample im synthetischen Eingabedatensatz basierend auf den Samples im realen Eingabedatensatz gewichtet. In einer Ausführungsform kann dies eine Neugewichtung der Samples des synthetischen Eingabedatensatzes basierend auf den Samples des realen Eingabedatensatzes umfassen. In einer Ausführungsform kann die Neugewichtung der Samples des synthetischen Eingabedatensatzes in Bezug auf einen Verlust des realen Datensatzes gemäß der nachgelagerten Aufgabe durchgeführt werden.
  • Beispielhafte Implementierung des Verfahrens 200
  • Das Verfahren 200 kann als optimierungsbasierter Meta-Lernalgorithmus zur Neugewichtung implementiert werden. Das Verfahren 200 greift auf einen synthetischen Eingabedatensatz von N Samples und einen (repräsentativen) realen Eingabedatensatz von M Samples zu, wobei in einer Ausführungsform N >> M ist, und das Verfahren 200 gibt einen Satz von N Gewichten {w} aus, die jedem der Samples im synthetischen Eingabedatensatz entsprechen. Um die Neugewichtung durchzuführen, muss auch die nachgelagerte Aufgabe spezifiziert werden, insbesondere damit die Gewichte, die auf dem synthetischen Eingabedatensatz gelernt wurden, für eine bestimmte nachgelagerte Aufgabe spezifisch sind. Der Verlust, der zum Trainieren des Modells für die spezifizierte Aufgabe verwendet wird, wird mit C bezeichnet.
  • Eine Iteration t des Trainingsverfahrens des Neugewichtungsalgorithmus beginnt mit der Auswahl eines Stapels {Xs, ys} mit der Größe bs aus den N synthetischen Samples und eines Stapels {Xr, yr} mit der Größe br aus den M realen Samples. Die Datensamples werden mit X und den entsprechenden Bezeichnungen y bezeichnet. Ein Vorwärtsdurchlauf wird für den synthetischen Stapel durchgeführt, um Vorhersagen zu erhalten ŷs = f(Xs, Øt), wobei Øt die Modellparameter bei Iteration t sind. Ein Zwischenverlust wird gemäß Gleichung 1 berechnet. l s = i 1 b s ε i C ( y s ,   i ,   y ^ s ,   i ) , wobei  ε i = 0,   i { 1,   , b s } .
    Figure DE102023127605A1_0001
  • Es wird ein Rückwärtsdurchlauf durchgeführt, um den Gradientenvektor l s = l s t
    Figure DE102023127605A1_0002
    zu berechnen, und die Modellparameter werden vorübergehend durch Gleichung 2 aktualisiert. ^ t = t α l s , wobei  α  die Meta Lernrate ist .
    Figure DE102023127605A1_0003
  • Der Vektor ∈ wird insgesamt auf Nullen gesetzt, um nur die Gradienten ∇ls aber nicht den Wert von ls für das Ergebnis des Algorithmus zu berücksichtigen. Nach der Aktualisierung der Modellparameter wird ein Vorwärtsdurchlauf am realen Stapel durchgeführt, um Vorhersagen ŷr = f(Xr, Ø̂t) zu erhalten. Ein mittlerer Verlust wird für die realen Samples nach Gleichung 3 berechnet. l r = 1 b r i = 1 b r ε i C ( y r ,   i ,   y ^ r ,   i )
    Figure DE102023127605A1_0004
  • Der Gradientenvektor l r = l r ε
    Figure DE102023127605A1_0005
    wird dann durch einen Rückwärtsdurchlauf berechnet. Die Zwischengewichte für die synthetischen Samples werden als das Negativ dieses Gradientenvektors bestimmt, aber auf ein Minimum von Null begrenzt, um zu verhindern, dass die gewichtete Summe aufgebläht wird, gemäß Gleichung 4. w = max ( l r ,   0 )
    Figure DE102023127605A1_0006
  • Die endgültigen Gewichte werden durch Batch-Normierung der Gewichtswerte bestimmt. Die Intuition hinter diesem Algorithmus ist, dass, wenn wi > wj, ein Schritt in Gradientenrichtung C ( y ƒ ,   i ,   y ^ ƒ ,   i ) t
    Figure DE102023127605A1_0007
    zu einer größeren Verringerung des Verlustes über die realen Daten lt führt als ein Schritt in Gradientenrichtung C ( y ƒ ,   j ,   y ^ ƒ ,   j ) t .
    Figure DE102023127605A1_0008
    Der endgültige Verlust wird als gewichteter Verlust für die synthetischen Samples berechnet und wird durch Gleichung 5 berechnet. l ^ s = i = 1 b s w i C ( y s ,   i ,   y ^ s ,   i )
    Figure DE102023127605A1_0009
  • Bei den synthetischen Samples handelt es sich also nicht einfach um die Samples, die den realen Samples „am nächsten“ kommen, sondern um die Samples, aus denen das Modell die meisten Informationen über die in den realen Daten dargestellte nachgelagerte Aufgabe gewinnt. Die gelernten Gewichte des Algorithmus zur Neugewichtung werden stapelweise normiert. Um Zufallseffekte zu begrenzen, werden die Gewichte über mehrere Epochen gemittelt. Bei der Anwendung des Algorithmus zur Neugewichtung der synthetischen Daten werden 5-10 Epochen lang trainiert und die Gewichte gemittelt. Die Mittelung der Gewichte über mehr als 10 Epochen führt zu relativ geringen Abweichungen bei der Sortierung der synthetischen Samples nach ihren endgültigen Gewichtswerten.
  • Der synthetische Datensatz wird so sortiert, dass wi ≥ wj für i < j. Nach der Sortierung wird die kumulative Gewichtung wie in Gleichung 6 definiert, die eine Funktion des Datensatzindexes ist. W ( i ) = k = 1 i w k j = 1 N w j
    Figure DE102023127605A1_0010
  • In einigen Anwendungen werden die meisten synthetischen Samples nach der Durchführung des Neugewichtungsalgorithmus kleinen Gewichtswerten entsprechen. Die im Folgenden beschriebenen Ausführungsformen zielen darauf ab, diese Tatsache auf zweierlei Weise zu nutzen: (a) durch Vernachlässigung oder Entfernung synthetischer Samples mit geringem Gewicht aus dem Datensatz, wie in den 3 und 4 dargestellt (hier als „Datensatzkuration“ bezeichnet), und (b) durch den Versuch, zusätzliche Daten zu erzeugen, die den am höchsten gewichteten Samples schrittweise am ähnlichsten sind, wie in den 5 und 6 dargestellt (hier als „aktive Synthese“ bezeichnet).
  • 3 stellt ein Verfahren 300 zum Kuratieren eines Eingabedatensatzes, um einen synthetischen Datensatz zu bilden, gemäß einer Ausführungsform dar. Das Verfahren 300 kann gemäß dem Verfahren 100 von 1 und/oder im Zusammenhang mit einer der anderen hier beschriebenen Ausführungsformen durchgeführt werden. Die oben beschriebenen Definitionen und Ausführungsformen können auch für die Beschreibung der vorliegenden Ausführungsform gelten.
  • In Operation 302 wird ein Eingabedatensatz abgerufen (z. B. aus dem Speicher usw.). In der vorliegenden Ausführungsform umfasst der Eingabedatensatz einen synthetischen Eingabedatensatz. In Operation 304 werden die im Eingabedatensatz enthaltenen synthetischen Samples gewichtet. In einer Ausführungsform können die synthetischen Samples unter Verwendung des Verfahrens 200 von 2 gewichtet werden.
  • In Operation 306 wird eine definierte Anzahl von am höchsten gewichteten synthetischen Samples bestimmt, die im Eingabedatensatz enthalten sind. In einer Ausführungsform kann die definierte Anzahl geringer sein als die Anzahl der synthetischen Samples im Eingabedatensatz. Es sollte beachtet werden, dass die zu bestimmende Anzahl der am höchsten gewichteten synthetischen Samples in beliebiger Weise und/oder basierend auf beliebigen Kriterien vordefiniert werden kann.
  • In einer Ausführungsform können die synthetischen Samples nach ihrem Gewicht geordnet werden. Die am höchsten gewichteten synthetischen Samples können dann durch Auswahl der definierten Anzahl der am höchsten gewichteten synthetischen Samples bestimmt werden.
  • In Operation 308 werden die am höchsten gewichteten synthetischen Samples als synthetischer Datensatz ausgewählt. In einer Ausführungsform können die am höchsten gewichteten synthetischen Samples als neuer synthetischer Datensatz gespeichert werden. In einer anderen Ausführungsform können alle synthetischen Samples in dem synthetischen Eingabedatensatz, die nicht die am höchsten gewichteten synthetischen Samples sind, aus dem synthetischen Eingabedatensatz entfernt werden. Der synthetische Datensatz kann dann zum Trainieren eines maschinellen Lernmodells verwendet werden, beispielsweise gemäß dem Verfahren 700 von 7.
  • Das Verfahren 300 kann als Datensatzkuration bezeichnet werden, oder mit anderen Worten als die Kuration einer optimalen Teilmenge eines großen Datensatzes. Das Ziel der Datensatzkuration besteht darin, einen vollständig synthetischen Datensatz mit N Samples auf einen synthetischen Datensatz mit n < N Samples zu reduzieren, der auf eine bestimmte Aufgabe abzielt, indem die in einem kleinen Datensatz mit M realen Samples enthaltenen Informationen genutzt werden. Die prinzipielle Verkleinerung des synthetischen Datensatzes hat einen doppelten Zweck: Wird er zum Trainieren eines maschinellen Lernmodells verwendet (z. B. mit dem Verfahren 700 in 7), erhöht er die Trainingseffizienz und verbessert gleichzeitig die Leistung des endgültigen trainierten Modells.
  • 4 zeigt ein Flussdiagramm eines Systems 400, das gemäß einer Ausführungsform einen synthetischen Datensatz aus einem Eingabedatensatz kuratiert. Das System 400 kann zur Durchführung des Verfahrens 300 in 3 und/oder im Zusammenhang mit einer der anderen hier beschriebenen Ausführungsformen implementiert werden. Die oben beschriebenen Definitionen und Ausführungsformen können auch für die Beschreibung der vorliegenden Ausführungsform gelten.
  • In einer Ausführungsform gibt es eine Verteilung p(θ) für die generativen Parameter, die zur Erstellung eines synthetischen Eingabedatensatzes verwendet werden. Im Zusammenhang mit einem synthetischen Eingabedatensatz, der Bilder enthält, können die generativen Parameter Objektausrichtung, Bildhintergrund, Beleuchtung, Kameraabstand usw. umfassen. Angenommen, es wird ein großer synthetischer Datensatz aus einer Menge { θ j } j = 1 N
    Figure DE102023127605A1_0011
    bestehend aus N Samples, wobei alle θj i.i.d sind und θj ~ p(θ). Bei einem generischen Generator G und einem gewissen p(θ) ist der erzeugte synthetische Datensatz wahrscheinlich nicht optimal für die bevorstehende Aufgabe. Oftmals kann die Erzeugung weiterer synthetischer Samples nach dem Zufallsprinzip die Leistung verbessern, allerdings nur bis zu einer bestimmten Anzahl von Samples. Danach verringert die Erzeugung weiterer zusätzlicher Daten nicht nur die Trainingseffizienz, sondern auch die Leistung.
  • Das gegenwärtige System 200 ermöglicht eine Datensatzkuration des synthetischen Eingabedatensatzes. Wie dargestellt, umfasst der Eingabedatensatz sowohl einen synthetischen Eingabedatensatz als auch einen realen Eingabedatensatz. Der synthetische Eingabedatensatz kann mehr Samples enthalten als der reale Eingabedatensatz.
  • Um eine kleinere synthetische Teilmenge aus dem größeren synthetischen Eingabedatensatz zu kuratieren, wird eine Neugewichtungsalgorithmus-Komponente 402 an einer kleine Anzahl von Epochen des (größeren) synthetischen Eingabedatensatzes ausgeführt, um einen Satz von Gewichtungen zu erhalten, die jedem Sample darin entsprechen {wi}. Eine Spitzenauswahl-Komponente 404 sortiert die Samples des synthetischen Eingabedatensatzes entsprechend ihrer Gewichtung, um eine bestimmte Anzahl der am höchsten gewichteten Samples zu ermitteln, und entfernt dann die am niedrigsten gewichteten Samples aus dem synthetischen Eingabedatensatz. Die neuen (kleineren) synthetischen Teilmengen werden als Satz aller Samples mit Indizes im Satz {i|W(i) < Ŵ}extrahiert, um einen synthetischen Zieldatensatz zu bilden, wie gezeigt. Schließlich kann ein Modell auf dem kleineren kuratierten synthetischen (Ziel-) Datensatz trainiert werden, beispielsweise gemäß dem Verfahren 700 in 7.
  • 5 stellt ein Verfahren zur aktiven Synthese eines Eingabedatensatzes, um einen kleineren synthetischen Datensatz zu bilden, gemäß einer Ausführungsform dar. Das Verfahren 200 kann gemäß dem Verfahren 100 von 1 und/oder im Zusammenhang mit einer der anderen hier beschriebenen Ausführungsformen durchgeführt werden. Die oben beschriebenen Definitionen und Ausführungsformen können auch für die Beschreibung der vorliegenden Ausführungsform gelten.
  • In Operation 502 wird ein Eingabedatensatz abgerufen (z. B. aus dem Speicher usw.). In der vorliegenden Ausführungsform umfasst der Eingabedatensatz einen synthetischen Eingabedatensatz. In Operation 504 werden die im Eingabedatensatz enthaltenen synthetischen Samples gewichtet. In einer Ausführungsform können die synthetischen Samples unter Verwendung des Verfahrens 200 von 2 gewichtet werden.
  • In Operation 506 wird eine definierte Anzahl von am höchsten gewichteten synthetischen Samples bestimmt, die im Eingabedatensatz enthalten sind. In einer Ausführungsform kann die definierte Anzahl geringer sein als die Anzahl der synthetischen Samples im Eingabedatensatz. Es sollte beachtet werden, dass die zu bestimmende Anzahl der am höchsten gewichteten synthetischen Samples in beliebiger Weise und/oder basierend auf beliebigen Kriterien vordefiniert werden kann.
  • In einer Ausführungsform können die synthetischen Samples nach ihrem Gewicht geordnet werden. Die am höchsten gewichteten synthetischen Samples können dann durch Auswahl der definierte Anzahl der am höchsten gewichteten synthetischen Samples bestimmt werden.
  • In Operation 508 wird eine generative Parameterverteilung der am höchsten gewichteten synthetischen Samples, die im Eingabedatensatz enthalten sind, bestimmt. Die generative Parameterverteilung bezieht sich auf eine Verteilung der generativen Parameter, die zur Erzeugung der am höchsten gewichteten synthetischen Samples verwendet werden. In einer Ausführungsform umfasst die generative Parameterverteilung eine Kernel-Dichte-Schätzung (KDE).
  • In Operation 510 werden mehrere Syntheseparameter basierend auf der generativen Parameterverteilung ausgewählt. Die Syntheseparameter beziehen sich auf (einen Satz von) generative(n) Parameter(n), die verwendet werden, um den synthetischen Eingabedatensatz zu erzeugen. Die Syntheseparameter werden insbesondere basierend auf der generativen Parameterverteilung ausgewählt. In einer Ausführungsform wird ein Satz von Sampling-Stellen durch Sampling aus der generativen Parameterverteilung erhalten (vorhergesagt).
  • In Operation 512 werden zusätzliche synthetische Samples unter Verwendung der mehreren Syntheseparameter erzeugt. In Operation 514 wird der Eingabedatensatz um die zusätzlichen synthetischen Samples erweitert. Insbesondere können die zusätzlichen synthetischen Samples dem synthetischen Eingabedatensatz hinzugefügt werden. Optional kann der synthetische Eingabedatensatz mit den zusätzlichen synthetischen Samples dann gemäß dem Verfahren 300 von 3 kuratiert werden.
  • Das Verfahren 500 kann als aktive Datensatzsynthese bezeichnet werden, oder mit anderen Worten als Erlangung der optimalen synthetischen Daten durch inkrementelle Erzeugung zusätzlicher Daten, die auf die nachgelagerte Aufgabe abzielen, um sie zu einem anfänglichen (kleinen) synthetischen Eingabedatensatz hinzuzufügen. In einer Ausführungsform können mehrere Iterationen des Verfahrens 500 durchgeführt werden, um den anfänglichen synthetischen Eingabedatensatz zu vergrößern und dadurch den endgültigen synthetischen Datensatz zu bilden, der, wenn er zum Trainieren eines maschinellen Lernmodells verwendet wird (z. B. gemäß dem Verfahren 700 von 7), die Modellleistung maximal verbessern kann.
  • 6 zeigt ein Flussdiagramm eines Systems 600, das gemäß einer Ausführungsform aktiv einen synthetischen Datensatz aus einem Eingabedatensatz synthetisiert. Das System 600 kann zur Durchführung des Verfahrens 500 (5) und/oder im Zusammenhang mit einer der anderen hier beschriebenen Ausführungsformen implementiert werden. Die oben beschriebenen Definitionen und Ausführungsformen können auch für die Beschreibung der vorliegenden Ausführungsform gelten.
  • Ähnlich wie beim System 400 in 4 gibt es eine bestimmte Verteilung p(θ) für die generativen Parameter, die zur Erstellung eines synthetischen Eingabedatensatzes verwendet werden. Das System 400 beginnt mit einem kleinen synthetischen Datensatz von n0 Samples, die einem Satz von generativen Parametern {θ}0 aus p0 (θ) entsprechen, und erweitert den Satz iterativ mit zusätzlichen synthetischen Daten, die von einem generischen Generator G erzeugt werden.
  • In der Iteration i wird eine Neugewichtungsalgorithmus-Komponente 602 an einer Anzahl von Epochen des synthetischen Eingabedatensatzes ausgeführt, um einen Satz von Gewichtungen zu erhalten, die jedem Sample in diesem Satz entsprechen {wi}. Auf diese Weise werden die Bedeutungsgewichte {wi} für den synthetischen Datensatz {θ}I für eine bestimmte Aufgabe unter Verwendung eines kleinen Satzes von gekennzeichneten realen Samples bestimmt. Die Neugewichtungskomponente 602 sortiert den synthetischen Eingabedatensatz entsprechend den berechneten Bedeutungsgewichten und approximiert dann die generative Parameterverteilung einer bestimmten Anzahl der am höchsten gewichteten Samples, die als pi+1 (θ) bezeichnet wird. Die KDE 604 wird nur auf dem Satz {θi|W(i) ≤ Ŵ} der generativen Parameter gebildet, die den am höchsten gewichteten Samples entsprechen, wobei Ŵ ein Hyperparameter ist. Eine Satz von ai Sampling-Stellen {θ}i+1/2 wird vorhergesagt, wobei ai = ni - ni-1. Insbesondere wird der Satz {θ}i+1/2 durch von ai-faches Sampling aus der generativen Parameterverteilung pi+1 (θ) erhalten (vorhergesagt).
  • Der neue, erweiterte Satz von Sampling-Stellen {θ}i+1 = {θ}i ∪{θ}i+1/2 wird durch Kombination der Sampling-Stellen aus der vorherigen Iteration und der neu vorhergesagten Sampling-Stellen gebildet. Eine Generator-Komponente 606, bei der es sich um das oben erwähnte G handeln kann, wird verwendet, um neue synthetische Daten aus den vorhergesagten Sampling-Stellen {θ}i+1/2 zu erzeugen, und der synthetische Eingabedatensatz wird mit den neu erzeugten Samples erweitert. In einer Ausführungsform kann das in 3 beschriebene Verfahren 300 zur Kuration des Datensatzes verwendet werden, um den Datensatz bei jeder Iteration i vor dem Training eines Modells zu beschneiden, beispielsweise gemäß dem Verfahren 700 von 7.
  • 7 veranschaulicht ein Verfahren 700 zur Verwendung eines maschinellen Lernmodells in einer nachgelagerten Aufgabe, gemäß einer Ausführungsform. Das Verfahren 700 kann im Zusammenhang mit jeder der hier beschriebenen Ausführungsformen durchgeführt werden. Die oben beschriebenen Definitionen und Ausführungsformen können auch für die Beschreibung der vorliegenden Ausführungsform gelten.
  • In Operation 702 wird ein synthetischer Datensatz erhalten, der auf eine nachgelagerte Aufgabe abzielt. In einer Ausführungsform kann der synthetische Datensatz gemäß dem Verfahren 100 von 1 und/oder im Zusammenhang mit einem der anderen hier beschriebenen Verfahren und Systeme erzeugt werden. Beispielsweise kann der synthetische Datensatz aus einem größeren synthetischen Eingabedatensatz kuratiert werden (z. B. gemäß dem Verfahren 300 von 3 und/oder dem System 400 von 4). Als weiteres Beispiel kann der synthetische Datensatz aus einem kleineren synthetischen Eingabedatensatz synthetisiert werden (z. B. mit dem Verfahren 500 von 5 und/oder dem System 600 von 6).
  • In Operation 704 wird ein maschinelles Lernmodell unter Verwendung des synthetischen Datensatzes trainiert. In einer Ausführungsform kann das maschinelle Lernmodell mit überwachtem Lernen trainiert werden. In einer anderen Ausführungsform kann das maschinelle Lernmodell durch unüberwachtes Lernen trainiert werden. In jedem Fall kann das trainierte maschinelle Lernmodell für die nachgelagerte Aufgabe verwendet werden.
  • In einer beispielhaften Ausführungsform kann das maschinelle Lernmodell für die Erkennung von Einzelhandelsobjekten trainiert werden. Beispielsweise kann das maschinelle Lernmodell einen Begrenzungsrahmen verschiedener Einzelhandelsartikel aus einem Eingabebild mit einer einzigen Objektinstanz vorhersagen. In dieser beispielhaften Ausführungsform kann ein Eingabedatensatz einen synthetischen Eingabedatensatz enthalten, der durch einen dreidimensionalen (3D) Scan einer Vielzahl von Einzelhandelsobjekten gebildet wird, von denen Bilder jedes Objekts unter Verwendung einer Vielzahl von Zufallsmustern gerendert werden. In jedem Muster kann zunächst ein 3D-Modell eines Einzelhandelsobjekts als Hauptobjekt in die Szene geladen werden, und dann werden die Verschiebung, die Ausrichtung und der Maßstab des Objekts randomisiert und das gerenderte Bild und sein Begrenzungsrahmen aufgezeichnet. Die Erzeugungsparameter (z. B. Lichtintensität, Objektgröße, Objektverschiebung, Objektausrichtung) können auch für jedes synthetische Muster im Datensatz gespeichert werden. Der synthetische Eingabedatensatz kann dann verarbeitet werden (z. B. gemäß dem Verfahren 100 von 1), um den synthetischen Datensatz zu bilden, auf dem das maschinelle Lernmodell schließlich trainiert wird.
  • In einer anderen beispielhaften Ausführungsform kann das maschinelle Lernmodell für die Blickabschätzung trainiert werden. Beispielsweise kann das maschinelle Lernmodell die Blickrichtung der Augen aus den eingegebenen Augenbildern regressieren. In dieser beispielhaften Ausführungsform kann ein Eingabedatensatz einen synthetischen Eingabedatensatz umfassen, der synthetische Bilder von Augen enthält, die auf zufällig erzeugten Gesichtsformen platziert sind (d. h. durch eine Randomisierung von Gesichtsregionsparametern). Der synthetische Eingabedatensatz kann dann verarbeitet werden (z. B. gemäß dem Verfahren 100 von 1), um den synthetischen Datensatz zu bilden, auf dem das maschinelle Lernmodell schließlich trainiert wird.
  • In einer weiteren beispielhaften Ausführungsform kann das maschinelle Lernmodell für die Verarbeitung natürlicher Sprache für eine Zielsprache trainiert werden. Beispielsweise kann das maschinelle Lernmodell eine Bedeutung aus einer gegebenen sprachbasierten Eingabe vorhersagen. In dieser beispielhaften Ausführungsform kann ein Eingabedatensatz einen synthetischen Eingabedatensatz umfassen, der sprachbasierte Muster in mehreren gesprochenen Sprachen enthält. Der synthetische Eingabedatensatz kann dann verarbeitet werden (z. B. gemäß dem Verfahren 100 von 1), um den synthetischen Datensatz zu bilden, auf dem das maschinelle Lernmodell schließlich für die Zielsprache trainiert wird.
  • Maschinelles Lernen
  • Tiefe neuronale Netze (DNN), einschließlich Deep-Learning-Modelle, die auf Prozessoren entwickelt wurden, werden für verschiedene Anwendungsfälle eingesetzt, von selbstfahrenden Autos bis zur schnelleren Entwicklung von Medikamenten, von der automatischen Bildbeschriftung in Online-Bilddatenbanken bis zur intelligenten Echtzeit-Sprachübersetzung in Video-Chat-Anwendungen. Deep Learning ist eine Technik, die den neuronalen Lernprozess des menschlichen Gehirns nachbildet, das kontinuierlich lernt, immer intelligenter wird und mit der Zeit immer genauere Ergebnisse liefert. Ein Kind lernt anfangs von einem Erwachsenen, verschiedene Formen richtig zu erkennen und zu klassifizieren, bis es schließlich in der Lage ist, Formen ohne weitere Anleitung zu erkennen. In ähnlicher Weise muss ein Deep-Learning- oder neuronales Lernsystem in der Objekterkennung und - klassifizierung trainiert werden, damit es intelligenter und effizienter bei der Erkennung von einfachen Objekten, verdeckten Objekten usw. wird und den Objekten auch einen Kontext zuordnen kann.
  • Auf der einfachsten Ebene betrachten die Neuronen im menschlichen Gehirn die verschiedenen Eingaben, die sie erhalten, ordnen jeder dieser Eingaben eine bestimmte Bedeutung zu und leiten die Ergebnisse an andere Neuronen weiter, die darauf reagieren. Ein künstliches Neuron oder Perzeptron ist das einfachste Modell eines neuronalen Netzes. In einem Beispiel kann ein Perzeptron eine oder mehrere Eingaben erhalten, die verschiedene Merkmale eines Objekts darstellen, für dessen Erkennung und Klassifizierung das Perzeptron trainiert wird, und jedem dieser Merkmale wird eine bestimmte Gewicht zugewiesen, die auf der Bedeutung dieses Merkmals bei der Definition der Form eines Objekts basiert.
  • Ein Modell eines tiefen neuronalen Netzes (Deep Neural Network, DNN) umfasst mehrere Schichten mit vielen verbundenen Knoten (z. B. Perzeptrone, Boltzmann-Maschinen, radiale Basisfunktionen, Faltungsschichten usw.), die mit enormen Mengen von Eingabedaten trainiert werden können, um komplexe Probleme schnell und mit hoher Genauigkeit zu lösen. In einem Beispiel zerlegt eine erste Schicht des DNN-Modells ein Eingabebild eines Autos in verschiedene Abschnitte und sucht nach grundlegenden Mustern wie Linien und Winkeln. Die zweite Schicht setzt die Linien zusammen und sucht nach übergeordneten Mustern wie Rädern, Windschutzscheiben und Spiegeln. Die nächste Schicht identifiziert den Fahrzeugtyp, und die letzten Schichten erzeugen ein Etikett für das Eingabebild, das das Modell einer bestimmten Automarke identifiziert.
  • Sobald das DNN trainiert ist, kann es eingesetzt und zur Identifizierung und Klassifizierung von Objekten oder Mustern in einem als Inferenz bezeichneten Prozess verwendet werden. Beispiele für Inferenz (der Prozess, durch den ein DNN nützliche Informationen aus einem gegebenen Input extrahiert) sind die Identifizierung handgeschriebener Zahlen auf Schecks, die in Geldautomaten eingezahlt werden, die Identifizierung von Bildern von Freunden auf Fotos, die Bereitstellung von Filmempfehlungen für über fünfzig Millionen Nutzer, die Identifizierung und Klassifizierung verschiedener Arten von Autos, Fußgängern und Straßengefahren in fahrerlosen Autos oder die Übersetzung menschlicher Sprache in Echtzeit.
  • Während des Trainings durchlaufen die Daten das DNN in einer Vorwärtspropagationsphase, bis eine Vorhersage erstellt wird, die ein der Eingabe entsprechendes Label anzeigt. Wenn das neuronale Netz die Eingabe nicht korrekt kennzeichnet, werden die Fehler zwischen der korrekten Kennzeichnung und der vorhergesagten Kennzeichnung analysiert, und die Gewichte werden für jedes Merkmal in einer Rückwärtspropagationsphase angepasst, bis das DNN die Eingabe und andere Eingaben in einem Trainingsdatensatz korrekt kennzeichnet. Das Trainieren komplexer neuronaler Netze erfordert eine enorme parallele Rechenleistung, einschließlich Gleitkommamultiplikationen und - additionen. Die Inferenz ist weniger rechenintensiv als das Training, da es sich um einen latenzabhängigen Prozess handelt, bei dem ein trainiertes neuronales Netz auf neue Eingaben angewendet wird, die es zuvor nicht gesehen hat, um Bilder zu klassifizieren, Sprache zu übersetzen und allgemein neue Informationen abzuleiten.
  • Inferenz- und Trainingslogik
  • Wie bereits erwähnt, muss ein Deep-Learning- oder neuronales Lernsystem trainiert werden, um aus den Eingabedaten Schlussfolgerungen zu ziehen. Details zur Inferenz- und/oder Trainingslogik 815 für ein Deep-Learning- oder neuronales Lernsystem werden weiter unten in Verbindung mit den 8A und/oder 8B.
  • In mindestens einer Ausführungsform kann die Inferenz- und/oder Trainingslogik 815 ohne Einschränkung einen Datenspeicher 801 umfassen, um Vorwärts- und/oder Ausgangsgewichts- und/oder Eingangs-/Ausgangsdaten zu speichern, die Neuronen oder Schichten eines neuronalen Netzes entsprechen, das in Aspekten einer oder mehrerer Ausführungsformen trainiert und/oder zur Inferenz verwendet wird. In mindestens einer Ausführungsform speichert der Datenspeicher 801 Gewichtsparameter und/oder Eingabe-/Ausgabedaten jeder Schicht eines neuronalen Netzes, das während der Vorwärtspropagierung von Eingabe-/Ausgabedaten und/oder Gewichtsparametern während des Trainings und/oder der Inferenz unter Verwendung von Aspekten einer oder mehrerer Ausführungsformen trainiert oder in Verbindung mit einer oder mehrerer Ausführungsformen verwendet wird. In mindestens einer Ausführungsform kann ein beliebiger Teil des Datenspeichers 801 in einen anderen On-Chip- oder Off-Chip-Datenspeicher aufgenommen werden, einschließlich des L1-, L2- oder L3-Cachespeichers oder Systemspeichers eines Prozessors.
  • In mindestens einer Ausführungsform kann jeder Teil des Datenspeichers 801 intern oder extern zu einem oder mehreren Prozessoren oder anderen Hardware-Logikgeräten oder - Schaltungen sein. In mindestens einer Ausführungsform kann der Datenspeicher 801 ein Cache-Speicher, ein dynamischer, zufällig adressierbarer Speicher („DRAM“), ein statischer, zufällig adressierbarer Speicher („SRAM“), ein nichtflüchtiger Speicher (z. B. ein Flash-Speicher) oder ein anderer Speicher sein. In mindestens einer Ausführungsform kann die Wahl, ob der Datenspeicher 801 beispielsweise intern oder extern zu einem Prozessor ist oder aus DRAM, SRAM, Flash oder einem anderen Speichertyp aufweist, von dem verfügbaren Speicher auf dem Chip gegenüber dem außerhalb des Chips, den Latenzanforderungen der durchgeführten Trainings- und/oder Inferenzfunktionen, der Stapelgröße der bei der Inferenz und/oder dem Training eines neuronalen Netzes verwendeten Daten oder einer Kombination dieser Faktoren abhängen.
  • In mindestens einer Ausführungsform kann die Inferenz- und/oder Trainingslogik 815 ohne Einschränkung einen Datenspeicher 805 umfassen, um Rückwärts- und/oder Ausgangsgewichts- und/oder Eingangs-/Ausgangsdaten zu speichern, die Neuronen oder Schichten eines neuronalen Netzes entsprechen, das in Aspekten einer oder mehrerer Ausführungsformen trainiert und/oder zum Inferenz verwendet wird. In mindestens einer Ausführungsform speichert der Datenspeicher 805 Gewichtsparameter und/oder Eingabe-/Ausgabedaten jeder Schicht eines neuronalen Netzes, das während der Rückwärtspropagation von Eingabe-/Ausgabedaten und/oder Gewichtsparametern während des Trainings und/oder der Inferenz unter Verwendung von Aspekten einer oder mehrerer Ausführungsformen trainiert oder in Verbindung mit einer oder mehrerer Ausführungsformen verwendet wird. In mindestens einer Ausführungsform kann ein beliebiger Teil des Datenspeichers 805 in einen anderen On-Chip- oder Off-Chip-Datenspeicher aufgenommen werden, einschließlich des L1-, L2- oder L3-Cachespeichers oder Systemspeichers eines Prozessors. In mindestens einer Ausführungsform kann jeder Teil des Datenspeichers 805 intern oder extern zu einem oder mehreren Prozessoren oder anderen Hardware-Logikgeräten oder -Schaltungen sein. In mindestens einer Ausführungsform kann der Datenspeicher 805 ein Cache-Speicher, DRAM, SRAM, nichtflüchtiger Speicher (z. B. Flash-Speicher) oder ein anderer Speicher sein. In mindestens einer Ausführungsform kann die Entscheidung, ob der Datenspeicher 805 intern oder extern zu einem Prozessor ist, beispielsweise aus DRAM, SRAM, Flash oder einem anderen Speichertyp aufweist, von dem verfügbaren Speicher auf dem Chip oder außerhalb des Chips, den Latenzanforderungen der durchgeführten Trainings- und/oder Inferenzfunktionen, der Stapelgröße der bei der Inferenz und/oder dem Training eines neuronalen Netzes verwendeten Daten oder einer Kombination dieser Faktoren abhängen.
  • In mindestens einer Ausführungsform können der Datenspeicher 801 und der Datenspeicher 805 separate Speicherstrukturen sein. In mindestens einer Ausführungsform können der Datenspeicher 801 und der Datenspeicher 805 dieselbe Speicherstruktur sein. In mindestens einer Ausführungsform können der Datenspeicher 801 und der Datenspeicher 805 teilweise dieselbe Speicherstruktur und teilweise getrennte Speicherstrukturen sein. In mindestens einer Ausführungsform kann ein beliebiger Teil des Datenspeichers 801 und des Datenspeichers 805 in einen anderen On-Chip- oder Off-Chip-Datenspeicher, einschließlich des L1-, L2- oder L3-Cache oder Systemspeichers eines Prozessors, integriert werden.
  • In mindestens einer Ausführungsform kann die Inferenz- und/oder Trainingslogik 815 ohne Einschränkung eine oder mehrere arithmetisch-logische Einheit(en) („ALU(s)“) 810 umfassen, um logische und/oder mathematische Operationen durchzuführen, die zumindest teilweise auf einem Trainings- und/oder Inferenzcode basieren oder durch diesen angezeigt werden, deren Ergebnis in Aktivierungen (z. B. Ausgangswerte von Schichten oder Neuronen innerhalb eines neuronalen Netzes) resultieren kann, die in einem Aktivierungsspeicher 820 gespeichert sind, der Funktionen von Eingangs-/Ausgangs- und/oder Gewichtsparameterdaten ist, die in Datenspeicher 801 und/oder Datenspeicher 805 gespeichert sind. In mindestens einer Ausführungsform werden die im Aktivierungsspeicher 820 gespeicherten Aktivierungen gemäß linearer algebraischer und/oder matrixbasierter Mathematik erzeugt, die von der/den ALU(s) 810 als Reaktion auf die Ausführung von Anweisungen oder anderem Code durchgeführt wird, wobei im Datenspeicher 805 und/oder in den Daten 801 gespeicherte Gewichtswerte als Operanden zusammen mit anderen Werten, wie z. B. Bias-Werten, Gradienteninformationen, Impulswerten oder anderen Parametern oder Hyperparametern, verwendet werden, die alle oder einzeln im Datenspeicher 805 oder im Datenspeicher 801 oder in einem anderen Speicher auf oder außerhalb des Chips gespeichert sein können. In mindestens einer Ausführungsform sind die ALU(s) 810 in einem oder mehreren Prozessoren oder anderen Hardware-Logikvorrichtungen oder -schaltungen enthalten, während in einer anderen Ausführungsform die ALU(s) 810 extern zu einem Prozessor oder einer anderen Hardware-Logikvorrichtung oder - schaltung sein können, die sie verwendet (z. B. ein Coprozessor). In mindestens einer Ausführungsform können die ALUs 810 in den Ausführungseinheiten eines Prozessors oder anderweitig in einer Bank von ALUs enthalten sein, auf die die Ausführungseinheiten eines Prozessors entweder innerhalb desselben Prozessors oder verteilt auf verschiedene Prozessoren unterschiedlichen Typs (z. B. zentrale Verarbeitungseinheiten, Grafikverarbeitungseinheiten, feste Funktionseinheiten usw.) zugreifen können. In mindestens einer Ausführungsform können sich der Datenspeicher 801, der Datenspeicher 805 und der Aktivierungsspeicher 820 auf demselben Prozessor oder einer anderen Hardware-Logikvorrichtung oder -schaltung befinden, während sie in einer anderen Ausführungsform in verschiedenen Prozessoren oder anderen Hardware-Logikvorrichtungen oder -schaltungen oder in einer Kombination aus gleichen und verschiedenen Prozessoren oder anderen Hardware-Logikvorrichtungen oder -schaltungen untergebracht sein können. In mindestens einer Ausführungsform kann ein beliebiger Teil des Aktivierungsspeichers 820 in einen anderen On-Chip- oder Off-Chip-Datenspeicher, einschließlich des L1-, L2- oder L3-Cache oder Systemspeichers eines Prozessors, integriert werden. Darüber hinaus kann der Inferenz- und/oder Trainingscode zusammen mit anderem Code gespeichert werden, auf den ein Prozessor oder eine andere Hardware-Logik oder - Schaltung zugreifen kann und der mit Hilfe der Abruf-, Dekodier-, Planungs-, Ausführungs-, Ausscheidungs- und/oder anderen logischen Schaltungen eines Prozessors abgerufen und/oder verarbeitet wird.
  • In mindestens einer Ausführungsform kann der Aktivierungsspeicher 820 ein Cache-Speicher, DRAM, SRAM, nichtflüchtiger Speicher (z. B. Flash-Speicher) oder ein anderer Speicher sein. In mindestens einer Ausführungsform kann sich der Aktivierungsspeicher 820 vollständig oder teilweise innerhalb oder außerhalb eines oder mehrerer Prozessoren oder anderer logischer Schaltungen befinden. In mindestens einer Ausführungsform kann die Wahl, ob der Aktivierungsspeicher 820 beispielsweise innerhalb oder außerhalb eines Prozessors liegt oder aus DRAM, SRAM, Flash oder einem anderen Speichertyp aufweist, von dem verfügbaren Speicher auf dem Chip gegenüber dem außerhalb des Chips, den Latenzanforderungen der durchgeführten Trainings- und/oder Inferenzfunktionen, der Stapelgröße der bei der Inferenz und/oder dem Training eines neuronalen Netzes verwendeten Daten oder einer Kombination dieser Faktoren abhängen. In mindestens einer Ausführungsform kann die in 8A dargestellte Inferenz- und/oder Trainingslogik 815 in Verbindung mit einer anwendungsspezifischen integrierten Schaltung („ASIC“) verwendet werden, wie z. B. der Tensorflow® Processing Unit von Google, einer Inferenzverarbeitungseinheit (IPU) von Graphcore™ oder einem Nervana®-Prozessor (z. B. „Lake Crest“) von Intel Corp. In mindestens einer Ausführungsform kann die in 8A dargestellte Inferenz- und/oder Trainingslogik 815 in Verbindung mit Hardware der Zentraleinheit („CPU“), der Grafikverarbeitungseinheit („GPU“) oder anderer Hardware, wie z. B. feldprogrammierbaren Gate-Arrays („FPGAs“), verwendet werden.
  • 8B zeigt die Inferenz- und/oder Trainingslogik 815 gemäß mindestens einer Ausführungsform. In mindestens einer Ausführungsform kann die Inferenz- und/oder Trainingslogik 815 ohne Einschränkung eine Hardware-Logik umfassen, in der Rechenressourcen dediziert oder anderweitig ausschließlich in Verbindung mit Gewichtswerten oder anderen Informationen verwendet werden, die einer oder mehreren Schichten von Neuronen innerhalb eines neuronalen Netzes entsprechen. In mindestens einer Ausführungsform kann die in 8B dargestellte Inferenz- und/oder Trainingslogik 815 in Verbindung mit einer anwendungsspezifischen integrierten Schaltung (ASIC) verwendet werden, wie z. B. der Tensorflow® Processing Unit von Google, einer Inferenzverarbeitungseinheit (IPU) von Graphcore™ oder einem Nervana®-Prozessor (z. B. „Lake Crest“) von Intel Corp. In mindestens einer Ausführungsform kann die in 8B dargestellte Inferenz- und/oder Trainingslogik 815 in Verbindung mit Hardware der Zentraleinheit (CPU), der Grafikverarbeitungseinheit (GPU) oder anderer Hardware, wie z. B. feldprogrammierbaren Gate-Arrays (FPGAs), verwendet werden. In mindestens einer Ausführungsform umfasst die Inferenz- und/oder Trainingslogik 815, ohne Einschränkung, den Datenspeicher 801 und den Datenspeicher 805, die zum Speichern von Gewichtswerten und/oder anderen Informationen, einschließlich Bias-Werten, Gradienteninformationen, Impulswerten und/oder anderen Parameter- oder Hyperparameterinformationen, verwendet werden können. In mindestens einer Ausführungsform, die in 8B dargestellt ist, ist jeder Datenspeicher 801 und jeder Datenspeicher 805 mit einer dedizierten Rechenressource verbunden, wie z. B. Rechenhardware 802 bzw. Rechenhardware 806. In mindestens einer Ausführungsform weist jede Rechenhardware 806 eine oder mehrere ALUs auf, die mathematische Funktionen, wie lineare algebraische Funktionen, nur auf in Datenspeicher 801 bzw. Datenspeicher 805 gespeicherten Informationen ausführen, deren Ergebnis in Aktivierungsspeicher 820 gespeichert wird.
  • In mindestens einer Ausführungsform entsprechen jeder der Datenspeicher 801 und 805 und die entsprechende Rechenhardware 802 bzw. 806 verschiedenen Schichten eines neuronalen Netzes, so dass die sich aus einem „Speicher-/Rechenpaar 801/802“ von Datenspeicher 801 und Rechenhardware 802 ergebende Aktivierung als Eingabe für das nächste „Speicher-/Rechenpaar 805/806“ von Datenspeicher 805 und Rechenhardware 806 bereitgestellt wird, um die konzeptionelle Organisation eines neuronalen Netzes widerzuspiegeln. In mindestens einer Ausführungsform kann jedes der Speicher-/Rechenpaare 801/802 und 805/806 mehr als einer neuronalen Netzschicht entsprechen. In mindestens einer Ausführungsform können zusätzliche Speicher-/Rechenpaare (nicht dargestellt) im Anschluss an oder parallel zu den Speicher-/Rechenpaaren 801/802 und 805/806 in die Inferenz- und/oder Trainingslogik 815 einbezogen werden.
  • Training und Einsatz neuronaler Netze
  • 9 zeigt eine weitere Ausführungsform für das Training und den Einsatz eines tiefen neuronalen Netzes. In mindestens einer Ausführungsform wird das untrainierte neuronale Netz 906 mit einem Trainingsdatensatz 902 trainiert. In mindestens einer Ausführungsform ist das Trainingsframework 904 ein PyTorch-Framework, während in anderen Ausführungsformen das Trainingsframework 904 ein Tensorflow-, Boost-, Caffe-, Microsoft Cognitive Toolkit/CNTK-, MXNet-, Chainer-, Keras-, Deeplearning4j- oder ein anderes Trainingsframework ist. In mindestens einer Ausführungsform trainiert das Trainingsframework 904 ein untrainiertes neuronales Netzwerk 906 und ermöglicht dessen Training unter Verwendung der hier beschriebenen Verarbeitungsressourcen, um ein trainiertes neuronales Netzwerk 908 zu erzeugen. In mindestens einer Ausführungsform können die Gewichte zufällig oder durch Vortraining unter Verwendung eines Deep Belief Network ausgewählt werden. In mindestens einer Ausführungsform kann das Training entweder auf überwachte, teilweise überwachte oder nicht überwachte Weise durchgeführt werden.
  • In mindestens einer Ausführungsform wird das untrainierte neuronale Netz 906 durch überwachtes Lernen trainiert, wobei der Trainingsdatensatz 902 eine Eingabe enthält, die mit einer gewünschten Ausgabe für eine Eingabe gepaart ist, oder wobei der Trainingsdatensatz 902 eine Eingabe mit bekannter Ausgabe enthält und die Ausgabe des neuronalen Netzes manuell bewertet wird. In mindestens einer Ausführungsform wird das untrainierte neuronale Netz 906 auf überwachte Weise trainiert, verarbeitet Eingaben aus dem Trainingsdatensatz 902 und vergleicht die resultierenden Ausgaben mit einem Satz von erwarteten oder gewünschten Ausgaben. In mindestens einer Ausführungsform werden die Fehler dann durch das untrainierte neuronale Netz 906 zurückverfolgt. In mindestens einer Ausführungsform passt das Trainingsframework 904 die Gewichte an, die das untrainierte neuronale Netz 906 steuern. In mindestens einer Ausführungsform enthält das Trainingsframework 904 Werkzeuge, um zu überwachen, wie gut das untrainierte neuronale Netz 906 zu einem Modell konvergiert, wie z.B. dem trainierten neuronalen Netz 908, das geeignet ist, korrekte Antworten zu erzeugen, wie z.B. im Ergebnis 914, basierend auf bekannten Eingabedaten, wie z.B. den neuen Daten 912. In mindestens einer Ausführungsform trainiert das Trainingsframework 904 das untrainierte neuronale Netz 906 wiederholt, während er die Gewichte anpasst, um eine Ausgabe des untrainierten neuronalen Netzes 906 unter Verwendung einer Verlustfunktion und eines Anpassungsalgorithmus, wie z. B. stochastischer Gradientenabstieg, zu verfeinern. In mindestens einer Ausführungsform trainiert das Trainingsframework 904 das untrainierte neuronale Netz 906, bis das untrainierte neuronale Netz 906 eine gewünschte Genauigkeit erreicht. In mindestens einer Ausführungsform kann das trainierte neuronale Netz 908 dann eingesetzt werden, um eine beliebige Anzahl von maschinellen Lernoperationen zu implementieren.
  • In mindestens einer Ausführungsform wird das untrainierte neuronale Netz 906 durch unüberwachtes Lernen trainiert, wobei das untrainierte neuronale Netz 906 versucht, sich selbst mit unmarkierten Daten zu trainieren. In mindestens einer Ausführungsform enthält der Trainingsdatensatz 902 für das unüberwachte Lernen Eingabedaten ohne zugehörige Ausgabedaten oder „Grundwahrheitsdaten“. In mindestens einer Ausführungsform kann das untrainierte neuronale Netz 906 Gruppierungen innerhalb des Trainingsdatensatzes 902 erlernen und bestimmen, wie einzelne Eingaben mit dem untrainierten Datensatz 902 in Beziehung stehen. In mindestens einer Ausführungsform kann unüberwachtes Training verwendet werden, um eine selbstorganisierende Karte zu erzeugen, die eine Art von trainiertem neuronalen Netzwerk 908 ist, das in der Lage ist, Operationen durchzuführen, die bei der Reduzierung der Dimensionalität neuer Daten 912 nützlich sind. In mindestens einer Ausführungsform kann unüberwachtes Training auch zur Erkennung von Anomalien verwendet werden, was die Identifizierung von Datenpunkten in einem neuen Datensatz 912 ermöglicht, die von normalen Mustern des neuen Datensatzes 912 abweichen.
  • In mindestens einer Ausführungsform kann halbüberwachtes Lernen verwendet werden, d. h. eine Technik, bei der der Trainingsdatensatz 902 eine Mischung aus beschrifteten und unbeschrifteten Daten enthält. In mindestens einer Ausführungsform kann das Trainingsframework 904 verwendet werden, um inkrementelles Lernen durchzuführen, z. B. durch übertragene Lerntechniken. In mindestens einer Ausführungsform ermöglicht das inkrementelle Lernen dem trainierten neuronalen Netz 908, sich an neue Daten 912 anzupassen, ohne das Wissen zu vergessen, das dem Netz während des anfänglichen Trainings eingeflößt wurde.
  • Rechenzentrum
  • 10 zeigt ein Beispiel für ein Rechenzentrum 1000, in dem mindestens eine Ausführungsform verwendet werden kann. In mindestens einer Ausführungsform umfasst das Rechenzentrum 1000 eine Rechenzentrum-Infrastrukturschicht 1010, eine Framework-Schicht 1020, eine Softwareschicht 1030 und eine Anwendungsschicht 1040.
  • In mindestens einer Ausführungsform, wie in 10 gezeigt, kann die Rechenzentrum-Infrastrukturschicht 1010 einen Ressourcen-Orchestrator 1012, gruppierte Rechenressourcen 1014 und Knoten-Rechenressourcen („Knoten-C.R.s“) 1016(1)-1016(N) umfassen, wobei „N“ eine beliebige ganze, positive Zahl darstellt. In mindestens einer Ausführungsform können die Knoten C.R.s 1016(1)-1016(N) eine beliebige Anzahl von Zentraleinheiten („CPUs“) oder anderen Prozessoren (einschließlich Beschleunigern, feldprogrammierbaren Gate-Arrays (FPGAs), Grafikprozessoren usw.), Speichergeräten (z. B., dynamischer Festwertspeicher), Speichergeräte (z. B. Festkörper- oder Festplattenlaufwerke), Netzwerk-Eingabe-/Ausgabegeräte („NW I/O“), Netzwerk-Switches, virtuelle Maschinen („VMs“), Stromversorgungsmodule und Kühlmodule, usw. In mindestens einer Ausführungsform können ein oder mehrere Knoten-C.R.s unter den Knoten-C.R.s 1016(1)-1016(N) ein Server mit einer oder mehreren der oben genannten Rechenleistungen sein.
  • In mindestens einer Ausführungsform können die gruppierten Rechenressourcen 1014 getrennte Gruppierungen von Knoten-C.R.s umfassen, die in einem oder mehreren Racks (nicht gezeigt) untergebracht sind, oder viele Racks, die in Datenzentren an verschiedenen geografischen Standorten untergebracht sind (ebenfalls nicht gezeigt). Separate Gruppierungen von Knoten-C.R.s innerhalb der gruppierten Rechenressourcen 1014 können gruppierte Rechen-, Netzwerk-, Speicher- oder Speicherressourcen umfassen, die zur Unterstützung einer oder mehrerer Arbeitslasten konfiguriert oder zugewiesen werden können. In mindestens einer Ausführungsform können mehrere Knoten-C.R.s mit CPUs oder Prozessoren in einem oder mehreren Racks gruppiert werden, um Rechenressourcen zur Unterstützung einer oder mehrerer Arbeitslasten bereitzustellen. In mindestens einer Ausführungsform können ein oder mehrere Racks auch eine beliebige Anzahl von Stromversorgungsmodulen, Kühlmodulen und Netzwerk-Switches in beliebiger Kombination enthalten.
  • In mindestens einer Ausführungsform kann der Ressourcen-Orchestrator 1022 einen oder mehrere Knoten-CRs 1016(1)-1016(N) und/oder gruppierte Rechenressourcen 1014 konfigurieren oder anderweitig steuern. In mindestens einer Ausführungsform kann der Ressourcen-Orchestrator 1022 eine Software-Design-Infrastruktur („SDI“)-Verwaltungseinheit für das Rechenzentrum 1000 umfassen. In mindestens einer Ausführungsform kann der Ressourcen-Orchestrator Hardware, Software oder eine Kombination davon umfassen.
  • In mindestens einer Ausführungsform, wie in 10 dargestellt, umfasst die Framework-Schicht 1020 einen Job Scheduler 1032, einen Konfigurationsmanager 1034, einen Ressourcenmanager 1036 und ein verteiltes Dateisystem 1038. In mindestens einer Ausführungsform kann die Framework-Schicht 1020 einen Rahmen zur Unterstützung der Software 1032 der Softwareschicht 1030 und/oder einer oder mehrerer Anwendung(en) 1042 der Anwendungsschicht 1040 enthalten. In mindestens einer Ausführungsform können die Software 1032 oder die Anwendung(en) 1042 jeweils webbasierte Dienstsoftware oder Anwendungen umfassen, wie sie beispielsweise von Amazon Web Services, Google Cloud und Microsoft Azure bereitgestellt werden. In mindestens einer Ausführungsform kann die Framework-Schicht 1020 eine Art von freiem und quelloffenem Software-Webanwendungs-Framework wie Apache Spark™ (im Folgenden „Spark“) sein, das ein verteiltes Dateisystem 1038 für die Verarbeitung großer Datenmengen (z. B. „Big Data“) verwenden kann, ist aber nicht darauf beschränkt. In mindestens einer Ausführungsform kann der Job Scheduler 1032 einen Spark-Treiber enthalten, um die Planung von Arbeitslasten zu erleichtern, die von verschiedenen Schichten des Rechenzentrums 1000 unterstützt werden. In mindestens einer Ausführungsform kann der Konfigurationsmanager 1034 in der Lage sein, verschiedene Schichten zu konfigurieren, z. B. die Softwareschicht 1030 und die Framework-Schicht 1020 einschließlich Spark und das verteilte Dateisystem 1038 zur Unterstützung der Verarbeitung großer Datenmengen. In mindestens einer Ausführungsform kann der Ressourcenmanager 1036 in der Lage sein, geclusterte oder gruppierte Computerressourcen zu verwalten, die zur Unterstützung des verteilten Dateisystems 1038 und des Job Schedulers 1032 zugeordnet sind. In mindestens einer Ausführungsform können geclusterte oder gruppierte Computerressourcen die gruppierte Computerressource 1014 auf der Infrastrukturschicht 1010 des Rechenzentrums umfassen. In mindestens einer Ausführungsform kann der Ressourcenmanager 1036 mit dem Ressourcen-Orchestrator 1012 koordiniert werden, um diese zugeordneten oder zugewiesenen Computerressourcen zu verwalten.
  • In mindestens einer Ausführungsform kann die Software 1032, die in der Softwareschicht 1030 enthalten ist, Software enthalten, die von mindestens Teilen der Knoten C.R.s 1016(1)-1016(N), der gruppierten Rechenressourcen 1014 und/oder des verteilten Dateisystems 1038 der Framework-Schicht 1020 verwendet wird. Eine oder mehrere Arten von Software können Software für die Suche nach Internet-Webseiten, Software zum Scannen von E-Mail-Viren, Datenbanksoftware und Software für das Streaming von Videoinhalten enthalten, sind aber nicht darauf beschränkt.
  • In mindestens einer Ausführungsform kann (können) die in der Anwendungsschicht 1040 enthaltene(n) Anwendung(en) 1042 eine oder mehrere Arten von Anwendungen umfassen, die von mindestens Teilen der Knoten C.R.s 1016(1)-1016(N), den gruppierten Rechenressourcen 1014 und/oder dem verteilten Dateisystem 1038 der Framework-Schicht 1020 verwendet werden. Eine oder mehrere Arten von Anwendungen können eine beliebige Anzahl von Genomanwendungen, kognitiven Berechnungen und Anwendungen für maschinelles Lernen umfassen, einschließlich Trainings- oder Inferenzsoftware, Rahmensoftware für maschinelles Lernen (z. B., PyTorch, TensorFlow, Caffe usw.) oder andere Anwendungen für maschinelles Lernen, die in Verbindung mit einer oder mehreren Ausführungsformen verwendet werden.
  • In mindestens einer Ausführungsform können der Konfigurationsmanager 1034, der Ressourcenmanager 1036 und der Ressourcen-Orchestrator 1012 eine beliebige Anzahl und Art von selbstmodifizierenden Aktionen implementieren, die auf einer beliebigen Menge und Art von Daten basieren, die auf jede technisch machbare Weise erfasst wurden. In mindestens einer Ausführungsform können selbstmodifizierende Aktionen einen Rechenzentrumsbetreiber des Rechenzentrums 1000 davon entlasten, möglicherweise schlechte Konfigurationsentscheidungen zu treffen und möglicherweise nicht ausgelastete und/oder schlecht funktionierende Teile eines Rechenzentrums zu vermeiden.
  • In mindestens einer Ausführungsform kann das Rechenzentrum 1000 Werkzeuge, Dienste, Software oder andere Ressourcen enthalten, um ein oder mehrere maschinelle Lernmodelle zu trainieren oder Informationen unter Verwendung eines oder mehrerer maschineller Lernmodelle gemäß einer oder mehrerer hierin beschriebener Ausführungsformen vorherzusagen oder abzuleiten. Beispielsweise kann in mindestens einer Ausführungsform ein maschinelles Lernmodell trainiert werden, indem Gewichtsparameter gemäß einer neuronalen Netzwerkarchitektur unter Verwendung von Software und Rechenressourcen berechnet werden, die oben in Bezug auf das Rechenzentrum 1000 beschrieben wurden. In mindestens einer Ausführungsform können trainierte maschinelle Lernmodelle, die einem oder mehreren neuronalen Netzen entsprechen, verwendet werden, um Informationen abzuleiten oder vorherzusagen, wobei die oben beschriebenen Ressourcen in Bezug auf das Rechenzentrum 1000 verwendet werden, indem Gewichtsparameter verwendet werden, die durch eine oder mehrere hier beschriebene Trainingstechniken berechnet werden.
  • In mindestens einer Ausführungsform kann das Rechenzentrum CPUs, anwendungsspezifische integrierte Schaltkreise (ASICs), GPUs, FPGAs oder andere Hardware verwenden, um das Training und/oder die Inferenz mit den oben beschriebenen Ressourcen durchzuführen. Darüber hinaus können eine oder mehrere der oben beschriebenen Software- und/oder Hardwareressourcen als Dienst konfiguriert werden, um Benutzern das Training oder die Inferenz von Informationen zu ermöglichen, wie z. B. Bilderkennung, Spracherkennung oder andere Dienste der künstlichen Intelligenz.
  • Die Inferenz- und/oder Trainingslogik 815 wird verwendet, um Inferenz- und/oder Trainingsoperationen in Verbindung mit einer oder mehreren Ausführungsformen durchzuführen. In mindestens einer Ausführungsform kann die Inferenz- und/oder Trainingslogik 815 im System 10 für Inferenz- oder Vorhersageoperationen verwendet werden, die zumindest teilweise auf Gewichtsparametern basieren, die unter Verwendung von Trainingsoperationen für neuronale Netze, Funktionen und/oder Architekturen neuronaler Netze oder hierin beschriebenen Anwendungsfällen neuronaler Netze berechnet werden.
  • Wie hier unter Bezugnahme auf die 1 bis 7 beschrieben, werden ein Verfahren, ein computerlesbares Medium und ein System zur Erzeugung eines synthetischen Datensatzes offenbart, der auf eine spezifizierte nachgelagerte Aufgabe abzielt und der dann zum Trainieren eines maschinellen Lernmodells für die nachgelagerte Aufgabe verwendet werden kann. Das maschinelle Lernmodell kann (teilweise oder vollständig) in einem oder beiden Datenspeichern 801 und 805 in der Inferenz- und/oder Trainingslogik 815 gespeichert werden, wie in den 8A und 8B dargestellt. Das Training und der Einsatz des maschinellen Lernmodells kann wie in 9 dargestellt und hier beschrieben durchgeführt werden. Die Verteilung des maschinellen Lernmodells kann unter Verwendung eines oder mehrerer Server in einem Rechenzentrum 1000 erfolgen, wie in 10 dargestellt und hierin beschrieben.

Claims (21)

  1. Verfahren, das aufweist: an einer Vorrichtung: Verarbeiten eines Eingabedatensatzes, um einen synthetischen Datensatz zu erzeugen, der auf eine spezifizierte nachgelagerte Aufgabe abzielt; und Ausgeben des synthetischen Datensatzes.
  2. Verfahren nach Anspruch 1, wobei der Eingabedatensatz enthält: einen synthetischen Eingabedatensatz, und einen realen Eingabedatensatz.
  3. Verfahren nach Anspruch 1 oder 2, wobei der Eingabedatensatz markierte Samples enthält.
  4. Verfahren nach einem der vorhergehenden Ansprüche, wobei der synthetische Eingabedatensatz eine größere Anzahl von Samples enthält als der reale Eingabedatensatz.
  5. Verfahren nach einem der vorhergehenden Ansprüche, wobei die Verarbeitung unter Verwendung eines Meta-Lernalgorithmus durchgeführt wird.
  6. Verfahren nach Anspruch 5, wobei der Meta-Lernalgorithmus mehrere synthetische Samples neu gewichtet, die im Eingabedatensatz enthalten sind.
  7. Verfahren nach einem der vorhergehenden Ansprüche, wobei die Verarbeitung des Eingabedatensatzes das Lernen, in Bezug auf die nachgelagerte Zielaufgabe für jedes von mehreren synthetischen Samples, die im Eingabedatensatz enthalten sind, einer Bedeutung des synthetischen Sample und seiner Erzeugungsparameter aufweist.
  8. Verfahren nach Anspruch 7, wobei die Bedeutung als Gewicht angegeben wird.
  9. Verfahren nach Anspruch 7 oder 8, wobei der synthetische Datensatz basierend auf der erlernten Bedeutung für jedes der mehreren synthetischen Samples erzeugt wird, die im Eingabedatensatz enthalten sind.
  10. Verfahren nach einem der vorhergehenden Ansprüche, wobei der synthetische Datensatz aus dem Eingabedatensatz kuratiert wird.
  11. Verfahren nach Anspruch 10, wobei der synthetische Datensatz aus dem Eingabedatensatz kuratiert wird durch: Bestimmen einer definierten Anzahl von am höchsten gewichteten synthetischen Samples, die im Eingabedatensatz enthalten sind, und Auswählen der am höchsten gewichteten synthetischen Samples als synthetischer Datensatz.
  12. Verfahren nach einem der vorhergehenden Ansprüche, wobei der synthetische Datensatz aktiv aus dem Eingabedatensatz synthetisiert wird.
  13. Verfahren nach Anspruch 12, wobei der synthetische Datensatz neu erzeugte synthetische Samples enthält, die den Eingabedatensatz erweitern.
  14. Verfahren nach Anspruch 13, wobei die neu erzeugten synthetischen Samples zusätzliche synthetische Samples enthalten, die über mehrere Iterationen erzeugt wurden.
  15. Verfahren nach Anspruch 13 oder 14, wobei die neu erzeugten synthetischen Samples zusätzliche synthetische Samples umfassen, die erzeugt werden durch: Bestimmen einer definierten Anzahl von am höchsten gewichteten synthetischen Samples, die im Eingabedatensatz enthalten sind, Berechnen einer generativen Parameterverteilung der am höchsten gewichteten synthetischen Samples, die im Eingabedatensatz enthalten sind, Auswählen von mehreren Syntheseparametern, basierend auf der generativen Parameterverteilung, und Erzeugen der zusätzlichen synthetischen Samples basierend auf den mehreren Syntheseparametern.
  16. Verfahren nach einem der vorhergehenden Ansprüche, wobei die nachgelagerte Zielaufgabe eine Computervision-Aufgabe ist.
  17. Verfahren nach einem der vorhergehenden Ansprüche, wobei die nachgelagerte Zielaufgabe eine Aufgabe zur Verarbeitung natürlicher Sprache ist.
  18. Verfahren nach einem der vorhergehenden Ansprüche, wobei der synthetische Datensatz als Trainingsdatensatz zum Trainieren eines maschinellen Lernmodells für die nachgelagerte Zielaufgabe ausgegeben wird.
  19. Verfahren nach Anspruch 18, wobei das Verfahren ferner aufweist: Trainieren des maschinellen Lernmodells für die nachgelagerte Zielaufgabe unter Verwendung des synthetischen Datensatzes.
  20. System, das aufweist: einen nichtflüchtigen Speicher, der Anweisungen aufweist; und einen oder mehrere Prozessoren in Verbindung mit dem Speicher, wobei der eine oder die mehreren Prozessoren die Anweisungen ausführen, um: einen Eingabedatensatz zu verarbeiten, um einen synthetischen Datensatz zu erzeugen, der auf eine spezifizierte nachgelagerte Aufgabe abzielt; und den synthetischen Datensatz auszugeben.
  21. Nichtflüchtiges computerlesbares Medium, das Computerbefehle speichert, die, wenn sie von einem oder mehreren Prozessoren einer Vorrichtung ausgeführt werden, die Vorrichtung veranlassen: einen Eingabedatensatz zu verarbeiten, um einen synthetischen Datensatz zu erzeugen, der auf eine spezifizierte nachgelagerte Aufgabe abzielt; und den synthetischen Datensatz auszugeben.
DE102023127605.0A 2022-10-13 2023-10-10 Generator für synthetische Datensätze Pending DE102023127605A1 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US202263415937P 2022-10-13 2022-10-13
US63/415,937 2022-10-13
US18/212,629 US20240127075A1 (en) 2022-10-13 2023-06-21 Synthetic dataset generator
US18/212,629 2023-06-21

Publications (1)

Publication Number Publication Date
DE102023127605A1 true DE102023127605A1 (de) 2024-04-18

Family

ID=90469396

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102023127605.0A Pending DE102023127605A1 (de) 2022-10-13 2023-10-10 Generator für synthetische Datensätze

Country Status (2)

Country Link
US (1) US20240127075A1 (de)
DE (1) DE102023127605A1 (de)

Also Published As

Publication number Publication date
US20240127075A1 (en) 2024-04-18

Similar Documents

Publication Publication Date Title
Tuli et al. Are convolutional neural networks or transformers more like human vision?
DE102018132069A1 (de) Äquivariante Orientierungspunkt-Transformation für Orientierungspunkt-Lokalisierung
DE102018111905A1 (de) Domänenspezifische Sprache zur Erzeugung rekurrenter neuronaler Netzarchitekturen
DE102018126670A1 (de) Fortschreitende Modifizierung von generativen adversativen neuronalen Netzen
DE112020000584T5 (de) Verfahren für unüberwachte bild-zu-bild-übersetzung mit wenigen aufnahmen
DE102018111407A1 (de) Methode zum maschinellen lernen für automatisches modellieren von mehrwertigen ausgaben
DE112017005651T5 (de) Vorrichtung zur Klassifizierung von Daten
DE202020101701U1 (de) Trainieren neuronaler Netze unter Verwendung von Datenvermehrungsstrategien
DE102021116436A1 (de) Verfahren und Vorrichtung zur datenfreien Posttraining-Netzwerkquantisierung und Generierung von synthetischen Daten auf Grundlage eines vortrainierten Modells maschinellen Lernens
DE102021105249A1 (de) Mikrotraining zur iterativen verfeinerung eines neuronalen netzes mit wenigen anpassungen
DE112019007762T5 (de) Verfahren zum Trainieren eines generativen kontradiktorischen Netzes, modifiziertes Bildgenerierungsmodul und System zum Detektieren von Merkmalen in einem Bild
DE102018114799A1 (de) Halbüberwachtes lernen zur orientierungspunktlokalisierung
DE102018206108A1 (de) Generieren von Validierungsdaten mit generativen kontradiktorischen Netzwerken
DE102022100360A1 (de) Framework für maschinelles lernen angewandt bei einer halbüberwachten einstellung, um instanzenverfolgung in einer sequenz von bildframes durchzuführen
DE102022202017A1 (de) Konzeptbasiertes kontradiktorisches Erzeugungsverfahren mit steuerbarer und diverser Semantik
DE202017007534U1 (de) Multiskalige 3D-Textursynthese
DE102022201780A1 (de) Visuelles Analysesystem zum Bewerten, Verstehen und Verbessern tiefer neuronaler Netze
DE112020005732T5 (de) Erzeugen von trainingsdaten zur objekterkennung
DE102021102748A1 (de) 3d-posenschätzung des menschlichen körpers unter verwendung eines modells, das ausgehend von ungelabelten multi-view-daten trainiert wurde
DE112021003761T5 (de) Prädiktive modelle mit zerlegbaren hierarchischen ebenen, die konfiguriert werden, um interpretierbare resultate zu erzeugen
DE102019101845B4 (de) Photorealistische Bildstilisierung unter Verwendung eines Neuronalen-Netzwerkmodells
DE102023101265A1 (de) Objekterfassung bei Bildstromverarbeitung unter Verwendung von optischem Fluss mit dynamischen Regionen von Interesse
DE102023109072A1 (de) Datenaugmentierung für domänenverallgemeinerung
DE102023103798A1 (de) Automatische fehlervorhersage in rechenzentren
DE102022120117A1 (de) On-Device erfolgendes Detektieren von Digitalobjekten und Generieren von Objektmasken

Legal Events

Date Code Title Description
R012 Request for examination validly filed