4 Punkte von GN⁺ 2024-05-27 | 1 Kommentare | Auf WhatsApp teilen
  • Diffusionsmodelle lernen, Daten schrittweise mit Rauschen zu versetzen und diesen Prozess umzukehren. Sie werden nicht nur für die Bilderzeugung wie bei Stable Diffusion eingesetzt, sondern auch für die Generierung von Videos, 3D, Proteinstrukturen und Robotertrajektorien.
  • DDPM macht ein sauberes Bild (x_0) über mehrere Timesteps hinweg zu Rauschen nahe (x_T) und trainiert das Modell mit L2-Verlust darauf, in jedem Schritt die Rauschrichtung vorherzusagen.
  • Der umgekehrte Prozess lässt sich bei kleinen Rauschschritten näherungsweise als Gauß-Verteilung behandeln; Ho 2020 stabilisierte das Training durch feste Varianz und vereinfachte die Vorhersage des Mittelwerts zu einer Rauschvorhersage.
  • Die Generierungsgeschwindigkeit kann von bis zu 1000 Sampling-Schritten bei DDPM auf etwa 10 Schritte bei ODE-basierten Samplern und bis hin zur Ein-Schritt-Generierung durch progressive distillation und adversarial distillation reduziert werden.
  • Der praktische Einsatzbereich von Diffusionsmodellen ist breiter geworden, doch Qualitätsverluste durch zu starke distillation, Grenzen der Bedingungssteuerung sowie ethische Fragen und Herkunftsprobleme bei Datensätzen bleiben weiterhin Einschränkungen.

Die Rolle von Diffusionsmodellen im generativen Modellieren

  • Das Grundproblem des generativen Modellierens besteht darin, aus einer Menge von Samples einer unbekannten Verteilung (p(x)) neue Samples aus derselben Verteilung zu erzeugen.
  • GANs gehen dies als Spiel zwischen Generator und Diskriminator an und können beeindruckende Bilder synthetisieren, sind aber schwer zu trainieren, modellieren (p(x)) nicht explizit und können mode collapse zeigen.
  • Normalizing Flows lernen ein deterministisches, invertierbares Mapping zwischen Daten-Samples und einer Standard-Gauß-Verteilung.
    • OpenAIs Glow von 2018 erzeugte Gesichtsbilder mit einem semantisch sinnvollen latent space.
    • Bei Flows muss jede Schicht invertierbar sein und die Jacobian determinant schnell berechnet werden können; die Berechnung einer beliebigen (N \times N)-Jacobian determinant kostet (O(N^3)) und ist daher stark einschränkend.
  • Diffusionsmodelle führen statt eines deterministischen Mappings über viele Schritte ein stochastisches Mapping aus, bei dem Daten nach und nach mit zufälligem Rauschen vermischt werden, und lernen ein Modell, das diesen Prozess umkehrt.

Grundidee der Denoising Diffusion

  • Wenn man einem sauberen Datenpunkt wiederholt kleine Mengen Rauschen hinzufügt, entsteht am Ende ein Zustand, der nahezu wie reines Rauschen aussieht.
  • Schon anhand eines verrauschten Datenpunkts zu einem Zeitpunkt lässt sich bis zu einem gewissen Grad abschätzen, aus welcher Richtung er im vorherigen Schritt gekommen sein dürfte.
  • Wenn ausreichend viel Rauschen hinzugefügt wird, kann die Wahrscheinlichkeit, dass ein Punkt (y) im target space ursprünglich aus (x) im ursprünglichen Raum stammt, beliebig nahe an (p(x)) herankommen.
  • Wenn man den mehrstufigen umgekehrten Prozess lernt, kann man aus (p(x)) sampeln.
  • Beim Training wird zu jedem Datenpunkt zufälliges Rauschen addiert, das Modell lässt man dieses Rauschen vorhersagen, und anschließend wird der L2 loss zwischen vorhergesagtem Rauschen und tatsächlicher Rauschrichtung per gradient descent minimiert.
  • Das grundlegende Sampling folgt diesem Ablauf:
    • Man beginnt mit einem Bild aus reinem Rauschen.
    • Man sagt das Rauschen im Bild voraus und subtrahiert einen festgelegten Anteil davon.
    • Je nach sampler wird dies 10 bis 1000 Mal wiederholt, bis ein rauschfreies Bild entsteht.

