DE102021206286A1 - Tiefer hierarchischer variational autocodierer - Google Patents

Tiefer hierarchischer variational autocodierer Download PDF

Info

Publication number
DE102021206286A1
DE102021206286A1 DE102021206286.5A DE102021206286A DE102021206286A1 DE 102021206286 A1 DE102021206286 A1 DE 102021206286A1 DE 102021206286 A DE102021206286 A DE 102021206286A DE 102021206286 A1 DE102021206286 A1 DE 102021206286A1
Authority
DE
Germany
Prior art keywords
vae
layer
training
network
batch normalization
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
DE102021206286.5A
Other languages
English (en)
Inventor
Arash Vahdat
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 DE102021206286A1 publication Critical patent/DE102021206286A1/de
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • 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
    • 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/045Combinations of networks
    • G06N3/0455Auto-encoder networks; Encoder-decoder 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
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/048Activation functions
    • 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
    • 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/084Backpropagation, e.g. using gradient descent
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N5/00Computing arrangements using knowledge-based models
    • G06N5/04Inference or reasoning models

Landscapes

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

Abstract

Eine Ausführungsform der vorliegenden Erfindung legt eine Technik zum Durchführen von maschinellen Lernen dar. Die Technik umfasst Eingeben eines Trainingsdatensatzes in einen variational Autocodierer (VAE), der ein Codierernetzwerk, ein Prior-Netzwerk und ein Decodierernetzwerk umfasst. Die Technik umfasst ebenfalls Trainieren des VAE durch Aktualisieren eines oder mehrerer Parameter des VAE basierend auf einer Glattheit einer oder mehrerer Ausgaben, die von dem VAE aus dem Trainingsdatensatz erzeugt werden. Die Technik umfasst ferner Erzeugen einer generativen Ausgabe, die eine erste Verteilung des Trainingsdatensatzes durch Anwenden des Decodierernetzwerks auf einen oder mehrere Werte reflektiert, die aus einer zweiten Verteilung von latenten Variablen abgetastet wurden, die durch das Prior-Netzwerk erzeugt wurden.

