Heim  >  Artikel  >  Technologie-Peripheriegeräte  >  Erstellen Sie ein Grafikprogramm, indem Sie sich nur eine handgezeichnete Skizze ansehen. Berkeley, Kalifornien, vermittelt Diffusionsmodellen neue Fähigkeiten

Erstellen Sie ein Grafikprogramm, indem Sie sich nur eine handgezeichnete Skizze ansehen. Berkeley, Kalifornien, vermittelt Diffusionsmodellen neue Fähigkeiten

WBOY
WBOYOriginal
2024-07-02 01:14:04930Durchsuche
Es stellt sich heraus, dass Diffusionsmodelle nicht nur zur Generierung von Bildern und Videos, sondern auch zur Synthese neuer Programme verwendet werden können.

Angenommen, wir geben dem Modell eine handgezeichnete „5“-Formgrafik, es kann das Programm durch kontinuierliche Mutation modifizieren und schließlich ein Programm erhalten, das die Zielgrafik ausgeben kann. Erstellen Sie ein Grafikprogramm, indem Sie sich nur eine handgezeichnete Skizze ansehen. Berkeley, Kalifornien, vermittelt Diffusionsmodellen neue Fähigkeiten
Dieses Modell stammt von einem Forschungsteam der University of California, Berkeley. Diese von ihnen vorgeschlagene neue Methode der Programmsynthese verwendet ein neuronales Diffusionsmodell, um Syntaxbäume direkt zu betreiben.

Aufsatz 1 Als Shreyas Kapur, Doktorand an der Schule, ist sein Betreuer Stuart Russell, Professor für Informatik an der Schule.
Erstellen Sie ein Grafikprogramm, indem Sie sich nur eine handgezeichnete Skizze ansehen. Berkeley, Kalifornien, vermittelt Diffusionsmodellen neue Fähigkeiten
  • Papiertitel: Diffusion On Syntax Trees For Program Synthesis
  • Papieradresse: https://arxiv.org/pdf/2405.20519
  • Projektadresse: https://diffusion-diffusion. github.io/
  • Codebasis: https://github.com/revalo/tree-diffusion

Diffusionsmodelle haben bereits große Erfolge im Bereich der Bilderzeugung erzielt. Das Team stellte fest, dass das Modell durch die Nutzung des Diffusionsmechanismus lernen kann, das Programm iterativ zu optimieren und gleichzeitig die syntaktische Gültigkeit sicherzustellen. Der Schlüssel zu diesem neuen Ansatz besteht darin, einen effizienten Debugging-Prozess zu ermöglichen, indem das Modell die Ausgabe des Programms bei jedem Schritt beobachten kann.

Die Fähigkeit zur Iteration wurde in Systemen wie AlphaZero demonstriert, und die iterative Natur des Diffusionsmechanismus wird natürlich in der suchbasierten Programmsynthese genutzt.

Das Team stellte fest, dass es durch das Training eines Wertemodells gleichzeitig mit dem Diffusionsmodell den darin enthaltenen Entrauschungsprozess zu einem Programm führen konnte, das die gewünschten Ergebnisse ausgibt. Dies ermöglicht eine effiziente Erkundung des Programmraums und trifft fundiertere Entscheidungen in jedem Schritt des Generierungsprozesses.

Um diesen Ansatz umzusetzen, wählte das Team eine inverse Grafikaufgabe, die davon ausgeht, dass eine domänenspezifische Sprache zum Zeichnen von Bildern verwendet wird.

Das Team sagte: „Die Aufgabe des Reverse Engineering passt perfekt zu unserem Ansatz, da eine kleine Änderung im Code zu sinnvollen semantischen Änderungen im resultierenden Bild führen kann.“ Wenn eine falsch platzierte Form im Bild erscheint und leicht im Programmbereich gesehen und positioniert werden kann. Abbildung 1 zeigt einige Beispiele.