DDPM: der mathematische Ausgangspunkt von Diffusionsmodellen

  • DDPM (Denoising Diffusion Probabilistic Models) ist der Ansatz, der zur Sprache und mathematischen Grundlage der späteren Entwicklung von Diffusionsmodellen wurde.
  • Das Eingangsbild (x_0) wird über die Timesteps (t=1,2,\dots,T) wiederholt mit kleinem zufälligem Rauschen vermischt und bewegt sich dadurch zu einem Punkt der Standardnormalverteilung.
  • Ein forward diffusion step mischt Rauschen (\epsilon \sim \mathcal{N}(0,I)) in das vorherige Bild (x_{t-1}), um (x_t) zu erzeugen.
    • (\alpha_t) ist kleiner als 1, aber nahe bei 1.
    • Es wird so gesetzt, dass (\prod_{t=1}^T \alpha_t \approx 0) gilt.
    • Die Quadratwurzelterme sorgen dafür, dass die Varianz auch nach jedem Schritt erhalten bleibt.
  • Jeder Schritt hängt nur vom unmittelbar vorherigen Timestep ab, und das zugemischte Rauschen ist unabhängig vom vorherigen Rauschen; daher lässt sich (x_t) direkt durch (x_0) und einen einzigen Gaußschen Rauschvektor ausdrücken.
  • Diese Eigenschaft wird genutzt, um den umgekehrten Prozess und das Trainingsziel der Rauschvorhersage herzuleiten.

Umgekehrter Prozess und Training der Rauschvorhersage

  • Wenn das noisy image (x_t) und das Originalbild (x_0) bekannt sind, hat die Verteilung der vorherigen, weniger noisy Version (x_{t-1}) eine geschlossene Gaußsche Form.
  • Zum Zeitpunkt der Generierung kennt man das Original (x_0) jedoch nicht, weshalb man (q(x_{t-1} \mid x_t)) direkt verwenden müsste; der gesamte Datensatz kann aber bei der Generierung nicht genutzt werden.
    • Der Datensatz kann aus Milliarden von Bildern bestehen.
    • Würde man dem in allen Timesteps folgen, würde man keine neuen Samples erzeugen, sondern Trainingssamples rekonstruieren.
  • (q(x_{t-1} \mid x_t)) ist bei sehr kleinen Rauschschritten näherungsweise gaußförmig; dies ist ein altes Ergebnis aus der statistischen Physik.
  • Das Modell schätzt die Gauß-Parameter (\mu_\theta, \Sigma_\theta) und reduziert die KL divergence zur bekannten Verteilung (q(x_{t-1} \mid x_t, x_0)) jedes Trainingsbeispiels.
  • Ho 2020 setzte (\Sigma_\theta) fest gleich (\Sigma(t)).
    • Der Versuch, die Varianz zu lernen, machte das Training zu instabil.
    • In der Praxis wird nur der Mittelwert (\mu_\theta) gelernt.
  • Das Problem der Mittelwertvorhersage wird durch die Tatsache, dass (x_t) als Mischung aus (x_0) und Gaußschem Rauschen (\epsilon) ausgedrückt werden kann, in ein Rauschvorhersageproblem umgewandelt.
  • Der endgültige einfache Verlust (L_\text{simple}) minimiert den quadratischen Fehler zwischen dem tatsächlichen Rauschen (\epsilon) und der Modellvorhersage (\epsilon_\theta).
    • Ignoriert man das weighting, wird die Ergebnisqualität besser.
    • Das lässt sich so verstehen, dass loss terms mit niedrigem (t) geringer gewichtet werden und das Netzwerk sich dadurch stärker auf das schwierigere Problem konzentriert, stark verrauschte Bilder zu denoisen.