Description

  • HINTERGRUND
  • Gebiet der verschiedenen Ausführungsformen Ausführungsformen der vorliegenden Offenbarung betreffen im Allgemeinen generative Modelle maschinellen Lernens und genauer gesagt einen tiefen hierarchischen variational Autocodierer.
  • Beschreibung der verwandten Technik
  • Im maschinellen Lernen umfassen generative Modelle tiefe neuronale Netzwerke und/oder andere Typen von Modellen maschinellen Lernens, die trainiert sind, um neue Instanzen von Daten zu erzeugen. Beispielsweise kann ein generatives Modell auf einem Datensatz trainiert werden, der eine große Anzahl von Bildern von Katzen umfasst. Das generative Modell kann dann verwendet werden, um neue Bilder von Katzen zu erzeugen, die nicht in dem Trainingsdatensatz gefunden werden.
  • Generative Modelle umfassen variational Autocodierer (VAEs), die eine Verteilung von Daten in einem Trainingsdatensatz lernen und anschließend neue Daten durch Abtasten der Verteilung erzeugen. Ein VAE umfasst typischerweise zwei neuronale Netzwerke: ein Codierernetzwerk, das Datenpunkte im Trainingsdatensatz in einen niedrigeren dimensionalen latenten Raum umwandelt, und ein Decodierernetzwerk, das Datenpunkte in dem latenten Raum in eine Wahrscheinlichkeitsverteilung von Daten in dem Trainingsdatensatz umwandelt. Neue Daten, die den Datenpunkten im Trainingsdatensatz ähnlich sind, können durch Eingeben von Abtastwerten aus dem latenten Raums in das Decodierernetzwerk erzeugt werden, das die Abtastwerte in Datenpunkte umwandelt, die Attribute reflektieren, die latenten variablen Werten in dem latenten Raum entsprechen.
  • Beispielsweise kann ein VAE, der auf Bildern von Katzen trainiert wird, eine Verteilung von latenten Variablen lernen, die Korrelationen unter Pixeln in dem Bild reflektieren, die für Katzen repräsentativ sind (z.B. Erscheinungsbildes der Gesichter der Katzen, Fell, Körper, Ausdrücke, Posen etc. in den Bildern). Zusätzliche Bilder von Katzen, die nicht in dem Trainingsdatensatz sind, können dann durch Abtasten der Verteilung von latenten Variablen erzeugt werden, die durch das Codierernetzwerk in dem VAE gelernt werden und unter Verwendung des Decodierernetzwerks, um die abgetasteten latenten variablen Werte in Verteilungen von Pixelwerten in den Bildern umzuwandeln und Abtasten die Pixelwerten aus den Verteilungen.
  • Unter generativen Modellen neigen VAEs dazu, effiziente Bayessches Inferenz und Abtasten bereitzustellen, jedoch typischerweise eine niedrigere Leistung als andere Typen von generativen Modellen aufzuweisen. Beispielsweise neigen Bilder, die durch einen VAE erzeugt werden, dazu, unschärfer als jene von anderen Typen von generativen Modellen zu sein.
  • Wie das Vorhergehende veranschaulicht, besteht in der Technik ein Bedarf an Techniken zur Verbesserung der Leistung von VAEs.
  • ZUSAMMENFASSUNG
  • Eine Ausführungsform der vorliegenden Erfindung legt eine Technik zum Durchführen von maschinellen Lernen dar. Die Technik umfasst Eingeben eines Trainingsdatensatzes in einen variational Autocodierer (VAE), der ein Codierernetzwerk, ein Prior-Netzwerk und ein Decodierernetzwerk umfasst. Die Technik umfasst ebenfalls Trainieren des VAE durch Aktualisieren eines oder mehrerer Parameter des VAE basierend auf einer Glattheit einer oder mehrerer Ausgaben, die von dem VAE aus dem Trainingsdatensatz erzeugt werden. Die Technik umfasst ferner Erzeugen einer generativen Ausgabe, die eine erste Verteilung des Trainingsdatensatzes durch Anwenden des Decodierernetzwerks auf einen oder mehrere Werte reflektiert, die aus einer zweiten Verteilung von latenten Variablen abgetastet wurden, die durch das Prior-Netzwerk erzeugt wurden.
  • Ein technologischer Vorteil der offenbarten Techniken ist eine schnellere Konvergenz und/oder eine bessere generative Leistung des VAE als herkömmliche Techniken zum Erzeugen, Trainieren und/oder Ausführen der VAEs. Somit stellen durch Verringern des Ressourcen-Overhead und/oder Verbessern der dem Trainieren zugeordneten Leistung und/oder Ausführen des VAE die Techniken technologische Verbesserungen in Computersystemen, Anwendungen, Frameworks und/oder Techniken zum Trainieren und Ausführen generativer Modellen bereit, Erzeugen von Inhalt, Augmentieren von Daten, Rendern von Computergraphik und/oder Durchführen einer Darstellung oder Merkmalslernen bereit.
  • Figurenliste
  • Um die Art und Weise, in der die oben angeführten Merkmale der verschiedenen Ausführungsformen im Einzelnen verstanden werden können, zu erläutern, kann eine genauere Beschreibung der oben kurz zusammengefassten erfinderischen Konzepte anhand verschiedener Ausführungsformen erfolgen, von denen einige in den beigefügten Zeichnungen gezeigt werden. Es ist jedoch darauf hinzuweisen, dass die beigefügten Zeichnungen nur typische Ausführungsformen der erfinderischen Konzepte veranschaulichen und daher nicht als in irgendeiner Weise als einschränkend zu betrachten sind und dass es andere gleichermaßen geeignete Ausführungsformen gibt.
    • 1 veranschaulicht eine Rechenvorrichtung, die konfiguriert ist, um einen oder mehrere Aspekte von verschiedener Ausführungsformen zu implementieren.
    • 2 ist eine ausführlichere Veranschaulichung der Training-Engine und der Ausführung-Engine von 1 gemäß verschiedener Ausführungsformen.
    • 3A ist eine beispielhafte Architektur für den Codierer von 2 gemäß verschiedener Ausführungsformen.
    • 3B ist eine beispielhafte Architektur für ein generatives Modell in dem VAE von 2 gemäß verschiedener Ausführungsformen.
    • 4A ist eine beispielhafte residuale Zelle in dem Codierer von 2 gemäß verschiedener Ausführungsformen.
    • 4B ist eine beispielhafte residuale Zelle in dem generativen Modell von VAE 200 von 2 gemäß verschiedener Ausführungsformen.
    • 5 ist ein Ablaufdiagramm von Verfahrensschritten zum Durchführen maschinellen Lernen gemäß verschiedener Ausführungsformen.
    • 6 ist ein Ablaufdiagramm von Verfahrensschritten zum Erzeugen einer generativen Ausgabe gemäß verschiedener Ausführungsformen.
    • 7 ist ein beispielhaftes Systemdiagramm für ein Spiel-Streaming-System gemäß verschiedener Ausführungsformen.
  • AUSFÜHRLICHE BESCHREIBUNG
  • In der folgenden Beschreibung werden zahlreiche spezifische Details dargelegt, um ein umfassenderes Verständnis der verschiedenen Ausführungsformen bereitzustellen. Es wird jedoch für einen Fachmann offensichtlich sein, dass die erfinderischen Konzepte ohne eines oder mehrerer dieser spezifischen Details praktiziert werden können.
  • Allgemeiner Überblick
  • Ein variational Autocodierer (VAE) ist ein Typ von generativem Modell, das die Verteilung von Datenpunkten in einem Trainingsdatensatz „lernt“. Ein VAE umfasst zwei neuronale Netzwerke: ein Codierernetzwerk, das Datenpunkte im Trainingsdatensatz in einen niedrigeren dimensionalen latenten Raum umwandelt, und ein Decodierernetzwerk, das Datenpunkte in dem latenten Raum in eine Wahrscheinlichkeitsverteilung von Daten im Trainingsdatensatz umwandelt. Der VAE kann dann verwendet werden, um neue Datenpunkte zu erzeugen, die Ähnlichkeiten mit den Datenpunkten im Trainingsdatensatz aufweisen, jedoch nicht im Trainingsdatensatz gefunden werden.
  • VAEs können in vielen unterschiedliche Anwendungen der realen Welt verwendet werden, die Inhaltserzeugung (z.B. Erzeugen von Bildern, Text, Musik und/oder anderen Inhalt, der in Anzeigen, Veröffentlichungen, Spielen, Videos und/oder anderen Typen von Medien verwendet werden kann). Beispielsweise kann ein VAE auf einem großen Satz von Bildern von menschlichen Gesichtern trainiert werden. Das Codierernetzwerk in dem trainierten VAE kann eine Verteilung von latenten (d.h., „verborgenen“) Variablen lernen, die visuelle Attribute von menschlichen Gesichtern darstellen (z.B. Hautbräune, Frisuren, Gesichtsmerkmale, Gesichtsausdrücke, sichtbare Kleidung, Schmuck usw.), wie in Korrelationen zwischen Pixeln in den Bildern gefunden. Zusätzliche Bilder von menschlichen Gesichtern nicht in dem Trainingsdatensatz können dann durch Auswählen von Werten aus den Bereichen von latenten variablen Werten durch das Codierernetzwerk in der VAE und unter Verwendung des erzeugten Decodierernetzwerks gelernt werden, um die ausgewählten latenten variablen Werte in Pixelwerte in den Bildern umzuwandeln.
  • VAEs werden ebenfalls häufig in Computergraphik verwendet (z.B. Rendern von Zeichen, Objekten und/oder Szenen ohne expliziertes Erzeugen oder Spezifizieren der entsprechenden Modellen); Datenaugmentation (z.B. Verändern des Erscheinungsbildes einer Person in einem Bild durch Einstellen latenter Variablen, die von dem Codierernetzwerk ausgegeben werden, von dem Bild und Verwenden des Decodierernetzwerks, um die eingestellten latenten Variablen in ein neues Bild umzuwandeln, Verwenden des VAE, um neue Abtastwerte von Trainingsdaten für ein anderes Modell maschinellen Lernens zu erzeugen, usw.); und/oder Darstellung oder Merkmalslernen (z.B. Codierung visueller Attribute von Gesichtern, Tieren und/oder Objekten in latenten Variablen, die variiert oder analysiert werden können, um die Attribute besser zu verstehen).
  • Das Trainieren und die generative Leistung eines VAE kann durch eine Anzahl von Techniken verbessert werden. Erstens kann der VAE eine hierarchische Struktur umfassen, wobei jede Ebene der hierarchischen Struktur eine Gruppierung von latenten Variablen umfasst und ein Abtastwert einer gegebenen Gruppe bei einer Ebene der Hierarchie mit eine Merkmalskarte als Eingabe in die nächste Ebene zum Abtasten der entsprechenden Gruppe bei die nächste Ebene weitergegeben wird. Diese hierarchische Anordnung von latenten Variablen in dem VAE kann früheren Ebenen der Hierarchie ermöglichen, weitreichende Korrelationen über den Trainingsdatensatz (z.B. Verbindungs-Rechts-Symmetrie und/oder gleichmäßige Hautbräune in Bildern von Gesichtern) und späteren Ebenen der Hierarchie zu erfassen, um feinkörnige Abhängigkeiten innerhalb von Datenpunkten in dem Trainingsdatensatz zu codieren (z.B. Gesichtsausdrücke, Augen- und Haarfarbe, Gesichtsform, Gesichtshaaren, Brillen usw.).
  • Zweitens umfasst jede Ebene der Hierarchie eine residuale Zelle mit einer Anzahl von Schichten, die ausgewählt und angeordnet sind, um das Trainieren und die Leistung des VAE zu verbessern. Beispielsweise können residuale Zellen in dem Codierernetzwerk eine unterschiedliche Anordnung von Schichten als in einer herkömmlichen residualen Zelle umfassen, um die Leistung des VAE beim Umwandeln von Eingabedaten in eine latente Darstellung zu verbessern. In einem weiteren Beispiel können residuale Zellen in dem Decodierernetzwerk eine Anzahl von Schichten, welche die Anzahl von Kanälen erhöhen, und eine tiefenweise trennbare Faltungsschicht, die auf die erhöhte Anzahl von Kanälen angewendet wird, umfassen, um das rezeptive Feld des Decodierernetzwerks zu verbessern, ohne die Rechenkomplexität des Decodierernetzwerks signifikant zu erhöhen.
  • Drittens kann der VAE in einer Art und Weise trainiert werden, die Speicher-effizient ist und welche die Instabilität verringert, die dem hierarchischen Abtasten von latenten Variablen zugeordnet ist. Beispielsweise kann ein spektraler Regularisierungsterm, der die Glattheit der Ausgabe von der VAE steuert, zu der objektiven Funktion hinzugefügt werden, die verwendet wird, um die Parameter des Codierer- und/oder des Decodierernetzwerks zu aktualisieren. Dieser spektrale Regularisierungsterm kann verwendet werden, um ein oder mehrere Terme der objektiven Funktion während Aktualisierungen zu dem Codierer- und/oder Decodiererparameter zu binden, um somit die Instabilität während des Trainings des VAE zu verringern. In einem weiteren Beispiel können Parameter des VAE selektiv unter Verwendung unterschiedlicher Ebenen von Genauigkeit gespeichert und/oder verworfen und anschließend neu berechnet werden, um den dem Training zugeordneten Speicherbedarf des VAE zu verringern. Folglich kann der VAE bessere Leistung und Effizienz während des Trainings und Abtastens neuer Daten als herkömmliche VAEs aufweisen, die diese Techniken nicht benutzen.
  • Systemübersicht
  • 1 veranschaulicht eine Rechenvorrichtung 100, die konfiguriert ist, um einen oder mehrere Aspekte verschiedener Ausführungsformen zu implementieren. In einer Ausführungsform kann die Rechenvorrichtung 100 ein Desktop-Computer, ein Laptop-Computer, ein Smartphone, ein persönlicher digitaler Assistent (PDA), ein Tablet-Computer oder jede andere Art von Rechenvorrichtung sein, die konfiguriert ist, um Eingaben zu empfangen, Daten zu verarbeiten und optional Bilder anzuzeigen und sich zum Praktizieren einer oder mehrerer Ausführungsformen eignet. Die Rechenvorrichtung 100 ist konfiguriert, um eine Training-Engine 122 und eine Ausführung-Engine 124 zu betreiben, die sich in einem Speicher 116 befinden. Es sei bemerkt, dass die hier beschriebene Rechenvorrichtung veranschaulichend ist und dass jegliche anderen technisch realisierbaren Konfigurationen in den Umfang der vorliegenden Offenbarung fallen. Beispielsweise können mehrere Instanzen der Training-Engine 122 und der Ausführung-Engine 124 auf einem Satz von Knoten in einem verteilten und/oder Cloud-Rechensystem ausgeführt werden, um die Funktionalität der Rechenvorrichtung 100 zu implementieren.
  • In einer Ausführungsform umfasst die Rechenvorrichtung 100 ohne Einschränkung eine Zwischenverbindung (Bus) 112, die eine oder mehrere Prozessoren 102 verbindet, eine Ein-/Ausgabe-(E/A)-Vorrichtungsschnittstelle 104, die mit einer oder mehreren Ein-/Ausgabe-(E/A)-Vorrichtungen 108 gekoppelt ist, Speicher 116, eine Speicherung 114 und eine Netzwerkschnittstelle 106. Der(die) Prozessor(en) 102 kann(können) jeder geeignete Prozessor sein, der als Zentralverarbeitungseinheit (CPU), Graphikverarbeitungseinheit (GPU), eine anwendungsspezifische integrierte Schaltung (ASIC), eine feldprogrammierbare Gatteranordnung (FPGA), einen Beschleuniger für künstliche Intelligenz (AI), jede andere Art von Verarbeitungseinheit oder eine Kombination verschiedener Verarbeitungseinheiten verwirklicht ist, wie beispielsweise eine CPU, die für den Betrieb in Verbindung mit einer GPU konfiguriert ist. Im Allgemeinen kann der(die) Prozessor(en) 102 jede technisch realisierbare Hardwareeinheit sein, die imstande ist, Daten zu verarbeiten und/oder Softwareanwendungen auszuführen. Darüber hinaus können die in der Rechenvorrichtung 100 dargestellten Rechenelemente im Rahmen dieser Offenbarung einem physikalischen Rechensystem (z.B. einem System in einem Rechenzentrum) entsprechen oder eine virtuelle Recheninstanz sein, die innerhalb einer Rechencloud ausgeführt wird.
  • In einer Ausführungsform umfassen die E/A-Vorrichtungen 108 Vorrichtungen, die imstande sind, Eingaben bereitzustellen, wie beispielsweise eine Tastatur, eine Maus, ein berührungsempfindlicher Bildschirm usw., sowie Vorrichtungen, die imstande sind, Ausgaben bereitzustellen, wie beispielsweise eine Anzeigevorrichtung. Darüber hinaus können E/A-Vorrichtungen 108 Vorrichtungen umfassen, die sowohl Eingaben empfangen als auch Ausgaben bereitstellen können, wie beispielsweise ein berührungsempfindlicher Bildschirm, eine universelle serielle Bus-(USB)-Schnittstelle und so weiter. E/A-Vorrichtungen 108 können konfiguriert sein, verschiedene Arten von Eingaben von einem Endanwender (z.B. einem Entwerfer) der Rechenvorrichtung 100 zu empfangen und auch verschiedene Arten von Ausgaben für den Endanwender der Rechenvorrichtung 100 bereitzustellen, wie beispielsweise angezeigte digitale Bilder oder digitale Videos oder Text. In einigen Ausführungsformen sind eine oder mehrere der E/A-Vorrichtungen 108 konfiguriert, um die Computervorrichtung 100 mit einem Netzwerk 110 zu koppeln.
  • In einer Ausführungsform ist das Netzwerk 110 jede technisch realisierbare Art von Kommunikationsnetzwerk, die einen Datenaustausch zwischen der Rechenvorrichtung 100 und externen Einheiten oder Vorrichtungen, wie beispielsweise einem Webserver oder einer anderen vernetzten Rechenvorrichtung, ermöglicht. Beispielsweise kann das Netzwerk 110 unter anderem ein Weitbereichsnetzwerk (WAN), ein Lokalbereichsnetzwerk (LAN), ein Drahtlos-(WiFi)-Netzwerk und/oder das Internet umfassen.
  • In einer Ausführungsform umfasst die Speicherung 114 eine nichtflüchtige Speicherung für Anwendungen und Daten und kann feste oder wechselbare Festplattenlaufwerke, Flash-Speichervorrichtungen und CD-ROM, DVD-ROM, Blu-Ray, HD-DVD oder andere magnetische, optische oder Festkörperspeichervorrichtungen umfassen. Die Training-Engine 122 und die Ausführung-Engine 124 können in der Speicherung 114 gespeichert und bei Ausführung in den Speicher 116 geladen werden.
  • In einer Ausführungsform umfasst der Speicher 116 ein Wahlfreizugriffsspeicher-(RAM)-Modul, eine Flash-Speichereinheit oder jegliche andere Art von Speichereinheit oder eine Kombination davon. Prozessor(en) 102, E/A-Vorrichtungsschnittstelle 104 und Netzwerkschnittstelle 106 sind konfiguriert, Daten aus dem Speicher 116 zu lesen und in diesen zu schreiben. Der Speicher 116 umfasst verschiedene Softwareprogramme, die durch den(die) Prozessor(en) 102 ausführbar sind und Anwendungsdaten, die mit den Softwareprogrammen verbunden sind, einschließlich Training-Engine 122 und Ausführung-Engine 124
  • Die Training-Engine 122 umfasst Funktionalität, um einen variational Autocodierer (VAE) auf einen Trainingsdatensatz zu trainieren und die Ausführung-Engine 124 umfasst Funktionalität, um einen oder mehrere Abschnitte des VAE auszuführen, um zusätzlichen Daten zu erzeugen, die nicht in dem Trainingsdatensatz gefunden werden. Beispielsweise kann die Training-Engine 122 Codierer-, Prior- und/oder Decodierernetzwerke in der VAE auf einen Satz von Trainingsbildern trainieren und die Ausführung-Engine 124 kann ein generatives Modell ausführen, das die trainierten Prior- und Decodierernetzwerke umfasst, um zusätzlichen Bilder zu erzeugen, die nicht in den Trainingsbildern gefunden werden. Wie in weiteren Einzelheiten nachstehend beschrieben, können die Training-Engine 122 und die Ausführung-Engine 124 eine Anzahl von Techniken verwenden, um die Effizienz und Leistung zu verbessern, mit denen der VAE trainiert und ausgeführt wird.
  • Tiefer Hierarchischer Variational Autocodierer 2 ist eine ausführlichere Veranschaulichung einer Training-Engine 122 und Ausführung-Engine 124 von 1 gemäß verschiedener Ausführungsformen. Die Training-Engine 122 trainiert einen VAE 200, der eine Verteilung eines Datensatzes von Trainingsdaten 208 lernt, und die Ausführung-Engine 124 führt ein oder mehrere Abschnitte des VAE 200 aus, um eine generative Ausgabe 250 zu erzeugen, die zusätzliche Datenpunkte in der Verteilung umfasst, die nicht in den Trainingsdaten 208 gefunden werden.
  • Wie gezeigt, umfasst der VAE 200 eine Anzahl von neuronalen Netzwerken: einen Codierer 202, ein Prior 252 und einen Decodierer 206. Der Codierer 202 „codiert“ einen Satz von Trainingsdaten 208 in latente variable Werte, das Prior 252 lernt die Verteilung von durch den Codierer 202 ausgegebenen latenten Variablen und der Decodierer 206 „decodiert“ von der Verteilung abgetastete latente variable Werte in rekonstruierte Daten 210, die im Wesentlichen Trainingsdaten 206 reproduzieren. Beispielsweise können Trainingsdaten 208 Bilder von menschlichen Gesichtern, Tieren, Fahrzeugen und/oder anderen Typen von Objekten umfassen. Der Codierer 202 kann Pixelwerte in jedem Bild in eine kleinere Anzahl von latenten Variablen umwandeln, die gefolgerte visuelle Attribute der Objekte und/oder Bilder darstellen (z.B. Hautbräune, Haarfarben und Stile, Formen und Größen von Gesichtsmerkmalen, Geschlecht, Gesichtsausdrücken und/oder andere Charakteristiken von menschlichen Gesichter in die Bilder), das Prior 252 lernt die Mittel und Varianzen der Verteilung von latenten Variablen über mehrere Bilder in Trainingsdaten 206 und der Decodierer 202 kann latente Variablen, die aus der latenten Variable Verteilung abgetastet und/oder durch den Codierer 202 ausgegeben wurden, in Rekonstruktionen von Bildern in Trainingsdaten 206 rekonstruieren.
  • Der generative Betrieb des VAE 200 kann unter Verwendung des folgenden Wahrscheinlichkeitsmodells dargestellt werden: p ( x , z )   =  p ( z ) p ( x | z ) ,
    Figure DE102021206286A1_0001
    wobei p(z) eine Prior-Verteilung ist, die durch Prior 252 über latente Variablen z gelernt ist, und p(x|z) die Wahrscheinlichkeitsfunktion oder der Decodierer 202 ist, der Daten x gegebenen latenten Variablen z erzeugt. Mit anderen Worten werden latente Variablen von Prior 252 p(z) abgetastet und die Daten x weisen eine Wahrscheinlichkeit auf, die auf die abgetasteten latenten Variablen z konditioniert ist. Das Wahrscheinlichkeitsmodell umfasst einen Posterior p(z|x), der verwendet wird, um auf Werte der latenten Variablen z zu schließen. Weil p(z|x) unlösbar ist, wird eine andere Verteilung q(z|x) verwendet, die durch den Codierer 202 erlernt wurde, um p(z|x) zu approximieren.
  • In einigen Ausführungsformen ist der VAE 200 ein hierarchischer VAE, der tiefe neuronale Netzwerke für den Codierer 202, Prior 252 und Decodierer 206 verwendet. Der hierarchische VAE umfasst eine latente Variable Hierarchie 204, die latente Variablen in eine Sequenz von disjunkten Gruppen partitioniert. Innerhalb der Hierarchie der latenten Variablen 204 wird ein Abtastwert einer gegebenen Gruppe von latenten Variablen mit einer Merkmalskarte kombiniert und an die folgende Gruppe von latenten Variablen in der Hierarchie zur Verwendung beim Erzeugen eines Abtastwerts aus der folgenden Gruppe weitergeleitet.
  • Fortfahrend mit dem obigen Wahrscheinlichkeitsmodell kann das Partitionieren der latenten Variablen durch z = {z1, z2, ..., zL} dargestellt werden, wobei L die Anzahl von Gruppen ist. Innerhalb der Hierarchie der latenten Variablen 204 wird Prior 252 durch p(z) = Π1 p(z1|z<1) dargestellt und das ungefähre Posterior wird durch q(z|x) = Π1 q(z1|z<1, x) dargestellt, wobei jede bedingte p(z1|z<1) in die Prior und jede bedingte q(z1|z<1, x) in dem ungefähren Posterior durch faktorielle Normalverteilungen dargestellt werden.
  • In einigen Ausführungsformen umfasst der Codierer 202 ein Bottom-Up-Modell und ein Top-Down-Modell, welche die bidirektionale Inferenz der Gruppen von latenten Variablen basierend auf Trainingsdaten 208 durchführen. Das Top-Down-Modell wird dann als Prior 252 wiederverwendet, um auf latente variable Werte zu schließen, die in den Decodierer 206 eingegeben werden, um rekonstruierte Daten 210 und/oder eine generative Ausgabe 240 zu erzeugen. Die Architekturen des Codierers 202 und Decodierers 206 werden in weiteren Einzelheiten nachstehend mit Bezug auf 3A-3B beschrieben.
  • Wie gezeigt, umfasst die Training-Engine 122 eine Aktualisierungskomponente 212, die Parameter des Codierers 202, des Priors 252 und des Decodierers 206 basierend auf einer objektiven Funktion 220 aktualisiert, die basierend auf dem Wahrscheinlichkeitsmodell, das den VAE 200 repräsentiert, und einem Fehler zwischen den Trainingsdaten 208 und den rekonstruierten Daten 210 berechnet wird. In einigen Ausführungsformen umfasst die objektive Funktion 220 eine untere variationale Schranke (evidence lower bound; ELBO), die mit der folgenden Form zu maximieren ist: L VAE ( x ) : = E q ( z | x ) [ log  p ( x | z ) ] K L ( q ( z 1 | x ) || p ( z 1 ) ) l = 2 L E q ( z < l | x ) [ K L ( q ( z 1 | x , z < l ) ||p ( z 1 | z < l ) ) ] ,
    Figure DE102021206286A1_0002
  • Wobei q ( z < l | x ) : = i = 1 l 1 q ( z i | x , z < i )
    Figure DE102021206286A1_0003
    das ungefähre Posterior bis zu der (1 - 1)-ten Gruppe ist. Zusätzlich ist log p(x|z) die log-Wahrscheinlichkeit von beobachteten Daten x bei gegebenen abgetasteten latenten Variablen z; dieser Term ist maximiert, wenn p(x|z) den ursprünglichen Daten x eine hohe Wahrscheinlichkeit zuweist (d.h., wenn der Decodierer 206 versucht, einen Datenpunkt x beim Trainieren der Daten 208 bei gegebenen latenten Variablen z durch den Codierer 202 aus dem Datenpunkt zu rekonstruieren). Die „KL“-Terme in der Gleichung stellen Kullback-Leibler-(KL)-Divergenzen zwischen den Posteriors bei unterschiedliche Ebenen der Hierarchie von latenten Variablen 204 und den entsprechenden Priors dar (z.B. wie durch Prior 252 dargestellt). Jeder KL(q(z1|x)||p(z1)) kann als die Menge an Information betrachtet werden, die in der -ten Gruppe codiert ist. Der Reparametrisierungs-Trick kann verwendet werden, um eine Backpropagation mit Bezug auf Parameter von Codierer 202 durch objektiven Funktion 220.
  • Um ein Zusammenbrechen des Posterior in Gruppen von latenten Variablen in der Hierarchie der latenten Variablen 204 abzuschwächen, können KL-ausgleichende Koeffizienten, die mit γ1 gekennzeichnet sind, zu der objektiven Funktion 220 hinzugefügt werden: K L ( q ( z | x ) || p ( z ) ) = l = 1 L η   E q ( z < l | x ) [ K L ( q ( z l | x , z < l ) p ( z l | z < l ) ) ] .
    Figure DE102021206286A1_0004
  • Ein gegebener ausgleichender Koeffizient γ1 kann auf einen kleinen Wert eingestellt werden, wenn der KL-Term für die entsprechenden Gruppe klein ist, um den VAE 200 zu ermutigen, latente Variablen in der Gruppe zu verwenden. Umgekehrt kann der ausgleichende Koeffizient auf einen großen Wert eingestellt werden, wenn der KL-Term für die entsprechende Gruppe groß ist, um die Verwendung von latenten Variablen in der Gruppe zu verringern. Um Gruppen latenter Variablen von unterschiedlichen räumlichen Dimensionen zu berücksichtigen, kann der ausgleichende Koeffizient zusätzlich proportional zu der Größe s1 der entsprechenden Gruppe sein: η s t   E x M [ E q ( z < l | x ) [ K L ( q ( z l | x , z < l ) p ( z l | z < l ) ) ] ]
    Figure DE102021206286A1_0005
  • Die ausgleichenden Koeffizienten können zusätzlich während einer „Aufwärmperiode“ während des Trainierens des VAE 200 (z.B. die ersten 30% des Trainierens) angewandt d danach auf 1 gesetzt werden, um die variational Schranke zu optimieren, die durch objektive Funktion 220 dargestellt wird.
  • In einer oder mehreren Ausführungsformen umfasst die Aktualisierungskomponente 212 einen spektralen Regularisierungsterm 232 in der objektiven Funktion 220, um das Trainieren des VAE 200 zu stabilisieren. Genauer gesagt können die KL-Terme in der objektiven Funktion 220 grenzenlos werden und scharfe Gradientenaktualisierungen verursachen, die das Trainieren des Codierers 202, des Priors 252 und/oder des Decodierers 204 destabilisieren. Um die KL-Terme zu begrenzen, kann die Aktualisierungskomponente 212 eine spektrale Regularisierung 232 verwenden, welche die Lipschitz-Konstante für jede Schicht des VAE 200 minimiert. Beispielsweise kann die spektrale Regularisierung 232 durch Hinzufügen des Terms L S R = λ i s ( i )
    Figure DE102021206286A1_0006
    zu der Gleichung 1 durchgeführt werden, wobei s(i) der größte singuläre Wert der i-ten herkömmlichen Schicht ist (z.B. wie unter Verwendung einer einzelner Power-Iteration-Aktualisierung geschätzt) und λ ein Koeffizient ist, der die Glattheit der Ausgabe des Codierers 202, des Priors 252 und/oder des Decodierers 206 steuert.
  • Folglich kann die Auswahl eines geeigneten λ mit spektraler Regularisierung 232 die Trainingsinstabilität, die durch die KL-Terme verursacht wird, in objektiven Funktion 220 durch Sicherstellen verringern, dass sich die Ausgabe des Codierers 202, des Priors 252 und/oder des Decodierers 206 nicht dramatisch ändert, wenn sich die entsprechende Eingabe ändert. Beispielsweise erlaubt das Setzen von λ auf 1,0 dem KL Term, sich allmählich zu verringern und über Zehntausende von Trainingsiterationen zu stabilisieren, während der Wegfall der spektralen Regularisierung 232 und/oder der Einstellung von λ auf einen kleineren Wert (z.B. 0,1) den KL-Term veranlasst, nach einer bestimmten Anzahl von Trainingsiterationen grenzenlos zu werden.
  • Die Aktualisierungskomponente 212 verringert ebenfalls oder stattdessen die Instabilität, die den KL-Termen in der objektiven Funktion 220 zugeordnet ist, unter Verwendung einer residualen Normalverteilung, die q(z|x) relativ zu p(z) parametrisiert. Insbesondere kann die i-te Variable in z1 in dem Prior unter Verwendung der folgenden Normalverteilung dargestellt werden: p ( z l i | z < l ) : = N ( μ i ( z < l ) , σ i ( z < l ) )
    Figure DE102021206286A1_0007
  • Das Posterior kann wiederum unter Verwendung des Folgenden dargestellt werden: q ( z l i | z < l , x ) : = N ( μ i ( z < l ) + Δ μ i ( z < l , x ) , σ i ( z < l ) Δ σ i ( z < l , x ) ) ,
    Figure DE102021206286A1_0008
    wobei Δµi(z<l,x) und Δσi(z<l,x)der relative Ort und Maßstab des ungefähren Posteriors mit Bezug auf das Prior sind.
  • In dieser Parametrisierung bewegt sich, wenn sich das Prior bewegt, das ungefähre Posterior demgemäß, so dass der Codierer 202 das Posterior als eine Normalverteilung lernt, die eine relative Änderung mit Bezug auf das Prior 252 darstellt. Der KL-Term wird in der objektiven Funktion 220 wiederum: KL ( q ( z i | x ) || p ( z i ) ) = 1 2 ( Δ μ i 2 σ i 2 + Δ σ i 2 log  Δ σ i 2 1 ) ,
    Figure DE102021206286A1_0009
    wobei der tiefgestellte Index 1 und zugeordnete Abhängigkeiten der einfachen Schreibweise halber fallen gelassen werden. In der obigen Gleichung, wenn der durch den Decodierer 206 erzeugte σi von unten begrenzt ist, hängt der KL-Term primär von dem relative Parameter ab, der durch den Codierer 202 erzeugt wird, und kann leichter minimiert werden, als wenn q(z1|z<1, x) den absoluten Ort und Maßstab des Posterior vorhersagt. Beispielsweise verbessert die Verwendung einer residualen Normalverteilung in q(z|x) einen VAE mit 40 Gruppen latenter Variablen in der latenten Variablenhierarchie 204 den KL-Term um 0,04 Bit pro Dimension (bpd) während des Trainierens und die Prüflog-Wahrscheinlichkeit um 0,03 bpd.
  • Aktualisierungskomponente 212 legt ebenfalls oder stattdessen die Batch-Normalisierung 222 auf mindestens einige Schichten des VAE 200 während Trainieren von Codierer 202, Prior 252 und/oder Decodierer 206 an. In einigen Ausführungsformen wird die Batch-Normalisierung 222 unter Verwendung einer oder mehrerer Batch-Normalisierungsschichten in dem VAE 200 durchgeführt. Jede Batch-Normalisierungsschicht normalisiert einen „Batch“ von Ausgaben der vorherigen Aktivierungsschicht, um einen normalisierten Mittelwert (z.B. 0) und eine normalisierte Varianz (z.B. 1) aufzuweisen, durch Verschieben jeder der Ausgabe um den Mittelwert und die Standardabweichung des Batch.
  • Um Instabilität zu verhindern, die der herkömmlichen Batch-Normalisierung von VAEs zugeordnet ist, führt die Aktualisierungskomponente 212 eine Skalierungsregularisierung 234 durch, die eine Regularisierung auf eine Norm (z.B., L1-Norm, L2-Norm, L-Unendlichkeitsnorm usw.) des Skalierungsparameters in Batch-Normalisierungs-Schichten des Codierers 202, Priors 252 und/oder Decodierers 206 anwendet. Wie in weiteren Einzelheiten nachstehend mit Bezug auf 4A und 4B beschrieben, kann die Batch-Normalisierung mit einer Swish-Aktivierungsfunktion kombiniert werden, um die Leistung des VAE 200 weiter zu verbessern.
  • Die Training-Engine 122 umfasst ebenfalls eine Speicherverwaltungskomponente 214, die den Speicherverbrauch während des Trainierens des VAE 200 verbessert. Erstens kann die Speicherverwaltungskomponente 214 Parameter des Codierers 202, Priors 252 und Decodierers 206 unter Verwendung gemischter Genauigkeit 226 speichern. Beispielsweise kann die Speicherverwaltungskomponente 214 selektiv bestimmte Typen von Parametern oder Operationen (z.B. Faltung, Matrixmultiplikation usw.) in dem VAE 200 als Gleitkommazahlen halber Genauigkeit (z.B. 16-Bit) und die verbleibenden Parameter oder Operationen in dem VAE 200 als Gleitkommazahlen einfacher Genauigkeit (z.B. 32-Bit) speichern.
  • Zweitens kann die Speicherverwaltungskomponente 214 ein Gradienten-Checkpointing 228 durchführen, das eine erste Teilmenge von Aktivierungen selektiv speichert, die von dem VAE 200 aus Trainingsdaten 208 während eines Vorwärtsdurchlaufs erzeugt wurden, der während des Trainierens des VAE 200 durchgeführt wurde, und die gespeicherten Aktivierungen verwendet, um eine zweite Teilmenge von Aktivierungen neu zu berechnen, die von dem VAE 200 während eines entsprechenden Rückwärtsdurchlaufs erzeugt wurden, der während des Trainierens des VAE 200 durchgeführt wurde. Beispielsweise kann die Speicherverwaltungskomponente 214 die Batch-Normalisierung und Swish-Aktivierungsfunktion von bestimmten Schichten in dem VAE 200 fusionieren und eine einzelne Kopie der Merkmalskarte, die durch die fusionierten Operationen erzeugt wurde, während eines Vorwärtsdurchlaufs speichern. Die Batch-Normalisierung wird dann während des entsprechenden Rückwärtsdurchlaufs erneut berechnet (z.B. unter Verwendung von Aktivierungen, die für Faltungs- oder andere Schichten von VAE 200 sind selektiv gespeichert werden), um Gradienten der objektiven Funktion 220 mit Bezug auf die Batch-Normalisierungsschichten zu berechnen und demgemäß Gewichte des VAE 200 zu aktualisieren. Derartiges Gradienten-Checkpointing 228 kann den Speicherverbrauch während des Trainierens des VAE 200 (z.B. um 18%) verringern, was wiederum ermöglicht, dass der Trainingsdurchsatz mittels einer großen Batch-Größe gesteigert wird (z.B. von 34 Bilder pro Sekunde auf 64 Bilder pro Sekunde).
  • Nachdem das Trainieren des VAE 200 abgeschlossen ist, führt die Ausführung-Engine 124 einen oder mehrere Abschnitte des VAE 200 aus, um eine generative Ausgabe 250 zu erzeugen, die nicht in dem Satz von Trainingsdaten 208 gefunden wird. Insbesondere erhält die Ausführung-Engine 124 Abtastwerte latenter Variablen 236 aus der Verteilung von latenten Variablen in der Hierarchie der latenten Variablen 204, die von dem Prior 252 gelernt werden. Die Ausführung-Engine 124 verwendet Abtastwerte latenter Variablen 236, um eine Datenverteilung 238 als Ausgabe des Decodierers 206 zu erzeugen, und tastet anschließend aus der Datenverteilung 238 ab, um eine generative Ausgabe 250 zu erzeugen.
  • Beispielsweise kann die Ausführung-Engine 124 einen Satz von Abtastwerten latenter Variablen 236 als Werte von latenten Variablen in der Hierarchie der latenten Variablen 204 erhalten, die aus der Verteilung abgetastet werden, die durch Parameter (z.B. Mittelwerte und Varianzen) beschrieben werden, die vom dem Prior 252 ausgegeben werden, nachdem der VAE 200 auf Trainingsdaten 208 trainiert ist, die Bilder von menschlichen Gesichtern umfassen. Die Ausführung-Engine 124 kann den Decodierer 206 auf Abtastwerte latenter Variablen 236 anwenden und der Decodierer 206 kann Parameter der Datenverteilung 238 ausgeben, die der Wahrscheinlichkeit p(x|z) entsprechen (z.B. der Verteilung von Pixelwerten für einzelne Pixel in einem Bild, bei gegebenen Abtastwerten latenten Variablen 236). Die Ausführung-Engine 124 kann dann aus der Wahrscheinlichkeit abtasten, die durch den Decodierer 206 parametrisiert wird, um eine generative Ausgabe 250 zu erzeugen, die ein Bild eines menschlichen Gesichts umfasst. Weil Abtastwerte latenter Variablen 236 aus einer kontinuierlichen latenten Raumdarstellung erhalten werden, die von dem Codierer 202 ausgegeben wird, kann die Ausführung-Engine 124 zwischen visuellen Attributen interpolieren, die durch die latenten Variablen dargestellt werden (z.B. Erzeugen von glatten Übergängen zwischen verärgerten und glücklichen Gesichtsausdrücken, die durch ein oder mehrere latente Variablen dargestellt werden), um Bilder von menschlichen Gesichtern zu erzeugen, die nicht in den Trainingsdaten 208 gefunden werden.
  • In einer oder mehreren Ausführungsformen verwendet die Ausführung-Engine 124 einen Momentumparameter 216, um Batch-Statistik 218 zu berechnen, die in der Batch-Normalisierung 224 während der Erzeugung der generativen Ausgabe 250 verwendet werden. Genauer gesagt kann die Ausführung-Engine 124 einen Wert des Momentumparameters 216 auswählen, der die Rate erhöht, bei der exponentielle gleitende Mittelwerte und/oder andere gleitende Statistiken, die der Batch-Normalisierung 224 zugeordnet sind, die Batch-Statistik 218 einholen, was die Diversität und/oder Qualität der generative Ausgabe 250 verbessert.
  • Die Ausführung-Engine 124 kann die Batch-Normalisierung 224 zusätzlich durchführen, die der Erzeugung der generativen Ausgabe 250 in einer Anzahl von Weisen zugeordnet ist. Beispielsweise kann die Ausführung-Engine 124 eine Batch-Statistik verwerfen, die verwendet wird, um den VAE 200 zu trainieren, und die Batch-Statistik 218 für einen Batch von Abtastwerten der generativen Ausgabe 250 neu berechnen. Wenn ein einzelner Abtastwert von der generativen Ausgabe 250 erzeugt werden soll, kann die Ausführung-Engine 124 die Batch-Statistik 218 für einen Batch der generativen Ausgabe 250 berechnen und die berechnete Batch-Statistik 218 verwenden, um einen letzten Abtastwert der generativen Ausgabe 250 zu erzeugen.
  • 3A ist eine beispielhafte Architektur für den Codierer 202 von 2 gemäß verschiedener Ausführungsformen. Wie gezeigt, bildet die beispielhafte Architektur ein bidirektionales Inferenzmodell, das ein Bottom-Up-Modell 302 und ein Top-Down-Modell 302 umfasst.
  • Das Bottom-Up-Modell 302 umfasst eine Anzahl von residualen Netzwerken 308-312 und das Top-Down-Modell 304 umfasst eine Anzahl von zusätzlichen residualen Netzwerken 314-316 und einen trainierbaren Parameter 326. Jedes der residualen Netzwerke 308-316 umfasst ein oder mehrere residuale Zellen, die in weiteren Einzelheiten nachstehend mit Bezug auf 4A und 4B beschrieben sind.
  • Residuale Netzwerke 308-312 extrahieren im Bottom-Up-Modell 302 Merkmale einer Eingabe 324 deterministisch (z.B. eines Bildes), um auf die latenten Variablen in dem ungefähren Posterior zu schließen (z.B. q(z x) in dem Wahrscheinlichkeitsmodell für VAE 200). Komponenten des Top-Down-Modells 304 werden wiederum verwendet, um die Parameter jeder bedingten Verteilung in der Hierarchie der latenten Variablen 204 zu erzeugen. Nach dem latente Variablen aus einer gegebenen Gruppe in der Hierarchie der latenten Variablen 204 abgetastet sind, werden die Abtastwerte mit Merkmalskarten von dem Bottom-Up-Modell 302 kombiniert und als Eingabe in die nächste Gruppe weitergegeben.
  • Genauer gesagt wird eine gegebene Dateneingabe 324 sequentiell durch residuale Netzwerke 308, 310 und 312 im Bottom-Up-Modell 302 verarbeitet. Das residuale Netzwerk 308 erzeugt eine erste Merkmalskarte aus der Eingabe 324, das residuale Netzwerk 310 erzeugt eine zweite Merkmalskarte aus der ersten Merkmalskarte und das residuale Netzwerk 312 erzeugt eine dritte Merkmalskarte aus der zweiten Merkmalskarte. Die dritte Merkmalskarte wird verwendet, um die Parameter einer ersten Gruppe 318 von latenten Variablen in der Hierarchie der latenten Variablen 204 zu erzeugen, und ein Abtastwert (sample) wird aus der Gruppe 318 genommen und mit dem Parameter 326 kombiniert (z.B. summiert), um eine Eingabe in das residuale Netzwerk 314 im Top-Down-Modell 304 zu erzeugen. Die Ausgabe des residualen Netzwerks 314 im Top-Down-Modell 304 wird mit der Merkmalskarte kombiniert, die durch das residuale Netzwerk 310 im Bottom-Up-Modell 302 erzeugt wird, und verwendet, um die Parameter einer zweiten Gruppe 320 von latenten Variablen in der Hierarchie der latenten Variablen 204 zu erzeugen. Ein Abtastwert (sample) wird aus der Gruppe 320 genommen und mit der Ausgabe des residualen Netzwerks 314 kombiniert, um eine Eingabe in das residuale Netzwerk 316 zu erzeugen. Schließlich wird die Ausgabe des residualen Netzwerks 316 im Top-Down-Modell 304 mit der Ausgabe des residualen Netzwerks 308 im Bottom-Up-Modell 302 kombiniert, um Parameter einer dritten Gruppe 322 von latenten Variablen zu erzeugen, und ein Abtastwert (sample) kann aus der Gruppe 322 genommen werden, um einen vollen Satz von latenten Variablen zu erzeugen, welche die Eingabe 324 darstellen.
  • Während die beispielhafte Architektur von 3A mit einer Hierarchie der latenten Variablen von drei Gruppen latenten Variable veranschaulicht wird, werden Fachleute zu schätzen wissen, dass der Codierer 202 eine unterschiedliche Anzahl von Gruppen latenter Variablen in der Hierarchie, unterschiedliche Anzahlen von latenten Variablen in jeder Gruppe der Hierarchie und/oder variierende Anzahlen von residualen Zellen in residualen Netzwerken benutzen kann. Beispielsweise kann die Hierarchie der latenten Variablen 204 für einen Codierer, der unter Verwendung von 28 × 28 Pixelbildern von handgeschriebenen Zeichen trainiert wird, 15 Gruppen von latenten Variablen bi zwei unterschiedliche „Maßstäben“ (d.h., räumliche Dimensionen) und eine residuale Zelle pro Gruppe von latenten Variablen umfassen. Die ersten fünf Gruppen weisen 4 × 4 × 20 dimensionale latente Variablen (in der Form von Höhe × Breite × Kanal) und die nächste zehn Gruppen weisen 8 × 8 × 20 dimensionale latente Variablen auf. In einem weiteren Beispiel kann die Hierarchie der latenten Variablen 204 für einen Codierer, der unter Verwendung eines 256 × 256 Pixelbildes von menschlichen Gesichtern trainiert wird, 36 Gruppen von latenten Variablen bei fünf unterschiedliche Maßstäbe und zwei residuale Zellen pro Gruppe von latenten Variablen umfassen. Die Maßstäbe umfassen jeweils räumliche Dimensionen von 8 × 8 × 20, 16 × 16 × 20, 32 × 32 × 20, 64 × 64 × 20 und 128 × 128 × 20 und 4, 4, 4, 8 und 16 Gruppen.
  • 3B ist eine beispielhafte Architektur für ein generatives Modell in dem VAE 200 von 2 gemäß verschiedener Ausführungsformen. Wie gezeigt, umfasst das generative Modell das Top-Down-Modell 304 der beispielhaften Codiererarchitektur von 3A, sowie auch ein zusätzliches residuales Netzwerk 328, das den Decodierer 206 implementiert.
  • In der beispielhaften generativen Modellarchitektur von 3B wird die Darstellung, die durch residuale Netzwerke 314-316 extrahiert wurde, des Top-Down-Modells 304 verwendet, um auf Gruppen 318-322 von latenten Variablen in der Hierarchie zu schließen. Ein Abtastwert (sample) von der letzten Gruppe 322 von latenten Variablen wird dann mit der Ausgabe des residualen Netzwerks 316 kombiniert und als Eingabe in das residuale Netzwerk 328 bereitgestellt. Das residuale Netzwerk 328 erzeugt wiederum eine Datenausgabe 330, die eine Rekonstruktion einer entsprechenden Eingabe 324 in den Codierer und/oder ein neuer Datenpunkt ist, der aus der Verteilung von Trainingsdaten für den VAE 200 abgetastet wurde.
  • In einigen Ausführungsformen wird das Top-Down-Modell 304 verwendet, um eine Priorverteilung (z.B. das Prior 252 von 2) von latenten Variablen 318-322 während des Trainierens der VAE 200 zu lernen. Das Prior wird dann in dem generativen Modell erneut verwendet, um aus Gruppen 318-322 von latenten Variablen abzutasten, bevor einige oder alle der Abtastwerte durch den Decodierer 206 in eine generative Ausgabe umgewandelt werden. Diese gemeinsame Nutzung des Top-Down-Modells 304 zwischen dem Codierer 202 und dem generativen Modell verringert den Rechen- und/oder Ressourcen-Overhead, der dem Lernen eines separaten Top-Down-Modells für das Prior 252 und unter Verwendung des separaten Top-Down-Modell in dem generativen Modell zugeordnet ist. Alternativ kann der VAE 200 strukturiert sein, so dass der Codierer 202 ein erstes Top-Down-Modell verwendet, um latente Darstellungen von Trainingsdaten 208 zu erzeugen, und das generative Modell verwendet ein zweites separates Top-Down-Modell als das Prior 252.
  • 4A ist eine beispielhafte residuale Zelle in dem Codierer 202 von 2 gemäß verschiedener Ausführungsformen. Genauer gesagt zeigt 4A eine residuale Zelle, die von einem oder mehreren residualen Netzwerken 308-312 in dem Bottom-Up-Modell 302 von 3A verwendet wird. Wie gezeigt, umfasst die residuale Zelle eine Anzahl von Blöcken 402-410 und eine residuale Verbindung 430, welche die Eingabe in die residuale Zelle zu der Ausgabe der residualen Zelle hinzufügt.
  • Block 402 ist ein Batch-Normalisierungsblock mit einer Swish-Aktivierungsfunktion (BN - Swish), Block 404 ist ein 3×3 Faltungsblock (conv. 3×3), Block 406 ist ein Batch-Normalisierungsblock mit einer Swish-Aktivierungsfunktion (BN - Swish), Block 408 ist ein 3×3 Faltungsblock (conv. 3×3) und Block 410 ist ein Squeeze- und Anregungsblock (SE), der kanalweises Gating in der residualen Zelle durchführt. Zusätzlich wird die gleiche Anzahl von Kanälen über den Blöcken 402-410 aufrechterhalten. Im Gegensatz zu herkömmlichen residualen Zellen mit einer Faltung-Batch-Normalisierung-Aktivierungsordnung, umfasst die residuale Zelle von 4A eine Batch-Normalisierung-Aktivierungsfaltungsordnung, welche die Leistung des Bottom-Up-Modells 302 und/oder des Codierers 202 verbessern kann.
  • 4B ist eine beispielhafte residuale Zelle in dem generativen Modell des VAE 200 von 2 gemäß verschiedener Ausführungsformen. Genauer gesagt zeigt 4B eine residuale Zelle, die von einem oder mehreren residualen Netzwerken 314-316 im Top-Down-Modell 304 von 3A und 3B verwendet wird. Wie gezeigt, umfasst die residuale Zelle eine Anzahl von Blöcken 412-426 und eine residuale Verbindung 432, welche die Eingabe in die residuale Zelle in die Ausgabe der residualen Zelle hinzufügt.
  • Block 412 ist ein Batch-Normalisierungs-Block (BN), Block 414 ist ein 1×1-Faltungsblock (conv. 1×1), Block 416 ist ein Batch-Normalisierungs-Block mit einer Swish-Aktivierungsfunktion (BN - Swish), Block 418 ist ein 5x5 tiefenweiser trennbarer Faltungsblock (dep. sep. conv. 5x5), Block 420 ist ein Batch-Normalisierungs-Block mit einer Swish-Aktivierungsfunktion (BN - Swish), Block 422 ist ein 1×1 Faltungsblock (conv. 1×1), Block 424 ist ein Batch-Normalisierungsblock (BN) und Block 426 ist ein Squeeze- und Anregungsblock (SE). Mit „EC“ markierte Blöcke 414-420 geben an, dass die Anzahl von Kanälen „E“ Mal expandiert ist, während Mit „C“ markierte Blöcke die ursprüngliche „C“ Anzahl von Kanälen umfassen. Insbesondere führt Block 414 eine 1×1 Faltung durch, welche die Anzahl von Kanälen expandiert, um die Expressivität der tiefenweisen trennbaren Faltungen zu verbessern, die durch den Block 418 durchgeführt werden, und Block 422 führt eine 1×1 Faltung durch, die zurück zu „C“ Kanälen abbildet. Zur gleichen Zeit verringert die tiefenweisen trennbare Faltung die Parametergröße und die Rechenkomplexität gegenüber regulären Faltungen mit erhöhten Kernelgrößen, ohne sich negativ auf die Leistung des generativen Modells auszuwirken.
  • Außerdem kann die Verwendung der Batch-Normalisierung mit einer Swish-Aktivierungsfunktion in den residualen Zellen von 4A und 4B das Trainieren des Codierers 202 und/oder des Decodierers 206 gegenüber herkömmlichen residualen Zellen oder Netzwerken verbessern. Beispielsweise verbessert die Kombination der Batch-Normalisierung und der Swish-Aktivierung in der residualen Zelle von 4A die Leistung eines VAE mit 40 Gruppen latenter Variablen um etwa 5% gegenüber der Verwendung von Gewichtsnormalisierung und einer exponentiellen Lineare-Einheit-Aktivierung in der gleichen residualen Zelle.
  • 5 ist ein Ablaufdiagramm von Verfahrensschritten zum Durchführen von maschinellen Lernen gemäß verschiedener Ausführungsformen. Obwohl die Verfahrensschritten in Verbindung mit den Systemen von 1 und 2 beschrieben sind, werden Fachleute verstehen, dass jedes System, das konfiguriert ist, die Verfahrensschritten in einer beliebigen Reihenfolge durchzuführen, innerhalb des Umfangs der vorliegenden Offenbarung fällt.
  • Wie gezeigt, gibt die Training-Engine 122 einen Trainingsdatensatz in einen VAE ein, der ein Codierernetzwerk, ein Prior-Netzwerk und ein Decodierernetzwerk umfasst. Beispielsweise kann die Training-Engine 122 einen Satz von Trainingsbildern, die auf eine bestimmte Auflösung skaliert wurden, in einen hierarchischen VAE eingeben. Die Trainingsbilder können menschliche Gesichter, Tiere, Fahrzeuge und/oder andere Typen von Objekten umfassen.
  • Als nächstes trainiert 504 die Training-Engine 122 den VAE durch Aktualisieren eines oder mehrerer Parameter des VAE basierend auf einer Glattheit einer oder mehrerer Ausgaben, die durch den VAE aus dem Trainingsdatensatz und/oder der Regularisierung eines der Batch-Normalisierung zugeordneten Skalierungsparameters von einer oder mehreren Schichten des VAE erzeugt werden. Beispielsweise kann die Training-Engine 122 einen spektralen Regularisierungsparameter in der objektiven Funktion umfassen, der verwendet wird, um die Codierer-, Prior- und/oder Decodierernetzwerke zu trainieren. Der spektrale Regularisierungsparameter umfasst einen Koeffizienten, der die Glattheit der Ausgabe von dem Codierernetzwerk, Prior-Netzwerk und/oder Decodierernetzwerk steuert. Der spektrale Regularisierungsparameter und/oder Koeffizienten können somit Trainingsinstabilität, die durch ein oder mehrere KL-Terme in der objektiven Funktion verursacht werden, durch Sicherstellen verringern, dass sich die Ausgabe der Codierer- und/oder Decodierernetzwerke nicht dramatisch ändert, wenn sich die entsprechende Eingabe ändert.
  • In einem weiteren Beispiel kann die Training-Engine 122 einen Regularisierungsterm zu dem Skalierungsparameter hinzufügen, der verwendet wird, um Batch-Normalisierung in einer oder mehreren Schichten des Codierer-, des Prior- und/oder des Decodierernetzwerks durchzuführen. Der Regularisierungsterm kann umfassen, ist jedoch nicht beschränkt auf, eine Ll-Norm, eine L2-Norm und/oder eine L-Unendlichkeitsnorm. Der Regularisierungsterm kann wiederum das Trainieren des VAE mit Bezug auf die Batch-Normalisierungschicht(en) stabilisieren.
  • Die Training-Engine 122 kann eine Anzahl von Techniken verwenden, um den Speicher-Overhead zu verringern, der dem Trainieren des VAE zugeordnet ist. Beispielsweise kann die Training-Engine 122 eine erste Teilmenge von Aktivierungen, die durch den VAE erzeugt wurden, aus dem Trainingsdatensatz während eines Vorwärtsdurchlauf speichern, der dem Trainieren des VAE zugeordnet ist, und eine zweite Teilmenge von Aktivierungen, die durch den VAE erzeugt wurden, basierend auf der gespeicherten ersten Teilmenge von Aktivierungen während eines dem Trainieren des VAE zugeordneten Rückwärtsdurchlaufs berechnen. Dieses selektive Speichern und Neuberechnen von Aktivierungen kann den Speicherverbrauch gegenüber herkömmlichen Techniken verringern, die sämtliche Aktivierungen während des Trainings von neuronalen Netzwerken speichern. In einem weiteren Beispiel kann die Training-Engine 122 einen ersten Abschnitt von Parametern in dem VAE unter Verwendung einer ersten Genauigkeit (z.B. Float mit einfacher Genauigkeit) und eines zweiten Abschnitts von Parametern in dem VAE unter Verwendung einer zweiten Genauigkeit speichern, die niedriger als die erste Genauigkeit ist (z.B. Float mit halber Genauigkeit).
  • Die Ausführung-Engine 124 erzeugt dann 506 eine generative Ausgabe, die eine erste Verteilung des Trainingsdatensatzes durch Anwenden des Decodierernetzwerk auf einen oder mehrere Werte reflektiert, die aus einer zweiten Verteilung von latenten Variablen abgetastet wurden, die von dem Prior-Netzwerk erzeugt wurden. Beispielsweise kann die Ausführung-Engine 124 latente variable Werte aus einer Verteilung abtasten, die von dem Top-Down-Modell 304 von 3A gelernt wurde. Die latenten Variablen können in einer sequentiellen Hierarchie von disjunkten Gruppen angeordnet sein; innerhalb der Hierarchie wird ein erster Abtastwert aus einer ersten Gruppe mit einer Merkmalskarte kombiniert und an eine zweite Gruppe, die der ersten Gruppe folgt, zur Verwendung beim Erzeugen von Parametern der Verteilung (und eines zweites Abtastwerts) für die zweite Gruppe weitergeleitet.
  • Nachdem die latenten Variablen unter Verwendung der Hierarchie abgetastet sind, kann die Ausführung-Engine 124 einen oder mehrere der abgetasteten latenten variablen Werte in das Decodierernetzwerk eingeben und das Decodierernetzwerk kann die Wahrscheinlichkeitsfunktion für die Verteilung der Trainingsdaten basierend auf dem(den) abgetasteten latenten variablen Werte (en) aktualisieren. Die generative Ausgabe kann dann durch Abtasten von Werten (z.B. Pixelwerten in einem Bild) aus der Wahrscheinlichkeitsfunktion erzeugt werden.
  • 6 ist ein Ablaufdiagramm von Verfahrensschritten zum Erzeugen einer generativen Ausgabe gemäß verschiedener Ausführungsformen. Obwohl die Verfahrensschritten in Verbindung mit den Systemen von 1 und 2 beschrieben sind, werden Fachleute verstehen, das jedes System, das konfiguriert ist, die Verfahrensschritten in einer beliebigen Reihenfolge durchzuführen, innerhalb des Umfangs der vorliegenden Offenbarung fällt.
  • Wie gezeigt, tastet die Ausführung-Engine 124 ein oder mehrere Werte aus einer ersten Verteilung von latenten Variablen ab 602, die einem Codierernetzwerk zugeordnet sind, das eine erste residuale Zelle umfasst. Als nächstes wendet die Ausführung-Engine 124 ein Decodierernetzwerk, das eine zweite residuale Zelle umfasst, auf den(die) abgetasteten Wert(e) an 604, um Parameter einer zweiten Verteilung von Daten zu erzeugen, mit der ein VAE, der die Codierer- und Decodierernetzwerke umfasst, trainiert wird.
  • Beispielsweise kann das Codierernetzwerk ein bidirektionaler Codierer mit einem Top-Down-Modell und einem Bottom-Up-Modell sein, der bidirektionale Inferenz einer Hierarchie von Gruppen von latenten Variablen durchführt. Die erste residuale Zelle kann in dem Bottom-Up-Modell verwendet werden und eine erste Batch-Normierungsschicht mit einer ersten Swish-Aktivierungsfunktion, einer ersten Faltungsschicht, die der erste Batch-Normalisierungs-Schicht mit der ersten Swish-Aktivierungsfunktion folgt, eine zweite Batch-Normalisierung Schicht mit einer zweiten Swish-Aktivierungsfunktion, eine zweite Faltungsschicht, die der zweiten Batch-Normalisierungs-Schicht mit der zweiten Swish-Aktivierungsfunktion folgt, und eine erste Squeeze- und Anregungsschicht, die der zweiten Faltungsschicht folgt, umfassen. Nachdem das Codierernetzwerk trainiert ist, können die latenten variablen Werte unter Verwendung des Top-Down-Modell abgetastet und in den Decodierer eingegeben werden. Das Decodierernetzwerk gibt wiederum Parameter einer Wahrscheinlichkeitsfunktion für die zweite Verteilung bei den gegebenen latenten variablen Werte aus.
  • Schließlich tastet die Ausführung-Engine 124 aus der zweite Verteilung ab 606, um eine den Daten zugeordnete generative Ausgabe zu erzeugen. Fortfahrend mit dem obigen Beispiel kann die Ausführung-Engine 124 Abtastwerte von der Wahrscheinlichkeitsfunktion erhalten, die von dem Decodierernetzwerk ausgegeben werden, um die generative Ausgabe zu erzeugen (z.B. als Pixelwerte von Pixeln in einem Bild).
  • BEISPIEL EINES SPIEL-STREAMING-SYSTEMS
  • 7 ist ein beispielhaftes Systemdiagramm für ein Spiel-Streaming-System 700 gemäß verschiedenen Ausführungsformen. 7 umfasst den(die) Spielserver 702 (der(die) ähnliche Komponenten, Merkmale und/oder Funktionalität wie die beispielhafte Recheneinrichtung 100 von 1 aufweisen kann(können)), die Client-Vorrichtung(en) 704 (die ähnliche Komponenten, Merkmale und/oder Funktionalität wie die beispielhafte Rechenvorrichtung 100 von 1 aufweisen kann(können)) und das(die) Netzwerk(e) 706 (das(die) ähnlich wie das(die) hier beschriebene(n) Netzwerk(e) sein kann(können)) auf. In einigen Ausführungsformen kann das System 700 unter Verwendung eines Cloud-Rechensystem und/oder verteilten Systems implementiert sein.
  • Bei dem System 700 kann(können) die Client-Vorrichtung(en) 704 für eine Spielsitzung Eingabedaten nur als Reaktion auf Eingaben ein die Eingabevorrichtung(en) empfangen, die Eingabedaten ein den (die) Spielserver 702 übertragen, codierte Anzeigedaten von dem (den) Spielserver(n) 702 empfangen und die Anzeigedaten auf der Anzeige 724 anzeigen. Die rechenintensivere Berechnung und Verarbeitung wird auf den(die) Spielserver 702 ausgelagert (z.B. wird das Rendern - insbesondere das Ray- oder Path-Tracing - für die graphische Ausgabe der Spielsitzung von der(den) GPU(s) des(der) Spielservers 702 ausgeführt). Mit anderen Worten wird die Spielsitzung von dem(den) Spielserver(n) 702 auf die Client-Vorrichtung(en) 704 gestreamt, wodurch die Anforderungen der Client-Vorrichtung(en) 704 auf die Graphikverarbeitung und - wiedergabe verringert werden.
  • Beispielsweise kann eine Client-Vorrichtung 704 in Bezug auf eine Instanziierung einer Spielsitzung einen Rahmen der Spielsitzung auf der Anzeige 724 basierend auf einem Empfang der Anzeigedaten von dem(den) Spielserver(n) 702 anzeigen. Die Client-Vorrichtung 704 kann eine Eingabe auf einem der Eingabevorrichtungen empfangen und abhängig davon Eingabedaten erzeugen. Die Client-Vorrichtung 704 kann die Eingabedaten über die Kommunikationsschnittstelle 720 und über das (die) Netzwerk(e) 706 (z.B. das Internet) an den (die) Spielserver 702 übertragen und der (die) Spielserver 702 kann (können) die Eingabedaten über die Kommunikationsschnittstelle 718 empfangen. Die CPU(s) kann (können) die Eingabedaten empfangen, die Eingabedaten verarbeiten und Daten an den (die) Graphikprozessor(en) übertragen, was den (die) Graphikprozessor(en) veranlasst, ein Rendern der Spielsitzung zu erzeugen. Die Eingabedaten können z.B. repräsentativ sein für eine Bewegung einer Figur des Benutzers in einem Spiel, für ein Abfeuern einer Waffe, für ein Nachladen, für ein Passen eines Balls, für ein Wenden eines Fahrzeugs usw. Die Rendern-Komponente 712 kann die Spielsitzung rendern (z.B. repräsentativ für das Ergebnis der Eingabedaten) und die Render-Capture-Komponente 714 kann das Rendern der Spielsitzung als Anzeigedaten erfassen (z.B. als Bilddaten, die den gerenderten Rahmen der Spielsitzung erfassen). Das Rendern der Spielsitzung kann Ray- oder Path-getracte Beleuchtungs- und/oder Schatteneffekte aufweisen, die mit Hilfe einer oder mehrerer paralleler Prozessoren - wie z.B. GPUs, die darüber hinaus einen oder mehrere dedizierte Hardware-Beschleuniger oder Verarbeitungskerne zur Durchführung von Ray- oder Path-Tracing-Techniken einsetzen können - des(der) Spielserver 702 berechnet werden. Der Codierer 716 kann dann die Anzeigedaten codieren, um codierte Anzeigedaten zu erzeugen und die codierten Anzeigedaten können über das(die) Netzwerk/e 706 über die Kommunikationsschnittstelle 718 ein die Client-Vorrichtung 704 übertragen werden. Die Client-Vorrichtung 704 kann die codierten Anzeigedaten über die Kommunikationsschnittstelle 720 empfangen und der Decodierer 722 kann die codierten Anzeigedaten dekodieren, um die Anzeigedaten zu erzeugen. Die Client-Vorrichtung 704 kann dann die Anzeigedaten mittels der Anzeige 724 anzeigen.
  • In einigen Ausführungsformen umfasst das System 700 eine Funktionalität, um die Training-Engine 122 und/oder die Ausführung-Engine 124 von 1-2 zu implementieren. Beispielsweise können ein oder mehrere Komponenten des Spielservers 702 und/oder der Client-Vorrichtung(en) 704 die Training-Engine 122 ausführen, um einen Trainingsdatensatz (z.B. einen Satz von Bildern oder Modellen von Zeichen oder Objekten in einem Spiel) in einen VAE und/oder ein anderes Modell maschinellen Lernens einzugeben, das ein Codierernetzwerk, ein Prior-Netzwerk und ein Decodierernetzwerk umfasst. Das ausgeführte Training-Engine 122 kann ebenfalls den VAE durch Aktualisieren von Parametern des VAE basierend auf einer Glattheit eines oder mehrerer Ausgaben trainieren, die durch den VAE aus dem Trainingsdatensatz erzeugt wurden. Ein oder mehrere Komponenten des Spielservers 702 und/oder der Client-Vorrichtung(en) 704 können dann die Inferenz-Engine 124 ausführen, um eine generative Ausgabe zu erzeugen, die eine erste Verteilung des Trainingsdatensatzes reflektiert (z.B. zusätzliche Bilder oder Modelle von Zeichen oder Objekten, die nicht in dem Trainingsdatensatz gefunden werden), durch Anwenden des Decodierernetzwerks auf ein oder mehrere Werte, die aus einer zweiten Verteilung von latenten Variablen abgetastet wurden, die durch das Prior-Netzwerk erzeugt wurden. Die generative Ausgabe kann dann in der Anzeige 724 während einer oder mehreren Spielsitzungen auf einer Client-Vorrichtung(en) 704 gezeigt werden.
  • In der Summe trainieren die offenbarten Ausführungsformen einen hierarchischen VAE und führen ein oder mehrere Abschnitte des VAE aus, um eine generative Ausgabe zu erzeugen. Der hierarchische VAE umfasst einen Codierer und ein Prior, die eine latente Darstellung eines Trainingsdatensatzes lernen, wie beispielsweise einen Satz von Bildern von menschlichen Gesichtern, Tieren, Fahrzeugen und/oder anderen Typen von Objekten. Der hierarchische VAE umfasst ebenfalls einen Decodierer, der Parameter an eine Verteilung von Daten in dem Trainingsdatensatz bei gegebenen latenten Variablen ausgibt, aus der latenten Darstellung abgetastet wurden. Die latente Darstellung wird in eine Hierarchie von disjunkten Gruppen von latenten Variablen organisiert, wobei ein Abtastwert einer gegebenen Gruppe in der Hierarchie als Eingabe bereitgestellt wird, die verwendet wird, um eine Verteilung zu erzeugen, von der die nächste Gruppe in der Hierarchie abgetastet wird. Die Leistung des VAE wird durch Trainieren des VAE unter Verwendung einer objektiven Funktion, die einen spektralen Regularisierungsterm umfasst, und/oder durch Verwenden der Batch-Normalisierung mit Batch-Statistik verbessert, die während des Abtasten von neuen Datenpunkten unter Verwendung eines oder mehrerer Abschnitte des trainierten VAE neu eingestellt werden. Der dem Trainieren der VAE zugeordnete Speicher-Overhead kann durch Durchführen von Gradienten-Checkpointing und/oder Speichern von Parametern des VAE unter Verwendung gemischter Genauigkeit verringert werden.
  • Derartiges Speicher-effizientes Trainieren des VAE verbessert den Ressourcen-Overhead und den Trainingsdurchsatz, um dadurch den Betrieb von Computersystemen zu verbessern, die beim Trainieren des VAE beteiligt sind. Techniken zum Stabilisieren des Trainings des VAE und/oder zum Verwenden des VAE mit Batch-Normalisierung verbessern zusätzlich die Konvergenz und/oder die Leistung des VAE gegenüber herkömmlichen Techniken zum Trainieren und Ausführen von VAEs. Somit stellen durch Verringern des Ressourcen-Verbrauchs und/oder des Verbesserns der Leistung, die dem Trainieren und/oder Ausführen des VAE zugeordnet ist, die offenbarten Techniken technologische Verbesserungen in Computersystemen, Anwendungen, Frameworks und/oder Techniken beim Trainieren und Ausführen generativer Modelle, beim Erzeugen von Inhalt, beim Augmentieren von Daten, beim Rendern von Computergraphik und/oder beim Durchführen der Darstellung oder Merkmalslernen bereit.
    1. 1. In einigen Ausführungsformen umfasst ein Verfahren zum Durchführen maschinellen Lernens das Eingeben eines Satzes von Trainingsbildern in ein Modell maschinellen Lernens, das einen Codiererabschnitt, einen Prior-Abschnitt und einen Decodiererabschnitt umfasst; das Trainieren des Modells maschinellen Lernens durch Aktualisieren eines oder mehrerer Parameter des Modells maschinellen Lernens basierend auf einer Glattheit einer oder mehrerer durch das Modell maschinellen Lernens erzeugter Ausgaben beim Verarbeiten des Trainingsdatensatzes; und das Erzeugen eines neuen Bildes, das ein oder mehrere visuelle Attribute reflektiert, die dem Satz von Trainingsbildern zugeordnet sind, durch Anwenden des Decodiererabschnitts auf einen Wert, der basierend auf einer Ausgabe des Prior-Abschnitts erzeugt wurde.
    2. 2. Das Verfahren von Klausel 1, wobei das neue Bild ein Gesicht umfasst, das nicht in dem Satz von Trainingsbildern gefunden wird.
    3. 3. Das Verfahren gemäß einer der Klauseln 1-2, wobei das neue Bild ein Tier oder ein Fahrzeug umfasst, das nicht in dem Satz von Trainingsbildern gefunden wird.
    4. 4. In einigen Ausführungsformen umfasst ein Verfahren zum Durchführen des maschinellen Lernens das Eingeben eines Trainingsdatensatzes in einen variational Autocodierer (VAE), der ein Codierernetzwerk, ein Prior-Netzwerk und ein Decodierernetzwerk umfasst; das Trainieren des VAE durch Aktualisieren eines oder mehrerer Parameter des VAE basierend auf einer Glattheit einer oder mehrerer Ausgaben, die von dem VAE aus dem Trainingsdatensatz erzeugt wurden; und das Erzeugen einer generativen Ausgabe, die eine erste Verteilung des Trainingsdatensatzes durch Anwenden des Decodierernetzwerks auf einen oder mehrere Werte reflektiert, die aus einer zweiten Verteilung von latenten Variablen abgetastet wurden, die durch das Prior-Netzwerk erzeugt wurden.
    5. 5. Das Verfahren von Klausel 4, wobei das Anwenden des Decodierernetzwerks auf den einen oder die mehreren Werte das Anwenden der Batch-Normalisierung auf eine oder mehrere Schichten des Decodierernetzwerks basierend auf einem Momentumparameter umfasst, der eine Rate erhöht, bei der eine der Batch-Normalisierung zugordnete gleitende Statistik eine Batch-Statistik einholt, die der Batch-Normalisierung zugeordnet ist.
    6. 6. Das Verfahren gemäß einer der Klauseln 4-5, wobei das Trainieren des VAE das Anwenden eines Regularisierungsparameters auf einen Skalierungsparameter umfasst, welcher der Batch-Normalisierung zugeordnet ist.
    7. 7. Das Verfahren gemäß einer der Klauseln 4-6, wobei das Anwenden der Batch-Normalisierung auf die eine oder die mehreren Schichten das Kombinieren der Batch-Normalisierung mit einer Swish-Aktivierungsfunktion umfasst.
    8. 8. Das Verfahren gemäß einer der Klauseln 4-7, wobei das Anwenden der Batch-Normalisierung auf die eine oder die mehreren Schichten des Decodierernetzwerks das Neuberechnen der Batch-Statistik, die der Batch-Normalisierung zugeordnet ist, basierend auf dem einen oder mehreren Werte umfasst, die aus der zweiten Verteilung abgetastet wurden.
    9. 9. Das Verfahren gemäß einer der Klauseln 4-8, wobei der VAE eine Hierarchie von Gruppen der latenten Variablen umfasst und wobei ein erster Abtastwert einer ersten Gruppe in der Hierarchie mit einer Merkmalskarte kombiniert und an eine zweite Gruppe, die der ersten Gruppe in der Hierarchie folgt, zur Verwendung beim Erzeugen eines zweiten Abtastwerts der zweiten Gruppe weitergegeben wird.
    10. 10. Das Verfahren gemäß einer der Klauseln 4-9, wobei der VAE eine residuale Zelle umfasst und die residuale Zelle eine erste Batch-Normalisierung-(BN)-Schicht mit einer ersten Swish-Aktivierungsfunktion, eine erste Faltungsschicht, die der ersten BN-Schicht mit der ersten Swish-Aktivierungsfunktion folgt, eine zweite BN-Schicht mit einer zweite Swish-Aktivierungsfunktion, eine zweite Faltungsschicht, die der zweiten BN-Schicht mit der zweiten Swish-Aktivierungsfunktion folgt, und eine Squeeze- und Anregungs-(SE)-Schicht umfasst.
    11. 11. Das Verfahren gemäß einer der Klauseln 4-10, wobei der VAE eine residuale Zelle umfasst und die residuale Zelle eine erste BN-Schicht, eine erste Faltungsschicht, die der ersten BN-Schicht folgt, eine zweite BN-Schicht mit einer ersten Swish-Aktivierungsfunktion und eine tiefenweise trennbare Faltungsschicht, die der zweiten BN-Schicht folgt, umfasst.
    12. 12. Das Verfahren gemäß einer der Klauseln 4-11, wobei die residuale Zelle ferner eine dritte BN-Schicht mit einer zweiten Swish-Aktivierungsfunktion, eine zweite Faltungsschicht, die der dritten BN-Schicht folgt, eine vierte BN-Schicht, die der zweiten Faltungsschicht folgt, und eine SE-Schicht, die der vierten BN-Schicht folgt, umfasst.
    13. 13. Das Verfahren gemäß einer der Klauseln 4-12, wobei das Trainieren des VAE das Aktualisieren des einen oder mehrerer Parameter des VAE basierend auf einer objektiven Funktion umfasst, die einen spektralen Regularisierungsterm umfasst, der die Glattheit einer oder mehrerer Ausgaben steuert, die durch den VAE aus dem Trainingsdatensatz erzeugt wurden.
    14. 14. Das Verfahren gemäß einer der Klauseln 4-13, wobei das Trainieren des VAE das Speichern einer ersten Teilmenge von Aktivierungen, die durch den VAE aus dem Trainingsdatensatz während eines dem Trainieren des VAE zugeordneten Vorwärtsdurchlaufs erzeugt wurden; und das Neuberechnen einer zweiten Teilmenge von Aktivierungen umfasst, die von dem VAE basierend auf der gespeicherten ersten Teilmenge von Aktivierungen, die während eines dem Trainieren des VAE zugeordneten Rückwärtsdurchlaufs erzeugt wurden, um einen dem Trainieren des VAE zugeordneten Speicherverbrauch zu verringern.
    15. 15. Das Verfahren gemäß einer der Klauseln 4-14, wobei das Trainieren des VAE das Speichern eines ersten Abschnitts des einen oder mehrerer Parameter unter Verwendung einer ersten Genauigkeit und das Speichern eines zweiten Abschnitts des einen oder mehrerer Parameter unter Verwendung einer zweiten Genauigkeit, die niedriger als die erste Genauigkeit ist, umfasst.
    16. 16. In einigen Ausführungsformen speichert ein Nicht-transitorisches computerlesbares Medium Anweisungen, die, wenn durch einen Prozessor ausgeführt, den Prozessor veranlassen, die Schritte des Eingebens eines Trainingsdatensatzes in einen variational Autocodierer (VAE), der ein Codierernetzwerk, ein Prior-Netzwerk und ein Decodierernetzwerk umfasst; des Trainierens des VAE durch Aktualisieren eines oder mehrerer Parameter des VAE basierend auf der Regularisierung eines Skalierungsparameters, welcher der Batch-Normalisierung ein oder mehrerer Schichten des VAE zugeordnet ist; und des Erzeugens einer generativen Ausgabe umfasst, die eine erste Verteilung des Trainingsdatensatz durch Anwenden des Decodierernetzwerks auf ein oder mehrere Werte reflektiert, die aus einer zweiten Verteilung von durch das Prior-Netzwerk erzeugten latenten Variablen abgetastet wurden.
    17. 17. Das Nicht-transitorische computerlesbare Medium von Klausel 16, wobei das Trainieren des VAE ferner das Aktualisieren des einen oder der mehreren Parameter des VAE basierend auf einer objektiven Funktion umfasst, die einen spektralen Regularisierungsterm umfasst, der eine Glattheit einer oder mehrerer Ausgaben steuert, die von dem VAE aus dem Trainingsdatensatz erzeugt wurden.
    18. 18. Das Nicht-transitorische computerlesbare Medium gemäß einer der Klauseln 16-17, wobei das Anwenden des Decodierernetzwerks auf den einen oder die mehreren Werten das Anwenden der Batch-Normalisierung auf die eine oder die mehreren Schichten basierend auf einem Momentumparameter umfasst, der eine Rate erhöht, bei der eine gleitende Statistik, die der Batch-Normalisierung zugeordnet ist, eine der Batch-Normalisierung zugeordnete Batch-Statistik einholt.
    19. 19. Das Nicht-transitorisches computerlesbares Medium gemäß einer der Klauseln 16-18, wobei der VAE eine Hierarchie von Gruppen der latenten Variablen umfasst und wobei ein erster Abtastwert einer ersten Gruppe in der Hierarchie mit einer Merkmalskarte kombiniert und an eine zweite Gruppe, die der ersten Gruppe folgt, in der Hierarchie zur Verwendung beim Erzeugen eines zweiten Abtastwerts der zweiten Gruppe weitergegeben wird.
    20. 20. Das Nicht-transitorische computerlesbare Medium gemäß einer der Klauseln 16-19, wobei das Codierernetzwerk ein Bottom-Up-Modell und ein Top-Down-Modell umfasst, die bidirektionale Inferenz der Gruppen der latenten Variablen basierend auf dem Trainingsdatensatz durchführen.
    21. 21. Das Nicht-transitorische computerlesbare Medium gemäß einer der Klauseln 16-20, wobei das Erzeugen der generativen Ausgabe das Ausführen des Top-Down-Modells umfasst, um den einen oder die mehreren Werte entlang der Hierarchie von Gruppen der latenten Variablen abzutasten; und das Eingeben des abgetasteten einen oder mehreren Werten in das Decodierernetzwerk, um die generative Ausgabe zu erzeugen.
    22. 22. Das Nicht-transitorische computerlesbare Medium gemäß einer der Klauseln 16-21, wobei das Anwenden des Decodierernetzwerks auf den einen oder die mehreren Werte ein Neuberechnen der Batch-Statistik, die der Batch-Normalisierung zugeordnet ist, basierend auf dem einen oder den mehreren Werte umfasst, die aus der zweiten Verteilung abgetastet wurden.
    23. 23. In einigen Ausführungsformen umfasst ein System einen Speicher, der Anweisungen speichert, und einen Prozessor, der mit dem Speicher gekoppelt ist, und beim Ausführen der Anweisungen konfiguriert ist, um einen oder mehrere Werte aus einer ersten Verteilung von latenten Variablen abzutasten, die einem Codierernetzwerk zugeordnet sind, das eine erste residuale Zelle umfasst, wobei die erste residuale Zelle eine erste Batch-Normalisierung-(BN)-Schicht mit einer ersten Swish-Aktivierungsfunktion, eine erste Faltungsschicht, die der ersten BN-Schicht mit der ersten Swish-Aktivierungsfunktion folgt, eine zweite BN-Schicht mit einer zweiten Swish-Aktivierungsfunktion, eine zweite Faltungsschicht, die der zweiten BN-Schicht mit der zweiten Swish-Aktivierungsfunktion folgt, und eine erste Squeeze- und Anregungs-(SE)-Schicht, die der zweiten Faltungsschicht folgt, umfasst; Anwenden eines Decodierernetzwerk auf den einen oder die mehreren Werte, um Parameter einer zweiten Verteilung von Daten zu erzeugen, mit denen ein variational Autocodierer (VAE) trainiert wird, der das Codierernetzwerk und das Decodierernetzwerk umfasst; und Abtasten aus der zweiten Verteilung, um eine den Daten zugeordnete generative Ausgabe zu erzeugen.
    24. 24. Das System von Klausel 23, wobei der eine oder mehrere Werte unter Verwendung einer zweiten residualen Zelle abgetastet werden, die eine dritte BN-Schicht, eine dritte Faltungsschicht, die der dritten BN-Schicht folgt, eine vierte BN-Schicht mit einer dritten Swish-Aktivierungsfunktion, und eine tiefenweise trennbare Faltungsschicht, die der vierten BN-Schicht folgt, umfasst.
    25. 25. Das System gemäß einer der Klauseln 23-24, wobei die zweite residuale Zelle ferner eine fünfte BN-Schicht mit einer vierten Swish-Aktivierungsfunktion, eine vierte Faltungsschicht, die der fünften BN-Schicht folgt, eine sechste BN-Schicht, die der vierten Faltungsschicht folgt, und eine zweite SE-Schicht, die der sechsten BN-Schicht folgt, umfasst.
  • Jede und alle Kombinationen beliebiger der Anspruchselemente, die in irgendeinem der Ansprüche und/oder in irgendeinem der in dieser Anmeldung beschriebenen Elemente genannt sind, fallen in irgendeiner Weise in den beabsichtigten Rahmen der Erfindung und deren Schutzumfang.
  • Die Beschreibungen der verschiedenen Ausführungsbeispiele wurden zu Zwecken der Veranschaulichung dargelegt, sollen aber weder erschöpfend sein noch sich auf die offenbarten Ausführungsbeispiele beschränken. Viele Modifikationen und Variationen werden sich für den Fachmann ergeben, ohne dass vom Rahmen und der Idee der beschriebenen Ausführungsbeispiele abgewichen wird.
  • Aspekte der vorliegenden Ausführungsbeispiele können als ein System, ein Verfahren oder ein Computerprogrammprodukt verkörpert sein. Dementsprechend können Aspekte der Erfindung die Form einer vollständigen Ausführung in Hardware, einer vollständigen Ausführung in Software (einschließlich Firmware, residenter Software, Mikrocode usw.) oder eines Ausführungsbeispiels annehmen, das Software- und Hardware-Aspekte kombiniert, die alle hier allgemein als ein „Modul“, ein „System“ oder ein „Computer“ bezeichnet sein können. Darüber hinaus kann jede(r) beliebige Hardware- und/oder Software-Technik, -Prozess, -Funktion, -Komponente, - Engine, -Modul oder -System, das(die) in dieser Offenbarung beschrieben sind, als eine Schaltung oder ein Satz von Schaltungen implementiert sein. Darüber hinaus können Aspekte der Erfindung die Form eines Computerprogrammprodukts annehmen, das in einem oder mehreren computerlesbaren Datenträgern mit darauf enthaltenem computerlesbarem Programmcode verkörpert ist.
  • Jede beliebige Kombination von einem oder mehreren computerlesbaren Medien kann genutzt werden. Das computerlesbare Medium kann ein computerlesbares Signalmedium oder ein computerlesbares Speichermedium sein. Ein computerlesbares Speichermedium kann zum Beispiel, ohne darauf beschränkt zu sein, ein elektronisches, magnetisches, optisches, elektromagnetisches, infrarotes oder halbleitendes System, ein Gerät, oder eine Vorrichtung oder jede beliebige geeignete Kombination der Vorgenannten sein. Spezifischere Beispiele (eine nicht erschöpfende Liste) für das computerlesbare Speichermedium würden das Folgende beinhalten: eine elektrische Verbindung mit einem oder mehreren Drähten, eine tragbare Computerdiskette, eine Festplatte, einen Speicher mit wahlfreiem Zugriff (RAM), einen Festwertspeicher (ROM), einen löschbaren programmierbaren Festwertspeicher (EPROM oder Flash-Speicher), eine optische Faser, einen tragbaren Compact-Disc-Festwertspeicher (CD-ROM), eine optisches Speichervorrichtung, eine magnetische Speichervorrichtung oder jede beliebige geeignete Kombination der Vorgenannten sein. Im Kontext dieses Dokuments kann ein computerlesbares Speichermedium jedes beliebige dinghafte Medium sein, das ein Programm zur Verwendung durch oder in Verbindung mit einem Befehlsausführungssystem, einer Vorrichtung oder einem Gerät enthalten oder speichern kann.
  • Aspekte der Erfindung sind vorstehend unter Bezugnahme auf Ablaufdiagramm-Veranschaulichungen und/oder Blockdiagramme von Verfahren, Vorrichtungen (Systemen) und Computerprogrammprodukten gemäß Ausführungsbeispielen der Erfindung beschrieben. Es versteht sich, dass jeder Block der Ablaufdiagramm-Veranschaulichungen und/oder Blockdiagramme und Kombinationen von Blöcken in den Ablaufdiagramm-Veranschaulichungen und/oder Blockdiagrammen durch Computerprogrammanweisungen implementiert werden kann. Diese Computerprogrammanweisungen können einem Prozessor eines Universalcomputers, eines Spezialcomputers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung zur Herstellung einer Maschine zur Verfügung gestellt werden. Wenn die Anweisungen über den Prozessor des Computers oder einer anderen programmierbaren Datenverarbeitungsvorrichtung ausgeführt werden, ermöglichen sie die Implementierung der in dem Ablaufdiagramm und/oder in dem Blockdiagrammblock und/oder Blockdiagrammblöcken spezifizierten Funktionen/Aktionen. Bei diesen Prozessoren kann es sich, ohne darauf beschränkt zu sein, um Universalprozessoren, Spezialprozessoren, anwendungsspezifische Prozessoren oder feldprogrammierbare Gate-Arrays handeln.
  • Das Ablaufdiagramm und die Blockdiagramme in den Figuren veranschaulichen die Architektur, die Funktionalität und die Funktionsweise möglicher Implementierungen von Systemen, Verfahren und Computerprogrammprodukten entsprechend verschiedenen Ausführungsbeispielen der Erfindung. In dieser Hinsicht kann jeder Block in dem Ablaufdiagramm oder den Blockdiagrammen ein Modul, ein Segment oder einen Teil von Code repräsentieren, das(der) eine oder mehrere ausführbare Anweisungen zur Implementierung der spezifizierten logischen Funktion(en) umfasst. Es wird darüber hinaus angemerkt, dass in einigen alternativen Implementierungen die in dem Block angegebenen Funktionen außerhalb der in den Figuren angegebenen Reihenfolge auftreten können. Beispielsweise können zwei nacheinander dargestellte Blöcke tatsächlich im Wesentlichen gleichzeitig ausgeführt werden, oder können die Blöcke manchmal in der umgekehrten Reihenfolge ausgeführt werden, abhängig von der involvierten Funktionalität. Es wird auch darauf hingewiesen, dass jeder Block der Blockdiagramme und/oder der Ablaufdiagrammdarstellung sowie Kombinationen von Blöcken in den Blockdiagrammen und/oder der Ablaufdiagrammdarstellung durch auf Spezialzweck-Hardware basierende Systeme, die die angegebenen Funktionen oder Aktionen durchführen, oder Kombinationen von Spezialzweck-Hardware und Computeranweisungen implementiert werden können.
  • Während sich das Vorstehende auf Ausführungsbeispiele der Erfindung bezieht, können andere und weitere Ausführungsbeispiele der Erfindung erdacht werden, ohne den grundsätzlichen Rahmen derselben zu verlassen und wird der Schutzumfang derselben durch die nachfolgenden Ansprüche bestimmt.