Die Hauptbeiträge dieser Forschung umfassen:
Erstellen Sie ein Grafikprogramm, indem Sie sich nur eine handgezeichnete Skizze ansehen. Berkeley, Kalifornien, vermittelt Diffusionsmodellen neue Fähigkeiten
1. Schlagen Sie eine neue Methode vor, die Diffusion auf Syntaxbäumen verwendet.
2. Implementieren Sie die Methode für die inverse Grafikaufgabe und stellen Sie fest, dass die neue Methode überlegen ist die vorherige Methode.
Methode
Kurz gesagt besteht die Kernidee dieser Methode darin, ein Entrauschungsdiffusionsmodell für Syntaxbäume zu entwickeln, ähnlich dem Bilddiffusionsmodell, das für Sehaufgaben entwickelt wurde.

Schauen wir uns zunächst ein Aufgabenbeispiel aus Ellis et al.s Artikel „Schreiben, ausführen, bewerten: Programmsynthese mit einer Replik“ an: Generieren Sie ein Programm mit konstruierter Volumengeometrie (CSG2D) basierend auf einem Bild. Mit CSG2D können wir einfache Grundelemente wie Kreise und Vierecke mit booleschen Operationen wie Addition und Subtraktion kombinieren, um mithilfe der folgenden kontextfreien Grammatik (CFG) komplexere Formen zu erstellen:

in Abbildung 2 ist z₀ das Zielprogramm, x₀ ist die gerenderte Version von z₀.
Erstellen Sie ein Grafikprogramm, indem Sie sich nur eine handgezeichnete Skizze ansehen. Berkeley, Kalifornien, vermittelt Diffusionsmodellen neue Fähigkeiten
Die Aufgabe besteht darin, x₀ umzukehren, um z₀ wiederherzustellen. Erstens mutiert der Entrauschungsprozess zufällig y=16 zu y=10. Verwandeln Sie dann den Teilbaum mit zwei Formen auf der linken Seite in einen neuen Teilbaum mit nur einer Form. Das Ziel besteht hier darin, ein neuronales Netzwerk zu trainieren, das diesen Entrauschungsprozess ausgehend von z₃ und x₃ basierend auf dem Bild x₀ umkehren kann, um z₀ zu erhalten.

Im Folgenden wird zunächst beschrieben, wie dem Syntaxbaum „Rauschen“ hinzugefügt wird. Anschließend wird detailliert beschrieben, wie ein neuronales Netzwerk trainiert wird, das dieses Rauschen umkehrt, und schließlich wird beschrieben, wie dieses neuronale Netzwerk zum Durchführen einer Suche verwendet wird.

Sampling kleiner Mutationen

Sei z_t das Programm zum Zeitpunkt t. Sei p_N (z_{t+1}|z_t) die Verteilung, auf der das Programm z_t zufällig zu z_{t+1} mutiert. Hier hoffen wir, dass die p_N-Mutation zwei Punkte erfüllt: (1) sie ist klein und (2) sie kann syntaktisch gültiges z_{t+1} erhalten.

Zu diesem Zweck untersuchte das Team eine große Menge an Computersicherheitsliteratur zu grammatikbasierten Fuzz-Tests. Um sicherzustellen, dass Mutationen klein sind, definieren sie zunächst eine Funktion σ(z), die die „Größe“ des Programms z angibt. Im Experiment wird eine Reihe von Endpunkten (Terminals) in CFG als Grundelemente definiert.

Wenn sie beispielsweise in ihrer CSG2D-Sprache geschrieben wären, wären die oben genannten Grundelemente {Quad, Circle}. Bei der Arbeit mit dieser Sprache besteht der Ansatz des Teams darin, σ(z) = σ_primitive (z) zu setzen, was die Anzahl der Grundelemente zählt. σ(z) kann auch Optionen wie Tiefe, Anzahl der Knoten usw. enthalten.

Nehmen Sie dann eine Zufallsstichprobe der Prozedur aus CFG basierend auf der genauen Einschränkung σ_min