DDPM-Sampling und 2D-Beispiel

  • Wenn ein trainiertes Rauschschätzmodell (\epsilon_\theta(x_t,t)) vorliegt, kann der umgekehrte Prozess gesampelt werden.
    • Man sampelt ein Zufallsrauschbild mit (x_T \sim \mathcal{N}(0,I)).
    • Man läuft die Timesteps von (T) bis 1 rückwärts durch und sagt das Rauschen vorher.
    • Mit dem vorhergesagten Mittelwert und der Varianz sampelt man (x_{t-1}).
  • Der Ablauf von DDPM sieht wie folgt aus:
    • Es soll die underlying distribution eines Bilddatensatzes gelernt werden.
    • Der forward noising process wandelt (x_0) schrittweise in (x_T) um.
    • Der umgekehrte Prozess lässt sich bei großem (T) näherungsweise als gaußförmig behandeln.
    • Wenn man annimmt, dass (x_0) ein bestimmtes Bild aus dem Datensatz ist, kann die bekannte Verteilung exakt berechnet werden.
    • Mit KL divergence wird trainiert, dieser bekannten Verteilung für alle Trainingsbilder nahe zu kommen.
    • Dieser Prozess optimiert eine lower bound, die die likelihood der Wiedererzeugung des Datensatzes maximiert.
  • Das Beispiel mit dem Datasaurus-Datensatz aus 142 Punkten zeigt das Lernen einer 2D-Verteilung.
    • Ein MLP mit 3 hidden layers, hidden size 64 und ReLU hat mehr als 12.000 Parameter.
    • Ohne Timestep-Information entsteht nicht die gewünschte dinosaurierförmige Verteilung.
    • Wenn man den Timestep (t=0,\dots,50) auf den Bereich 0 bis 1 normalisiert und als Eingabe verwendet, werden die Ergebnisse besser.
    • Mit Fourier encoding, das die Eingabe in einen random-frequency-feature-Raum transformiert, wird eine bessere Verteilung gelernt.
  • Auch die Anpassung des noising schedule ist wichtig für die Performance.
    • Der Ansatz von Ho 2020 lässt (\alpha_t) linear abnehmen und setzt (\bar\alpha_T \approx 0), wodurch er gut zu hochauflösenden Bildern passt.
    • Niedrigdimensionale Daten sehen schon nach einem mittleren Fortschritt wie Rauschen aus; passt man den schedule so an, dass mit mehr high-signal-Beispielen trainiert wird, verbessert sich die Performance.
    • Der ursprüngliche schedule im Beispiel endete bei (\bar\alpha_T \approx 0.28) und ging damit nicht bis zu reinem Rauschen; der neue schedule endet bei 0,6, einem Mittelwert des bisherigen schedules.

Fortschritte zur Beschleunigung der Generierung

  • Score Matching und ODE-basierte Sampler

    • Ein früher Nachteil von Diffusionsmodellen war die langsame Generierungsgeschwindigkeit, bedingt durch die Gauß-Annahme der Rückwärtsverteilung in DDPM
    • Die Richtung des Rauschens, die das Modell aus dem noisy Input (x_t) vorhersagt, entspricht – abgesehen von timestep-abhängigen Konstanten – dem log-likelihood gradient, also dem Score, mit dem der Forward Process (x_t) erzeugt
    • Der Score lässt sich als vector field verstehen, das die Richtung angibt, in die man sich zu den Modi der Verteilung bewegen sollte
    • Ein Noise-conditioning score network lernt den Score eines schrittweise verrauschten Datensatzes und erzeugt neue Samples, indem es dem Score Field folgt
    • Der Forward Diffusion Process lässt sich als stochastic differential equation (SDE) beschreiben
    • Es gibt auch eine ODE, die einen deterministic process mit denselben Verteilungen je timestep beschreibt; diese ODE hat eine geschlossene Form, die die score function enthält
    • Dadurch wird auch bei vortrainierten diffusion models vollständig deterministic Sampling möglich, und allgemeine ODE solver können fürs Sampling verwendet werden
    • DDPM kann in Stable Diffusion bis zu 1000 Schritte benötigen, um hochwertige Ergebnisse zu erzielen
    • Ein auf der Euler method basierender Sampler kann bereits mit etwa 10 Schritten hochwertige Ergebnisse liefern
    • Karras 2022 behandelt die Tradeoffs von Samplern und den Umstand, dass die Stochasticity von stochastic samplern wie DDPM in manchen Fällen wichtig sein kann
  • Distillation

    • Progressive distillation nutzt einen vortrainierten Teacher, der in 1000 Schritten sampelt, und trainiert einen Student darauf, die 2-Schritt-Ausgabe des Teachers in 1 Schritt vorherzusagen
    • Wiederholt man diesen Prozess und macht den Student zum neuen Teacher, lässt sich die Zahl der Schritte jedes Mal halbieren
    • Progressive distillation ist verlustbehaftet; bei zu starker Anwendung können Samples verschwommen oder unrealistisch wirken
    • Adversarial distillation trainiert zusätzlich einen Discriminator, um die Realitätsnähe der Student Samples zu erhöhen, steht aber – wie von GANs bekannt – in einem Tradeoff mit der sample diversity
    • Stable Diffusion XL Turbo wurde mit diesem Verfahren trainiert und kann hochwertige Bilder in einem einzigen Schritt erzeugen

