DE102021124428A1 - Trainieren energiebasierter variational autoencoder - Google Patents

Trainieren energiebasierter variational autoencoder Download PDF

Info

Publication number
DE102021124428A1
DE102021124428A1 DE102021124428.5A DE102021124428A DE102021124428A1 DE 102021124428 A1 DE102021124428 A1 DE 102021124428A1 DE 102021124428 A DE102021124428 A DE 102021124428A DE 102021124428 A1 DE102021124428 A1 DE 102021124428A1
Authority
DE
Germany
Prior art keywords
values
energy
model
training
training data
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
DE102021124428.5A
Other languages
English (en)
Inventor
Arash Vahdat
Karsten Kreis
Zhisheng Xiao
Jan Kautz
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 DE102021124428A1 publication Critical patent/DE102021124428A1/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/088Non-supervised learning, e.g. competitive learning
    • 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
    • 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/047Probabilistic or stochastic networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N7/00Computing arrangements based on specific mathematical models
    • G06N7/01Probabilistic graphical models, e.g. probabilistic networks

Abstract

Ein Ausführungsbeispiel legt eine Technik zum Erzeugen eines generativen Modells dar. Diese Technik umfasst Erzeugen eines trainierten generativen Modells mit einer ersten Komponente, die Datenpunkte in dem Trainingsdatensatz in latente-Variable-Werte konvertiert, einer zweiten Komponente, die eine Verteilung der latente-Variable-Werten lernt, und einer dritten Komponente, die die latente-Variable-Werte in Ausgabe-Verteilungen konvertiert. Die Technik umfasst auch ein Trainieren eines energiebasierten Modells, um eine Energiefunktion basierend auf Werten zu lernen, die aus einer zweiten Verteilung während Betriebs des trainierten generativen Modells gesampelt werden. Die Technik umfasst ferner ein Erzeugen eines gemeinsamen Modells, das einen oder mehrere Abschnitte des trainierten generativen Modells und das energiebasierten Modell umfasst, und das Energiewerte aus dem energiebasierten Modell auf Samples aus der zweiten Verteilung anwendet, um zusätzliche Werte zu produzieren, die verwendet werden, um einen neuen Datenpunkt zu erzeugen.