Um ein bestimmtes Programm z zu mutieren, generieren Sie zunächst einen Satz Kandidatenknoten in einem bestimmten σ_small-Bereich in seinem Syntaxbaum:
Erstellen Sie ein Grafikprogramm, indem Sie sich nur eine handgezeichnete Skizze ansehen. Berkeley, Kalifornien, vermittelt Diffusionsmodellen neue Fähigkeiten
Dann probieren Sie einheitlich einen Mutationsknoten aus diesem Satz aus:
Erstellen Sie ein Grafikprogramm, indem Sie sich nur eine handgezeichnete Skizze ansehen. Berkeley, Kalifornien, vermittelt Diffusionsmodellen neue Fähigkeiten
Da es den gesamten Syntaxbaum und CFG lesen kann, weiß es, welche Generierungsregel m erhalten kann, und kann somit sicherstellen, dass syntaktisch gültige Mutationen erhalten werden. Wenn m beispielsweise eine Zahl ist, sollte auch der Ersatz eine Zahl sein. Wenn m ein allgemeiner Unterausdruck ist, kann er durch einen beliebigen allgemeinen Unterausdruck ersetzt werden. Daher kann m' abgetastet werden, was ein Ersatz für m ist:
Erstellen Sie ein Grafikprogramm, indem Sie sich nur eine handgezeichnete Skizze ansehen. Berkeley, Kalifornien, vermittelt Diffusionsmodellen neue Fähigkeiten
Strategie

Vorwärtsprozess

Das Team behandelt das Programmsyntheseproblem als Inferenzproblem. Sei p (x|z) ein Beobachtungsmodell, wobei x jede Art von Beobachtung sein kann. Die Aufgabe besteht darin, die Richtung dieses Beobachtungsmodells umzukehren, d. h. ein Programm z für gegebene Beobachtungen x zu erhalten.

Nehmen Sie zunächst ein Programm z₀ aus einem Datensatz D oder in diesem Fall zufällig ein Programm aus dem CFG. Das heißt, probieren Sie ein z₀ aus, das σ(z₀) ≤ σ_max erfüllt. Dann wird Rauschen zu z₀ hinzugefügt, wobei s Schritte ausgeführt werden, wobei s ∼ Uniform [1, s_max] und s_max ein Hyperparameter ist:
Erstellen Sie ein Grafikprogramm, indem Sie sich nur eine handgezeichnete Skizze ansehen. Berkeley, Kalifornien, vermittelt Diffusionsmodellen neue Fähigkeiten
Anschließend wird ein bedingtes neuronales Netzwerk trainiert, das die folgende Verteilung modelliert.
Erstellen Sie ein Grafikprogramm, indem Sie sich nur eine handgezeichnete Skizze ansehen. Berkeley, Kalifornien, vermittelt Diffusionsmodellen neue Fähigkeiten
wobei ϕ der Parameter des neuronalen Netzwerks ist, z_t das aktuelle Programm ist, x_t die aktuelle Ausgabe des Programms ist und x₀ die Zielausgabe ist, die gelöst werden muss.

Umgekehrter Mutationspfad

Aufgrund der Fähigkeit, Grundwahrheitsmutationen zu erhalten, können die abgetasteten Trajektorien einfach durch den Vorwärtsprozess der Markov-Kette z₀ → z₁ → ... umgekehrt werden, um das Ziel des Trainings a zu generieren neurales Netzwerk. Auf den ersten Blick scheint dies eine vernünftige Wahl zu sein. Wenn man das Modell jedoch direkt trainiert, um die letzte Mutation umzukehren, besteht die Gefahr, dass ein weitaus verrauschteres Signal für das neuronale Netzwerk entsteht.

In einem viel größeren Syntaxbaum ist der Mutationspfad einer Farbe beispielsweise:
Erstellen Sie ein Grafikprogramm, indem Sie sich nur eine handgezeichnete Skizze ansehen. Berkeley, Kalifornien, vermittelt Diffusionsmodellen neue Fähigkeiten
Die Farbe des Zielbilds x₀ ist Rot und die Farbe des mutierten Bilds x₂ ist Grün.Wenn Sie dem Modell einfach beibringen, die obige Markov-Kette umzukehren, können Sie das Netzwerk trainieren, um Grün in Blau umzuwandeln, obwohl Sie das Netzwerk direkt trainieren können, um Grün in Rot umzuwandeln.