Claims (25)

  1. Verfahren zum Durchführen maschinellen Lernens, umfassend: Eingeben eines Satzes von Trainingsbildern in ein Modell maschinellen Lernens, das einen Codiererabschnitt, einen Prior-Abschnitt und einen Decodiererabschnitt umfasst; Trainieren des Modells maschinellen Lernens durch Aktualisieren eines oder mehrerer Parameter des Modells maschinellen Lernens basierend auf einer Glattheit einer oder mehrerer durch das Modell maschinellen Lernens erzeugter Ausgaben beim Verarbeiten des Trainingsdatensatzes; und Erzeugen eines neuen Bildes, das ein oder mehrere visuelle Attribute reflektiert, die dem Satz von Trainingsbildern zugeordnet sind, durch Anwenden des Decodiererabschnitts auf einen Wert, der basierend auf einer Ausgabe des Prior-Abschnitts erzeugt wurde.
  2. Verfahren gemäß Anspruch 1, wobei das neue Bild ein Gesicht umfasst, das nicht in dem Satz von Trainingsbildern gefunden wird.
  3. Verfahren gemäß einem der Ansprüche 1 oder 2, wobei das neue Bild ein Tier oder ein Fahrzeug umfasst, das nicht in dem Satz von Trainingsbildern gefunden wird.
  4. Verfahren zum Durchführen des maschinellen Lernens, umfassend: Eingeben eines Trainingsdatensatzes in einen variational Autocodierer (VAE), der ein Codierernetzwerk, ein Prior-Netzwerk und ein Decodierernetzwerk umfasst; Trainieren des VAE durch Aktualisieren eines oder mehrerer Parameter des VAE basierend auf einer Glattheit einer oder mehrerer Ausgaben, die von dem VAE aus dem Trainingsdatensatz erzeugt wurden; und Erzeugen einer generativen Ausgabe, die eine erste Verteilung des Trainingsdatensatzes durch Anwenden des Decodierernetzwerks auf einen oder mehrere Werte reflektiert, die aus einer zweiten Verteilung von latenten Variablen abgetastet wurden, die durch das Prior-Netzwerk erzeugt wurden.
  5. Verfahren gemäß Anspruch 4, wobei das Anwenden des Decodierernetzwerks auf den einen oder die mehreren Werte das Anwenden der Batch-Normalisierung auf eine oder mehrere Schichten des Decodierernetzwerks basierend auf einem Momentparameter umfasst, der eine Rate erhöht, bei der eine der Batch-Normalisierung zugordnete gleitende Statistik eine Batch-Statistik einholt, die der Batch-Normalisierung zugeordnet ist.
  6. Verfahren gemäß Anspruch 5, wobei das Trainieren des VAE das Anwenden eines Regularisierungsparameters auf einen Skalierungsparameter umfasst, welcher der Batch-Normalisierung zugeordnet ist.
  7. Verfahren gemäß einem der Ansprüche 5 bis 6, wobei das Anwenden der Batch-Normalisierung auf die eine oder die mehreren Schichten das Kombinieren der Batch-Normalisierung mit einer Swish-Aktivierungsfunktion umfasst.
  8. Verfahren gemäß einem der Ansprüche 5 bis 7, wobei das Anwenden der Batch-Normalisierung auf die eine oder die mehreren Schichten des Decodierernetzwerks das Neuberechnen der Batch-Statistik, die der Batch-Normalisierung zugeordnet ist, basierend auf dem einen oder mehreren Werte umfasst, die aus der zweiten Verteilung abgetastet wurden.
  9. Verfahren gemäß einem der Ansprüche 4 bis 8, wobei der VAE eine Hierarchie von Gruppen der latenten Variablen umfasst und wobei ein erster Abtastwert einer ersten Gruppe in der Hierarchie mit einer Merkmalskarte kombiniert und an eine zweite Gruppe, die der ersten Gruppe in der Hierarchie folgt, zur Verwendung beim Erzeugen eines zweiten Abtastwerts der zweiten Gruppe weitergegeben wird.
  10. Verfahren gemäß einem der Ansprüche 4 bis 9, wobei der VAE eine residuale Zelle umfasst und die residuale Zelle eine erste Batch-Normalisierung-(BN)-Schicht mit einer ersten Swish-Aktivierungsfunktion, eine erste Faltungsschicht, die der ersten BN-Schicht mit der ersten Swish-Aktivierungsfunktion folgt, eine zweite BN-Schicht mit einer zweite Swish-Aktivierungsfunktion, eine zweite Faltungsschicht, die der zweiten BN-Schicht mit der zweiten Swish-Aktivierungsfunktion folgt, und eine Squeeze- und Anregungs-(SE)-Schicht umfasst.
  11. Verfahren gemäß einem der Ansprüche 4 bis 10, wobei der VAE eine residuale Zelle umfasst und die residuale Zelle eine erste BN-Schicht, eine erste Faltungsschicht, die der ersten BN-Schicht folgt, eine zweite BN-Schicht mit einer ersten Swish-Aktivierungsfunktion und eine tiefenweise trennbare Faltungsschicht, die der zweiten BN-Schicht folgt, umfasst.
  12. Verfahren gemäß Anspruch 11, wobei die residuale Zelle ferner eine dritte BN-Schicht mit einer zweiten Swish-Aktivierungsfunktion, eine zweite Faltungsschicht, die der dritten BN-Schicht folgt, eine vierte BN-Schicht, die der zweiten Faltungsschicht folgt, und eine SE-Schicht, die der vierten BN-Schicht folgt, umfasst.
  13. Verfahren gemäß einem der Ansprüche 4 bis 12, wobei das Trainieren des VAE das Aktualisieren des einen oder mehrerer Parameter des VAE basierend auf einer objektiven Funktion umfasst, die einen spektralen Regularisierungsterm umfasst, der die Glattheit einer oder mehrerer Ausgaben steuert, die durch den VAE aus dem Trainingsdatensatz erzeugt wurden.
  14. Verfahren gemäß einem der Ansprüche 4 bis 13, wobei das Trainieren des VAE umfasst: Speichern einer ersten Teilmenge von Aktivierungen, die durch den VAE aus dem Trainingsdatensatz während eines dem Trainieren des VAE zugeordneten Vorwärtsdurchlaufs erzeugt wurden; und Neuberechnen einer zweiten Teilmenge von Aktivierungen umfasst, die von dem VAE basierend auf der gespeicherten ersten Teilmenge von Aktivierungen, die während eines dem Trainieren des VAE zugeordneten Rückwärtsdurchlaufs erzeugt wurden, um einen dem Trainieren des VAE zugeordneten Speicherverbrauch zu verringern.
  15. Verfahren gemäß einem der Ansprüche 4 bis 14, wobei das Trainieren des VAE das Speichern eines ersten Abschnitts des einen oder mehrerer Parameter unter Verwendung einer ersten Genauigkeit und das Speichern eines zweiten Abschnitts des einen oder mehrerer Parameter unter Verwendung einer zweiten Genauigkeit, die niedriger als die erste Genauigkeit ist, umfasst.
  16. Nicht-transitorisches computerlesbares Medium, das Anweisungen speichert, die, wenn durch einen Prozessor ausgeführt, den Prozessor veranlassen, die folgenden Schritte durchzuführen: Eingeben eines Trainingsdatensatzes in einen variational Autocodierer (VAE), der ein Codierernetzwerk, ein Prior-Netzwerk und ein Decodierernetzwerk umfasst; Trainieren des VAE durch Aktualisieren eines oder mehrerer Parameter des VAE basierend auf der Regularisierung eines Skalierungsparameters, welcher der Batch-Normalisierung einer oder mehrerer Schichten des VAE zugeordnet ist; und Erzeugen einer generativen Ausgabe, die eine erste Verteilung des Trainingsdatensatz durch Anwenden des Decodierernetzwerks auf ein oder mehrere Werte reflektiert, die aus einer zweiten Verteilung von durch das Prior-Netzwerk erzeugten latenter Variablen abgetastet wurden.
  17. Nicht-transitorisches computerlesbares Medium gemäß Anspruch 16, wobei das Trainieren des VAE ferner das Aktualisieren des einen oder der mehreren Parameter des VAE basierend auf einer objektiven Funktion umfasst, die einen spektralen Regularisierungsterm umfasst, der eine Glattheit einer oder mehrerer Ausgaben steuert, die von dem VAE aus dem Trainingsdatensatz erzeugt wurden.
  18. Nicht-transitorisches computerlesbares Medium gemäß einem der Ansprüche 16 oder 17, wobei das Anwenden des Decodierernetzwerks auf den einen oder die mehreren Werte das Anwenden der Batch-Normalisierung auf die eine oder die mehreren Schichten basierend auf einem Momentparameter umfasst, der eine Rate erhöht, bei der eine gleitende Statistik, die der Batch- Normalisierung zugeordnet ist, eine der Batch-Normalisierung zugeordnete Batch-Statistik einholt.
  19. Nicht-transitorisches computerlesbares Medium gemäß einem der Ansprüche 16 bis 18, wobei der VAE eine Hierarchie von Gruppen der latenten Variablen umfasst und wobei ein erster Abtastwert einer ersten Gruppe in der Hierarchie mit einer Merkmalskarte kombiniert und an eine zweite Gruppe, die der ersten Gruppe folgt, in der Hierarchie zur Verwendung beim Erzeugen eines zweiten Abtastwerts der zweiten Gruppe weitergegeben wird.
  20. Nicht-transitorisches computerlesbares Medium gemäß Anspruch 19, wobei das Codierernetzwerk ein Bottom-Up-Modell und ein Top-Down-Modell umfasst, die bidirektionale Inferenz der Gruppen der latenten Variablen basierend auf dem Trainingsdatensatz durchführen.
  21. Nicht-transitorisches computerlesbares Medium gemäß Anspruch 20, wobei das Erzeugen der generativen Ausgabe umfasst: Ausführen des Top-Down-Modells, um den einen oder mehrere Werte entlang der Hierarchie von Gruppen der latenten Variablen abzutasten; und Eingeben des abgetasteten einen oder mehrere Werten in das Decodierernetzwerk, um die generative Ausgabe zu erzeugen.
  22. Nicht-transitorisches computerlesbares Medium gemäß einem der Ansprüche 16 bis 21, wobei das Anwenden des Decodierernetzwerks auf den einen oder die mehreren Werte ein Neuberechnen der Batch-Statistik, die der Batch-Normalisierung zugeordnet ist, basierend auf dem einen oder den mehreren Werte umfasst, die aus der zweiten Verteilung abgetastet wurden.
  23. System, umfassend: einen Speicher, der Anweisungen speichert, und einen Prozessor, der mit dem Speicher gekoppelt ist, und beim Ausführen der Anweisungen konfiguriert ist, um: einen oder mehrere Werte aus einer ersten Verteilung von latenten Variablen abzutasten, die einem Codierernetzwerk zugeordnet sind, das eine erste residuale Zelle umfasst, wobei die erste residuale Zelle eine erste Batch-Normalisierung-(BN)-Schicht mit einer ersten Swish-Aktivierungsfunktion, einer ersten Faltungsschicht, die der ersten BN-Schicht mit der ersten Swish-Aktivierungsfunktion folgt, eine zweite BN-Schicht mit einer zweiten Swish-Aktivierungsfunktion, eine zweite Faltungsschicht, die der zweiten BN-Schicht mit der zweiten Swish-Aktivierungsfunktion folgt, und eine erste Squeeze- und Anregungs-(SE)-Schicht, die der zweiten Faltungsschicht folgt, umfasst; Anwenden eines Decodierernetzwerk auf den einen oder die mehreren Werte, um Parameter einer zweiten Verteilung von Daten zu erzeugen, mit denen ein variational Autocodierer (VAE) trainiert wird, der das Codierernetzwerk und das Decodierernetzwerk umfasst; und Abtasten aus der zweiten Verteilung, um eine den Daten zugeordnete generative Ausgabe zu erzeugen.
  24. System gemäß Anspruch 23, wobei der eine oder die mehreren Werte unter Verwendung einer zweiten residualen Zelle abgetastet werden, die eine dritte BN-Schicht, eine dritte Faltungsschicht, die der dritten BN-Schicht folgt, eine vierte BN-Schicht mit einer dritten Swish-Aktivierungsfunktion, und eine tiefenweise trennbare Faltungsschicht, die der vierten BN-Schicht folgt, umfasst.
  25. System gemäß Anspruch 24, wobei die zweite residuale Zelle ferner eine fünfte BN-Schicht mit einer vierten Swish-Aktivierungsfunktion, eine vierte Faltungsschicht, die der fünften BN-Schicht folgt, eine sechste BN-Schicht, die der vierten Faltungsschicht folgt, und eine zweite SE-Schicht, die der sechsten BN-Schicht folgt, umfasst.
