30. August 2022

Mögliche Anwendungen von diskreten Diffusionsmodellen

Mitwirkende
Bert Christiaens
Machine Learning Engineer
Keine Artikel gefunden.
Newsletter abonnieren
Diesen Beitrag teilen

Einführung

In diesem Blogpost werden wir die Anwendungen von VQGAN in Kombination mit diskreten absorbierenden Diffusionsmodellen aus dem erstaunlichen Papier untersuchen:

Entfesselte Transformatoren: Parallele Token-Vorhersage mit diskreter absorbierender Diffusion für schnelle hochauflösende Bilderzeugung aus vektorquantisierten Codes.

Wenn Sie neugierig auf die cleveren Techniken sind, die dies möglich gemacht haben, dann sind das Papier selbst und unser technischer Blogpost bestimmt etwas für Sie! In dem technischen Blogpost haben wir einen Überblick über die bisherigen generativen SOTA-Modelle gegeben, um dann zu einer neuen Klasse von Modellen zu gelangen, den Diffusionsmodellen. Wir haben uns eingehend mit der Architektur der Diskreten Absorbierenden Diffusionsmodelle beschäftigt. In diesem Blogpost gehen wir einen Schritt zurück und sehen uns an, wie wir die Eigenschaften dieses Modells für kreative Zwecke nutzen können.

Zusammenfassung des technischen Blogposts

In dem technischen BlogpostI haben wir zwei Modelle besprochen:

  • VQGAN, ein Modell, das Daten in einem 16x16-Gitter aus diskreten latenten Codes darstellt und in der Lage ist, sie in den Bildraum zurück zu dekodieren
  • das Discrete Absorbing Diffusion-Modell, ein Transformationsmodell, das lernt, welche Kombinationen von diskreten latenten Codes realistische und konsistente Bilder ergeben

Im technischen Blogpost haben wir gesehen, dass ein diskretes Diffusionsmodell diese latenten Codes nicht von links nach rechts generiert, wie ein autoregressives Modell, sondern sie in einer zufälligen Reihenfolge erzeugen kann.

Erzeugung von latenten Codes außerhalb der Reihenfolge

Dieses ungeordnete und bidirektionale Sampling ermöglicht es uns, neue Techniken zur Bearbeitung und Erzeugung von Bildern einzusetzen :

  • Bilderzeugung von Grund auf
  • Bedingte Bilderzeugung
  • Bildübermalung
  • Bilder nähen
  • Erzeugen größerer Bilder

Bilderzeugung von Grund auf

Wie bei den meisten generativen Modellen können wir Bilder von Grund auf neu erzeugen. Das Diffusionsmodell beginnt mit einem leeren 1I6x16-Gitter, das durch MASK-Token gekennzeichnet ist, und generiert iterativ Token, um das Gitter aufzufüllen. Sobald jeder Code generiert ist, verwendet der VQGAN-Decoder diese generierten Codes, um global kohärente Bilder zu erzeugen, die mit anderen generativen Modellen konkurrieren können.

Von Grund auf neu generierte Gesichter durch Sampling aus einem diskreten Diffusionsmodell, das mit dem FFHQ-Datensatz trainiert wurde
Von Grund auf neu generierte Kirchen durch Stichproben aus einem diskreten Diffusionsmodell, das mit dem LSUN-Kirchendatensatz trainiert wurde

Bedingte Bilderzeugung

Lassen Sie uns nun über die bedingte Bilderzeugung sprechen. Das ist eine schicke Art zu sagen, dass wir einen Teil des Bildes auswählen, um die Erzeugung des restlichen Bildes zu steuern.

Mit den vorhandenen autoregressiven Modellen ist es möglich, eine bedingte Bilderzeugung auf der Grundlage eines Teilbildes zu verwenden. Die Idee dabei ist, dem Modell den oberen Teil eines Bildes als Kontext zu geben und dann den Inhalt weiter zu vervollständigen, indem die nächsten Pixel eines nach dem anderen von oben nach unten und von links nach rechts vorhergesagt werden. Anstelle der Vorhersage von Pixeln könnten wir auch diskrete Codes in einer unidirektionalen Weise vorhersagen, was eine Idee ist, die in dem Papier untersucht wurde: Zähmung von Transformatoren für die hochauflösende Bildsynthese.