Bedingte Generierung und Guidance

  • Bedingte Diffusionsmodelle

    • Wenn ein auf Tierbildern trainiertes Modell nur Katzen erzeugen soll, muss die bedingte Verteilung (p(x \mid y)) modelliert werden
    • Trainiert man ein diffusion model (\epsilon_\theta(x_t,t,y)) mit ((x_0,y))-Paaren aus dem Datensatz, lassen sich Bedingungsinformationen wie class label, text embedding oder segmentation mask verwenden
    • Ho 2021 trainierte ein class-conditional diffusion model auf ImageNet
    • Wenn für ein bestimmtes (y) nicht genügend Samples aus (p(x \mid y)) vorhanden sind, kann das zu Samples führen, deren Label unrealistisch ist oder deren Vielfalt gering ist
    • Deshalb braucht es während der Generierung guidance, um zu steuern, wie stark das Modell dem Label folgen soll
  • Classifier guidance

    • Wenn ein Classifier (p_\phi(y \mid x_0)) ausgibt, kann man das Bild mithilfe des Gradienten in Bezug auf den Input in Richtung der gewünschten Klasse (y) verschieben
    • Addiert man in jedem Sampling-Schritt den Classifier-Gradienten zum estimated mean, kann der Diffusion Process das Bild in einen plausiblen Bereich des image space bringen
    • Der Classifier wird mit noisy images trainiert, damit er noisy image (x_t) verarbeiten kann
    • Im Beispiel der „T-shirt“-Klasse von Fashion-MNIST lassen sich classifier-guided samples selbst mit einem Classifier mit 40 % Genauigkeit erzeugen
    • Der guidance parameter cg skaliert den Classifier-Gradienten
    • Stärkere guidance verstärkt die Klassenmerkmale, kann aber die Realitätsnähe verringern
  • Classifier-free guidance

    • Classifier-free guidance führt guidance ohne separaten Classifier aus
    • Wendet man die Bayes-Regel an, wird der class gradient zur Differenz zwischen conditional score und dem Score der gesamten Daten
    • Da ein denoising diffusion model den Score der Trainingsdaten lernt, wird ein einziges diffusion model für dieselben Samples auf zwei Arten trainiert
    • Training mit class label (y)
    • Training mit null class label
    • Beim Sampling führt man sowohl einen Aufruf mit dem gewünschten class label als auch einen Aufruf ohne Label aus und verwendet die Differenz als guidance vector