DE102021206286.5A 2020-06-18 2021-06-18 Tiefer hierarchischer variational autocodierer Pending DE102021206286A1 (de)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US202063041038P 2020-06-18 2020-06-18
US63/041,038 2020-06-18
US17/089,492 US20210397945A1 (en) 2020-06-18 2020-11-04 Deep hierarchical variational autoencoder
US17/089,492 2020-11-04

Publications (1)

Publication Number Publication Date
DE102021206286A1 true DE102021206286A1 (de) 2021-12-23

Family

ID=78823254

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102021206286.5A Pending DE102021206286A1 (de) 2020-06-18 2021-06-18 Tiefer hierarchischer variational autocodierer

Country Status (3)

Country Link
US (1) US20210397945A1 (de)
CN (1) CN113822437B (de)
DE (1) DE102021206286A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114862811A (zh) * 2022-05-19 2022-08-05 湖南大学 一种基于变分自动编码器的缺陷检测方法

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3958208A4 (de) * 2019-04-19 2022-04-20 Fujitsu Limited Bildverarbeitungsvorrichtung, bildverarbeitungsverfahren und bildverarbeitungsprogramm
US11861494B2 (en) * 2020-06-26 2024-01-02 Intel Corporation Neural network verification based on cognitive trajectories
CN114648048B (zh) * 2022-04-01 2022-10-25 山东省人工智能研究院 基于变分自编码和PixelCNN模型的心电信号降噪方法
WO2023214910A1 (en) 2022-05-03 2023-11-09 Telefonaktiebolaget Lm Ericsson (Publ) Machine for device verification and anomaly checking
CN115797216B (zh) * 2022-12-14 2024-05-24 齐鲁工业大学 一种基于自编码网络的碑文文字修复模型及修复方法
CN116499607B (zh) * 2023-06-27 2023-09-08 之江实验室 一种光纤传感信号降噪方法、装置和存储介质
CN117290733B (zh) * 2023-11-27 2024-03-12 浙江华创视讯科技有限公司 姿态样本生成方法、模型训练方法、设备及可读存储介质
CN118363541A (zh) * 2024-06-18 2024-07-19 天津广瑞达汽车电子有限公司 汽车控制器故障数据存储方法及系统