Beeindruckend, oder? Aufgrund des unidirektionalen Charakters von autoregressiven Modellen ist es jedoch nur möglich, den oberen Teil eines Bildes zu konditionieren.

Unidirektionale Vorhersage in autoregressiven Modellen

Das ist der Punkt, an dem unser Diffusionsmodell besser sein kann! Wir können ein Bild mit dem VQGAN-Encoder kodieren und erhalten so ein Raster von latenten Variablen. Dann wählen wir die Teile des Bildes aus, die wir behalten wollen, und lassen das Modell alles um sie herum generieren.

Dies ist eine große Verbesserung der Flexibilität im Vergleich zu autoregressiven Modellen, da wir nicht mehr auf bestimmte Teile eines Bildes beschränkt sind. Zur Veranschaulichung: In der folgenden Abbildung wollen wir den Turm in der Mitte mit verschiedenen generierten Hintergründen beibehalten. Wir behalten die Codes im mittleren Bereich 🏯, ersetzen die anderen Codes durch den MASK-Wert und bitten das Modell, mehrere neue Bilder zu erzeugen.

Links: generiertes Bild mit festem Bereich in der Mitte. Rechts: Vollständig generiertes Bild

Wie Sie sehen können, bleiben Inhalt und Struktur des mittleren Bereichs größtenteils unverändert und passen sich nur geringfügig an die umliegenden Pixel an. Es fühlt sich toll an, dem Modell zu sagen, was es tun soll 😎!

Wiederherstellung von Bildregionen (Inpainting)

Ähnlich wie bei der bedingten Bilderzeugung können wir auch eine Bildübermalung durchführen 🎨🖌.

Nehmen wir an, wir erstellen ein Bild und das meiste davon gefällt uns, bis auf eine Region, die uns nicht ganz geheuer ist. Kein Problem, wir können einfach die latenten Codes aus dem Raster ausblenden, die dieser unerwünschten Region entsprechen, und sie vom Diffusionsmodell neu generieren lassen. Um zu zeigen, wie das funktioniert, lassen Sie uns ein paar neue Münder erzeugen! Indem wir diese Codes mehrfach regenerieren, können wir viele Variationen erhalten.

Regeneration eines Bildbereichs unter Beibehaltung des übrigen Inhalts

Sehr cool! Wir bekommen 9 neue Bilder mit genau den gleichen Haaren, Augen und Hintergrund, aber mit völlig unterschiedlichen Mündern 👄 .

Bilder zusammenfügen

Jetzt kann der eigentliche Spaß beginnen. Aufgrund der Gitterstruktur des latenten Raums des VQGAN sind die vom VQGAN erlernten Codes in hohem Maße räumlich mit dem Inhalt der erzeugten Bilder korreliert. Das bedeutet, dass die latenten Codes, die dem Bereich der Augen eines generierten Gesichts entsprechen, Informationen über die Augen enthalten.

Okay, aber was nun? Nehmen wir die latenten Codes der 👀 von Bild A und die Codes der 👄 von Bild B. Wir fügen sie nun in ein Raster ein, blenden alle anderen Token aus und lassen unser Diffusionsmodell tun, was es am besten kann.

Die latenten Variablen, die dem Mund und den Augen entsprechen, werden aus den linken Gesichtern entnommen und in ein leeres Raster mit maskierten Token eingesetzt. Die maskierten Zeichen werden durch das Diffusionsmodell vorhergesagt und in das Gesicht auf der rechten Seite dekodiert.

Wir sehen, dass das Diffusionsmodell die maskierten Bereiche gut ausgefüllt hat, so dass ein kohärentes Gesicht entsteht, wobei das ursprüngliche Aussehen von Mund und Augen erhalten bleibt.

Vergleich der Augen- und Mundregionen des Ausgangs- (links) und des erzeugten Bildes (rechts).