Bildbedingungen und Steuerung

  • Image-to-Image und SDEdit

    • Grundlegendes Image-to-Image ist ohne erneutes Training des Modells möglich
    • Dem Eingabebild wird entsprechend der gewünschten Conditioning Strength Rauschen hinzugefügt, anschließend wird es denoised
    • Für starkes Conditioning wird weniger Rauschen hinzugefügt
    • Für schwaches Conditioning wird mehr Rauschen hinzugefügt
    • Dieses Verfahren ist SDEdit und erzeugt Ergebnisse mit einer ähnlichen Gesamtform wie das Eingabebild
    • Ein Nachteil ist, dass sich nicht fein steuern lässt, was genau das Eingabebild kontrollieren soll
    • Wenn eine Eingabeskizze vorhanden ist, entsteht ein Trade-off: Das Ergebnis sieht entweder wie eine Skizze aus oder folgt der vorgegebenen Form nicht ausreichend
  • Sketch-Guided Diffusion und ControlNet

    • Um die Generierung mit einem Skizzenbild (y) zu konditionieren, kann man ein Modell trainieren, das aus dem noisy image (x_t) die Skizzenlinien (\hat{y}=F(x_t)) vorhersagt, und jeden Sampling-Schritt mit dem Sketch-Loss-Gradienten guiden
    • Das ist die Idee von Sketch-Guided Diffusion
    • Ein anderer Ansatz besteht darin, die Architektur so zu ändern, dass der Denoiser ein Conditioning Image (y) erhält, und ihn mit ((x_0,y))-Paaren finezutunen
    • Einfaches Fine-Tuning kann zu Overfitting und Catastrophic Forgetting führen
    • ControlNet erstellt eine Kopie, um die Gewichte des Originalmodells zu bewahren, friert das Originalmodell ein und trainiert das Control-Net sowie die Parameter der 1x1-Convolution
    • Die Convolution wird anfangs mit Nullen initialisiert und lernt schrittweise ein Delta für den Denoising-Schritt
    • In der Praxis wird ControlNet nicht auf Ebene des gesamten Denoising Model angewendet, sondern pro Block
    • Nach Human-Evaluation-Kriterien zeigt es eine bessere Leistung als Alternativen wie Sketch-Guided Diffusion
    • In Kombination mit LoRA lässt sich ControlNet effizient auf Consumer-GPUs trainieren
  • Inpainting

    • Inpainting ist die Aufgabe, den masked part eines Bildes zu füllen
    • Ein einfacher Image-to-Image-Ansatz, bei dem nur dem masked part Rauschen hinzugefügt wird, funktioniert nicht
    • Bei (t>0) weiß das Denoising Model nicht, wie es den non-noisy part behandeln soll
    • Der funktionierende Ansatz besteht darin, sowohl dem masked als auch dem unmasked part Rauschen hinzuzufügen und dies als (x_T) einzuspeisen
    • Danach wird in jedem Sampling Step (t) der unmasked part des Originalbilds kopiert, passend zum Timestep (t) mit Rauschen versehen und über (x_t) gelegt, um als Eingabe für den Denoiser zu dienen
  • Text-to-Image

    • Text-to-Image ist Conditional Generation mit einem Text-Embedding-Label
    • OpenAIs Dall-E trainiert ein CLIP-Encoding-Model, das Bilder und Texte in denselben Raum projiziert
    • Ein multimodaler Embedding Space ist nicht zwingend erforderlich
    • Google Imagen codiert Text mit dem Large Language Model T5 als Embedding
    • Wenn das Embedding eine ausreichend reichhaltige Repräsentation ist, kann es als Bedingung für Text-to-Image verwendet werden

Trainingsdaten und Ethik

  • Datensätze für Bildgenerierungsmodelle sind kein Problem, das nur Diffusionsmodelle betrifft, aber sie sind ein wichtiger Faktor in der Diskussion über generative Modelle
  • Beispiele für Datensätze sind:
    • Dall-E 1 wurde mit 250 Millionen Text-Image-Paaren trainiert, Dall-E 2 mit 650 Millionen Paaren; der Dataset ist Closed Source
    • Stable Diffusion 1 wurde zunächst mit 2 Milliarden Paaren aus LAION-2B-en trainiert und anschließend mit 170 Millionen Paaren aus LAION-5B finegetuned
    • Spätere Stable-Diffusion-1-Checkpoints wurden auf einem nach „aesthetics“-Kriterien ausgewählten Subset von LAION-5B finegetuned
    • LAION-400M wurde im August 2021 veröffentlicht und war ein Versuch, den Prozess zu reproduzieren, den OpenAI zum Training von CLIP verwendet hatte
    • LAION wurde aus Common Crawl abgeleitet: HTML-Image-Tags mit Alt-Text wurden gesammelt, und mit CLIP wurden Einträge verworfen, deren Inhalt nicht passte
  • Einige Nutzer erstellten Listen von Artists, die in LAION auftauchen, und haveibeentrained.com ermöglicht es Nutzern zu prüfen, ob ihre Bilder in LAION oder anderen Datasets enthalten sind
  • Ein wesentlicher Faktor des AI-Art-Backlash ist das ethische Problem, dass in Datasets wie LAION Kunst ohne Zustimmung der Artists gesammelt und zum Training von Bildgenerierungsmodellen verwendet wird
    • Ebenfalls wird angeführt, dass Bildmodelle eine direkte Bedrohung für den Lebensunterhalt von Artists sein können
  • Es gibt auch Bestrebungen, konkurrenzfähige Bildgenerierungsmodelle auf ethischere Weise zu trainieren
    • Adobe Firefly soll ausschließlich mit lizenzierten Inhalten wie Adobe Stock und urheberrechtsfreien Public-Domain-Inhalten trainiert werden
    • Kürzlich gab es einen Scandal, dass Firefly mit einigen Midjourney-Bildern trainiert worden sei
    • Stable Diffusion 3 erlaubte Artists ein Opt-out für die Trainingsnutzung; dadurch wurden über 80 Millionen Bilder entfernt