Um ein besseres Trainingssignal zu erzeugen, kann daher der Bearbeitungspfad zwischen dem Zielbaum und dem Mutationsbaum berechnet werden. Das Team verwendete einen Baumbearbeitungspfadalgorithmus, der lose auf der Baumbearbeitungsentfernung basierte. Das verallgemeinerte Baumbearbeitungsabstandsproblem ermöglicht das Einfügen, Löschen und Ersetzen beliebiger Knoten. Die Einstellung hier ist jedoch anders. Die Baumbearbeitung kann nur in einem Aktionsraum erreicht werden, der nur kleine Mutationen zulässt.

Für zwei Bäume z_A und z_B können ihre syntaktischen Strukturen linear verglichen werden. Für Änderungen, die ≤ σ_small erfüllen, werden sie zur Mutationsliste hinzugefügt. Suchen Sie bei Änderungen > σ_small nach der ersten Mutation, die den Abstand zwischen den beiden Bäumen verringert. Daher kann für zwei beliebige Programme z_A und z_B der erste Schritt des Mutationspfads in O (|z_A| + |z_B|) Zeit berechnet werden.
Wertnetzwerk und Suche

Das Team trainierte außerdem ein Wertnetzwerk v_ϕ (x_A, x_B), dessen Eingabe zwei gerenderte Bilder x_A und x_B sind und deren Vorhersage darin besteht, diese beiden zu generieren Der Bearbeitungsabstand zwischen den zugrunde liegenden Programmen des Bildes. Da der Bearbeitungsabstand zwischen Bäumen während des Trainings berechnet wurde, wird für jedes Paar gerenderter Bilder direkt der zugrunde liegende prozedurale Bearbeitungsabstand ermittelt, mit dem dieser Wert in einem überwachten Netzwerk trainiert werden kann.

Mit der oben vom Team vorgeschlagenen neuen Strategie und dem neuen Wertschöpfungsnetzwerk ist es möglich, eine Strahlsuche für jedes Zielbild x₀ und ein zufällig initialisiertes Programm z_t durchzuführen. Bei jeder Iteration wird ein Satz von Knoten im Suchbaum mit den vielversprechendsten Werten beibehalten und nur diese Knoten werden erweitert. Erstellen Sie ein Grafikprogramm, indem Sie sich nur eine handgezeichnete Skizze ansehen. Berkeley, Kalifornien, vermittelt Diffusionsmodellen neue Fähigkeiten
Architektur

Abbildung 3 zeigt einen Überblick über die neu vorgeschlagene neuronale Architektur.
Erstellen Sie ein Grafikprogramm, indem Sie sich nur eine handgezeichnete Skizze ansehen. Berkeley, Kalifornien, vermittelt Diffusionsmodellen neue Fähigkeiten
Ihr Entrauschungsmodell q_ϕ (z_{t−1}|z_t, x_t; x₀) verwendet das visuelle Sprachmodell. Für den Bildencoder verwendeten sie eine Standardimplementierung von NF-ResNet-26, einer Faltungsarchitektur ohne Normalisierer, die Probleme mit der zeitlichen Instabilität bei der Verwendung von Batch-Norm vermeidet.

Das Team hat einen benutzerdefinierten Tokenizer implementiert, der den Endpunkt seines CFG als Token verwendet. Der Rest des Bearbeitungsmodells ist ein kleiner Transformer nur mit Decoder.

Sie fügten außerdem zwei weitere Arten von Token hinzu: , das als Satzanfangstoken für das Modell dient, und Token , das es dem Modell ermöglicht, auf Orte in seinem Kontext zu verweisen.

Anhand eines aktuellen Bilds, eines Zielbilds und des aktuellen tokenisierten Programms trainieren Sie das Transformer-Modell, um Bearbeitungspositionen und Ersetzungstext auf autoregressive Weise vorherzusagen. Bei Vorhersagen wird der Dekodierungsprozess durch die Grammatik eingeschränkt. Das Team maskierte das vorhergesagte Logit so, dass es nur Bearbeitungspositionen umfasste, die syntaktische Baumknoten darstellen, und erhielt nur Ersetzungen, die für die ausgewählten Bearbeitungspositionen syntaktisch gültig waren.