Description

  • HINTERGRUND
  • Gebiet der verschiedenen Ausführungsbeispiele
  • Ausführungsbeispiele der vorliegenden Offenbarung beziehen sich im Allgemeinen auf Maschinenlernen und Computerwissenschaft und spezifischer auf Techniken zum Trainieren energiebasierter Variational Autoencoder.
  • Beschreibung des Standes der Technik
  • Beim Maschinenlernen beinhalten generative Modelle typischerweise Deep Neural Networks und/oder andere Typen von Maschinenlern-Modellen, die trainiert werden, um neue Instanzen von Daten zu erzeugen. Zum Beispiel könnte ein generatives Modell mit einem Trainingsdatensatz trainiert werden, der eine große Anzahl von Bildern von Katzen umfasst. Während des Trainings „lernt“ das generative Modell die visuellen Attribute der verschiedenen Katzen, die in den Bildern abgebildet sind. Diese gelernten visuellen Attribute könnte dann mittels des generativen Modells verwendet werden, um neue Bilder von Katzen zu produzieren, die nicht in dem Trainingsdatensatz gefunden werden.
  • Ein Variational Autoencodern (VAE) ist eine Art von generatives Modell. Ein VAE umfasst typischerweise ein Encoder-Netzwerk, das trainiert ist, um Datenpunkte in dem Trainingsdatensatz in Werte von „latenten Variablen“ zu konvertieren, wo jede latente Variable ein Attribut der Datenpunkte in dem Trainingsdatensatz repräsentiert. Der VAE umfasst auch ein Prior-Netzwerk , das trainiert wird, um eine Verteilung der latenten Variablen zu lernen, die dem Trainingsdatensatz zugeordneten sind, wobei die Verteilung der latenten Variablen Variationen und Vorkommen der verschiedenen Attribute in dem Trainingsdatensatz repräsentiert. Der VAE umfasst ferner ein Decoder-Netzwerk, das trainiert ist, die vom Encoder-Netzwerk erzeugten latente-Variable-Werte zurück in Datenpunkte umzuwandeln, die im Wesentlichen mit Datenpunkten in dem Trainingsdatensatz identisch sind. Nach Abschluss des Trainings können neue Daten, die Daten im ursprünglichen Trainingsdatensatz ähneln, unter Verwenden des trainierten VAE generiert werden, indem latente-Variable-Werte aus der vom Prior-Netzwerk während des Trainings gelernten Verteilung ausgewählt, diese ausgewählten Werte, via das Decoder-Netzwerk, in Verteilungen von Werten der Datenpunkte konvertiert; und Werte der Datenpunkte aus den Verteilungen ausgewählt werden. Jeder auf diese Weise erzeugte neue Datenpunkt kann Attribute enthalten, die einem oder mehreren Attributen der Datenpunkte in dem Trainingsdatensatz ähnlich (aber nicht identisch) sind.
  • Zum Beispiel könnte ein VAE mit einem Trainingsdatensatz trainiert werden, der Bilder von Katzen enthält, wobei jedes Bild Zehntausende bis Millionen von Pixeln enthält. Der trainierte VAE würde ein Encoder-Netzwerk umfassen, das jedes Bild in Hunderte oder Tausende von numerischen latente-Variable-Werten umwandelt. Jede latente Variable würde ein korrespondierendes visuelles Attribut repräsentieren, das in einem oder mehreren der Bilder zu finden ist, die zum Trainieren des VAE verwendet werden (z. B. Aussehen der Gesichter, Fell, Körper, Ausdrücke, Posen usw. der Katzen in den Bildern). Variationen und Auftreten in den visuellen Attributen quer über alle Bilder im Trainingsdatensatz würden vom Prior-Netzwerk als eine entsprechende Verteilung von latenten Variablen erfasst werden (z. B. als Mittelwerte, Standardabweichungen und/oder andere zusammenfassende Statistiken, die mit den numerischen latente-Variable-Werten assoziiert sind). Nachdem das Training abgeschlossen ist, könnten zusätzliche Bilder von Katzen, die nicht im Trainingsdatensatz enthalten sind, erzeugt werden, indem latente-Variable-Werte aus der Verteilung der latenten Variablen, die vom Prior-Netzwerk gelernt wurden, ausgewählt, die latente-Variable-Werte via das Decoder-Netzwerk in Verteilungen von Pixelwerten umgewandelt und Pixelwerte aus den Verteilungen gesampelt werden, die mittels des Decoder-Netzwerks erzeugt werden, um die zusätzlichen Bilder von Katzen zu bilden.
  • Ein Nachteil der Verwendung von VAEs zum Erzeugen neuer Daten besteht darin, dass VAEs häufig Regionen innerhalb der Verteilung von Datenpunktwerten, die durch das Decoder-Netzwerk erzeugt werden, hohe Wahrscheinlichkeiten zuordnen, die tatsächlich niedrige Wahrscheinlichkeiten innerhalb der Verteilung von Datenpunkten in dem Trainingsdatensatz haben. Diese Regionen mit irrtümlich hohen Wahrscheinlichkeiten innerhalb der Verteilung von Datenpunktwerten, die durch das Decoder-Netzwerk erzeugt werden, korrespondieren zu Regionen mit irrtümlich hohen Wahrscheinlichkeiten innerhalb der Verteilung von latenten Variablen, die durch das Prior-Netzwerk gelernt wurden. Die Regionen mit irrtümlich hohen Wahrscheinlichkeiten in der Verteilung von latenten Variablen, die durch das Prior-Netzwerk gelernt wurden, resultieren aus der Unfähigkeit des Prior-Netzwerks komplexe oder „ausdrucksvolle“ Verteilungen von latente-Variablen-Werten zu lernen. Da die Regionen mit hoher Wahrscheinlichkeit innerhalb der Verteilung von Datenpunktwerten, die durch das Decoder-Netzwerk erzeugt werden, oder innerhalb der Verteilung von latenten Variablen, die durch das Prior-Netzwerk gelernt wurden, die Attribute der tatsächlichen Datenpunkte im Trainingssatz möglicherweise nicht genau erfassen, ähneln neue Datenpunkte, die erzeugt werden, indem latente-Variable-Werte aus Regionen mit irrtümlich hohen Wahrscheinlichkeiten in der Verteilung von latenten Variablen, die durch das Prior-Netzwerk gelernt wurden, ausgewählt werden, indem die ausgewählten latente-Variable-Werte via das Decoder-Netzwerk in Verteilungen von Pixelwerten, die korrespondierende Bereiche mit irrtümlich hohen Wahrscheinlichkeiten enthalten, konvertiert werden, und indem Pixelwerte aus den Verteilungen der Pixelwerte gesampelt werden, oft nicht den Daten im Training-Datensatz.
  • Mit dem obigen Beispiel fortfahrend würde der Trainingsdatensatz, der Bilder von Katzen enthält, durch den Encoder in einem VAE, während des Trainings, in latente-Variable-Werte konvertiert werden. Diese latenten Variablen würden dann vom Decoder im VAE, während des Trainings, in Verteilungen von Pixelwerten umgewandelt, die den Pixelwerten in den Bildern hohe Wahrscheinlichkeiten zuordnen. Dementsprechend sollten Pixelwerte, die aus der Verteilung von Pixelwerten gesampelt werden, die mittels des Decoders aus diesen latente-Variable-Werten erzeugt werden, zu Bildern führen, die den Bildern im Trainingsdatensatz stark ähneln.
  • Jedoch könnte die Verteilung von latente-Variable-Werten, die mittels des Prior-Netzwerk s gelernt wird, einer oder mehreren Regionen hohe Wahrscheinlichkeiten zuordnen, die keinerlei latente-Variable-Werte enthalten, die von dem Encoder aus Bildern in dem Trainingsdatensatz erzeugt werden. In einem solchen Fall wären die der/den Region(en) zugeordneten hohen Wahrscheinlichkeiten fehlerhaft und würden fälschlicherweise anzeigen, dass die Region(en) latente-Variable-Werte enthalten, die zu den visuellen Attributen der tatsächlichen Trainingsdaten korrespondieren. Wie oben angemerkt, könnten diese Region(en) durch eine Verteilung von latenten Variablen verursacht werden, die von dem Prior-Netzwerk gelernt wurden, die simpler oder nicht so „ausdrucksstark“ ist wie die tatsächliche Verteilung von latente-Variable-Werten, die von dem Encoder-Netzwerk produziert wird. Wenn latente-Variable-Werte aus dieser/diesen Region(en) ausgewählt werden, könnte das Decoder-Netzwerk, aus den ausgewählten Werten der latenten Variablen, eine Verteilung von Pixelwerten erzeugen, die auch gewissen Pixelwerten hohe Wahrscheinlichkeiten zuweist, die die visuellen Attribute der Bilder im Trainingsdatensatz nicht so genau widerspiegeln. Ein neues Bild, das durch Auswahl aus dieser Verteilung von Pixelwerten erzeugt wird, könnte die Pixelwerte mit irrtümlich hoher Wahrscheinlichkeit enthalten, was dazu führen könnte, dass das Bild Bereiche enthält, die verschwommen, verschmiert, verzerrt, falsch texturiert, unzusammenhängend oder anderweitig den Bildern von Katzen im Trainingsdatensatz nicht ähnlich sind.
  • Ein Ansatz zum Auflösen der Nichtübereinstimmung zwischen der Verteilung von latente-Variable-Werten, die von dem Prior-Netzwerk gelernt werden, und der tatsächlichen Verteilung der latente-Variablen-Werten, die von dem Encoder-Netzwerk aus dem Trainingsdatensatz produziert werden, und der korrespondierenden Nichtübereinstimmung zwischen der Verteilung von Datenpunktwerten, die vom Decoder-Netzwerk generiert werden, und der tatsächlichen Verteilung von Datenpunktwerten im Trainingsdatensatz, besteht darin, ein energiebasiertes Modell zu implementieren, das mit einer iterativen Markov-Chain-Monte-Carlo-(MCMC)-Samplingtechnik trainiert wird, um eine komplexere oder „ausdrucksstärkere“ Verteilung von latente-Variable-Werten und/oder Datenpunktwerte zu lernen, um den Trainingsdatensatz zu repräsentieren. Jedoch hängt jeder MCMC-Samplingschritt vom Ergebnis eines vorherigen Samplingschritts ab, was verhindert, dass MCMC-Samplingoperationen parallel ausgeführt werden. Ferner ist typischerweise eine relativ große Anzahl von MCMC-Samplingschritten erforderlich, damit das energiebasierte Modell eine ausreichende Genauigkeit erreicht. Serielles Durchführen einer größeren Anzahl von MCMC-Samplingschritten ist sowohl rechentechnisch ineffizient als auch ziemlich zeitaufwendig.
  • Wie das Vorgenannte zeigt, sind, was in der Technik benötigt wird, effektivere Techniken zum Erzeugen von neuen Daten unter Verwenden von Variational Autoencodern.
  • ZUSAMMENFASSUNG
  • Ein Ausführungsbeispiel der vorliegenden Erfindung zeigt eine Technik zum Erzeugen eines generativen Modells. Die Technik umfasst ein Ausführen von einer oder mehreren Operationen basierend auf einem Trainingsdatensatz, um ein trainiertes generatives Modell zu erzeugen, das umfasst: eine erste Komponente, die eine Vielzahl an Datenpunkten, die in dem Trainingsdatensatz enthalten sind, in einen Satz von latente-Variable-Werten konvertiert, eine zweite Komponente, die eine Verteilung des Satzes von latente-Variable-Werten quer über den Trainingsdatensatz lernt, und eine dritte Komponente, die einen oder mehrere Werte in eine oder mehrere Ausgabe-Verteilungen konvertiert. Die Technik umfasst auch ein Ausführen einer oder mehrerer Operationen, um ein energiebasiertes Modell zu trainieren, um eine Energiefunktion basierend auf einem ersten Satz von Werten, die aus einer oder mehreren ersten Verteilungen gesampelt werden, die mit dem Trainingsdatensatz assoziiert sind, und einem zweiten Satz von Werten zu lernen, die aus einer oder mehreren zweiten Verteilungen gesampelt werden, die während Betriebs von einem oder mehreren Abschnitten des trainierten generativen Modells verwendet werden. Die Technik umfasst ferner Erzeugen eines gemeinsamen Modells, das einen oder mehrere Abschnitte des trainierten generativen Modells und das energiebasierte Modell umfasst, wobei das gemeinsame Modell einen oder mehrere Energiewerte, die via das energiebasierte Modell erzeugt werden, auf einen dritten Satz von Werten, die aus der einen oder mehreren zweiten Verteilungen gesampelt werden, anwendet, um ein viertes Set von Werten zu erzeugen, wobei, im Betrieb, das gemeinsame Modell das vierte Set von Werten produziert, um einen neuen Datenpunkt zu erzeugen, der nicht in dem Trainingsdatensatz enthalten ist.
  • Zumindest ein technischer Vorteil der offenbarten Techniken im Vergleich zu dem Stand der Technik ist, dass die offenbarten Techniken eine generative Ausgabe produzieren, die realistischer und den Daten in einem Trainingsdatensatz ähnlicher sieht, verglichen damit, was typischerweise unter Verwenden von herkömmlichen Variational Autoencoder produziert wird. Ein anderer technischer Vorteil ist, dass, mit den offenbarten Techniken, eine komplexe Verteilung von Werten, die einen Trainingsdatensatz repräsentieren, angenähert werden kann, mittels eines gemeinsamen Modells, das in einer bezüglich Rechenaufwand effektiveren Weise trainiert und ausgeführt werden kann, im Vergleich mit Techniken aus dem Stand der Technik. Diese technischen Vorteile stellen einen oder mehrere technologische Verbesserungen über Ansätze des Standes der Technik dar.
  • Figurenliste
  • Damit die Art und Weise, in der die oben genannten Merkmale der verschiedenen Ausführungsformen im Detail verstanden werden können, kann eine genauere Beschreibung der erfinderischen Konzepte, die oben kurz zusammengefasst wurden, unter Bezugnahme auf verschiedene Ausführungsbeispiele erfolgen, von denen einige in den beigefügten Zeichnungen veranschaulicht sind. Es ist jedoch zu beachten, dass die beigefügten Zeichnungen nur typische Ausführungsbeispiele der erfinderischen Konzepte veranschaulichen und daher in keiner Weise als Einschränkung des Schutzumfangs anzusehen sind und dass es da andere ebenso effektive Ausführungsbeispiele gibt.
    • 1 zeigt eine Rechenvorrichtung, die konfiguriert ist, um eine oder mehrere Aspekte der verschiedenen Ausführungsbeispiele zu implementieren.
    • 2 ist eine detailliertere Darstellung von der Trainings-Engine und Ausführungs-Engine von 1, gemäß verschiedenen Ausführungsbeispielen.
    • 3A zeigt eine beispielhafte Architektur von dem Encoder, der in der hierarchischen Version des VAE von 2 enthalten ist, gemäß verschiedenen Ausführungsbeispielen.
    • 3B zeigt eine beispielhafte Architektur für ein generatives Model, das in der hierarchischen Version des VAE von 2 enthalten ist, gemäß verschiedenen Ausführungsbeispielen.
    • 4A zeigt eine beispielhafte Residuum-Zelle, die in dem Encoder enthalten ist, der in der hierarchischen Version des VAE von 2 enthalten ist, gemäß verschiedenen Ausführungsbeispielen.
    • 4B zeigt eine beispielhafte Residuum-Zelle in einem generativen Abschnitt der hierarchischen Version des VAE von 2, gemäß verschiedenen Ausführungsbeispielen.
    • 5A zeigt eine beispielhafte Architektur für das energiebasierte Modell von 2, gemäß verschiedenen Ausführungsbeispielen.
    • 5B zeigt eine beispielhafte Architektur für das energiebasierte Modell von 2, gemäß anderen verschiedenen Ausführungsbeispielen.
    • 5C zeigt eine beispielhafte Architektur für das energiebasierte Modell von 2, gemäß noch anderen verschiedenen Ausführungsbeispielen.
    • 6 zeigt ein Flussdiagramm von Verfahrensschritten zum Trainieren eines generativen Modells, gemäß verschiedenen Ausführungsbeispielen.
    • 7 zeigt ein Flussdiagramm von Verfahrensschritten zum Produzieren von generativer Ausgabe, gemäß verschiedenen Ausführungsbeispielen.
    • 8 zeigt ein Spiel-Streaming-System, das konfiguriert ist, um einen oder mehrere Aspekte der verschiedenen Ausführungsbeispiele zu implementieren.
  • DETAILLIERTE BESCHREIBUNG
  • In der folgenden Beschreibung werden zahlreiche spezifische Details dargelegt, um ein vollständigeres Verständnis der verschiedenen Ausführungsbeispiele bereitzustellen. Jedoch ist es für den Fachmann offensichtlich, dass die erfinderischen Konzepte mit oder ohne ein oder mehrere dieser spezifischen Details praktiziert werden können.
  • Allgemeiner Überblick
  • Ein Variational Autoencoder (VAE) ist eine Art von maschinenlern-Modell, das trainiert ist, um neue Instanzen von Daten zu erzeugen, nach „Lernen“ der Attribute von Daten, die in einem Trainingsdatensatz gefunden wurden. Zum Beispiel könnte ein VAE mit einem Datensatz trainiert werden, der eine große Anzahl von Bildern von Katzen enthält. Während des Trainings des VAE lernt der VAE Muster von Gesichtern, Fell, Körpern, Ausdrücken, Posen und/oder anderen sichtbaren Attributen der Katzen in den Bildern. Diese gelernten Muster erlauben es dem VAE, neue Bilder von Katzen zu produzieren, die nicht in dem Trainingsdatensatz gefunden werden können.
  • Ein VAE umfasst eine Anzahl von Neuronalen Netzwerken. Diese Neuronalen Netzwerke können ein Encoder-Netzwerk umfassen, das trainiert ist, Datenpunkte in dem Trainingsdatensatz in Werte von „latenten Variablen“ zu konvertieren, wo jede latente Variable ein Attribut der Datenpunkte in dem Trainingsdatensatz repräsentiert. Diese Neuronalen Netzwerke können auch ein Prior-Netzwerk umfassen, das trainiert ist, um eine Verteilung von latenten Variablen zu lernen, die mit dem Trainingsdatensatz assoziiert sind, wobei die Verteilung der latenten Variablen Variationen und Auftreten der verschiedenen Attribute in dem Trainingsdatensatz repräsentiert. Diese Neuronalen Netzwerke können zusätzlich ein Decoder-Netzwerk umfassen, das trainiert ist, um die latente-Variable-Werte, die mittels des Encoder-Netzwerks erzeugt wurden, zurück in Datenpunkte zu konvertieren, die im Wesentlichen identisch zu Datenpunkten in dem Trainingsdatensatz sind. Nachdem das Training vollendet ist, können neue Daten, die ähnlich zu Daten in dem originalen Trainingsdatensatz sind, erzeugt werden unter Verwenden des trainierten VAE, indem latente-Variable-Werte aus der Verteilung, die mittels des Prior-Netzwerk s gelernt wurde, während des Trainings und des Konvertierens dieser gesampelten Werte, via das Decoder-Netzwerk, in Verteilungen von Werten der Datenpunkte gesampelt werden; und dem Sampeln von Werten der Datenpunkte aus den Verteilungen. Jeder neue Datenpunkt, der auf diese Weise erzeugt wird, kann Attribute umfassen, die ähnlich (aber nicht gleich) zu einem oder mehreren Attributen der Datenpunkte in dem Trainingsdatensatz sind.
  • Zum Beispiel könnte ein VAE mit einem Trainingsdatensatz trainiert werden, der Bilder von Katzen umfasst, wobei jedes Bild Zehntausende bis Millionen von Pixeln enthält. Der trainierte VAE würde ein Encoder-Netzwerk umfassen, das jedes Bild in Hunderte oder Tausende von numerischen latente-Variable-Werten umwandelt. Jede latente Variable würde ein korrespondierendes visuelles Attribut repräsentieren, das in einem oder mehreren der Bilder zu finden ist, die zum Trainieren des VAE verwendet werden (z. B. Aussehen der Gesichter, Fell, Körper, Ausdrücke, Posen usw. der Katzen in den Bildern). Variationen und Auftreten in den visuellen Attributen quer über alle Bilder im Trainingsdatensatz würden vom Prior-Netzwerk als eine entsprechende Verteilung von latenten Variablen erfasst werden (z. B. als Mittelwerte, Standardabweichungen und/oder andere zusammenfassende Statistiken, die mit den numerischen latente-Variable-Werten assoziiert sind). Nachdem das Training abgeschlossen ist, könnten zusätzliche Bilder von Katzen, die nicht im Trainingsdatensatz enthalten sind, erzeugt werden, indem die latente-Variable-Werte aus der Verteilung von latenten Variablen ausgewählt werden, die vom Prior-Netzwerk gelernt werden, die latente-Variable-Werte via das Decoder-Netzwerk in Verteilungen von Pixelwerten umgewandelt werden, und Pixelwerte aus den Verteilungen, die mittels des Decoder-Netzwerks erzeugt werden, gesampelt werden, um die zusätzlichen Bilder von Katzen zu bilden.
  • VAEs können in verschiedenen Real-Welt Anwendungen verwendet werden. Zuerst kann ein VAE verwendet werden, um Bilder, Text, Musik und/oder anderen Inhalt zu erzeugen, die in Werbungen, Publikationen, Spielen, Videos und/oder anderen Arten von Medien verwendet werden können. Zweitens können VAEs in Computergraphik Anwendungen verwendet werden. Zum Beispiel könnte ein VAE verwendet werden, um zwei-dimensionale (2D) oder drei-dimensionale (3D) Charaktere, Objekte und/oder Szenen zu rendern, anstatt Benutzern abzuverlangen, den 2D oder 3D Inhalt explizit zu zeichnen oder zu erzeugen. Drittens können VAEs verwendet werden, um Daten zu erzeugen oder zu erweitern (augment). Zum Beispiel könnte das Aussehen einer Person in einem Bild (z.B. Gesichtsausdruck, Geschlecht, Gesichtsmerkmale, Haare, Haut, Kleidung, Accessoires, usw.) geändert werden mittels Anpassens von latente-Variable-Werten, die mittels des Encoder-Netzwerks in einem VAE aus dem Bild ausgegeben werden, und Verwendens des Decoder-Netzwerks des gleichen VAE, um die angepassten Werte in ein neues Bild zu konvertieren. In einem anderen Beispiel könnten die Prior- oder Encoder-Netzwerke eines trainierten VAE verwendet werden, um neue Bilder zu erzeugen, die in Trainingsdaten für ein anderes maschinenlern-Modell eingefügt werden. Viertens können VAEs verwendet werden, die Attribute eines gegebenen Trainingsdatensatzes zu analysieren oder zu kumulieren. Zum Beispiel könnten visuelle Attribute von Gesichtern, Tieren und/oder Objekten, die mittels eines VAE aus einem Satz von Bildern gelernt werden, analysiert werden, um die visuellen Attribute besser zu verstehen und/oder die Performance von maschinenlern-Modellen zu verbessern, die zwischen verschiedenen Typen von Objekten in Bildern unterscheiden.
  • Um ein VAE beim Erzeugen von neuen Daten, die getreulich innerhalb eines Trainingsdatensatzes gefundene Attribute erfassen, zu unterstützen, wird der VAE zuerst anhand des Trainingsdatensatzes trainiert. Während des Trainings des VAE lernt das Prior-Netzwerk eine Verteilung von latenten Variablen, die Attribute einer „höheren Stufe“ in dem Trainingsdatensatz erfasst, und das Decoder-Netzwerk lernt, Samples aus der Verteilung von latenten Variablen in Verteilungen von Datenpunkt-Werten zu konvertieren, die diese Attribute höherer Stufe widerspiegeln. Nachdem das Training des VAE vollendet ist, wird ein separates maschinenlern-Modell, das ein energiebasiertes Modell genannt wird, trainiert, um Attribute „niedrigerer Stufe“ in dem Trainingsdatensatz zu lernen. Das trainierte energiebasierte Modell umfasst eine Energiefunktion, die einen niedrigen Energiewert ausgibt, wenn ein Sample aus einer oder mehreren Verteilungen von Datenpunkt-Werten, die mittels des Decoder-Netzwerks des VAE ausgegeben wurden, eine hohe Wahrscheinlichkeit in der tatsächlichen Verteilung von Datenpunkt-Werten in dem Trainingsdatensatz hat. Die Energiefunktion gibt einen hohen Energiewert aus, wenn das Sample eine geringe Wahrscheinlichkeit in der tatsächlichen Verteilung von Datenpunkt-Werten in dem Trainingsdatensatz hat. Mit anderen Worten lernt das energiebasierte Modell, zu identifizieren, wie gut das Sample die tatsächliche Verteilung von Datenpunkt-Werten in dem Trainingsdatensatz widerspiegelt.
  • Zum Beispiel könnte der VAE zuerst trainiert werden, Formen, Größen, Positionen und/oder andere visuelle Attribute höherer Stufe von Augen, Nasen, Ohren, Mündern, Kinnen, Kiefern, Haaren, Accessoires und/oder anderen Teilen von Gesichtern in Bildern, die im Trainingsdatensatz enthalten sind, zu lernen. Als nächstes könnte das energiebasierte Modell trainiert werden, visuelle Attribute niedrigerer Stufe zu lernen, die sich auf Texturen, Schärfe oder Übergänge quer über verschiedene Bereiche innerhalb der Bilder, die in dem Trainingsdatensatz enthalten sind, beziehen. Das trainierte energiebasierte Modell würde dann einen niedrigen Energiewert produzieren, wenn ein Bild, das aus Pixelwerten aufgebaut ist, die aus einer Verteilung von Pixelwerten gesampelt ist, die mittels des Decoder-Netzwerks des VAE aus latente-Variable-Werten erzeugt wurden, die aus einer Verteilung, die mittels des Prior-Netzwerk s des VAE gelernt wurden, gesampelt wurden, eine hohe Wahrscheinlichkeit in der Verteilung von Pixelwerten quer über Bilder in dem Trainingsdatensatz hat. Umgekehrt würde das trainierte energiebasierte Modell einen hohen Energiewert produzieren, wenn ein Bild, das aus Pixelwerten aufgebaut ist, die aus der Verteilung von Pixelwerten gesampelt ist, die mittels des Decoder-Netzwerks aus latenten Variablen erzeugt wurden, die aus der Verteilung, die mittels des Prior-Netzwerk s gelernt wurden, gesampelt wurden, eine niedrige Wahrscheinlichkeit in der Verteilung von Pixelwerten quer über Bilder in dem Trainingsdatensatz hat.
  • Der trainierte VAE und das energiebasierte Modell können dann zusammen in einem gemeinsamen Modell verwendet werden, das eine generative Ausgabe erzeugt, die den Daten in dem Trainingsdatensatz ähnelt. Insbesondere können eine oder mehrere Verteilungen, die im Betrieb des VAE verwendet werden, gesampelt werden, um einen ersten Satz von Werten zu erzeugen. Das energiebasierte Modell wird dann auf den ersten Satz von Werten angewendet, um einen oder mehrere Energiewerte zu erzeugen, die die Wahrscheinlichkeit widerspiegeln, dass der erste Satz von Werten aus einer oder mehreren korrespondierenden Verteilungen gesampelt wird, die mit dem Trainingsdatensatz assoziiert sind. Diese Energiewerte werden dann verwendet, um den ersten Satz von Werten anzupassen, so dass „nicht-Daten-ähnliche“ Regionen, denen es misslingt Attribute der Daten des Trainingsdatensatzes zu erfassen oder widerzuspiegeln, in der Ausgabe des gemeinsamen Modells ausgespart werden.
  • Zum Beispiel könnte der erste Satz von Werten einen Satz von Pixelwerten in einem Bild umfassen. Diese Pixelwerte könnten erzeugt werden, indem aus einer oder mehreren Verteilungen von Pixelwerten gesampelt wird, die mittels des Decoder-Netzwerks des VAE ausgegeben werden, nachdem ein oder mehrere Werte, die aus der Verteilung von latenten Variablen, die mittels des Prior-Netzwerk s in dem VAE gelernt wurden, gesampelt wurden, in das Decoder-Netzwerk eingegeben werden. Als nächstes könnten die Pixelwerte in das energiebasierte Modell eingegeben werden, um einen oder mehrere Energiewerte zu erzeugen, die angeben, wie gut das Bild in die Verteilung von Pixelwerten in dem Trainingsdatensatz, der verwendet wurde, um den VAE und das energiebasierte Modell zu trainieren, „hineinpasst“. Eine Markov-Chain-Monte-Carlo-(MCMC)-Samplingtechnik könnte dann verwendet werden, um die Pixelwerte in dem Bild iterativ zu aktualisieren, basierend auf den korrespondierenden Energiewerten, so dass über die Zeit die Energiewerte minimiert werden und die Pixelwerte in dem Bild die visuellen Attribute der Bilder in dem Trainingsdatensatz besser erfassen.
  • In einem anderen Beispiel könnte die Ausgabe des Decoder-Netzwerks, indem deterministische Transformationen von einem ersten Satz von Werten, der aus einer oder mehreren Rausch-Verteilungen gesampelt wurde, verwendet werden, repräsentiert werden. Diese Rausch-Verteilungen könnten eine oder mehrere Normal-Verteilungen umfassen, aus denen während des Betriebs des VAE Samples gezogen werden. Der erste Satz an Werten könnte dann in die prior- und/oder Decoder-Netzwerke des VAE eingespeist werden, um jeweilige latente-Variable-Werte und/oder Pixelwerte in einem Ausgabebild zu erzeugen. Daher könnte das energiebasierte Modell auf den ersten Satz von Werten angewendet werden, um einen oder mehrere Energiewerte zu erzeugen, die anzeigen, wie gut die korrespondierenden latente-Variable-Werte und/oder Pixelwerte die Verteilungen der latenten Variablen und/oder Verteilungen von Pixelwerten, die mit dem Trainingsdatensatz, der verwendet wurde, um den VAE und das energiebasierte Modell zu trainieren, assoziiert sind, widerspiegeln. Eine MCMC-Samplingtechnik könnte dann verwendet werden, um den ersten Satz von Werten basierend auf den korrespondierenden Energiewerten iterativ zu aktualisieren. Diese MCMC-Iterationen minimieren die Energiewerte und transformieren den ersten Satz von Werten in einen zweiten Satz von Werten, der in ein Bild konvertiert werden kann, das die visuellen Attribute der Bilder in dem Trainingsdatensatz besser als der erste Satz an Werten widerspiegelt.
  • Systemüberblick
  • 1 zeigt eine Rechenvorrichtung 100, die konfiguriert ist, einen oder mehrere Aspekte von verschiedenen Ausführungsbeispielen zu implementieren. In einem Ausführungsbeispiel umfasst die Rechenvorrichtung 100 einen Desktopcomputer, einen Laptop-Computer, ein Smartphone, einen Personal Digital Assistant (PDA), einen Tabletcomputer oder irgendeinen anderen Typ von Rechenvorrichtung, die konfiguriert ist, Eingaben zu empfangen, Daten zu prozessieren und optional Bilder anzuzeigen und dazu geeignet ist, ein oder mehrere Ausführungsbeispiele zu praktizieren. Rechenvorrichtung 100 ist konfiguriert, um eine Trainings-Engine 122 und eine Ausführungs-Engine 124 laufen zu lassen, die in einem Memory 116 residieren. Es sei angemerkt, dass die Rechenvorrichtung, die hierin beschrieben wird, beispielhaft ist und dass alle anderen technisch realisierbaren Konfigurationen unter den Umfang der vorliegenden Offenbarung fallen. Zum Beispiel könnten mehrere Instanzen von Trainings-Engine 122 und Ausführungs-Engine 124 auf einen Satz von Knoten in einem verteilten und/oder Cloud-Rechnersystem ausführen, um die Funktionalität von Rechenvorrichtung 100 zu implementieren.
  • In einem Ausführungsbeispiel umfasst die Rechenvorrichtung 100, ohne Beschränkung, einen Interconnect(Bus) 112, der einen oder mehrere Prozessoren 102, eine Eingabe/Ausgabe-(E/A)-Vorrichtungs-Schnittstelle 104, die an eine oder mehrere Eingabe/Ausgabe-(E/A)-Vorrichtungen 108 gekoppelt ist, Memory 116, einen Speicher 114 und eine Netzwerkschnittstelle 106 umfasst. Prozessor(en) 102 kann/können jeder geeignete Prozessor sein, der als eine zentrale Verarbeitungseinheit (CPU), eine Grafikverarbeitungseinheit (GPUs), eine Anwendungsspezifische integrierte Schaltungen (ASIC), ein Field Programmable Gate Array (FPGA), ein künstliche Intelligenz (AI) Beschleuniger, irgendeine andere Art von Verarbeitungseinheit oder eine Kombination von verschiedenen Verarbeitungseinheiten, wie eine CPU, die konfiguriert ist, in Verbindung mit einer GPU zu operieren, implementiert ist. Im Allgemeinen kann/können der/die Prozessor(en) 102 jede technisch realisierbare Hardwareeinheit sein, die fähig ist, Daten zu prozessieren und/oder Software-Anwendungen auszuführen. Ferner können, im Kontext dieser Offenbarung, die Rechenelemente, die in der Rechenvorrichtung 100 gezeigt werden, zu einem physikalischen Rechensystem (z.B. ein System in einem Datencenter) korrespondieren oder können eine virtuelle Recheninstanz sein, die innerhalb einer Rechen-Cloud ausführt.
  • In einem Ausführungsbeispiel umfassen E/A-Vorrichtungen 108 sowohl Vorrichtungen, die geeignet sind, Eingaben zu empfangen, wie beispielweise eine Tastatur, eine Maus, ein Touchpad und/oder ein Mikrophon, als auch Vorrichtungen, die geeignet sind, Ausgaben bereitzustellen, wie beispielsweise eine Anzeigevorrichtung und/oder einen Lautsprecher. Zusätzlich können E/A-Vorrichtungen 108 Vorrichtungen umfassen, die geeignet sind, sowohl Eingabe zu empfangen als auch Ausgabe bereitzustellen, wie beispielsweise einen Touchscreen, einen Universal Serial Bus-(USB)-Port und so weiter. E/A-Vorrichtungen 108 können konfiguriert sein, um verschiedene Typen von Eingabe von einem End-Benutzer (z.B. einem Designer) von Rechenvorrichtung 100 zu empfangen, und um ebenso verschiedene Typen von Ausgabe an den End-Benutzer von Rechenvorrichtung 100 bereitzustellen, wie beispielsweise angezeigte Digitalbilder oder Digitalvideos oder Text. In einigen Ausführungsbeispielen sind eine oder mehrere E/A-Vorrichtungen 108 konfiguriert, um Rechenvorrichtung 100 an ein Netzwerk 110 zu koppeln.
  • In einem Ausführungsbeispiel ist Netzwerk 110 jede technisch realisierbare Art von Kommunikations-Netzwerk, das erlaubt Daten zwischen Rechenvorrichtung 100 und externen Entitäten oder Vorrichtungen, wie beispielsweise einem Webserver oder eine andere netzwerkverbundene Rechenvorrichtung, auszutauschen. Zum Beispiel könnte Netzwerk 110 unter anderem ein Weitverkehrsnetz (Wide Area Network, WAN), ein lokales Netzwerk (Local Area Network, LAN), ein drahtloses (WiFi) Netzwerk und/oder das Internet umfassen.
  • In einem Ausführungsbeispiel umfasst Speicher 114 non-volantilen Speicher für Anwendungen und Daten und kann eingebaute oder herausnehmbare Plattenlaufwerke, Flashspeicher-Vorrichtungen, und CD-ROM, DVD-ROM, Blu-ray, HD-DVD oder andere magnetische, optische oder Festkörper-Speichervorrichtungen umfassen. Trainings-Engine 122 und Ausführungs-Engine 124 können im Speicher 114 gespeichert sein und in Memory 116 geladen werden, wenn ausgeführt.
  • In einem Ausführungsbeispiel umfasst Memory 116 ein Direktzugriffspeicher-(Random Access Memory, RAM)-Modul, eine Flashspeicher-Einheit oder irgendeine andere Art von Memoryvorrichtung oder Kombination davon. Prozessor(en) 102, E/A-Vorrichtungs-Schnittstelle 104 und NetzwerkSchnittstelle 106 sind konfiguriert, um Daten von Memory 116 zu lesen oder Daten auf Memory 116 zu schreiben. Memory 116 umfasst verschiedene Softwareprogramme, die mittels Prozessor(en) 102 ausgeführt werden können und Anwendungsdaten, die mit diesen Softwareprogrammen assoziiert sind, einschließlich Trainings-Engine 122 und Ausführungs-Engine 124.
  • Trainings-Engine 122 umfasst Funktionalität um einen Variational Autoencoder (VAE) an einem Trainingsdatensatz zu trainieren, und Ausführungs-Engine 124 umfasst Funktionalität um einen oder mehrere Abschnitte des VAE auszuführen, um zusätzliche Daten zu erzeugen, die nicht in dem Trainingsdatensatz gefunden werden. Zum Beispiel könnte Trainings-Engine 122 Encoder-, Prior- und/oder Decoder-Netzwerke in dem VAE an einem Satz von Trainingsbildern trainieren, und Ausführungs-Engine 124 kann ein generatives Modell ausführen, dass die trainierten Prior- und Decoder-Netzwerke umfasst, um zusätzliche Bildern, die nicht in den Trainingsbildern gefunden werden, zu produzieren.
  • In einigen Ausführungsbeispielen verwenden Trainings-Engine 122 und Ausführungs-Engine 124 eine Anzahl von Techniken, um Nichtübereinstimmungen zwischen der Verteilung von Datenpunkt-Werten, die von dem Decoder-Netzwerk in dem VAE ausgegeben werden, basierend auf Sampeln aus der Verteilung von latenten Variablen, die mittels des Prior-Netzwerk s aus dem Trainingsdatensatz gelernt werden, und der tatsächlichen Verteilung von Datenpunkt-Werten in dem Trainingsdatensatz abzumildern. Spezifischer lernen Trainings-Engine 122 und Ausführungs-Engine 124 Regionen in der Verteilung von Datenpunkt-Werten, die mittels des Decoder-Netzwerks ausgegeben werden, zu identifizieren und zu vermeiden, die nicht zu tatsächlichen Attributen von Daten in dem Trainingsdatensatz korrespondieren. Wie unten detaillierter beschrieben, verbessert dies die generative Performance des VAE, indem die Likelihood vergrößert wird, dass generative Ausgabe, die mittels des VAE produziert wird, die Attribute von Daten in dem Trainingsdatensatz erfasst.
  • Energiebasierte Variational Autoencoder
  • 2 ist eine detailliertere Darstellung von Trainings-Engine 122 und Ausführungs-Engine 124 von 1, gemäß verschiedenen Ausführungsbeispielen. Trainings-Engine 122 trainiert einen VAE 200, der eine Verteilung von einem Satz von Trainingsdaten 208 lernt, und Ausführungs-Engine 124 führt einen oder mehrere Abschnitte von VAE 200 aus, um generative Ausgabe 250 zu produzieren, die zusätzliche Datenpunkte in der Verteilung umfasst, die nicht in den Trainingsdaten 208 enthalten sind.
  • Wie gezeigt umfasst VAE 200 eine Anzahl von Neuronalen Netzwerken: ein Encoder 202, ein Prior 252 und ein Decoder 206. Encoder 202 „codiert“ ein Satz von Trainingsdaten 208 in latente-Variable-Werte, Prior 252 lernt die Verteilung von latenten Variablen, die mittels des Encoder- 202 ausgegeben werden, und Decoder- 206 „decodiert“ latente-Variable-Werte, die aus der Verteilung gesampelt werden, in rekonstruierte Daten 210, die im Wesentlichen Trainingsdaten 208 reproduzieren. Zum Beispiel könnten Trainingsdaten 208 Bilder von menschlichen Gesichtern, Tiere, Fahrzeuge und/oder andere Typen von Objekten; Sprache, Musik und/oder anderes Audio; Artikel, Posts, schriftliche Dokumente und/oder anderen Text; 3D-Punkte-Clouds, Maschen und/oder Modelle; und/oder andere Typen von Inhalt oder Daten umfassen. Wenn Trainingsdaten 208 Bilder von menschlichen Gesichtern umfassen, könnte Encoder 202 Pixelwerte in jedem Bild in eine kleinere Anzahl von latenten Variablen konvertieren, die abgeleitete visuelle Attribute der Objekte und/oder Bilder (z.B. Hauttöne, Haarfarben und - stile, Formen und Größe von Gesichtsmerkmalen, Geschlecht, Gesichtsausdrücke und/oder andere Charakteristiken von menschlichen Gesichtern in den Bildern) repräsentieren, Prior 252 könnte die Mittelwerte und Varianzen der Verteilung von latenten Variablen quer über mehrere Bilder in Trainingsdaten 208 lernen, und Decoder 206 könnte latente Variablen, die aus der Verteilung latenter Variablen gesampelt und/oder mittels Encoder 202 ausgegeben wurden, in Rekonstruktionen von Bildern in Trainingsdaten 208 konvertieren.
  • Der generative Betrieb von VAE 200 kann repräsentiert werden unter Verwenden des folgenden Wahrscheinlichkeitsmodells: p θ ( x , z ) = p θ ( z ) p θ ( x | z ) ,
    Figure DE102021124428A1_0001
    wobei pe(z) eine Prior-Verteilung ist, die mittels Prior 252 über latente Variablen z gelernt wurde, und pθ(x | z) die Likelihood-Funktion, oder Decoder 206, ist, die Daten x erzeugt bei gegebenen latenten Variablen z. Mit anderen Worten werden latente Variablen von Prior 252 pe(z) gesampelt und die Daten x haben eine Likelihood, die von den gesampelten latenten Variablen z abhängen. Das Wahrscheinlichkeits-Modell umfasst einen Posterior pθ(z | x), der verwendet wird, um auf Werte der latenten Variablen z zurückzuschließen. Weil pθ(z | x) schwerlich lösbar ist, wird eine andere Verteilung qϕ(z | x), die mittels Encoder 202 gelernt wurde, verwendet, um pe(z | x) zu approximieren.
  • Wie gezeigt führt Trainings-Engine 122 eine oder mehrere Runden von VAE-Training 220 durch, das Parameter von Encoder 202, priori 252 und Decoder 206 basierend auf einem Richtwert (objective) 232, der basierend auf dem Wahrscheinlichkeitsmodell das VAE 200 repräsentiert, und einem Fehler zwischen Trainingsdaten 208 (z.B. einem Satz von Bildern, Text, Audio, Video, usw.) und rekonstruierten Daten 210, berechnet wird, aktualisiert. In einem oder mehreren Ausführungsbeispielen umfasst Richtwert 232 eine Variational-Untere-Schranke für log pe(x), was zu maximieren ist: log p θ ( x ) E z q ϕ ( z | x ) [ log p θ ( x | z ) ] D K L [ q ϕ ( z | x ) p θ ( z ) ] : = L vae ( x , θ , ϕ )
    Figure DE102021124428A1_0002
    wobei qϕ(z | x) der genäherte Posterior ist, der mittels Encoder 202 gelernt wurde, und KL die Kullback-Leibler (KL) Divergenz ist.
  • In einigen Ausführungsbeispielen ist VAE 200 ein hierarchischer VAE, der Deep Neural Networks für Encoder 202, Prior 252 und Decoder 206 verwendet. Der hierarchische VAE umfasst eine Hierarchie latenter Variablen 204, die latente Variablen in eine Sequenz von getrennten Gruppen partitioniert. Innerhalb der Hierarchie latenter Variablen 204 wird ein Sample aus einer gegebenen Gruppe von latenten Variablen mit einer Merkmalskarte kombiniert und an die folgende Gruppe von latenten Variablen in der Hierarchie weitergegeben, zum Verwenden beim Erzeugen eines Samples aus der folgenden Gruppe.
  • Fortfahrend mit dem Wahrscheinlichkeits-Modell, das mittels Gleichung 1 repräsentiert wird, kann das Partitionieren der latenten Variablen mittels z = {z1, z2, ..., zK} repräsentiert werden, wobei K die Anzahl von Gruppen ist. Innerhalb der Hierarchie von latenten Variablen 204 wird Prior 252 durch pθ(z) = Πk p(zl | z<k) repräsentiert und der genäherte Posterior wird durch qϕ(z | x) = Πk q{zk | z<k, x) repräsentiert, wobei alle abhängigen p (zl | z<k) in dem Prior und alle abhängigen q(zk | z<k, x) in dem genäherten Posterior durch faktorielle Normal-Verteilungen repräsentiert werden können. Zusätzlich ist q ( z < k ) = E p d ( x ) [ q ( z < K | x ) ]
    Figure DE102021124428A1_0003
    der kumulierte genäherte Posterior bis zur (k-1)ten Gruppe und q ( z k | z < k ) = E p d ( x ) [ q ( z k | z < k , x ) ]
    Figure DE102021124428A1_0004
    ist die kumulierte abhängige Verteilung für die kte Gruppe.
  • in einigen Ausführungsbeispielen umfasst Encoder 202 ein Bottom-Up-Modell und ein Top-Down-Modell, die bidirektionale Inferenz der Gruppen von latenten Variablen durchführen basierend auf Trainingsdaten 208. Das Top-Down-Modell wird dann als Prior 252 wiederverwendet, um auf latente-Variable-Werte zurückzuschließen, die in Decoder 206 eingegeben werden, um rekonstruierte Daten 210 und/oder generative Ausgabe 250 zu produzieren. Die Architekturen von Encoder 202 und Decoder 206 werden in weiteren Detail unten unter Bezugnahme auf 3A-3B beschrieben.
  • Wenn VAE 200 ein hierarchischer VAE ist, der latente-Variable-Hierarchie 204 umfasst, umfasst Richtwert 232 eine untere Schranke einer Evidenz, die zu maximieren ist, mit der folgenden Form: L HVAE ( x ) : = E q ( z | x ) [ log p ( x | z ) ] k = 1 K E q ( z < k | x ) [ K L ( q ( z k | z < k , x ) p ( z k | z < k ) ) ]
    Figure DE102021124428A1_0005
    wobei q ( z < k | x ) = i = 1 k 1 q ( z i | z < i , x )
    Figure DE102021124428A1_0006
    der genäherte Posterior bis zu der (k-1)ten Gruppe ist. Zusätzlich ist log p(x | z) die Log-Likelihood von beobachteten Daten x unter gegebenen gesampelten Variablen z; dieser Term ist maximiert, wenn p(x | z) den originalen Daten x hohe Wahrscheinlichkeit zuordnet (d.h., wenn Decoder 206 versucht, einen Datenpunkt x in Trainingsdaten 208 zu rekonstruieren, unter gegebenen latenten Variablen z, die mittels Encoders 202 aus den Datenpunkt erzeugt werden). Die „KL“ Terme in der Gleichung repräsentieren KL-Divergenzen zwischen den Posteriori auf verschiedenen Stufen der Hierarchie 204 von latenten Variablen und den korrespondierenden priori (z.B. wie durch Prior 252 repräsentiert). Jede KL(q(zk|z<k, x)||p(zk|z<k)) kann als die Menge an Informationen angesehen werden, die in der kten Gruppe codiert ist. Der Reparametrisierungs-Trick kann verwendet werden, um in Bezug auf Parameter von Encoder 202 durch Richtwert 232 rückzupropagieren.
  • Die Fachleute werden anerkennen, dass es Prior 252 misslingen kann, die kumulierte genäherte Posterior-Verteilung, die mittels Encoder 202, nachdem das VAE-Training 220 vollendet ist, aus Trainingsdaten 208 ausgegeben wird, zu matchen. Insbesondere kann der kumulierte genäherte Posterior mittels q ( z ) = E p d ( x ) [ q ( z | x ) ]
    Figure DE102021124428A1_0007
    bezeichnet werden. Während des VAE-Trainings 220 korrespondiert das Maximieren des Richtwerts 232 L vae ( x , θ , ϕ )
    Figure DE102021124428A1_0008
    in Bezug auf die Parameter von Prior 252 damit, den Prior 252 so nah wie möglich an den kumulierten genäherten Posterior zu bringen, indem KL(qϕ(z)||pθ(z)) in Bezug auf pe(z) minimiert wird. Jedoch ist Prior 252 pe(z) nicht fähig den kumulierten genäherten Posterior qϕ(z) am Ende des VAE-Trainings 220 (z.B., weil Prior 252 nicht aussagekräftig genug ist, um den kumulierten genäherten Posterior zu erfassen) zu matchen. Wegen dieser Nichtübereinstimmung kann die Verteilung von latenten Variablen, die mittels des Prior 252 aus Trainingsdaten 208 gelernt wurde, Regionen in den latenten Raum, der durch latente Variablen z, die keinerlei Samples in Trainingsdaten 208 entsprechen, besetzt wird, hohe Wahrscheinlichkeiten zuordnen. Wiederum konvertiert Decoder 206 Samples aus diesen Regionen in eine Daten-Likelihood, die gewissen Datenwerten hohe Wahrscheinlichkeiten zuordnet, wenn diese Datenwerte eine niedrige Wahrscheinlichkeit in Trainingsdaten 208 haben. Mit anderen Worten würde, wenn latente-Variable-Werte aus Regionen in Prior 252 ausgewählt würden, denen es misslingt die tatsächliche Verteilung von latenten Variablen, die mittels Encoder 202 aus Trainingsdaten 208 produziert werden (d.h. der kumulierte genäherte Posterior), zu matchen, es der generativen Ausgabe 250, die mittels Sampelns aus der Daten-Likelihood, die mittels Decoder 206 aus den ausgewählten latente-Variable-Werten erzeugt wurde, produziert wurde, misslingen den Trainingsdaten 208 zu ähneln.
  • In einem oder mehreren Ausführungsbeispielen ist Trainings-Engine 122 konfiguriert, um die Nichtübereinstimmung zwischen der Verteilung von Datenwerten in Trainingsdaten 208 und der Likelihood, die mittels Decoder 206 aus den latente-Variable-Werten, die von Prior 252 gesampelt werden, ausgegeben werden, zu reduzieren. Spezifischer erzeugt Trainings-Engine 122 ein gemeinsames Modell 226, das VAE 200 und ein energiebasiertes Modell (Energy-Based Model, EBM) 212 umfasst. EBM 212 wird durch pψ(x) repräsentiert, von dem angenommen wird, dass es eine Gibbs-Verteilung mit der folgenden Form ist: p ψ ( x ) = exp ( E ψ ( x ) ) / Z ψ ,
    Figure DE102021124428A1_0009
    wobei Eψ(x) eine Energiefunktion mit Parametern ψ ist und Zψ=∫x exp(-Eψ(x))dx eine Normalisierungs-Konstante ist.
  • In einigen Ausführungsbeispielen wird EBM 212 unter Verwenden eines kontrastbildenden Verfahrens (contrastive method), wie beispielsweise Maximum Likelihood Learning, trainiert. Maximum Likelihood Learning umfasst ein Ziel der Maximierung der Log-Likelihood L ( ψ ) = E x p d ( x ) [ log p ψ ( x ) ] ,
    Figure DE102021124428A1_0010
    die die folgende Ableitung hat: ψ L ( ψ ) = E x p d ( x ) [ ψ E ψ ( x ) ] + E x p ψ ( x ) [ ψ E ψ ( x ) ]
    Figure DE102021124428A1_0011
    Für den ersten Erwartungswert (expectation) umfasst Maximum Likelihood Learning eine positive Phase in der Samples aus der Datenverteilung pd(x) gezogen werden. Für den zweiten Erwartungswert umfasst Maximum Likelihood Learning eine negative Phase in der Samples aus dem EBM 212 pψ(x) gezogen werden.
  • Weil das Sampeln von pψ(x) in der negativen Phase schwerlich zu bewältigen ist, werden gewöhnlich genäherte Samples unter Verwenden von Markov Chain Monte Carlo (MCMC) gezogen. Zum Beispiel könnte eine MCMC-Technik, wie beispielsweise Langevin Dynamics (LD) verwendet werden, um ein anfängliches Sample x0 iterativ zu aktualisieren, unter Verwenden des Folgenden: x t + 1 = x t η 2 x E ψ ( x t ) + η ω t , ω t N ( 0, I ) ,
    Figure DE102021124428A1_0012
    wobei η die Schrittweite ist. Nach einer gewissen Anzahl von Iterationen ergibt Gleichung 5 eine Markov-Kette mit einer invarianten Verteilung, die näherungsweise nahe an der originalen Zielverteilung ist.
  • In einem oder mehreren Ausführungsbeispielen umfasst das gemeinsame Modell 226 die folgende Form: h ψ , θ ( x , z ) = 1 Z ψ , θ p θ ( x , z ) e E ψ ( x )
    Figure DE102021124428A1_0013
    In Gleichung 7 ist pθ(x, z) = pθ(z)pθ(x | z) ein Generator in VAE 200, Eψ(x) ist eine neuronal-netzwerk-basierte Energiefunktion im EBM 212, die nur in dem x-Raum operiert, und Zψ,θ = ∫pθ(x)e-Eψ(x)dx ist eine Normalisierungs-Konstante. Erstellen einer Randverteilung (marginalizing out) für die latente Variable z gibt: h ψ , θ ( x ) = 1 Z ψ , θ p θ ( x , z ) e E ψ ( x ) d z = 1 Z ψ , θ p θ ( x ) e E ψ ( x )
    Figure DE102021124428A1_0014
  • Ein Satz von Trainingsdaten 208 gegeben, trainiert Trainings-Engine 122 die Parameter ψ, θ vom gemeinsamen Modell 226, um die Rand Log-Likelihood (marginal log-likelihood) von Trainingsdaten 208 zu maximieren: log h ψ , θ ( x ) = log p θ ( x ) E ψ ( x ) log Z ψ , θ
    Figure DE102021124428A1_0015
    E z q ϕ ( z | x ) [ log p θ ( x | z ) ] D KL ( q ϕ ( z | x ) p ( z ) ) L vae ( x , θ , ϕ ) E ψ ( x ) log Z ψ , θ L EBM ( x , ψ , θ ) ,
    Figure DE102021124428A1_0016
    wobei log pe(x) durch die Variational-Untere-Schranke in Gleichung 2 ersetzt wird. Gleichung 10 repräsentiert die Richtwert-Funktion zum Training des gemeinsamen Modells 226. Innerhalb Gleichung 10 korrespondieren die ersten beiden Terme, die unter L vae ( x , θ , ϕ )
    Figure DE102021124428A1_0017
    gruppiert sind, zu Richtwert 232 für VAE Training 220, und die letzten beiden Termen, die unter L EBM ( x , ψ , θ )
    Figure DE102021124428A1_0018
    gruppiert sind, korrespondieren zu einem Richtwert 234 für EBM-Training 222.
  • In Gleichung 10 ist der L EBM ( x , ψ , θ )
    Figure DE102021124428A1_0019
    Term ähnlich zu einem normalen EBM-Trainings 222 Richtwert, ausgenommen, dass die log-Funktion sowohl von ψ als auch θ abhängt. Zusätzlich hat log Zψ,θ die folgenden Gradienten: ψ log Z ψ , θ = E x h ψ , θ ( x , z ) [ ψ E ψ ( x ) ] und θ log Z ψ , θ = E x h ψ , θ ( x , z ) [ θ log p θ ( x ) ]
    Figure DE102021124428A1_0020
    Die Ableitung von log Zψ,θ nach θ kann unter Verwenden des folgenden abgeleitet werden: θ log Z ψ , θ = θ log ( p θ ( x ) e E ψ ( x ) d x ) = 1 Z ψ , θ p θ ( x ) θ e E ψ ( x ) d x = 1 Z ψ , θ p θ ( x ) e E ψ ( x ) log p θ ( x ) θ d x = h ψ , θ ( x ) log p θ ( x ) θ d x = E x h ψ , θ ( x , z ) [ log p θ ( x ) θ ]
    Figure DE102021124428A1_0021
    Eine ähnliche Ableitung kann verwendet werden, um die folgende Ableitung von log Zψ,θ nach ψ zu produzieren: ψ log Z ψ , θ = E x h ψ , θ ( x , z ) [ E ψ ( x ) ψ ]
    Figure DE102021124428A1_0022
  • Gleichung 12 kann ferner auf das Folgende erweitert werden: θ log Z ψ , θ = E x h ψ , θ ( x , z ) [ E z' p θ ( z' | x ) [ log p θ ( x , z' ) θ ] ]
    Figure DE102021124428A1_0023
    Gleichung 14 ist schwerlich zu bewältigen, kann aber approximiert werden, indem zuerst unter Verwenden von MCMC (d.h. x ~ hψ,θ(x, z)) aus gemeinsamen Modell 226 gesampelt wird und dann aus dem wahren Posterior von VAE 200 (d.h. z' ~ pe(z' | x)) gesampelt wird.
  • Ein Ansatz, genäherte Samples aus pe(z' | x) zu ziehen, umfasst Ersetzen von pe(z' | x) mit dem approximierten Posterior qϕ(z' | x). Jedoch hängt die Qualität dieser genäherten Samples davon ab, wie gut qϕ(z' | x) den wahren Posterior für Samples, die mittels hψ,θ(x, z) erzeugt werden, matcht. Um qϕ(z' | x) an pe(z' | x) zu nähern, kann die Variational Grenze für Samples, die aus hψ,θ(x, z) erzeugt werden, maximiert werden, in Bezug auf Parameter ϕ von Encoder 202.
  • Alternativ kann MCMC verwendet werden, um z' ~ pθ(z' | x) zu sampeln. Um MCMC zu beschleunigen, können die z' Samples mit den originalen z Sampeln initialisiert werden, die in den äußeren Erwartungswert (outer expectation) gezogen wurden (d.h. x, z ~ hψ,θ(x, z)). Mit diesem Ansatz wird MCMC zweimal durchgeführt, einmal für x, z ~ hψ,θ(x, z) und ein andermal für z' ~ pθ(z' | x).
  • In einem oder mehreren Ausführungsbeispielen reduziert Trainings-Engine 122 die Rechenkomplexität, die mit dem Schätzen von θ log p θ ( x )
    Figure DE102021124428A1_0024
    assoziiert ist, indem die Parameter von VAE 200 festgehalten werden, während EBM 212 trainiert wird. Spezifischer führt die Trainings-Engine 122 eine erste Stufe von VAE-Training 220 durch, indem der L vae ( x , θ , ϕ ) erm
    Figure DE102021124428A1_0025
    maximiert wird, der zu Richtwert 232 in Gleichung 9 korrespondiert. Trainings-Engine 122 friert dann die Parameter von Encoder 202, Prior 252 und Decoder 206 in VAE 200 ein und führt eine zweite Stufe von EBM-Training 222 durch.
  • Während der zweiten Stufe von EBM-Training 222 führt Trainings-Engine 122 MCMC aus, um x ~ hψ,θ(x, z) zu sampeln, ψ log Z ψ , θ
    Figure DE102021124428A1_0026
    zu berechnen und den L EBM ( x , ψ , θ ) Term
    Figure DE102021124428A1_0027
    zu optimieren, der zu Richtwert 234 in Bezug auf die Parameter der Energiefunktion ψ korrespondiert. Der Gradient von L ( ψ ) = E x p d [ L EBM ( x , ψ , θ ) ]
    Figure DE102021124428A1_0028
    nach ψ ist: ψ L ( ψ ) = E x p d ( x ) [ ψ E ψ ( x ) ] + E x h ψ , θ ( x , z ) [ ψ E ψ ( x ) ] ,
    Figure DE102021124428A1_0029
    was in eine positive Phase und eine negative Phase zerfällt, wie es oben im Zusammenhang mit der Gleichung 5 diskutiert wurde.
  • Dieser zweistufige Trainingsansatz umfasst eine Anzahl von Vorteilen. Zuerst reduziert Trainings-Engine 122, indem VAE Training 220 und EBM Training in zwei unterschiedlichen Stufen durchgeführt wird, Rechenkomplexität, die mit dem Schätzen des vollen Gradienten von log Zψ,θ assoziiert ist. Zweitens minimiert die erste Stufe von VAE-Training 220 die Distanz zwischen VAE 200 und der Verteilung von Trainingsdaten 208, was die Anzahl von MCMC Aktualisierungen reduziert, die verwendet werden, um EBM 212 in der zweiten Stufe von EBM-Training 222 zu trainieren. Drittens produziert Vor-Training von VAE 200 einen latenten Raum mit einer effektiv niedrigeren Dimensionalität und einer glatteren Verteilung, als die Verteilung von Trainingsdaten 208, was die Effizienz der MCMC Technik weiter verbessert, die verwendet wird, um EBM 212 zu trainieren.
  • Um Gradienten-Schätzung in der negativen Phase durchzuführen, kann Trainings-Engine 122 Samples aus gemeinsamen Modell 226 ziehen, unter Verwenden von MCMC. Zum Beispiel könnte Trainings-Engine 122 Abstammungs-Sampling (ancestral sampling) verwenden, um zuerst von Prior 252 pe(z) zu sampeln und dann im x-Raum MCMC für pθ(x|z)e-Eψ(x) laufen zu lassen. Jedoch ist pe(x | z) oft scharf und wirkt störend auf die Gradienten-Schätzung ein und MCMC kann nicht mischen, wenn die Konditionierung z fix ist.
  • In einem oder mehreren Ausführungsbeispielen führt Trainings-Engine 122 EBM-Training 222 durch, indem sowohl x als auch z reparametrisiert werden und MCMC -Iterationen in dem gemeinsamen Raum von z und x laufen gelassen werden. Spezifischer führt Trainings-Engine 122 diese Reparametrisierung durch, indem aus einer fixen Rausch-Verteilung gesampelt wird und deterministische Transformationen auf die gesampelten Werte angewendet werden: ( x , z ) p = N ( 0, I )
    Figure DE102021124428A1_0030
    z = T θ z ( z ) , x = T θ x ( z ( z ) , x ) = T θ x ( T θ z ( z ) , x )
    Figure DE102021124428A1_0031
    In Gleichung 15 sind ∈z und ∈z Rauschwerte, die aus einer Standard-Normal-Verteilung gesampelt werden. Die gesampelten ∈z Werte werden in Prior 252 eingespeist, um Prior 252 Samples z zu produzieren (z.B. eine Verknüpfung von latente-Variable-Werten, die aus latente-Variable-Hierarchie 204 gesampelt werden), und die ∈x Sample werden in Decoder 206 eingespeist werden, um Daten-Samples x zu produzieren, bei gegebenen Prior 252 Samples. In Gleichung 16 bezeichnet Tθ z die Transformation von Rauschen ∈z in Prior Samples z mittels Prior 252, und Tθ x repräsentiert die Transformation von Rauschen ∈x in Samples x, bei gegebenen Prior Samples z, mittels Decoder 206.
  • Spezifischer wendet Trainings-Engine 122 die obigen Transformationen während Sampling von EBM 212 an, indem sie (∈x, ∈z) aus der folgenden „Basis“ Verteilung sampelt: h ψ , θ ( x , z ) e E ψ ( T θ x ( T θ z ( z ) , x ) ) p ( x , z )
    Figure DE102021124428A1_0032
    und dann Gleichung 17 verwendet, um die Samples in x und z zu transformieren. Weil ∈z und ∈z aus der gleichen Standard Normal-Verteilung gesampelt werden, haben ∈z und ∈z die gleiche Skala und das MCMC Sampling-Schema (z.B. Schrittweite in LD) braucht nicht für jede Variable abgestimmt werden.
  • Trainings-Engine 122 aktualisiert optional Parameter von VAE 200 während der zweiten Stufe von EBM-Training 222. Insbesondere kann Trainings-Engine 122 aufwendige Aktualisierungen für ψ vermeiden, indem pθ(x) näher an hψ,θ(x) gebracht wird, indem DKL(pθ(x) || hψ,θ(x)) in Bezug auf θ minimiert wird. Dies kann durchgeführt werden, indem angenommen wird, dass die Zielverteilung hψ,θ(x) fix ist, eine Kopie von θ, genannt θ', erzeugt wird, und θ' mittels des Gradienten: θ ' D KL ( p θ ' ( x ) h ψ , θ ( x ) ) = θ ' E x p θ ' ( x ) [ E ψ ( x ) ]
    Figure DE102021124428A1_0033
    aktualisiert wird. Ein Aktualisierungsschritt für dieses θ' minimiert DKL(p'θ(X) || hψ,θ(x)) in Bezug auf θ' kann durchgeführt werden, indem Samples von p'e(x) gezogen werden und die Energiefunktion mit Bezug auf θ' minimiert wird. Der obige KL-Richtwert unterstützt dominante Moden in hψ,θ(x) zu pe(x)-Modellieren.
  • Nachdem Trainings-Engine 122 VAE-Training 220 und EBM-Training 222 (entweder als separate Stufen oder gemeinschaftlich) vollendet hat, erzeugen Trainings-Engine 122 und/oder eine andere Komponente des Systems gemeinsames Modell 226 aus VAE 200 und EBM 222. Ausführungs-Engine 124 verwendet dann gemeinsames Modell 226, um generative Ausgabe 250 zu produzieren, die nicht in dem Satz von Trainingsdaten 208 gefunden wird.
  • Spezifischer verwendet Ausführungs-Engine 124 eine oder mehrere Komponenten von VAE 200, um ein oder mehrere VAE Samples 236 zu erzeugen, und gibt VAE Samples 236 in EBM 212 ein, um einen oder mehrere Energiewerte 218 zu produzieren. Als nächstes passt Ausführungs-Engine 124 VAE Samples 236 unter Verwenden von Energiewerten 218 an, um eine oder mehrere gemeinsames-Modell-Samples 224 aus dem gemeinsamen Modell 226 zu produzieren. Schlussendlich verwendet Ausführungs-Engine 124 die gemeinsames-Modell-Samples 224, um generative Ausgabe 250 zu produzieren.
  • Zum Beispiel könnten VAE-Samples 236, Samples von Datenpunkt-Werten aus der Daten-Likelihood umfassen, die mittels Decoder 206 erzeugt wurde, nachdem eine oder mehrere Gruppen von latente-Variable-Werten, die aus der latente-Variable-Hierarchie 204 in Prior 252 gesampelt wurden, in Decoder 206 eingegeben wurden. Ausführungs-Engine 124 könnte diese VAE-Samples 236 in EBM 212 eingeben, um einen oder mehrere Energiewerte 218 zu erzeugen, die anzeigen, wie gut VAE-Samples 236 die Verteilung von Trainingsdaten 208, die zum Trainieren des gemeinsamen Modells 226 verwendet wurden, widerspiegeln. Ausführungs-Engine 124 könnte dann eine MCMC-Technik, wie beispielsweise LD mit Gleichung 6 verwenden, um iterativ VAE-Samples 236 zu aktualisieren basierend auf den entsprechenden Energiewerten 218, so dass über die Zeit Energiewerte 218 minimiert werden und die Wahrscheinlichkeit von VAE-Samples 236 in der Verteilung von Trainingsdaten 208 wächst. Nachdem eine gewisse Anzahl von MCMC-Iterationen durchgeführt wurde, könnte Ausführungs-Engine 124 die resultierenden VAE-Samples 236 als generative Ausgabe 250 verwenden.
  • In einem anderen Beispiel könnten VAE-Samples 236 ein oder mehrere Samples ∈ = (∈x, ∈z) aus einer oder mehreren Rausch-Verteilungen umfassen, die verwendet werden, um latente-Variable-Samples z und Daten-Samples x zu produzieren, bei gegebenen Prior-Samples. Ausführungs-Engine 124 könnte EBM 212 auf VAE-Samples 236 anwenden, um einen oder mehrere Energiewerte 218 zu erzeugen, die anzeigen, wie gut die entsprechenden latente-Variable-Samples und/oder Datenpunkt-Samples die jeweiligen Verteilungen von latenten Variablen widerspiegeln, die mittels Encoder 202 aus Trainingsdaten und/oder Verteilung von Datenpunkt-Werten in Trainingsdaten 208 erzeugt wurden. Ausführungs-Engine 124 könnte dann eine MCMC-Technik, wie beispielweise LD, verwenden, um iterativ VAE-Samples 236 zu aktualisieren, basierend auf den entsprechenden Energiewerten 218 und der folgenden Gleichung: t + 1 = t η 2 t E ψ , θ ( t ) + η ω t , ω t N ( 0, I )
    Figure DE102021124428A1_0034
    wobei die Energiefunktion von Gleichung 18 erlangt wird. Nach einer gewissen Anzahl von MCMC-Iterationen könnte Ausführungs-Engine 124 die letzten Werte ∈ in Prior 252 und Decoder 206 eingeben. Schlussendlich könnte Ausführungs-Engine generative Ausgabe 250 produzieren, indem sie aus der Daten-Likelihood, die mittels Decoder 206 erzeugt wurde, sampelt. Weil die Daten-Likelihood unter Verwenden von aktualisierten ∈-Werten produziert wurde, die basierend auf Energiewerten 218 angepasst wurden, vermeidet Decoder 206 Datenwerten eine hohe Wahrscheinlichkeit zuzuweisen, die eine geringe Wahrscheinlichkeit in Trainingsdaten 208 haben. Wiederum ähneln generative Ausgabe 250 mehr den Trainingsdaten 208 als generative Ausgabe 250, die ohne ein Anpassen der anfänglichen VAE-Samples 236 produziert wird.
  • 3A zeigt eine exemplarische Architektur für Encoder 202 in der hierarchischen Version von VAE 200 von 2, gemäß verschiedenen Ausführungsbeispielen. Wie gezeigt bildet die beispielhafte Architektur ein bidirektionales Inferenz-Modell, das ein Bottom-Up-Modell 302 und ein Top-Down-Modell 304 umfasst.
  • Bottom-Up-Modell 302 umfasst eine Anzahl von Residuum-Netzwerken 308-312 und Top-Down-Modell 304 umfasst eine Anzahl von zusätzlichen Residuum-Netzwerken 314-316 und einen trainierbaren Parameter 326. Jedes der Residuum-Netzwerke 308-316 umfasst eine oder mehrere Residuum-Zellen, die unten mit Bezug auf 4A und 4B detaillierter beschrieben werden.
  • Residuum-Netzwerke 308-312 im Bottom-Up-Modell 302 extrahieren deterministisch Merkmale aus einer Eingabe 324 (z.B. ein Bild), um auf die latenten Variablen in dem genäherten Posterior (z.B. q(z | x) in dem Wahrscheinlichkeits-Modell für VAE 200) rückzuschließen. Wiederum werden Komponenten von Top-Down-Modell 304 verwendet, um die Parameter für jede bedingte Verteilung der latente-Variable-Hierarchie 204 zu erzeugen. Nachdem latente Variablen aus einer gegebenen Gruppe der latente-Variable-Hierarchie 204 gesampelt wurden, werden die Samples mit Merkmalskarten von Bottom-Up-Modell 302 kombiniert und als Eingabe zu der nächsten Gruppe weitergegeben.
  • Spezifischer wird eine gegebene Daten-Eingabe 324 sequentiell mittels Residuum-Netzwerken 308, 310 und 312 im Bottom-Up-Modell 302 prozessiert. Residuum-Netzwerk 308 erzeugt eine erste Merkmalskarte von Eingabe 324, Residuum-Netzwerk 310 erzeugt eine zweite Merkmalskarte von der ersten Merkmalskarte und Residuum-Netzwerk 312 erzeugt eine dritte Merkmalskarte von der zweiten Merkmalskarte. Die dritte Merkmalskarte wird verwendet, um die Parameter einer ersten Gruppe 318 von latenten Variablen der latente-Variable Hierarchie 204 zu erzeugen, und ein Sample wird aus der Gruppe 318 genommen und mit Parameter 326 kombiniert (z.B. summiert), um Eingabe für das Residuum-Netzwerk 314 in Top-Down-Modell 304 zu produzieren. Die Ausgabe von Residuum-Netzwerk 314 in Top-Down-Modell 304 wird mit der Merkmalskarte kombiniert, die mittels Residuum-Netzwerk 310 im Bottom-Up-Modell 302 produziert wurde, und wird verwendet, um die Parameter einer zweiten Gruppe 320 von latenten Variablen der latente-Variable-Hierarchie 204 zu erzeugen. Ein Sample wird aus Gruppe 320 genommen und mit Ausgabe von Residuum-Netzwerk 314 kombiniert, um Eingabe in Residuum-Netzwerk 316 zu erzeugen. Schlussendlich wird die Ausgabe von Residuum-Netzwerk 316 von Top-Down-Modell 304 mit der Ausgabe von Residuum-Netzwerk 308 von Bottom-Up-Modell 302 kombiniert, um Parameter einer dritten Gruppe 322 von latenten Variablen zu erzeugen, und ein Sample kann von Gruppe 322 genommen werden, um einen vollen Satz von latenten Variablen zu produzieren, der Eingabe 324 repräsentiert.
  • Während die beispielhafte Architektur von 3A mit einer latente-Variable-Hierarchie von drei latenten Variablen Gruppen 318-322 gezeigt ist, werden die Fachleute anerkennen, dass Encoder 202 eine andere Anzahl von latenten Variablen Gruppen in der Hierarchie, andere Anzahlen von latenten Variablen in jeder Gruppe der Hierarchie und/oder variierende Anzahlen von Residuum-Zellen in Residuum-Netzwerken verwenden kann. Zum Beispiel kann latente-Variable-Hierarchie 204 für einen Encoder, der unter Verwenden von 28x28 Pixel-Bildern von handschriftlichen Zeichen trainiert wurde, 15 Gruppen von latenten Variablen bei zwei verschiedenen „Skalen“ (d.h. räumlichen Dimensionen) und eine Residuum-Zelle je Gruppe von latenten Variablen umfassen. Die ersten fünf Gruppen haben 4x4x20-dimensionale latente Variablen (in Form von Höhe x Breite x Kanal) und die nächsten zehn Gruppen haben 8x8x20-dimensionale latente Variablen. In einem anderen Beispiel kann latente-Variable-Hierarchie 204 für einen Encoder, der unter Verwenden von 256x256 Pixel-Bildern von menschlichen Gesichtern trainiert wurde, 36 Gruppen von latenten Variablen bei fünf verschiedenen Skalen und zwei Residuum-Zellen je Gruppe von latenten Variablen umfassen. Die Skalen umfassen räumliche Dimensionen von 8x8x20, 16x16x20, 32x32x20, 64x64x20 und 128x128x20 bzw. 4, 4, 4, 8 und 16 Gruppen.
  • 3B zeigt eine beispielhafte Architektur für ein generatives Modell in der hierarchischen Version von VAE 200 von 2, gemäß verschiedenen Ausführungsbeispielen. Wie gezeigt, umfasst das generative Modell sowohl Top-Down-Modell 304 der beispielhaften Encoder-Architektur von 3A als auch ein zusätzliches Residuum-Netzwerk 328, das Decoder 206 implementiert.
  • In der beispielhaften generatives-Modell-Architektur von 3B wird die mittels der Residuum-Netzwerke 314-316 von Top-Down-Modell 304 extrahierte Repräsentation verwendet, um Gruppen 318-322 von latenten Variablen in der Hierarchie abzuleiten. Ein Sample der letzten Gruppe 322 von latenten Variablen wird dann mit der Ausgabe von Residuum-Netzwerk 316 kombiniert und wird als Eingabe für Residuum-Netzwerk 328 bereitgestellt. Wiederum erzeugt Residuum-Netzwerk 328 eine Daten-Ausgabe 330, die eine Rekonstruktion einer entsprechenden Eingabe 324 in den Encoder und/oder ein neuer Datenpunkt ist, der aus der Verteilung von Trainingsdaten für VAE 200 gesampelt wurde.
  • Im einigen Ausführungsbeispielen wird Top-Down-Modell 304 verwendet, um eine Prior (z.B. Prior 252 von 2) Verteilung von latenten Variablen während des Trainings von VAE 200 zu lernen. Der Prior wird dann in dem generativen Modell und/oder gemeinsamen Modell 226 wiederverwendet, um aus Gruppen 318-322 von latenten Variablen zu sampeln, bevor einige oder alle der Samples mittels Decoder 206 in generative Ausgabe konvertiert werden. Dieses gemeinsame Benutzen von Top-Down-Modell 304 zwischen Encoder 202 und dem generativen Modell reduziert den Rechen- und/oder Ressourcen-Overhead, der mit dem Lernen eines separaten Top-Down-Modells für Prior 252 und dem Verwenden des separaten Top-Down-Modells in dem generativen Modell assoziiert ist. Alternativ kann VAE 200 so strukturiert werden, dass Encoder 202 ein erstes Top-Down-Modell verwendet, um latente Repräsentationen von Trainingsdaten 208 zu erzeugen, und das generative Modell verwendet ein zweites, separates Top-Down-Modell als Prior 252.
  • 4A zeigt eine beispielhafte Residuum-Zelle in Encoder 202 der hierarchischen Version von VAE 200 von 2, gemäß verschiedenen Ausführungsbeispielen. Spezifischer zeigt 4A eine Residuum-Zelle, die mittels einem oder mehreren Residuum-Netzwerken 308-312 im Bottom-Up-Modell 302 von 3A verwendet wird. Wie gezeigt, umfasst die Residuum-Zelle eine Anzahl von Blöcken 402-410 und einen Residuum-Link 430, der die Eingabe in die Residuum-Zelle zu der Ausgabe von der Residuum-Zelle addiert.
  • Block 402 ist ein Batch Normalisierungs-Block mit einer Swish-Aktivierungsfunktion, Block 404 ist ein 3x3 Faltungs-Block (convolution block), Block 406 ist ein Batch Normalisierungs-Block mit einer Swish-Aktivierungsfunktion, Block 408 ist ein 3x3 Faltungs-Block und Block 410 ist ein Verdichtungs- und Ansteuerungs-Block (squeeze and excitation block), der kanalweises Gaten in der Residuum-Zelle durchführt (z.B. eine Verdichtungs-Operation, wie beispielsweise Mittelwert, um einen einzelnen Wert für jeden Kanal zu erlangen, gefolgt von einer Ansteuerungs-Operation, die eine nichtlineare Transformation auf die Ausgabe der Verdichtungs-Operation anwendet, um Gewichte je Kanal zu produzieren). Zusätzlich wird die gleiche Anzahl von Kanälen quer über Blöcke 402-410 aufrechterhalten. Anders wie in konventionellen Residuum-Zellen mit einer Faltungs-Batch Normalisierung-Ansteuerung Ordnung umfasst die Residuum-Zelle von 4A eine Batch Normalisierung-Ansteuerung-Faltung Ordnung, was die Performance von Bottom-Up-Modell 302 und/oder Encoder 202 verbessern kann.
  • 4B zeigt eine beispielhafte Residuum-Zelle in einem generativen Abschnitt der hierarchischen Version von VAE 200 von 2, gemäß verschiedenen Ausführungsbeispielen. Spezifischer zeigt 4B eine Residuum-Zelle, die von einem oder mehreren Residuum-Netzwerken 314-316 in Top-Down-Modell 304 der 3A und 3B verwendet wird. Wie gezeigt umfasst die Residuum-Zelle eine Anzahl von Blöcken 412-416 und einen Residuum-Link 432, der die Eingabe in die Residuum-Zelle zu der Ausgabe der Residuum-Zelle addiert.
  • Block 412 ist ein Batch Normalisierungs-Block, Block 414 ist ein 1x1 Faltungs-Block, Block 416 ist ein Batch Normalisierungs-Block mit einer Swish-Aktivierungsfunktion, Block 418 ist ein 5x5 tiefenmäßig (depthwise) trennbarer Faltungal-Block, Block 420 ist ein Batch Normalisierungs-Block mit einer Swish Aktivierungs-Funktion, Block 422 ist ein 1x1 Faltungs-Block, Block 424 ist ein Batch Normalisierungs-Block und Block 426 ist ein Verdichtungs- und Ansteuerungs-Block. Blöcke 414-420, die mit „EC“ markiert sind, zeigen an, dass die Anzahl der Kanäle „E“-mal expandiert ist, während Blöcke, die mit „C“ markiert sind, die originale „C“-Anzahl von Kanälen umfassen. Insbesondere führt Block 414 eine 1x1 Faltung durch, die die Anzahl der Kanäle expandiert, um die Expressivität der tiefenmäßig trennbaren Faltungen zu verbessern, die mittels Block 418 durchgeführt werden, und Block 422 führt eine 1x1 Faltung durch, die zurück auf „C“ Kanäle abbildet. Zur gleichen Zeit reduziert die tiefenmäßig trennbare Faltung die Parametergröße und Rechenkomplexität gegenüber regulärer Faltung mit vergrößerter Kernelgröße ohne die Performance des generativen Modells negativ zu beeinflussen.
  • Ferner kann die Verwendung von Batch Normalisierung mit einer Swish-Aktivierungsfunktion in den Residuum-Zellen von 4A und 4B, gegenüber konventionellen Residuum-Zellen oder Netzwerken, das Training von Encoder 202 und/oder des generativen Modells verbessern. Zum Beispiel verbessert die Kombination von Batch Normalisierung und der Swish Aktivierung in der Residuum-Zelle von 4A die Performance von einem VAE mit 40 latente-Variable-Gruppen um etwa 5% gegenüber der Verwendung von Gewichts-Normalisierung und einer exponentiellen linearen Einheiten-Aktivierung (exponential linear unit activation) in der gleichen Residuum-Zelle.
  • 5A zeigt eine beispielhafte Architektur 502 von EBM 212 von 2, gemäß verschiedenen Ausführungsbeispielen. Spezifischer zeigt 5A Architektur 502 von EBM 212, die verwendet werden kann, um die Erzeugung von 64x64 Bildern mittels VAE 200 anzupassen. Wie in 5A gezeigt, umfasst Architektur 502 eine Sequenz von 11 Komponenten, wobei die Ausgabe einer Komponente in der Sequenz als Eingabe in die nächste Komponente in der Sequenz bereitgestellt wird. Die ersten drei Komponenten umfassen eine 3x3 zweidimensionale (2D) Faltung mit 64 Filtern, eine „ResBlock down 64“ Komponente und eine „ResBlock 64“ Komponente. Die nächsten drei Komponenten umfassen eine „ResBlock down 128“ Komponente, eine „ResBlock 128“ Komponente und eine „ResBlock down 128“ Komponente. Die nächsten drei Komponenten umfassen eine „ResBlock 256“ Komponente, eine „ResBlock down 256“ Komponente und eine „ResBlock 256“ Komponente. Schlussendlich umfassen die letzten beiden Komponenten in Architektur 502 ein Globalsumme Pooling-Layer und ein Fully-connected-Layer.
  • 5B zeigt eine beispielhafte Architektur für das EBM 212 von 2, gemäß anderen verschiedenen Ausführungsbeispielen. Spezifischer zeigt 5B eine andere Architektur 504 für EBM 212, die verwendet werden kann, um die Erzeugung von 64x64 Bildern mittels VAE 200 anzupassen. Wie in 5B gezeigt, umfasst Architektur 504 eine Sequenz von 13 Komponenten, wobei die Ausgabe einer Komponente in der Sequenz als Eingabe in die nächste Komponente in der Sequenz bereitgestellt wird. Wie bei Architektur 502 von 5A umfassen die ersten drei Komponenten in Architektur 504 eine 3x3 zweidimensionale (2D) Faltung mit 64 Filtern, eine „ResBlock down 64“ Komponente und eine „ResBlock 64“ Komponente. Die nächsten vier Komponenten umfassen eine „ResBlock down 128“ Komponente, zwei „ResBlock 128“ Komponenten und eine „ResBlock down 128“ Komponente. Die nächsten vier Komponenten umfassen zwei „ResBlock 256“ Komponenten, eine „ResBlock down 256“ Komponente und eine „ResBlock 256“ Komponente. Schlussendlich umfassen die letzten beiden Komponenten in Architektur 504 ein Globalsumme Pooling-Layer und ein Fully-connected-Layer.
  • 5C zeigt eine beispielhafte Architektur 506 für EBM 212 von 2, gemäß noch anderen verschiedenen Ausführungsbeispielen. Spezifischer zeigt 5C eine Architektur 506 für EBM 212, die verwendet werden kann, um die Erzeugung von 128x128 Bildern mittels VAE 200 anzupassen. Wie in 5C gezeigt, umfasst Architektur 506 eine Sequenz von 15 Komponenten, wobei die Ausgabe einer Komponente in der Sequenz als Eingabe in die nächste Komponente in der Sequenz bereitgestellt wird. Wie bei Architekturen 502 und 504 von 5A und 5B umfassen die ersten drei Komponenten eine 3x3 zweidimensionale (2D) Faltung mit 64 Filtern, eine „ResBlock down 64“ Komponente und eine „ResBlock 64“ Komponente. Die nächsten vier Komponenten umfassen eine „ResBlock down 128“ Komponente und eine „ResBlock 128“ Komponente gefolgt von einer anderen „ResBlock down 128“ Komponente und einer „ResBlock 128“ Komponente. Die nächsten vier Komponenten umfassen eine „ResBlock down 256“ Komponente und eine „ResBlock 256“ Komponente, gefolgt von einer anderen „ResBlock down 256“ Komponente und einer „ResBlock 256“ Komponente. Die letzten vier Komponenten in Architektur 506 umfassen eine „ResBlock down 512“ Komponente, eine „ResBlock 512“ Komponente, ein Globalsumme Pooling-Layer und ein Fully-connected-Layer.
  • In Architekturen 502-506 von 5A-5C umfasst eine „ResBlock down“ Komponente ein Faltungs-Layer mit einem Schritt von 2 und einen 3x3 Faltungs-Kernel, der ein Downsampling durchführt, gefolgt von einem Residuum-Block. Eine „ResBlock“ Komponente umfasst einen Residuum-Block. Ein numerischer Wert, der in Architektur 502 einem „ResBlock down“ oder „ResBlock“ folgt, bezieht sich auf die Anzahl von Filtern, die in der entsprechenden Komponente verwendet werden.
  • Wie in 5A-5C gezeigt wächst die Tiefe des Netzwerks für EBM 212 mit der Bildgröße. In einigen Ausführungsbeispielen umfasst jede ResBlock Komponente eine Swish-Aktivierungsfunktion und Gewichts-Normalisierung mit datenabhängiger Initialisierung. Die Energiefunktion in EBM 212 kann zusätzlich trainiert werden, indem die negative Log-Likelihood und ein zusätzlicher spektraler Regelungsverlust (spectral regularization loss) minimiert wird, der die spektrale Norm für jedes Faltungs-Layer in EBM 212 bestraft.
  • Obwohl EBM 212 und gemeinsames Modell 226 oben unter Bezug auf VAE 200 beschrieben wurden, wird es anerkannt werden, dass EBM 212 und gemeinsames Modell 226 auch verwendet werden können, um die generative Ausgabe von anderen Typen von generativen Modellen zu verbessern, die eine prior-Verteilung von latenten Variablen in einem latenten Raum, einen Decoder, der Samples von latenten Variablen in Samples in einen Daten-Raum von einem Trainingsdatensatz konvertiert, und eine Komponente oder ein Verfahren umfassen, die/das ein Sample in dem Trainingsdatensatz in ein Sample in dem latenten Raum von latenten Variablen abbildet. Im Kontext von VAE 200 wird die prior-Verteilung mittels Prior 252 gelernt, Encoder 202 konvertiert Samples von Trainingsdaten im Daten-Raum in latente Variablen im latenten Raum, der mit der latente-Variable-Hierarchie 204 assoziiert ist, und Decoder 206 ist ein Neuronales Netzwerk, das getrennt von Encoder 202 ist und latente-Variable-Werte aus den latenten Raum zurück in Likelihoods im Daten-Raum konvertiert.
  • Ein erzeugendes gegnerisches Netzwerk (Generative Adversarial Network, GAN) ist ein anderer Typ von generativen Modell, dass mit EBM 212 und gemeinsamen Modell 226 verwendet werden kann. Die Prior-Verteilung in dem GAN wird mittels einer Gaußschen und/oder einem anderen Typ von simplen Verteilung repräsentiert, der Decoder in dem GAN ist ein Generator-Netzwerk, dass ein Sample aus der Prior-Verteilung in ein Sample im Daten-Raum von einem Trainingsdatensatz konvertiert, und das Generator-Netzwerk kann numerisch invertiert sein, um Samples in dem Trainingsdatensatz auf Samples in dem latenten Raum der latenten Variablen abzubilden.
  • Ein Normalisierender-Fluss (normalizing flow) ist ein anderer Typ von generativen Modell, das mit EBM 212 und gemeinsamen Modell 226 verwendet werden kann. Wie bei dem GAN wird die Prior-Verteilung in einem Normalisierender-Fluss unter Verwenden einer Gaußschen und/oder anderen Art von simplen Verteilung implementiert. Der Decoder in einem Normalisierender-Fluss wird mittels eines Decoder-Netzwerks repräsentiert, das den latenten Raum mit dem Daten-Raum in Beziehung setzt, unter Verwenden einer deterministischen und invertierbaren Transformation von beobachteten Variablen in dem Daten-Raum zu den latenten Variablen in dem latenten Raum. Die Inverse des Decoder-Netzwerks in dem Normalisierender-Fluss kann verwendet werden, um ein Sample in dem Trainingsdatensatz auf ein Sample im latenten Raum abzubilden.
  • Bei jedem von diesen Typen von generativen Modellen wird eine erste Trainingsstufe verwendet, um das generative Modell zu trainieren, und eine zweite Trainingsstufe wird verwendet, um EBM 212 zu trainieren, eine Energiefunktion zu lernen, die zwischen Werten, die aus einer oder mehreren Verteilungen gesampelt werden, die mit Trainingsdaten 208 assoziiert sind, und Werten, die aus einer oder mehreren Verteilungen gesampelt werden, die während des Betriebs von einem oder mehreren Abschnitten des trainierten generativen Modells verwendet werden, unterscheidet. Gemeinsames Modell 226 wird dann erzeugt, indem der/die Abschnitt(e) des trainierten generativen Modells mit EBM 212 kombiniert werden.
  • 6 zeigt ein Flussdiagramm von Verfahrensschritten zum Trainieren eines generativen Modells, gemäß verschiedenen Ausführungsbeispielen. Obwohl die Verfahrensschritte im Zusammenhang mit den Systemen von 1-5 beschrieben werden, werden Fachleute verstehen, dass jedes System, das konfiguriert ist, die Verfahrensschritte in irgendeiner Reihenfolge auszuführen, ebenfalls in den Schutzbereich der vorliegenden Offenbarung fallen.
  • Wie gezeigt führt Trainings-Engine 122 eine erste Trainingsstufe aus 602, die basierend auf einem Trainingsdatensatz ein Prior-Netzwerk, ein Encoder-Netzwerk und ein Decoder-Netzwerk trainiert, die in einem generativen Modell enthalten sind. Zum Beispiel könnte Trainings-Engine 122 ein Satz von Trainingsbildern, die auf eine gewisse Auflösung skaliert wurden, in ein hierarchisches VAE (oder einen anderen Typ von generativen Modell, das eine Verteilung von latenten Variablen umfasst) eingeben. Die Trainingsbilder können menschliche Gesichter, Tiere, Fahrzeuge und/oder andere Typen von Objekten umfassen. Trainings-Engine 122 könnte auch eine oder mehrere Operationen durchführen, die Parameter des hierarchischen VAE basierend auf der Ausgabe der Prior-, Encoder- und Decoder-Netzwerke und einer entsprechenden Richtwertfunktion aktualisieren.
  • Als nächstes führt Trainings-Engine 122 eine zweite Trainingsstufe aus 604, die ein EBM trainiert, eine Energiefunktion zu lernen, basierend auf einem ersten Satz von Werten, die aus einer oder mehreren Verteilungen gesampelt werden, die mit dem Trainingsdatensatz assoziiert sind, und einem zweiten Satz von Werten, die aus einer oder mehreren Verteilungen gesampelt werden, die während Betriebs des generativen Modells verwendet werden. Zum Beispiel könnte der erste Satz an Werten Datenpunkte, die aus dem Trainingsdatensatz gesampelt werden, und der zweite Satz von Werten könnte Datenpunkte umfassen, die aus Ausgabe-Verteilungen gesampelt werden, die mittels des Decoder-Netzwerks erzeugt werden, nachdem latente-Variable-Werte, die von dem Prior-Netzwerk gesampelt wurden, in das Decoder-Netzwerk eingegeben wurden. Das EBM lernt daher eine Energiefunktion, die einen niedrigen Energiewert von einem Datenpunkt, der aus dem Trainingsdatensatz gesampelt wird, und einen hohen Energiewert von einem Datenpunkt erzeugt, der nicht aus dem Trainingsdatensatz gesampelt wird. In einem anderen Beispiel könnte der erste Satz an Werten aus einer oder mehreren Rausch-Verteilungen gesampelt werden während Betriebs von einem VAE, der in Operation 602 trainiert wird. Der erste Satz von Werten könnte dann in die Prior- und/oder Decoder-Netzwerke in dem VAE eingespeist werden, um jeweilige latente-Variable-Werte und/oder Pixelwerte in einem Ausgabebild zu produzieren. Daher lernt das EBM eine Energiefunktion, die, aus den gesampelten Rauschwerten, einen oder mehrere Energiewerte erzeugt, die anzeigen, wie gut die korrespondierenden latente-Variable-Werte und/oder Pixelwerte die Verteilungen von latenten Variablen und/oder Verteilungen von Pixelwerten in dem Trainingsdatensatz, der verwendet wird, um den VAE und das energiebasierte Modell zu trainieren, widerspiegeln.
  • Trainings-Engine 122 erzeugt dann ein gemeinsames Modell 606, das einen oder mehrere Abschnitte des generativen Modells und das EBM umfasst. Zum Beispiel könnte das gemeinsame Modell die Prior- und Decoder-Netzwerke in einem VAE und das EBM umfassen. Das gemeinsame Modell kann dann verwendet werden, um neue Datenpunkte zu erzeugen, die nicht in dem Trainingsdatensatz gefunden werden, aber die Attribute berücksichtigen, die aus dem Trainingsdatensatz extrahiert wurden, wie in größeren Detail unten in Bezug auf 7 beschrieben wird.
  • 7 zeigt ein Flussdiagramm von Verfahrensschritten zum Produzieren generativer Ausgabe, gemäß verschiedenen Ausführungsbeispielen. Obwohl die Verfahrensschritte im Zusammenhang mit den Systemen von 1-5 beschrieben werden, werden Fachleute verstehen, dass jedes System, das konfiguriert ist, die Verfahrensschritte in irgendeiner Reihenfolge auszuführen, ebenfalls in den Schutzbereich der vorliegenden Offenbarung fallen.
  • Wie gezeigt sampelt Ausführungs-Engine 124 aus einer oder mehreren Verteilungen von einer oder mehreren Variablen 702, um einen ersten Satz von Werten für die Variable(n) zu erzeugen. Zum Beispiel könnte(n) die Verteilung(en) eine oder mehrere Likelihood-Verteilungen umfassen, die mittels des Decoder-Netzwerks in einem VAE und/oder einem anderen Typ von generativen Modell ausgegeben werden, und der erste Satz von Werten könnte generative Ausgabe umfassen, die mittels Sampeln aus der/den Likelihood-Verteilung(en) produziert wird. In einem anderen Beispiel könnte(n) die Verteilung(en) eine oder mehrere Rausch-Verteilungen umfassen, die während Betriebs der prior- und/oder Decoder-Netzwerke in dem VAE und/oder generativen Modell verwendet werden, und der erste Satz an Werten könnte einen oder mehrere Rauschwerte umfassen, die in das Prior-Netzwerk eingegeben werden, um einen Satz von latente-Variable-Werten und/oder einen oder mehrere Rauschwerte zu erzeugen, die in das Decoder-Netzwerk eingegeben werden, um die Likelihood-Verteilung(en) zu produzieren.
  • Als nächstes wendet Ausführungs-Engine 124 ein EBM auf den ersten Satz von Werten an 704, um einen oder mehrere Energiewerte zu erzeugen. Zum Beispiel könnte Ausführungs-Engine 124 den ersten Satz von Werten in das EBM eingeben und das EBM könnte eine Energiefunktion verwenden, um den/die Energiewert(e) zu erzeugen.
  • Ausführungs-Engine 124 wendet dann den/die Energiewert(e) auf den ersten Satz von Werten an 706, um einen zweiten Satz von Werten für die Variable(n) zu produzieren. Zum Beispiel könnte Ausführungs-Engine 124 LD und/oder einen anderen Typ von MCMC-Samplingtechnik verwenden, um den ersten Satz von Werten basierend auf dem Gradienten der Energiefunktion, die mittels des EBM gelernt wird, iterativ zu aktualisieren. Während Betrieb 706 verwendet Ausführungs-Engine 124 den/die Energiewert(e) von der Energiefunktion, um die Likelihood zu reduzieren, die mit einer oder mehreren Regionen in der/den Verteilung(en), aus denen der erste Satz von Werten gesampelt wurde, assoziiert ist, wenn die Region(en) eine geringe Dichte in einer oder mehreren korrespondierenden Verteilungen von Variablen haben, die von dem Trainingsdatensatz erzeugt wurden. Nach einer gewissen Anzahl von Iterationen erlangt Ausführungs-Engine 124 den zweiten Satz von Werten als eine Anpassung an den ersten Satz von Werten.
  • Schlussendlich gibt die Ausführungs-Engine 124 in Betrieb den zweiten Satz von Werten als generative Ausgabe aus oder führt eine oder mehrere Operationen basierend auf dem zweiten Satz von Werten aus 708, um die generative Ausgabe zu produzieren. Zum Beispiel könnte Ausführungs-Engine 124 den zweiten Satz von Werten als Pixelwerte in einem Bild ausgeben, das mittels eines gemeinsamen Modells erzeugt wird, das einen VAE und das EBM umfasst. In einem anderen Beispiel könnte Ausführungs-Engine 124 einen ersten Rauschwert, der in dem zweiten Satz von Werten enthalten ist, in ein Prior-Netzwerk eingeben, das in dem generativen Modell enthalten ist, um ein Satz von latente-Variable-Werten zu produzieren. Als nächstes könnte Ausführungs-Engine 124 den Satz von latente-Variable-Werten und einen zweiten Rauschwert, der in dem zweiten Satz von Werten enthalten ist, in ein Decoder-Netzwerk eingeben, das in dem generativen Modell enthalten ist, um eine Ausgabe-(z.B. Likelihood)-Verteilung zu produzieren. Ausführungs-Engine 124 könnte dann aus der Ausgabe-Verteilung sampeln, um den Satz von Ausgabedaten zu erzeugen.
  • Beispielhaftes Spiele-Streaming-System
  • 8 zeigt ein beispielhaftes Systemdiagramm für ein Spiele-Streaming-System 800, gemäß verschiedenen Ausführungsbeispielen. 8 umfasst einen/mehrere Spieleserver 802 (der/die ähnliche Komponenten, Merkmale und/oder Funktionalitäten wie die beispielhafte Rechenvorrichtung 100 von 1 umfassen kann/können), Client-Vorrichtung(en) 804 (die ähnliche Komponenten, Merkmale und/oder Funktionalitäten wie die beispielhafte Rechenvorrichtung 100 von 1 umfassen kann/können) und Netzwerk(e) 806 (das/die ähnlich wie das/die Netzwerk(e), die hierin beschrieben sind, sein kann/können). In einigen Ausführungsbeispielen kann das System unter Verwenden eines Cloud-Computing System und/oder eines verteilten Systems implementiert sein.
  • In System 800 mag, für eine Spielesitzung, Client-Vorrichtung(en) 804 nur Eingabedaten in Reaktion auf Eingaben in die Eingabe-Vorrichtung(en) empfangen, die Eingabedaten zu Spieleserver(n) 802 übertragen, codierte Anzeigedaten von Spieleserver(n) 802 empfangen und die Anzeigedaten auf Anzeige 824 anzeigen. Als solches wird die rechenmäßig intensivere Berechnung und das Prozessieren auf den/die Spieleserver 802 ausgelagert (z.B. wird Rendern - insbesondere Ray- oder Pfad-Tracing - für graphische Ausgabe der Spielesitzung mittels der GPU(s) von Spieleserver(n) 802 ausgeführt). Mit anderen Worten wird die Spielesitzung von dem/den Spieleserver(n) 802 zu der/den Client-Vorrichtungen) 804 gestreamt, wodurch die Vorgaben für Client-Vorrichtung(en) 804 fürs Graphikprozessieren und Rendern reduziert werden.
  • Zum Beispiel kann, bezüglich einer Instanziierung einer Spielesitzung, eine Client-Vorrichtung 804 einen Frame der Spielesitzung auf Anzeige 824 anzeigen, basierend auf dem Empfangen der Anzeigedaten von dem/den Spieleserver(n) 802. Client-Vorrichtung 804 kann eine Eingabe in eine oder mehrere EingabeVorrichtung(en) 826 empfangen und Eingabedaten in Reaktion erzeugen. Client-Vorrichtung 804 kann die Eingabedaten via Kommunikationsschnittstelle 820 und über Netzwerk(e) 806 (z.B. das Internet) zu dem/den Spieleserver(n) 802 übertragen, und Spieleserver 802 kann/können die Eingabedaten via Kommunikations-Schnittstelle 818 empfangen. CPU(s) 808 kann/können die Eingabedaten empfangen, die Eingabedaten prozessieren und die Daten zu GPU(s) 810 übertragen, was GPU(s) 810 veranlasst, ein Rendering der Spielesitzung zu erzeugen. Zum Beispiel können die Eingabedaten für eine Bewegung von einem Charakter des Benutzers in einem Spiel, einem Abfeuern einer Waffe, Nachladen, Abgeben eines Balles, Drehen eines Fahrzeugs, usw. repräsentativ sein. Rendering-Komponente 812 kann die Spielesitzung (z.B. repräsentativ für das Ergebnis der Eingabedaten) rendern und Render-Erfassungskomponente 814 kann das Rendering der Spielesitzung als Anzeigedaten (z.B. als Bilddaten, die den gerenderten Frame der Spielesitzung erfassen) erfassen. Das Rendering der Spielesitzung kann Ray- oder Pfad-traced Beleuchtungs- und/oder Schatteneffekte umfassen, die unter Verwenden von einer oder mehreren Parallel-Prozessier-Einheiten vom/von Spieleserver(n) 802 berechnet wurden - wie beispielsweise GPU(s) 810, die ferner die Verwendung von einen oder mehreren dedizierten Hardwarebeschleunigern oder Prozessierkernen einsetzen können, um Ray- oder Pfad-Tracing-Techniken durchzuführen. Encoder 816 kann dann die Anzeigedaten codieren, um kodierte Displaydaten zu erzeugen, und die kodierten Anzeigedaten können über Netzwerk(e) 806 via Kommunikations-Schnittstelle 818 zu Client-Vorrichtung 804 übertragen werden. Client-Vorrichtung 804 kann die kodierten Anzeigedaten via Kommunikations-Schnittstelle 820 empfangen und Decoder 822 kann die kodierten Anzeigedaten decodieren, um die Anzeigedaten zu erzeugen. Client-Vorrichtung 804 kann dann die Anzeigedaten via Anzeige 824 anzeigen.
  • In einigen Ausführungsbeispielen umfasst System 800 Funktionalität, um Trainings-Engine 122 und/oder Ausführungs-Engine 124 von 1-2 zu implementieren. Zum Beispiel könnten eine oder mehrere Komponenten von Spieleserver 802 und/oder Client-Vorrichtung(en) 804 Trainings-Engine 122, um ein VAE und/oder ein anderes generatives Modell zu trainieren, das eine prior-Verteilung von latenten Variablen in einem latenten Raum umfasst, einen Decoder, der Samples der latenten Variablen in Samples in einem Daten-Raum von einem Trainingsdatensatz konvertiert, und eine Komponente oder ein Verfahren, das ein Sample in dem Trainingsdatensatz auf ein Sample in dem latenten Raum der latenten Variablen abbildet, ausführen. Der Trainingsdatensatz könnte Audio, Video, Text, Bilder, Modelle oder andere Repräsentationen von Charakteren, Objekten oder anderen Inhalt in einem Spiel umfassen. Die ausgeführte Trainings-Engine 122 kann dann ein EBM trainieren, eine Energiefunktion zu lernen, die zwischen einem ersten Satz von Werten, die aus einer oder mehreren ersten Verteilungen, die mit dem Trainingsdatensatz assoziiert sind, gesampelt sind, und einem zweiten Satz von Werten, die aus einer oder mehreren zweiten Verteilungen, die während Betriebs von einem oder mehreren Abschnitten des trainierten generativen Modells verwendet werden, unterscheidet. Eine oder mehrere Komponenten von Spieleserver 802 und/oder Client-Vorrichtung(en) 804 kann/können dann Ausführungs-Engine 124 ausführen, um generative Ausgabe (z.B. zusätzliche Bilder oder Modelle von Charakteren oder Objekten, die nicht in dem Trainingsdatensatz gefunden werden) zu produzieren, indem ein erster Satz von Werten aus Verteilungen von einer oder mehreren Variablen gesampelt wird, die während Betriebs von einem oder mehreren Abschnitten des Variational Autoencoder verwendet werden, indem ein oder mehrere Energiewert(e), die via das EBM erzeugt werden, auf den ersten Satz von Werten angewendet wird/werden, um einen zweiten Satz von Werten für die eine oder mehreren Variablen (z.B. mittels iterativen Aktualisieren des ersten Satzes von Werten basierend auf einem Gradienten von einer Energiefunktion, die mittels des EBM gelernt wurde) zu produzieren, und indem entweder der Satz von zweiten Werten als Ausgabedaten ausgegeben wird oder eine oder mehrere Operationen basierend auf dem zweiten Satz von Werten ausgeführt werden, um Ausgabedaten zu erzeugen.
  • Zusammen verbessern die offenbarten Techniken generative Ausgabe, die mittels VAEs und/oder anderer Typen von generativen Modellen mit Verteilungen von latenten Variablen produziert werden. Nachdem ein generatives Modell an einem Trainingsdatensatz trainiert wurde, wird ein EBM trainiert, eine Energiefunktion zu lernen, die zwischen Werten, die aus einer oder mehreren Verteilungen gesampelt werden, die mit dem Trainingsdatensatz assoziiert sind, und Werten, die aus einer oder mehreren Verteilungen, die während Betriebs von einem oder mehreren Abschnitten des generativen Modells verwendet werden, zu unterscheiden. Ein oder mehrere Abschnitte des generativen Modells werden mit dem EBM kombiniert, um ein gemeinsames Modell zu produzieren, das generative Ausgabe produziert.
  • Während Betriebs des gemeinsamen Modells wird ein erster Satz von Werten aus Verteilungen von einer oder mehreren Variablen, die verwendet werden, um einen oder mehrere Abschnitte des generativen Modells zu betreiben, gesampelt. Diese Verteilungen können eine oder mehrere Likelihood-Verteilungen, die mittels eines Decoder-Netzwerks in dem generativen Modell ausgegeben werden, und/oder eine oder mehrere Rausch-Verteilungen umfassen, die mittels des/der Abschnitte/s des generativen Modells verwendet werden, um aus einer prior-Verteilung von latenten Variablen und/oder der/den Likelihood-Verteilung(en) zu sampeln. Der erste Satz von Variablen wird in das EBM eingegeben und ein oder mehrere Energiewerte, die mittels des EBM aus dem ersten Satz von Variablen erzeugt werden, werden auf den ersten Satz von Werten angewendet, um einen zweiten Satz von Werten für die gleiche(n) Variable(n) zu erzeugen. Der/die Energiewert(e) aus dem EBM schieben den ersten Satz von Werten weg von einer oder mehreren Regionen in der/den Verteilung(en), die eine geringe Dichte in einer oder mehreren korrespondierenden Verteilungen von Datenwerten hat, die aus den Trainingsdatensatz erzeugt werden. Wenn der erste Satz von Werten aus der/den Likelihood-Verteilung(en) gesampelt wird, wird der zweite Satz von Werten als generative Ausgabe für das gemeinsame Modell verwendet. Wenn der erste Satz von Werten aus einer oder mehreren Rausch-Verteilungen, die verwendet werden, um den/die Abschnitt(e) des generativen Modells zu betreiben, gesampelt wird, wird der zweite Satz von Werten in den/die Abschnitt(e) eingegeben, um den zweiten Satz von Werten in generative Ausgabe für das gemeinsame Modell zu konvertieren.
  • Zumindest ein technischer Vorteil der offenbarten Techniken im Vergleich zu dem Stand der Technik ist, dass die offenbarten Techniken generative Ausgabe produzieren, die realistischer und ähnlicher den Daten in einem Trainingsdatensatz aussieht, verglichen zu dem, was typischerweise unter Verwenden von konventionellen Variational Autoencoder (oder anderen Typen von generativen Modellen, die Verteilungen von latenten Variablen lernen) produziert wird. Ein anderer technischer Vorteil ist, dass, mit den offenbarten Techniken, eine komplexe Verteilung von Werten, die einen Trainingsdatensatz repräsentieren, mittels eines gemeinsamen Modells angenähert werden kann, das trainiert wird und in einer rechenmäßig effizienteren Weise im Vergleich zu Stand der Technik Techniken. Diese technischen Vorteile stellen eine oder mehrere technologische Verbesserungen über Stand der Technik Ansätze bereit.
  • 1. In einigen Ausführungsbeispielen weist ein computerimplementiertes Verfahren zum Erzeugen eines generativen Modells auf: Durchführen eines oder mehrerer Operationen basierend auf einer Vielzahl von Trainingsbilden, um einen trainierten Variational Autoencoder zu erzeugen, wobei der trainierte Variational Autoencoder ein Encoder-Netzwerk, das die Vielzahl von Trainingsbilder in einen Satz von Werten latenter Variablen konvertiert, ein Prior-Netzwerk , das eine Verteilung des Satzes von Werten latenter Variablen quer über die Vielzahl von Trainingsbildern lernt, und ein Decoder-Netzwerk umfasst, das einen oder mehrere Werte latenter Variablen in eine oder mehrere Ausgabe-Verteilungen von Pixelwerten in einer Vielzahl von Ausgabebildern konvertiert; Durchführen einer oder mehrerer Operationen, um ein energiebasiertes Modell zu trainieren, eine Energiefunktion basierend auf einem ersten Satz von Werten, die aus einer oder mehreren ersten Verteilungen gesampelt werden, die mit der Vielzahl von Trainingsbildern assoziiert sind, und einem zweiten Satz von Werten zu lernen, der aus einer oder mehreren zweiten Verteilungen gesampelt wird, die während Betriebs von einem oder mehreren Abschnitten des trainierten Variational Autoencoder verwendet werden; und Erzeugen eines gemeinsamen Modells, das den einen oder mehrere Abschnitte des trainierten Variational Autoencoder und des energiebasierten Modell umfasst, wobei das gemeinsame Modell einen oder mehrere Energiewerte, die via das energiebasierte Modell erzeugt werden, auf einen dritten Satz von Werten anwendet, die aus der einen oder mehreren zweiten Verteilungen gesampelt werden, um einen vierten Satz von Werten zu produzieren, wobei, im Betrieb, das gemeinsame Modell den vierten Satz von Werten produziert, um ein neues Bild zu erzeugen, das nicht in der Vielzahl von Trainingsbildern enthalten ist.
  • 2. Das computerimplementierte Verfahren nach Klausel 1, wobei der eine oder die mehreren Abschnitte des trainierten Variational Autoencoder das Prior-Netzwerk und das Decoder-Netzwerk umfassen.
  • 3. Das computerimplementierte Verfahren nach Klausel 1 oder 2, wobei das neue Bild zumindest ein Gesicht aufweist.
  • 4. In einigen Ausführungsbeispielen weist ein computerimplementiertes Verfahren zum Erzeugen eines generativen Modells auf: Durchführen einer oder mehrerer Operationen basierend auf einem Trainingsdatensatz, um ein trainiertes generatives Modell zu erzeugen, wobei das trainierte generative Modell eine erste Komponente, die eine Vielzahl von Datenpunkten, die in dem Trainingsdatensatz enthalten sind, in einen Satz von latente-Variable-Werten konvertiert, eine zweite Komponente, die eine Verteilung des Satzes von latente-Variable-Werten quer über den Trainingsdatensatz lernt, und eine dritte Komponente umfasst, die einen oder mehrere latente-Variable-Werte in eine oder mehrere Ausgabe-Verteilungen konvertiert; Durchführen einer oder mehrerer Operationen, um ein energiebasiertes Modell zu trainieren, eine Energiefunktion basierend auf einem ersten Satz von Werten, die aus einer oder mehreren ersten Verteilungen gesampelt werden, die mit dem Trainingsdatensatz assoziiert sind, und einem zweiten Satz von Werten zu lernen, der aus einer oder mehreren zweiten Verteilungen gesampelt wird, die während Betriebs von einem oder mehreren Abschnitten des trainierten generativen Modells verwendet werden; und Erzeugen eines gemeinsamen Modells, das den einen oder mehrere Abschnitte des trainierten generativen Modells und des energiebasierten Modells umfasst, wobei das gemeinsame Modell einen oder mehrere Energiewerte, die via dem energiebasierten Modell erzeugt werden, auf einen dritten Satz von Werten anwendet, die aus der einen oder mehreren zweiten Verteilungen gesampelt werden, um einen vierten Satz von Werten zu produzieren, wobei, in Betrieb, das gemeinsame Modell den vierten Satz von Werten produziert, um einen neuen Datenpunkt zu erzeugen, der nicht in dem Trainingsdatensatz enthalten ist.
  • 5. Das computerimplementierte Verfahren nach Klausel 4, wobei das Durchführen der einen oder mehreren Operationen, um das energiebasierte Modell zu trainieren, ein Durchführen einer positiven Phase aufweist, die die Energiefunktion basierend auf einer Ableitung einer Log-Likelihood des Trainingsdatensatzes und des ersten Satzes von Werten aktualisiert.
  • 6. Das computerimplementierte Verfahren nach Klausel 4 oder 5, wobei das Durchführen der einen oder mehreren Operationen, um das energiebasierte Modell zu trainieren, ferner ein Durchführen einer negativen Phase aufweist, die die Energiefunktion basierend auf der Ableitung der Log-Likelihood des Trainingsdatensatzes und des zweiten Satzes von Werten aktualisiert.
  • 7. Das computerimplementierte Verfahren nach irgendeiner der Klauseln 4-6, wobei das Durchführen der einen oder mehreren Operationen, um das energiebasierte Modell zu trainieren, ein iteratives Aktualisieren von Parametern des energiebasierten Modells basierend auf einem Gradienten der Energiefunktion nach einem oder mehreren Rauschwerten, die während des Betriebs des einen oder mehreren Abschnitte des trainierten generativen Modells verwendet werden, aufweist.
  • 8. Das computerimplementierte Verfahren nach irgendeiner der Klauseln 4-7, wobei der eine oder die mehreren Rauschwert(e) einen ersten Rauschwert, der beim Betrieb der zweiten Komponente verwendet wird, um den einen oder die mehreren latente-Variable-Werte zu erzeugen, und einen zweiten Rauschwert umfasst, der beim Betrieb der dritten Komponente verwendet wird, um die eine oder mehreren Ausgabe-Verteilung(en) zu erzeugen.
  • 9. Das computerimplementierte Verfahren nach irgendeiner der Klauseln 4-8, wobei das Durchführen der einen oder mehreren Operationen, um das energiebasierte Modell zu trainieren, ein Anwenden eines spektralen Regelungsverlustes auf eine spektrale Norm eines Faltungs-Layers in dem energiebasierten Modell aufweist.
  • 10. Das computerimplementierte Verfahren nach irgendeiner der Klauseln 4-9, wobei die Verteilung des Satzes von latenten Variablen, die mittels der zweiten Komponente erlernt werden, eine Hierarchie von latenten Variablen aufweist, und wobei das Durchführen der einen oder mehreren Operationen, um das trainierte generative Modell zu erzeugen, ein Sampeln eines ersten Werts aus einer ersten Gruppe von latenten Variablen, die in der Hierarchie von latenten Variablen enthalten ist, und ein Sampeln eines anderen ersten Werts aus einer zweiten Gruppe von latenten Variablen, die in der Hierarchie von latenten Variablen enthalten ist, aufweist, basierend auf dem ersten Wert und einer Merkmalskarte.
  • 11. Das computerimplementierte Verfahren nach irgendeiner der Klauseln 4-10, wobei das energiebasierte Modell einen ersten Residuum-Block und einen zweiten Residuum-Block mit Downsampling aufweist.
  • 12. Das computerimplementierte Verfahren nach irgendeiner der Klauseln 4-11, wobei der erste Residuum-Block und der zweite Residuum-Block eine Swish-Aktivierungsfunktion aufweist.
  • 13. Das computerimplementierte Verfahren nach irgendeiner der Klauseln 4-12, wobei das energiebasierte Modell ein Faltungs-Layer, ein Globalsumme Pooling-Layer und ein Fully-connected-Layer aufweist.
  • 14. In einigen Ausführungsbeispielen speichert/n ein oder mehrere nichtflüchtige(s) computerlesbare Medium/Medien Instruktionen, die, wenn sie mittels einem oder mehreren Prozessoren ausgeführt werden, den einen oder die mehreren Prozessoren dazu bringen, folgende Schritte auszuführen: Durchführen einer oder mehrerer Operationen basierend auf einem Trainingsdatensatz, um ein trainiertes generatives Modell zu erzeugen, wobei das trainierte generative Modell eine erste Komponente, die eine Vielzahl von Datenpunkten, die in dem Trainingsdatensatz enthalten sind, in einen Satz von latente-Variable-Werten konvertiert, eine zweite Komponente, die eine Verteilung des Satzes von latente-Variable-Werten quer über den Trainingsdatensatz lernt, und eine dritte Komponente umfasst, die einen oder mehrere latente-Variable-Werte in eine oder mehrere Ausgabe-Verteilungen konvertiert; Durchführen einer oder mehrerer Operationen, um ein energiebasiertes Modell zu trainieren, eine Energiefunktion basierend auf einem ersten Satz von Werten, die aus einer oder mehreren ersten Verteilungen gesampelt werden, die mit dem Trainingsdatensatz assoziiert sind, und einem zweiten Satz von Werten zu lernen, der aus einer oder mehreren zweiten Verteilungen gesampelt wird, die während Betriebs von einem oder mehreren Abschnitten des trainierten generativen Modells verwendet werden; und Erzeugen eines gemeinsamen Modells, das den einen oder mehrere Abschnitte des trainierten generativen Modells und des energiebasierten Modells umfasst, wobei das gemeinsame Modell einen oder mehrere Energiewerte, die via dem energiebasierten Modell erzeugt werden, auf einen dritten Satz von Werten anwendet, die aus der einen oder mehreren zweiten Verteilungen gesampelt werden, um einen vierten Satz von Werten zu produzieren, wobei, in Betrieb, das gemeinsame Modell den vierten Satz von Werten produziert, um einen neuen Datenpunkt zu erzeugen, der nicht in dem Trainingsdatensatz enthalten ist.
  • 15. Das eine oder die mehreren nicht-flüchtige(n) computerlesbare(n) Medium/Medien nach Klausel 14, wobei das Durchführen der einen oder mehreren Operationen, um das energiebasierte Modell zu trainieren, ein Durchführen einer positiven Phase, die die Energiefunktion basierend auf einer Ableitung einer Log-Likelihood des Trainingsdatensatzes und des ersten Satzes von Werten aktualisiert, und ein Durchführen einer negativen Phase aufweist, die die Energiefunktion basierend auf einer Ableitung der Log-Likelihood des Trainingsdatensatzes und des zweiten Satzes von Werten aktualisiert.
  • 16. Das eine oder die mehreren nicht-flüchtige(n) computerlesbare(n) Medium/Medien nach Klausel 14 oder 15, wobei das Durchführen der einen oder mehreren Operationen, um das energiebasierte Modell zu trainieren, ein iteratives Aktualisieren von Parametern des energiebasierten Modells basierend auf einem Gradienten der Energiefunktion nach einem oder mehreren Werten, die während des Betriebs des einen oder mehreren Abschnitte des trainierten generativen Modells verwendet werden, aufweist.
  • 17. Das eine oder die mehreren nicht-flüchtige(n) computerlesbare(n) Medium/Medien nach irgendeiner der Klausel 14-16, wobei der/die eine oder mehreren Werte zumindest eines von einem Rauschwert, der aus einer Rausch-Verteilung gesampelt wird, oder von einem Datenpunkt, der aus der einen oder den mehreren Ausgabe-Verteilungen gesampelt wird, aufweist.
  • 18. Das eine oder die mehreren nicht-flüchtige(n) computerlesbare(n) Medium/Medien nach irgendeiner der Klausel 14-17, wobei das Durchführen der einen oder mehreren Operationen, um das energiebasierte Modell zu trainieren, ein Aktualisieren von Parametern des energiebasierten Modells basierend auf einem spektralen Regelungsverlust aufweist.
  • 19. Das eine oder die mehreren nicht-flüchtige(n) computerlesbare(n) Medium/Medien nach irgendeiner der Klausel 14-18, wobei die Energiefunktion, die mittels des energiebasierten Modells gelernt wird, einen ersten Satz von Energiewerten aus dem ersten Satz von Werten und einen zweiten Satz von Energiewerten aus dem zweiten Satz von Werten produziert, wobei der zweite Satz von Energiewerten höher als der erste Satz von Energiewerten ist.
  • 20. Das eine oder die mehreren nicht-flüchtige(n) computerlesbare(n) Medium/Medien nach irgendeiner der Klausel 14-19, wobei das trainierte generative Modell ein Prior-Netzwerk und ein Decoder-Netzwerk, enthalten in einem Variational Autoencoder, aufweist.
  • Jede und alle Kombinationen von allen der Anspruchselemente, die in irgendeinem der Ansprüche zitiert sind und/oder alle Elemente, die in dieser Anmeldung beschrieben werden, in jeder Art, fallen in den betrachteten Umfang und Schutz der vorliegenden Erfindung.
  • Die Beschreibungen der verschiedenen Ausführungsbeispiele sind nur für illustrative Zwecke gegeben, aber sind nicht als auf die offenbarten Ausführungsbeispiele erschöpft oder beschränkt gedacht. Viele Modifikationen und Variationen werden den Fachleuten ersichtlich sein, ohne von dem Umfang und Geist der beschriebenen Ausführungsbeispiele abzuweichen.
  • Aspekte der vorliegenden Ausführungsbeispiele können als ein System, Verfahren oder Computerprogramm-Produkt verkörperlicht werden. Dementsprechend können Aspekte der vorliegenden Offenbarung die Form eines vollständigen Hardware-Ausführungsbeispiel, eines vollständigen Software-Ausführungsbeispiels (einschließlich Firmware, residierender Software, Mikro-Code, usw.) oder eines Ausführungsbeispiels, das Software und Hardwareaspekte kombiniert, annehmen, die alle im Allgemeinen hierin als ein „Modul“, ein „System“ oder als ein „Computer“ in Bezug genommen werden können. Zusätzlich kann jede Hardware und/oder Software-Technik, Prozess, Funktion, Komponente, Engine, Modul oder System, die/das in der vorliegenden Offenbarung beschrieben wird, als ein Schaltkreis oder Satz von Schaltkreisen implementiert werden. Ferner können Aspekte der vorliegenden Offenbarung die Form eines Computerprogramm-Produktes annehmen, das in einem oder mehreren computerlesbaren Medium/Medien verkörpert ist, das/die computerlesbaren Programmcode darauf verkörpert hat/haben.
  • Jede Kombination von einem oder mehreren computerlesbaren Medium/Medien kann verwendet werden. Das computerlesbare Medium kann ein computerlesbares Signalmedium oder ein computerlesbares Speichermedium sein. Ein computerlesbares Speichermedium kann zum Beispiel, aber nicht darauf beschränkt, ein elektronisches, magnetisches, optisches, elektromagnetisches, infrarotes oder Halbleiter System, Apparat oder Vorrichtung oder jede geeignete Kombination des vorgenannten sein. Spezifischere Beispiele (eine nicht erschöpfende Liste) des computerlesbaren Speichermediums würden das Folgende umfassen: eine elektrische Verbindung, die einen oder mehrere Drähte hat, eine tragbare Computerdiskette, eine Festplatte, einen Direktzugriffsspeicher (random access memory, RAM), einen Festwertspeicher (read-only-memory, ROM), einen löschbaren programmierbaren Nur-Lese-Speicher (erasable programmable read-only memory, EPROM oder Flashspeicher), eine optische Faser, einen tragbaren Compactdisk-Festwertspeicher (CD-ROM), eine optische Speichervorrichtung, eine magnetische Speichervorrichtung oder jede geeignete Kombination des vorgenannten. In dem Kontext dieses Dokuments kann ein computerlesbares Speichermedium jedes materielle Medium sein, das ein Programm enthalten oder speichern kann, zur Verwendung durch oder in Verbindung mit einem Instruktionen ausführenden System, Apparat oder Vorrichtung.
  • Aspekte der vorliegenden Offenbarung werden oben mit Bezug auf Flussdiagramm-Darstellungen und/oder Blockdiagrammen von Verfahren, Apparaten (Systemen) und Computerprogramm-Produkten gemäß Ausführungsbeispielen der Offenbarung beschrieben. Es wird verstanden werden, dass jeder Block der Flussdiagramm-Darstellungen und/oder Blockdiagramme und Kombinationen von Blöcken in den Flussdiagramm-Darstellungen und/oder Blockdiagrammen mittels Computerprogramm-Instruktionen implementiert werden kann. Diese Computerprogramm-Instruktionen können einem Prozessor eines Universalrechners, Spezialrechners (special purpose computer) oder anderer programmierbarer Datenprozessier-Apparate bereitgestellt werden, um eine Maschine hervorzubringen. Die Instruktionen, wenn via den Prozessor des Computers oder eines anderen programmierbaren Datenprozessier-Apparats ausgeführt, ermöglichen die Implementierung der Funktionen/Vorgänge, die in dem Flussdiagramm und/oder Blockdiagramm-Block oder Blöcken spezifiziert sind. Solche Prozessoren können, ohne Beschränkung, Universalprozessoren, Spezialprozessoren, anwendungsspezifische Prozessoren oder Field-Programmable Gate Arrays sein.
  • Die Flussdiagramme und Blockdiagramme in den Figuren zeigen die Architektur, Funktionalität und Operation von möglichen Implementierungen von Systemen, Verfahren und Computerprogramm-Produkten gemäß verschiedenen Ausführungsbeispielen der vorliegenden Offenbarung. In diesem Zusammenhang kann jeder Block in dem Flussdiagramm oder Blockdiagrammen ein Modul, Segment oder Teil von Code repräsentieren, das/der eine oder mehrere ausführbare Instruktionen zum Implementieren der spezifischen logischen Funktion(en) aufweist. Es sollte auch bemerkt werden, dass, in manchen alternativen Implementierungen, die Funktionen, die in dem Block genannt sind, in anderer Reihenfolge wie in den Figuren gezeigt auftreten können. Zum Beispiel können, zwei Blöcke die in Aufeinanderfolge gezeigt werden, tatsächlich, im Wesentlichen gleichzeitig ausgeführt werden, oder die Blöcke können manchmal in umgekehrter Reihenfolge ausgeführt werden, abhängig von der involvierten Funktionalität. Es wird auch beachtet werden, dass jeder Block der Blockdiagramme und/oder Flussdiagramm-Darstellung und Kombination von Blöcken in den Blockdiagrammen und/oder Flussdiagramm-Darstellung mittels Spezialzweck-hardwarebasierter-Systeme (special purpose hardware-based systems), die die spezifizierten Funktionen oder Vorgänge durchführen, oder Kombinationen von Spezialzweck-Hardware und Computerinstruktionen implementiert werden kann.
  • Während das Vorgehende auf Ausführungsbeispiele der vorliegenden Offenbarung gerichtet ist, können andere und weitere Ausführungsbeispiele der Offenbarung formuliert werden, ohne von dem grundsätzlichen Umfang davon abzuweichen, und der Schutzumfang davon ist nur mittels der folgenden Ansprüche bestimmt.