Family Cites Families (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11042811B2 (en) * 2016-10-05 2021-06-22 D-Wave Systems Inc. Discrete variational auto-encoder systems and methods for machine learning using adiabatic quantum computers
US11449574B2 (en) * 2017-04-14 2022-09-20 Cerebras Systems Inc. Floating-point unit stochastic rounding for accelerated deep learning
WO2018192672A1 (en) * 2017-04-19 2018-10-25 Siemens Healthcare Gmbh Target detection in latent space
WO2018231708A2 (en) * 2017-06-12 2018-12-20 D5Ai Llc Robust anti-adversarial machine learning
WO2019067960A1 (en) * 2017-09-28 2019-04-04 D5Ai Llc AGGRESSIVE DEVELOPMENT USING COOPERATIVE GENERATORS
US11861491B2 (en) * 2017-10-16 2024-01-02 Illumina, Inc. Deep learning-based pathogenicity classifier for promoter single nucleotide variants (pSNVs)
US10872596B2 (en) * 2017-10-19 2020-12-22 Baidu Usa Llc Systems and methods for parallel wave generation in end-to-end text-to-speech
JP6997309B2 (ja) * 2017-10-24 2022-01-17 ロレアル 深層ニューラルネットワークを用いた画像処理システム及び処理方法
US11205121B2 (en) * 2018-06-20 2021-12-21 Disney Enterprises, Inc. Efficient encoding and decoding sequences using variational autoencoders
US11100647B2 (en) * 2018-09-10 2021-08-24 Google Llc 3-D convolutional neural networks for organ segmentation in medical images for radiotherapy planning
US20200082269A1 (en) * 2018-09-12 2020-03-12 Nvidia Corporation Memory efficient neural networks
US20200090050A1 (en) * 2018-09-14 2020-03-19 D-Wave Systems Inc. Systems and methods for training generative machine learning models with sparse latent spaces
WO2020064990A1 (en) * 2018-09-27 2020-04-02 Deepmind Technologies Limited Committed information rate variational autoencoders
CN109886388B (zh) * 2019-01-09 2024-03-22 平安科技(深圳)有限公司 一种基于变分自编码器的训练样本数据扩充方法和装置
CN110020684B (zh) * 2019-04-08 2021-01-29 西南石油大学 一种基于残差卷积自编码网络的图像去噪方法
US11727265B2 (en) * 2019-06-27 2023-08-15 Intel Corporation Methods and apparatus to provide machine programmed creative support to a user
CN110533620B (zh) * 2019-07-19 2021-09-10 西安电子科技大学 基于aae提取空间特征的高光谱和全色图像融合方法
CN111258992A (zh) * 2020-01-09 2020-06-09 电子科技大学 一种基于变分自编码器的地震数据扩充方法
CN111243045B (zh) * 2020-01-10 2023-04-07 杭州电子科技大学 一种基于高斯混合模型先验变分自编码器的图像生成方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114862811A (zh) * 2022-05-19 2022-08-05 湖南大学 一种基于变分自动编码器的缺陷检测方法
CN114862811B (zh) * 2022-05-19 2024-09-03 湖南大学 一种基于变分自动编码器的缺陷检测方法

Also Published As

Publication number Publication date
US20210397945A1 (en) 2021-12-23
CN113822437A (zh) 2021-12-21
CN113822437B (zh) 2024-05-24

Similar Documents

Publication Publication Date Title
DE102021206286A1 (de) Tiefer hierarchischer variational autocodierer
DE102020002964A1 (de) Verwenden eines neuronalen Netzwerks mit einer Zwei-Strom Encoder-Architektur zur Erzeugung digitaler Kompositbilder
DE102018126670A1 (de) Fortschreitende Modifizierung von generativen adversativen neuronalen Netzen
DE102017010210A1 (de) Bild-Matting mittels tiefem Lernen
DE112019005750T5 (de) Erlernen des Erzeugens synthetischer Datensätze zum Trainieren neuronalerNetze
DE102017009910A1 (de) Bearbeiten von Digitalbildern unter Nutzung eines neuronalen Netzwerkes mit einer netzwerkinternen Erstellungsschicht
DE102018111407A1 (de) Methode zum maschinellen lernen für automatisches modellieren von mehrwertigen ausgaben
DE102018130924A1 (de) Systeme und Verfahren zur dynamischen Gesichtsanalyse mittels eines rekurrenten neuronalen Netzes
DE102017124573A1 (de) Systeme und verfahren zum beschneiden von neuronalen netzen für eine betriebsmitteleffiziente folgerung
DE102019007196A1 (de) Identifizieren von Zielobjekten unter Nutzung der skalierungsdiversen Segmentierung dienender neuronaler Netzwerke
DE112020000584T5 (de) Verfahren für unüberwachte bild-zu-bild-übersetzung mit wenigen aufnahmen
DE102021124769A1 (de) Latente-variable generatives modell mit einem rauschkontrastgebenden prior
CN111161405B (zh) 一种动物毛发三维重建方法
DE102022113243A1 (de) Score-basierte generative Modellierung im latenten Raum
DE102019123455A1 (de) Gemeinsame synthese und platzierung von objekten in szenen
DE102021109050A1 (de) Durch ein neuronales generative adversarial netzwerk unterstützte videokompression und -übertragung
DE102021109501A1 (de) Durch erzeugendes gegnerisches neuronales netzwerk unterstützte videorekonstruktion
DE102020209853A1 (de) Vorrichtung und system für das lernen unüberwachter geordneter darstellung mit einem residual-variational-autoencoder
DE102021124537A1 (de) Energiebasierte variational autoencoder
DE102022204244A1 (de) Generieren von Digitalempfehlungen unter Einsatz einer kollaborativen Filterung, des Bestärkungslernens und von inklusiven Sätzen von Negativfeedback
DE112022001343T5 (de) Vorschlag für einen Rand mittels neuronalem Netzwerkwerk
DE102019112595A1 (de) Geführte halluzination für fehlende bildinhalte unter verwendung eines neuronalen netzes
CN114519844A (zh) 一种基于视觉转化器的人群密度估计方法及系统
DE102021105291A1 (de) Gewichtsdemodulation für ein erzeugendes neuronales netz
Zheng et al. CFA-GAN: Cross fusion attention and frequency loss for image style transfer

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R079 Amendment of ipc main class

Free format text: PREVIOUS MAIN CLASS: G06K0009660000

Ipc: G06V0030194000