Data Poisoning

  • Nightshade ist ein im AI-Art-Backlash viel beachteter Data-Poisoning-Angriff auf Bildgenerierungsmodelle
  • Er nutzt aus, dass Modelle zwar mit Milliarden von Bildern trainiert werden, es zu einem bestimmten Concept aber möglicherweise nur einige Dutzend Bilder gibt
  • Nightshade ist ein Ansatz, Daten auf concept-specific basis zu poisonen
  • Die Autoren des Papers zeigen ein Beispiel, bei dem sie Stable Diffusion XL mit 50 modifizierten Bildern angreifen, sodass das Modell jedes Mal, wenn im Prompt „car“ erwähnt wird, eine Kuh ausgibt
  • Die Modifikationen werden durch Optimierung einer Multi-Objective Function mit Perceptual Loss so entworfen, dass sie für das menschliche Auge möglichst unauffällig sind
  • Der anfängliche Angriff benötigt Zugriff auf den Feature Extractor des Modells
  • Die Autoren untersuchten, wie ein Angriff, der auf einem von vier Modellen basiert, bei den anderen Modellen funktioniert, und berichten, dass sich der Angriff auch auf Modelle jenseits des Ausgangsmodells generalisiert

Erzeugung hochauflösender Bilder

  • Cascaded Diffusion ist ein früher Ansatz, bei dem zunächst eine Generierung in niedriger Auflösung durchgeführt und das Bild anschließend mit mehreren Super-Resolution-Diffusion-Models upgescaled wird
  • Stable Diffusion verwendet Latent Diffusion
    • Bilder werden per Diffusion im Latent Space eines Auto-Encoders erzeugt
    • Anschließend wird das Latent decodiert, um ein hochauflösendes Bild zu erhalten
  • Die Autoren von Latent Diffusion kamen zu dem Schluss, dass es am besten funktioniert, statt Auto-Encoder und Diffusion Model gemeinsam zu trainieren, zunächst den Auto-Encoder darauf zu trainieren, Bilddaten zu komprimieren, und danach separat ein Diffusion Model auf den encoded Latents zu trainieren
  • Cascaded Diffusion und Latent Diffusion hängen mehrere andere Modelle an das Backbone Diffusion Model, um generierte Bilder zu skalieren
  • Fortschritte bei der Auflösung mit einem Single Model beruhen auf verschiedenen Training Tricks, etwa Multi-Scale Loss und der Verwendung von Backbone-Architekturen wie Transformern

Anwendungen von Diffusionsmodellen außerhalb von Bildern

  • Audio, Video, 3D

    • Riffusion war ein frühes Modell zur Musikgenerierung, das Stable Diffusion per Fine-Tuning auf die Ausgabe von Spektrogramm-Bildern anpasste und 12 Sekunden lange Songs erzeugte
    • Sonauto ist ein neueres, steuerbares Modell auf Basis eines Diffusion Transformer und kann 1 Minute und 35 Sekunden lange Songs mit kohärenten Lyrics erzeugen
    • OpenAI Sora und Google Veo sind Diffusion-Transformer-Modelle zur Videogenerierung, die aus Text-Prompts einminütige Videoclips in 1080p erzeugen können
    • Sora zerlegt Videos in Spacetime-Patches und wird darauf trainiert, die Patches zu denoisen
    • Die zentrale Erkenntnis aus dem Technical Report zu Sora ist, dass Diffusion Transformer auf Videogenerierung skalieren und ihre Leistung mit Compute skaliert
    • OpenAI macht hier nicht klar, ob mit Compute Dataset-Größe, Modellgröße oder Trainingszeit gemeint ist
    • Beide Modelle unterstützen unter anderem Masked Editing, die Erzeugung nahtloser Loop-Videos, die Animation statischer Bilder und die zeitliche Erweiterung von Videos nach vorn und hinten
    • Frühere Arbeiten zu Video-Diffusion umfassen Imagen Video; autoregressive Modelle wie VideoPoet sind ebenfalls Alternativen
    • 2D-Diffusionsmodelle lernen implizit 3D-Features wie Correspondence
    • DreamFusion nutzt ein Text-to-Image-Diffusionsmodell als Prior, um einen 3D-Rekonstruktionsalgorithmus auf Basis von Gradient Descent zu steuern
    • Stable Video 3D verbessert mit Video-Diffusion die Multi-View Consistency
    • Solche Modelle hängen weiterhin von 3D-Rekonstruktionsalgorithmen wie Photogrammetrie, 3D Gaussian Splatting und Neural Radiance Fields ab
    • Ein möglicher Grund dafür ist, dass 3D-Daten vergleichsweise spärlich sind
  • Life Sciences

    • Diffusionsmodelle finden in Medizin und Biologie zahlreiche Anwendungen
    • Partielle CT- und MRT-Scans reduzieren die Strahlenbelastung von Patienten deutlich und erhöhen den Komfort, sind aber schwierig, weil aus den partiellen Daten ein vollständiger Scan rekonstruiert werden muss
    • Diffusionsmodelle bieten bei der Rekonstruktion medizinischer Bilder bessere Leistung und Generalisierung als überwachte Methoden und treiben den Stand der Technik voran
    • DeepMinds AlphaFold 3 verwendet eine diffusionbasierte Architektur und zeigt deutliche Verbesserungen gegenüber früheren Versionen und spezialisierten Tools
    • Bei einer gegebenen Liste von Eingabemolekülen startet AlphaFold 3 mit einer Atom-Cloud, verfeinert sie iterativ und erzeugt eine gemeinsame 3D-Struktur
    • Dadurch wird sichtbar, wie die Moleküle ineinandergreifen
    • Weitere Anwendungen in der Computational Biology umfassen Single-Cell-Datenanalyse, Wirkstoff- und Small-Molecule-Design sowie Protein-Ligand-Interaktionen
  • Robotik

    • Roboter, die mit der realen Welt interagieren, müssen ein sehr breites Spektrum physikalischer Verhaltensweisen ausführen können
    • Der traditionelle Ansatz programmiert für Aufgaben wie das Öffnen von Türen oder das Binden von Schnürsenkeln zahlreiche Edge Cases und Recovery-Methoden explizit aus
    • In kontrollierten Umgebungen wie Fabriken funktioniert das, skaliert aber nicht
    • Policy Learning from Demonstration ist ein besser skalierbarer Ansatz, bei dem Roboter durch menschliche Demonstrationen lernen, eine Aufgabe auszuführen
    • Üblicherweise steuert ein Mensch per Teleoperation die Motoren des Roboters, um Demonstrationen zu liefern
    • Es können Dutzende bis Hunderte Demonstrationen erforderlich sein
    • Anschließend lernt der Roboter, auf Basis von Sensorbeobachtungen und gegebenenfalls einem Natural-Language-Prompt Aktionen zu erzeugen
    • Diffusionsmodelle sind bei Modellen zur Policy-Generierung Stand der Technik und zeigen gegenüber früheren Techniken deutliche Verbesserungen
    • Sie können multimodale Action Distributions auf natürliche Weise verarbeiten
    • Sie eignen sich gut für hochdimensionale Action Spaces
    • Die Trainingsstabilität ist beeindruckend