Claims (20)

  1. Ein computerimplementiertes Verfahren zum Erzeugen eines generativen Modells, das Verfahren aufweisend: Durchführen eines oder mehrerer Operationen basierend auf einer Vielzahl von Trainingsbilden, um einen trainierten Variational Autoencoder zu erzeugen, wobei der trainierte Variational Autoencoder ein Encoder-Netzwerk, das die Vielzahl von Trainingsbilder in einen Satz von latente-Variable-Werten konvertiert, ein Prior-Netzwerk , das eine Verteilung des Satzes von latente-Variable-Werten quer über die Vielzahl von Trainingsbildern lernt, und ein Decoder-Netzwerk umfasst, das einen oder mehrere latente-Variable-Werte in eine oder mehrere Ausgabe-Verteilungen von Pixelwerten in einer Vielzahl von Ausgabebildern konvertiert; Durchführen einer oder mehrerer Operationen, um ein energiebasiertes Modell zu trainieren, eine Energiefunktion basierend auf einem ersten Satz von Werten, die aus einer oder mehreren ersten Verteilungen gesampelt werden, die mit der Vielzahl von Trainingsbildern assoziiert sind, und einem zweiten Satz von Werten zu lernen, die aus einer oder mehreren zweiten Verteilungen gesampelt werden, die während Betriebs von einem oder mehreren Abschnitten des trainierten Variational Autoencoder verwendet werden; und Erzeugen eines gemeinsamen Modells, das den einen oder mehrere Abschnitte des trainierten Variational Autoencoder und das energiebasierte Modell umfasst, wobei das gemeinsame Modell einen oder mehrere Energiewerte, die via das energiebasierte Modell erzeugt werden, auf einen dritten Satz von Werten anwendet, die aus der einen oder mehreren zweiten Verteilungen gesampelt werden, um einen vierten Satz von Werten zu produzieren, wobei, im Betrieb, das gemeinsame Modell den vierten Satz von Werten produziert, um ein neues Bild zu erzeugen, das nicht in der Vielzahl von Trainingsbildern enthalten ist.
  2. Das computerimplementierte Verfahren nach Anspruch 1, wobei der eine oder die mehreren Abschnitte des trainierten Variational Autoencoder das Prior-Netzwerk und das Decoder-Netzwerk umfassen.
  3. Das computerimplementierte Verfahren nach Anspruch 1 oder 2, wobei das neue Bild zumindest ein Gesicht aufweist.
  4. Ein computerimplementiertes Verfahren zum Erzeugen eines generativen Modells, das Verfahren aufweisend: Durchführen einer oder mehrerer Operationen basierend auf einem Trainingsdatensatz, um ein trainiertes generatives Modell zu erzeugen, wobei das trainierte generative Modell eine erste Komponente, die eine Vielzahl von Datenpunkten, die in dem Trainingsdatensatz enthalten sind, in einen Satz von latente-Variable-Werten konvertiert, eine zweite Komponente, die eine Verteilung des Satzes von latente-Variable-Werten quer über den Trainingsdatensatz lernt, und eine dritte Komponente umfasst, die einen oder mehrere latente-Variable-Werte in eine oder mehrere Ausgabe-Verteilungen konvertiert; Durchführen einer oder mehrerer Operationen, um ein energiebasiertes Modell zu trainieren, eine Energiefunktion basierend auf einem ersten Satz von Werten, die aus einer oder mehreren ersten Verteilungen gesampelt werden, die mit dem Trainingsdatensatz assoziiert sind, und einem zweiten Satz von Werten zu lernen, die aus einer oder mehreren zweiten Verteilungen gesampelt werden, die während Betriebs von einem oder mehreren Abschnitten des trainierten generativen Modells verwendet werden; und Erzeugen eines gemeinsamen Modells, das den einen oder mehrere Abschnitte des trainierten generativen Modells und das energiebasierte Modell umfasst, wobei das gemeinsame Modell einen oder mehrere Energiewerte, die via das energiebasierte Modell erzeugt werden, auf einen dritten Satz von Werten anwendet, die aus der einen oder mehreren zweiten Verteilungen gesampelt werden, um einen vierten Satz von Werten zu produzieren, wobei, im Betrieb, das gemeinsame Modell den vierten Satz von Werten produziert, um einen neuen Datenpunkt zu erzeugen, der nicht in dem Trainingsdatensatz enthalten ist.
  5. Das computerimplementierte Verfahren nach Anspruch 4, wobei das Durchführen der einen oder mehreren Operationen, um das energiebasierte Modell zu trainieren, ein Durchführen einer positiven Phase aufweist, die die Energiefunktion basierend auf einer Ableitung einer Log-Likelihood des Trainingsdatensatzes und dem ersten Satz von Werten aktualisiert.
  6. Das computerimplementierte Verfahren nach Anspruch 5, wobei das Durchführen der einen oder mehreren Operationen, um das energiebasierte Modell zu trainieren, ferner ein Durchführen einer negativen Phase aufweist, die die Energiefunktion basierend auf einer Ableitung der Log-Likelihood des Trainingsdatensatzes und dem zweiten Satz von Werten aktualisiert.
  7. Das computerimplementierte Verfahren nach irgendeinem der Ansprüche 4 bis'6, wobei das Durchführen der einen oder mehreren Operationen, um das energiebasierte Modell zu trainieren, ein iteratives Aktualisieren von Parametern des energiebasierten Modells basierend auf einem Gradienten der Energiefunktion nach einem oder mehreren Rauschwerten, die während des Betriebs des einen oder mehreren Abschnitte des trainierten generativen Modells verwendet werden, aufweist.
  8. Das computerimplementierte Verfahren nach irgendeinem der Ansprüche 4 bis 7, wobei der eine oder die mehreren Rauschwerte einen ersten Rauschwert, der beim Betrieb der zweiten Komponente, um den einen oder die mehreren latente-Variable-Werte zu erzeugen, verwendet wird, und einen zweiten Rauschwert umfasst, der beim Betrieb der dritten Komponente, um die eine oder mehreren Ausgabe-Verteilungen zu erzeugen, verwendet wird.
  9. Das computerimplementierte Verfahren nach irgendeinem der Ansprüche 4 bis 8, wobei das Durchführen der einen oder mehreren Operationen, um das energiebasierte Modell zu trainieren, ein Anwenden eines spektralen Regelungsverlustes auf eine spektrale Norm eines Faltungs-Layers in dem energiebasierten Modell aufweist.
  10. Das computerimplementierte Verfahren nach irgendeinem der Ansprüche 4 bis 9, wobei die Verteilung des Satzes von latenten-Variablen, die mittels der zweiten Komponente gelernt werden, eine Hierarchie von latenten-Variablen aufweist, und wobei das Durchführen der einen oder mehreren Operationen, um das trainierte generative Modell zu erzeugen, aufweist: Sampeln eines ersten Werts aus einer ersten Gruppe von latenten Variablen, die in der Hierarchie von latenten Variablen enthalten ist, und Sampeln eines anderen ersten Werts aus einer zweiten Gruppe von latenten Variablen, die in der Hierarchie von latenten Variablen enthalten ist, basierend auf dem ersten Wert und einer Merkmalskarte.
  11. Das computerimplementierte Verfahren nach irgendeinem der Ansprüche 4 bis 10, wobei das energiebasierte Modell einen ersten Residuum-Block und einen zweiten Residuum-Block mit Downsampling aufweist.
  12. Das computerimplementierte Verfahren nach Anspruch 11, wobei der erste Residuum-Block und der zweite Residuum-Block eine Swish-Aktivierungsfunktion aufweist.
  13. Das computerimplementierte Verfahren nach irgendeinem der Ansprüche 4 bis 12, wobei das energiebasierte Modell ein Faltungal-Layer, ein Globalsumme Pooling-Layer und ein Fully-connected-Layer aufweist.
  14. Ein oder mehrere nicht-flüchtige computerlesbare Instruktionen speichernde Medien, die, wenn sie mittels eines oder mehrerer Prozessoren ausgeführt werden, den einen oder die mehreren Prozessoren dazu bringen, die Schritte auszuführen von: Durchführen einer oder mehrerer Operationen basierend auf einem Trainingsdatensatz, um ein trainiertes generatives Modell zu erzeugen, wobei das trainierte generative Modell eine erste Komponente, die eine Vielzahl von Datenpunkten, die in dem Trainingsdatensatz enthalten sind, in einen Satz von latente-Variable-Werten konvertiert, eine zweite Komponente, die eine Verteilung des Satzes von latente-Variable-Werten quer über den Trainingsdatensatz lernt, und eine dritte Komponente umfasst, die einen oder mehrere latente-Variable-Werte in eine oder mehrere Ausgabe-Verteilungen konvertiert; Durchführen einer oder mehrerer Operationen, um ein energiebasiertes Modell zu trainieren, eine Energiefunktion basierend auf einem ersten Satz von Werten, die aus einer oder mehreren ersten Verteilungen gesampelt werden, die mit dem Trainingsdatensatz assoziiert sind, und einem zweiten Satz von Werten zu lernen, die aus einer oder mehreren zweiten Verteilungen gesampelt werden, die während Betriebs von einem oder mehreren Abschnitten des trainierten generativen Modells verwendet werden; und Erzeugen eines gemeinsamen Modells, das den einen oder mehrere Abschnitte des trainierten generativen Modells und das energiebasierte Modell umfasst, wobei das gemeinsame Modell einen oder mehrere Energiewerte, die via das energiebasierte Modell erzeugt werden, auf einen dritten Satz von Werten anwendet, die aus der einen oder mehreren zweiten Verteilungen gesampelt werden, um einen vierten Satz von Werten zu produzieren, wobei, in Betrieb, das gemeinsame Modell den vierten Satz von Werten produziert, um einen neuen Datenpunkt zu erzeugen, der nicht in dem Trainingsdatensatz enthalten ist.
  15. Das eine oder die mehreren nicht-flüchtigen computerlesbaren Medien nach Anspruch 14, wobei das Durchführen der einen oder mehreren Operationen, um das energiebasierte Modell zu trainieren aufweist: Durchführen einer positiven Phase, die die Energiefunktion basierend auf einer Ableitung einer Log-Likelihood des Trainingsdatensatzes und dem ersten Satz von Werten aktualisiert, und Durchführen einer negativen Phase, die die Energiefunktion basierend auf einer Ableitung der Log-Likelihood des Trainingsdatensatzes und dem zweiten Satz von Werten aktualisiert.
  16. Das eine oder die mehreren nicht-flüchtigen computerlesbaren Medien nach Anspruch 14 oder 15, wobei das Durchführen der einen oder mehreren Operationen, um das energiebasierte Modell zu trainieren, ein iteratives Aktualisieren von Parametern des energiebasierten Modells basierend auf einem Gradienten der Energiefunktion nach einem oder mehreren Werten, die während Betriebs des einen oder mehreren Abschnitte des trainierten generativen Modells verwendet werden, aufweist.
  17. Das eine oder die mehreren nicht-flüchtigen computerlesbaren Medien nach Anspruch 16, wobei der eine oder mehreren Werte zumindest eines von einem Rauschwert, der aus einer Rauschverteilung gesampelt wird, oder von einem Datenpunkt, der aus der einen oder den mehreren Ausgabe-Verteilungen gesampelt wird, aufweist.
  18. Das eine oder die mehreren nicht-flüchtigen computerlesbaren Medien nach irgendeinem der Ansprüche 14 bis 17, wobei das Durchführen der einen oder mehreren Operationen, um das energiebasierte Modell zu trainieren, ein Aktualisieren von Parametern des energiebasierten Modells basierend auf einem spektralen Regelungsverlust aufweist.
  19. Das eine oder die mehreren nicht-flüchtigen computerlesbaren Medien nach irgendeinem der Ansprüche 14 bis 18, wobei die Energiefunktion, die mittels des energiebasierten Modells gelernt wird, einen ersten Satz von Energiewerten aus dem ersten Satz von Werten und einen zweiten Satz von Energiewerten aus dem zweiten Satz von Werten produziert, wobei der zweite Satz von Energiewerten höher als der erste Satz von Energiewerten ist.
  20. Das eine oder die mehreren nicht-flüchtigen computerlesbaren Medien nach irgendeinem der Ansprüche 14 bis 19, wobei das trainierte generative Modell ein Prior-Netzwerk und ein Decoder-Netzwerk, enthalten in einem Variational Autoencoder, aufweist.