Werden wir kreativ und wenden wir diese Idee auf ein Modell an, das an Kirchen ausgebildet wurde. Der Papst möchte, dass Sie eine neue Kirche bauen, und er liebt besonders den Sockel der berühmten Notre Dame in Paris und den Turm der herrlichen Sint-Baafs-Kathedrale in Gent. Kein Problem, Sie können einfach die Codes, die den gewünschten Regionen entsprechen, herausnehmen und sie in einen leeren latenten Raum einfügen.

Alles, was übrig bleibt, ist, das Diffusionsmodell zu bitten, die leeren Regionen auszufüllen und sie mit VQ-VAE zu dekodieren, und man kann leicht eine endlose Menge neuer Kirchen generieren, die den Beschränkungen entsprechen.

Links: generiertes Bild mit hervorgehobenem, maskiertem Bereich. Rechts: Vollständig generiertes Bild

Wie Sie sehen können, bleibt der Inhalt der Türme und des Sockels gleich und das Modell füllt den Rest realistisch aus. Der Papst ist mit dem Ergebnis sehr zufrieden und schenkt dir ein VIP-Ticket, mit dem du die Schlange vor den Toren des Petersdoms überspringen kannst. Gut gemacht! Wenn Sie noch verrücktere Ergebnisse wünschen, können Sie die Sampling-Temperatur des Diffusionsmodells anpassen, um mehr Variation zu erhalten (und dafür etwas globale Konsistenz in Kauf nehmen).

Erzeugen größerer Bilder

Die letzte coole Anwendung dieses Modells ist, dass es uns erlaubt, Bilder zu erzeugen, die größer sind als die Bilder, auf denen das Modell trainiert wurde. Dies wird erreicht, indem der latente Raum des größeren Bildes in mehrere überlappende Raster unterteilt wird, die der ursprünglichen 16x16-Form entsprechen. Bei jedem Vorhersageschritt berechnen wir die Wahrscheinlichkeiten für neue Token und aggregieren sie über die verschiedenen Raster.

Der Prozess der Erstellung größerer Bilder als die trainierten. Das latente Raster wird in kleinere Raster unterteilt, die jeweils die Wahrscheinlichkeiten ihrer maskierten Token berechnen. Diese Wahrscheinlichkeiten werden über die Raster hinweg aggregiert, um eine Wahrscheinlichkeitskarte der ursprünglichen Größe zu erhalten, aus der ein neuer Code entnommen werden kann. Anschließend wird das gesamte Gitter von Codes durch den VQGAN-Decoder dekodiert.

Mit diesem Trick können wir global konsistente Bilder erzeugen, auch wenn das Modell nie dafür trainiert wurde.

Erstellte Bilder mit höherer Auflösung

Fazit

In diesem Blogpost haben wir erörtert, wie die bidirektionale und iterative Natur der kürzlich aufkommenden Diffusionsmodelle in Kombination mit den diskreten Darstellungen von VQGANs und den weitreichenden Modellierungsfähigkeiten von Transformatoren uns eine bessere Kontrolle über den latenten Raum ermöglicht. Diese Architektur erzeugt qualitativ hochwertige und konsistente Bilder und bietet gleichzeitig die Möglichkeit, Bilder in einem konzeptionell diskreten Raum zu bearbeiten.

Halten Sie die Augen offen, denn es wird nicht das letzte Mal sein, dass Sie von diesen Diffusionsmodellen hören werden (in der Tat wurden während des Schreibens dieses Beitrags verschiedene erstaunliche neue Arbeiten veröffentlicht, wie DALL-E 2, ImageGen, Stable Diffusion...). Und vergessen Sie nicht, sich den technischen Blogpost anzusehen, um zu erfahren, was hinter den Kulissen passiert!🤓




Verwandte Beiträge

Alle anzeigen
Keine Ergebnisse gefunden.
Es gibt keine Ergebnisse mit diesen Kriterien. Versuchen Sie, Ihre Suche zu ändern.
Stiftung Modelle
Unternehmen
Unser Team
Verantwortungsvolle und ethische KI
Strukturierte Daten
Chat GPT
Nachhaltigkeit
Stimme und Ton
Front-End-Entwicklung
Schutz und Sicherheit von Daten
Verantwortungsvolle/ethische KI
Infrastruktur
Hardware und Sensoren
MLOps
Generative KI
Verarbeitung natürlicher Sprache
Computer Vision