1 Kommentare

 
GN⁺ 2024-05-27
Hacker-News-Kommentare
  • Ich dachte, Diffusion sei aus Score Matching hervorgegangen, aber heute habe ich gelernt, dass Diffusion älter ist als die Theorie des Score Matching.
    Als OpenAI mit 250 Millionen Bildern trainierte, gab es also keine wirklich gute Theorie, die erklärte, warum man die zugrunde liegende Verteilung modelliert – eine ziemlich kühne Entscheidung.
    • Das ursprüngliche Paper von Dickstein 2015 [1] formulierte Diffusion als Maximierung einer unteren Schranke der Log-Likelihood für die Verteilungserzeugung; ganz ohne Theorie war es also nicht.
      Soweit ich es verstehe, kam der Durchbruch jedoch durch die experimentellen Ergebnisse von Ho [2] und Nichol [3]. Sie zeigten nämlich, dass Diffusion nicht nur hochwertige Samples erzeugen kann, sondern in manchen Fällen besser als GANs ist.

      [1] https://arxiv.org/abs/1503.03585
      [2] https://arxiv.org/abs/2006.11239
      [3] https://arxiv.org/abs/2105.05233

  • Welche Python-Bibliothek unter Apache- oder MIT-Lizenz ist für Diffusion Transformers am besten?
  • Ist das Verfahren bei classifier-free guidance, „für jedes Trainingssample x0x0 ein einzelnes Diffusionsmodell einmal mit dem Klassenlabel yy und einmal mit einem Null-Klassenlabel gepaart zu trainieren“, nicht exakt dasselbe wie das Problem, das im ersten Absatz desselben Abschnitts als schlecht beschrieben wird?
    Es wirkt wie dasselbe Problem wie in der Passage: „Wenn man für ein bestimmtes yy nicht genug Samples von p(x∣y)p(x∣y) gesehen hat, kann das Label zu unrealistischen oder zu wenig diversen Samples führen. Deshalb möchte man während der Generierung steuern, wie stark das Modell dem Label ‚folgen‘ soll.“
    • Es ist nicht ganz dasselbe. Sampling wird nicht einfach als Ziehen aus der bedingten Verteilung formuliert, sondern so, dass ein unkonditioniertes Sample um einen steuerbaren Betrag in Richtung des konditionierten Samples verschoben wird. Dadurch lässt sich der Trade-off zwischen Realismus und Klassenstärke kontrollieren.
      Es stimmt aber, dass ein ähnliches Problem mit nachlassendem Realismus entsteht, wenn man die Guidance-Stärke zu hoch setzt.
  • „2022 habe ich Zeit damit verbracht, Zeichnen zu lernen, und wurde vom Aufstieg von AI-Art-Modellen wie Stable Diffusion kalt erwischt. Plötzlich war der Computer ein viel besserer Maler, als ich es je erwarten konnte.“
    Ich hoffe trotzdem, dass der Autor weiterzeichnet. Je stärker AI in kreative Arbeit eindringt, desto mehr möchte ich eigentlich alles einreißen.
    • Bei mir war es umgekehrt: Seit ich Stable Diffusion, Midjourney und Ähnliches gesehen habe, bin ich motivierter, zu zeichnen und Digital Art auszuprobieren.
      Ich versuche, die Ausgaben solcher Tools zu nehmen und sie selbst nachzubauen oder nachzuzeichnen.
  • Dank des Artikels verstehe ich jetzt viel besser, wie und warum Diffusionsmodelle funktionieren. Zufälligkeit ist auf seltsame Weise mächtig.
    Jetzt ist es Zeit, selbst eines in einer halbwegs ungeeigneten Sprache zu coden. Für Leute, die nur die Kommentare überfliegen, gibt es kaum etwas zusammenzufassen. Der Artikel selbst ist die Kurzfassung von Stable Diffusion.
  • Ist die Trainingsschleife nicht falsch? In der Formel für xts werden weder x0s noch eps verwendet, sodass es so aussieht, als würde einfach zufälliges Rauschen vorherzusagen trainiert.
    • Ich weiß nicht, welche Formel gemeint ist, aber nach meinem Verständnis „sieht“ das Netzwerk das Ground-Truth-Bild nie direkt. Stattdessen muss es über die Loss Function lernen, die Informationen indirekt zu erschließen.
      Die Loss Function enthält Informationen über das Rauschen, und weil das Netzwerk das verrauschte Bild genau sieht, ist das äquivalent dazu, aus dem tatsächlichen Sample-Bild zu lernen. Man könnte auch eine Loss Function entwerfen, die die Differenz zwischen Ausgabe und echtem Bild misst; die Informationsmenge wäre äquivalent, aber wegen der Eigenschaften von gaußschem Rauschen gilt die Rauschvorhersage als deutlich vorteilhafter für die Gradientenschätzung. Der Kern ist: Die Information über das echte Bild steckt in der Schleife, aber sie gelangt nur durch die Linse eines bestimmten Rauschens hinein.

    • Stimmt. Es sollte dieselbe Formel wie direkt davor sein:

      xts = alpha_bar[t].sqrt() * x0s + (1.-alpha_bar[t]).sqrt() * eps

      Außerdem ist der Code nicht konsistent. Im Sampling-Code werden Time Embeddings verwendet, im Trainingscode aber nicht.

  • Das Layout ist wirklich gut lesbar. Warum verschwende ich nur so viel Zeit damit, schwer lesbare Layouts zu bauen?
    Allerdings war es etwas schade, als ich Reader View eingeschaltet habe. Es wirkte, als wolle die Seite beweisen: „Diese Seite ist semantisch perfekt!!“, aber in dieser Umgebung war die Zeilenhöhe der Navigationsliste kleiner als 1 und dadurch stark zusammengestaucht. Sei’s drum ;)