DE102021124428.5A 2020-09-25 2021-09-21 Trainieren energiebasierter variational autoencoder Pending DE102021124428A1 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US202063083654P 2020-09-25 2020-09-25
US63/083,654 2020-09-25
US17/357,738 US20220101145A1 (en) 2020-09-25 2021-06-24 Training energy-based variational autoencoders
US17/357,738 2021-06-24

Publications (1)

Publication Number Publication Date
DE102021124428A1 true DE102021124428A1 (de) 2022-03-31

Family

ID=80624659

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102021124428.5A Pending DE102021124428A1 (de) 2020-09-25 2021-09-21 Trainieren energiebasierter variational autoencoder

Country Status (2)

Country Link
US (1) US20220101145A1 (de)
DE (1) DE102021124428A1 (de)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2024060161A1 (zh) * 2022-09-22 2024-03-28 上海交通大学 编解码方法、编码器、解码器以及存储介质

Also Published As

Publication number Publication date
US20220101145A1 (en) 2022-03-31

Similar Documents

Publication Publication Date Title
Jo et al. Sc-fegan: Face editing generative adversarial network with user's sketch and color
Yang et al. High-resolution image inpainting using multi-scale neural patch synthesis
Stelzner et al. Faster attend-infer-repeat with tractable probabilistic models
DE102019130702A1 (de) Stilbasierte architektur für generative neuronale netzwerke
DE102018111407A1 (de) Methode zum maschinellen lernen für automatisches modellieren von mehrwertigen ausgaben
DE102021124769A1 (de) Latente-variable generatives modell mit einem rauschkontrastgebenden prior
Li et al. Image super-resolution with parametric sparse model learning
DE102021124537A1 (de) Energiebasierte variational autoencoder
DE102021206286A1 (de) Tiefer hierarchischer variational autocodierer
CN113902921A (zh) 图像处理方法、装置、设备及存储介质
Wang et al. Rewriting geometric rules of a GAN.
CN116363261A (zh) 图像编辑模型的训练方法、图像编辑方法和装置
US20220398697A1 (en) Score-based generative modeling in latent space
Gatopoulos et al. Super-resolution variational auto-encoders
DE102021124428A1 (de) Trainieren energiebasierter variational autoencoder
Moeller et al. Image denoising—old and new
CN114332119A (zh) 生成人脸属性变化图像的方法及相关装置
DE102020209853A1 (de) Vorrichtung und system für das lernen unüberwachter geordneter darstellung mit einem residual-variational-autoencoder
Campana et al. Variable-hyperparameter visual transformer for efficient image inpainting
Li et al. Proximal gradient nonconvex optimization algorithm for the slice-based ℓ0-constrained convolutional dictionary learning
Chang et al. Exploiting spatial relation for reducing distortion in style transfer
US20220405583A1 (en) Score-based generative modeling in latent space
Bernal Training deep generative models in highly incomplete data scenarios with prior regularization
Xie et al. Blemish-aware and Progressive Face Retouching with Limited Paired Data
CN116977461B (zh) 特定场景的人像生成方法、装置、存储介质及设备

Legal Events

Date Code Title Description
R012 Request for examination validly filed