Hier setzen wir σ_small = 2, was bedeutet, dass das Netzwerk nur Bearbeitungen mit weniger als zwei Grundelementen erzeugen darf. Bei Trainingsdaten wird ein unendlicher Strom zufälliger Ausdrücke aus dem CFG abgetastet. Für Rauschschritte s wählen sie zufällig einen aus [1, 5] aus. Ein bestimmter Anteil der Stichproben ρ wird durch zufällige Stichprobenentnahme neuer Ausdrücke als mutierte Ausdrücke vervollständigt. Sie trainierten drei Tage lang mit einer einzelnen NVIDIA A6000-GPU.
Experimente

Sie führten Experimente mit 4 domänenspezifischen Grafiksprachen durch: CSG2D, CSG2D-Sketch, TinySVG, Rainbow.

Die ausgewählten Benchmark-Methoden sind „Schreiben, ausführen, bewerten: Programmsynthese mit einer Replik“, vorgeschlagen von Ellis et al., und „CSGNet: Neural Shape Parser for Constructive Solid Geometry“, vorgeschlagen von Sharma et al.

Abbildung 4 vergleicht die Leistung der neuen Methode mit der Basismethode.

Es ist ersichtlich, dass in den CSG2D- und TinySVG-Umgebungen die neu vorgeschlagene Baumdiffusionsstrategie deutlich besser ist als die Strategie der vorherigen Methode.Die Leistung dieser Strategie kann in Kombination mit der Strahlsuche weiter verbessert werden, sodass das Problem mit weniger Aufrufen an den Renderer als bei anderen Methoden gelöst werden kann.
Erstellen Sie ein Grafikprogramm, indem Sie sich nur eine handgezeichnete Skizze ansehen. Berkeley, Kalifornien, vermittelt Diffusionsmodellen neue Fähigkeiten
Die folgende Abbildung zeigt einige erfolgreiche Beispiele des neuen Systems und die Ergebnisse der Benchmark-Methode. Wie Sie sehen, kann das neue System kleinere Probleme beheben, die andere Methoden übersehen.
Erstellen Sie ein Grafikprogramm, indem Sie sich nur eine handgezeichnete Skizze ansehen. Berkeley, Kalifornien, vermittelt Diffusionsmodellen neue Fähigkeiten
Das folgende Video zeigt zwei Beispiele skizzenbasierter Wiederherstellungsverfahren mit der Sprache CSG2D-Sketch, die zeigen, dass das Beobachtungsmodell nicht unbedingt eine deterministische Darstellung erfordert, sondern auch aus zufälligen handgezeichneten Bildern bestehen kann. Erstellen Sie ein Grafikprogramm, indem Sie sich nur eine handgezeichnete Skizze ansehen. Berkeley, Kalifornien, vermittelt Diffusionsmodellen neue FähigkeitenErstellen Sie ein Grafikprogramm, indem Sie sich nur eine handgezeichnete Skizze ansehen. Berkeley, Kalifornien, vermittelt Diffusionsmodellen neue Fähigkeiten
Um die Auswirkungen dieser neuen Designs zu verstehen, führte das Team auch Ablationsexperimente mit einem kleineren Transformer-Modell in einer vereinfachten Rainbow-Umgebung durch. Die Ergebnisse sind in Abbildung 5 dargestellt. Insgesamt sind die Ergebnisse dieser Designentscheidungen erwiesen.
Erstellen Sie ein Grafikprogramm, indem Sie sich nur eine handgezeichnete Skizze ansehen. Berkeley, Kalifornien, vermittelt Diffusionsmodellen neue Fähigkeiten
Weitere Einzelheiten finden Sie im Originalpapier.

Das obige ist der detaillierte Inhalt vonErstellen Sie ein Grafikprogramm, indem Sie sich nur eine handgezeichnete Skizze ansehen. Berkeley, Kalifornien, vermittelt Diffusionsmodellen neue Fähigkeiten. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn