Was ist ein Diffusionsmodell? Eine umfassende Definition

Was ist ein Diffusionsmodell? Eine umfassende Definition
Was ist ein Diffusionsmodell?
Diffusionsmodelle sind eine Klasse von probabilistischen generativen Modellen. Sie sind leistungsfähig bei der Rauschreduzierung im [maschinellen Lernen] (https://zilliz.com/learn/making-machine-learning-more-accessible-for-application-developers) sowie bei der Bildsynthese. Ein Diffusionsmodell zerstört schrittweise Daten, indem es Gaußsches Rauschen hinzufügt, und lernt, den Prozess zur Erzeugung von Stichproben umzukehren.
Bei der Bilderzeugung fügen Diffusionsmodelle beispielsweise hundert- oder tausendmal Rauschen zu einem Bild hinzu, bis es ein reines Rauschbild wird. Anschließend wird das Rauschen allmählich aus dem Bild entfernt, bis man ein kohärentes Bild erhält. Schließlich kann das Modell neue unterschiedliche Bilder erzeugen, die dem Originalbild sehr ähnlich sind.
Komponenten von Diffusionsmodellen
Diffusionsmodelle beruhen auf drei zugrundeliegenden mathematischen Rahmenwerken:
- Denoising diffusion probabilistic model (DDPMs): DDPMs verwenden zwei Markov-Ketten, eine Vorwärts- und eine Rückwärtskette, um Rauschen aus Daten hinzuzufügen oder zu entfernen. Sie nutzen tiefe neuronale Netze, um zu lernen, wie das in der Vorwärtskette eingebrachte Rauschen umgekehrt werden kann, was letztlich die Erzeugung von Datenproben ermöglicht, die der ursprünglichen Datenverteilung sehr ähnlich sind.
- Score-basierte generative Modelle (SGMs): SGMs funktionieren, indem sie den Daten Gaußsches Rauschen hinzufügen und mithilfe eines mit Rauschen trainierten tiefen neuronalen Netzes Score-Funktionen schätzen. Diese Score-Funktionen leiten die Erzeugung neuer Datenproben, die der ursprünglichen Verteilung sehr ähnlich sind.
- Stochastische Differentialgleichungen (Score-SDEs): Score-SDEs verallgemeinern DDPMs und SGMs zur Modellierung von Daten mit unendlichen Zeitschritten oder Rauschwerten. Sie verwenden SDEs zur Modellierung der Rauschstörungs- und Stichprobenerzeugungsprozesse und stützen sich auf Score-Funktionen zur Entrauschung der erzeugten Daten.
Wie funktionieren Diffusionsmodelle?
Diffusionsmodelle arbeiten auf einer hochentwickelten Ebene, die das sorgfältige Zusammenspiel von Daten, kontrolliertem Gaußschen Rauschen und einem latenten Zwischenraum umfasst. Dieser komplizierte Prozess befähigt sie letztendlich dazu, verbesserte Versionen der ursprünglichen Daten zu erstellen. Lassen Sie uns tiefer in die Mechanik eintauchen:
1. Die Rolle des Gaußschen Rauschens:
Bei Diffusionsmodellen wird systematisch Gaußsches Rauschen in die Berechnungen eingeführt. Bei jedem Iterationsschritt wird den Daten ein genau kontrolliertes Gauß'sches Rauschen hinzugefügt. Dieses Rauschen wird aus einer Gauß-Verteilung abgetastet, was eine feinkörnige Steuerung des Rauschpegels ermöglicht.
# Hinzufügen von kontrolliertem Gaußschen Rauschen noisy\_data = original\_data + noise
2. Übergang zur Normalverteilung:
Um den Diffusionsprozess zu erleichtern, werden die Eingangsdaten einer Transformation unterzogen. Sie werden zunächst in eine Normalverteilung umgewandelt, die durch einen Mittelwert von 0 und eine Standardabweichung von 1 gekennzeichnet ist. Diese Umwandlung vereinfacht nicht nur die Rauschkontrolle, sondern legt auch die Grundlage für die Diffusionsreise.
# Umwandlung der Daten in eine Normalverteilung normalisierte Daten = (ursprüngliche Daten - ursprüngliche Daten.mean()) / ursprüngliche Daten.std()
3. Diffusionsmodellierungsprozess:
Untersuchen wir den Prozess der Diffusionsmodellierung im Rahmen generativer Modelle, insbesondere für Bilder oder Videos. Der Diffusionsprozess besteht aus zwei entscheidenden Phasen:
- Vorwärtsdiffusionsprozess: In dieser Phase macht sich das Modell auf den Weg, die Pixel eines ursprünglichen Bildes zu transformieren. In Hunderten oder gar Tausenden von Schritten wird nach und nach Gaußsches Rauschen eingeführt. Dieser Prozess läuft in einer Markov-Kette ab, wobei bei jedem Schritt eine genau kontrollierte Menge an Rauschen eingeführt wird. Das Bild "diffundiert" quasi in einen Zustand reinen Rauschens.
# Vorwärtsdiffusionsprozess for step in range(num\_steps): noisy\_image = noisy\_image + step\_noise\[step]
- Umgekehrter Diffusionsprozess: Im Gegensatz dazu markiert der umgekehrte Diffusionsprozess den Weg zur Klarheit. Diese Phase umfasst die Entfernung von Rauschen, die Skalierung und iterative Schritte, die schließlich zum Entstehen eines klaren Bildes führen. Es ist so, als würde man beobachten, wie ein nebliges Bild allmählich schärfer wird.
# Umgekehrter Diffusionsprozess for step in reversed(range(num\_steps)): noisy\_image = noisy\_image - step\_noise\[step]
Beim Vorwärtsdiffusionsprozess ist es wichtig zu beachten, dass die Skalierung der Pixelwerte ein wichtiger Schritt ist, bevor weiteres Rauschen hinzugefügt wird. Wird dieser Schritt übersprungen, kann dies zu einer Sättigung des Bildes führen, wodurch Details verloren gehen.
# Skalierung der Pixelwerte skaliert\_Bild = Original\_Bild \* Skalierung\_Faktor
4. Nutzung von Faltungsneuronalen Netzen (CNNs):
Im Rahmen des Reverse-Diffusion-Verfahrens spielen Faltungsneuronale Netze (CNNs) eine zentrale Rolle. Bei einem Bild, das von reinem Rauschen umgeben ist, können diese neuronalen Netze das Bild entrauschen. Sie entfernen gekonnt das Rauschen und enthüllen ein klares, kohärentes Bild, das dem Original sehr ähnlich ist.
5. Training für künftige Generationen:
Nach dem Training wird das Diffusionsmodell auf die Erzeugung neuer Bilder vorbereitet. Dazu wird absichtlich Rauschen in die Eingabedaten eingebracht. Das Modell übernimmt dann das Kommando und nutzt seine erlernten Entrauschungsfähigkeiten, um neue, unverfälschte Versionen der Eingabedaten zu erstellen.
# Erzeugen neuer Bilder durch Einbringen von Rauschen new\_image = noisy\_input\_data + generated\_noise
Zwischen latentem Raum in modernen Diffusionsmodellen:
Im Bereich der modernen Bilddiffusionsmodelle gibt es eine interessante Neuerung. Bei diesen Modellen wird oft ein dritter Akteur in den Mix eingeführt - ein latenter Zwischenraum. Anstatt direkt auf den rohen Bildpixeln zu arbeiten, findet der Diffusionsprozess in diesem latenten Raum statt. Diese Innovation verbessert die Effizienz und Effektivität von Diffusionsmodellen und ermöglicht nuanciertere und kontrollierte Transformationen.
Anwendungen von Diffusionsmodellen in AI/ML
Das Diffusionsmodell ist ein Ansatz, der in der generativen Modellierung aufgrund seiner vielen realen Anwendungsfälle immer beliebter wird. Es wird in der Bilderzeugung, der Text-zu-Bild-Erzeugung, der Bild-Superauflösung, der Erzeugung natürlicher Sprache usw. eingesetzt.
Generierung natürlicher Sprache
[Die Verarbeitung natürlicher Sprache (https://zilliz.com/learn/top-5-nlp-applications) (NLP) hat in der heutigen Welt der KI viele reale Anwendungen. Aufgrund ihrer Fähigkeit, verschiedene Ergebnisse zu produzieren, werden Diffusionsmodelle hauptsächlich bei der Erzeugung natürlicher Sprache (NLG) eingesetzt. Sie ermöglichen viele NLG-Aufgaben in großen Sprachmodellen (LLM) wie z. B. generative vortrainierte Transformatoren (GPT). Dazu gehören Inhaltsgenerierung, Textzusammenfassung und Textvervollständigung.
Bild- und Videogenerierung
Diffusionsmodelle verbessern die Qualität der erzeugten Videos. Sie lösen die Probleme der Komplexität und der räumlich-zeitlichen Kontinuität von Videobildern. Mit dieser Funktion können Inhaltsersteller Textaufforderungen eingeben, um kurze, hochwertige Videoskripte zu erstellen.
Text-zu-Bild-Generierung
Heute können Sie Bilder erzeugen, indem Sie Textaufforderungen in einen Text-Bild-Generator eingeben. Imagen von Google und DALL-E von OpenAI sind Beispiele dafür. LLMs verwenden Diffusion, um visuelle Wörter in ein Bild zu dekodieren. Im Idealfall kodieren diese Generatoren Bilder als visuelle Vektorwörter. Sie verwenden dann diese Wörter, um ein Diffusionsmodell zu konditionieren, das ein neues Bild mit einem ähnlichen Stil wie das Originalbild erzeugt.
Bild-Superauflösung
Eine der frühesten Anwendungen von Diffusionsmodellen ist die Superauflösung von Bildern. Dabei geht es darum, die Auflösung eines Bildes von einer niedrigen auf eine hohe Auflösung zu erhöhen, während der Inhalt so weit wie möglich erhalten bleibt.
Die Bildauflösung mithilfe des Diffusionsmodells erfolgt in zwei Schritten. Zunächst wird das Diffusionsmodell verwendet, um Bilder mit niedriger Auflösung zu erzeugen, die einfacher und schneller zu trainieren sind. Anschließend trainieren Sie ein separates Diffusionsmodell und konditionieren das Modell auf eine Superauflösung, die die Auflösung von Bildern niedriger Qualität verbessert.
Beschränkungen von Diffusionsmodellen
Diffusionsmodelle sind leistungsstark und revolutionieren die KI-Branche. Wie wir im Folgenden zeigen werden, haben sie jedoch auch ihre Tücken.
Diffusionsmodelle brauchen Zeit zum Trainieren
Diffusionsmodelle beruhen auf der Rauschunterdrückung, um Bilder zu erzeugen. Die Ausbildung von Entrauschungsmodellen von Grund auf erfordert viele Iterationen. In den ersten Stufen werden Diffusionsmodelle länger trainiert. In den späteren Stadien verringert sich der Trainingsaufwand allmählich, wenn das Modell Stichproben erzeugen kann, die den Trainingsdaten genau entsprechen. Dieser Prozess kann Minuten oder Stunden oder Rechenzeit in Anspruch nehmen. Mit anderen Worten: Diffusionsmodelle verwenden Tausende von Aufrufen an neuronale Netze, um Muster zu erzeugen, im Vergleich zu GANs, die nur einen Aufruf verwenden. Dadurch sind Diffusionsmodelle bei der Stichprobengenerierung langsamer.
Die Feinabstimmung eines Diffusionsmodells ist eine Herausforderung
Um eine individualisierte Version eines Modells zu erhalten, nehmen Sie ein vortrainiertes Modell und trainieren es mit Ihren eigenen Daten. Die Feinabstimmung eines vorab trainierten unbedingten Diffusionsmodells mit begrenzten Daten ist jedoch eine Herausforderung. Datenbeschränkungen können in den frühen Phasen des Trainings zu einer Überanpassung führen. Die aus überangepassten Modellen resultierenden Bilder sind von geringer Qualität und begrenzter Vielfalt.
Diffusionsmodelle erfordern einen großen Speicher
Große Diffusionsmodelle erfordern einen hohen Speicherbedarf. Ein Diffusionsmodell kann Milliarden von Parametern enthalten. Sie werden daher auf leistungsstarken Servern trainiert und getestet. In Anbetracht der begrenzten GPU-Speichergröße ist die Implementierung dieser Modelle auf mobilen Geräten sehr anspruchsvoll. Aufgrund dieser Einschränkung haben mobile Geräte Schwierigkeiten, ein einzelnes großes Diffusionsmodell auszuführen.
Da die Nutzung des GPU-Speichers eine Bedrohung für den Einsatz von Diffusionsmodellen auf mobilen Geräten darstellt, werden derzeit Lösungen entwickelt. Eine Lösung ist die Veröffentlichung kleinerer Versionen von Diffusionsmodellen. Die Modelle sind so komprimiert, dass sie auf mobilen Geräten eingesetzt werden können.
FAQs
Was ist der Unterschied zwischen einem GAN und einem Diffusionsmodell?
Generative adversarial networks (GANs) arbeiten mit einem adversarialem Trainingsprozess. Sie verwenden ein generierendes neuronales Netzwerk, um Datenproben zu erzeugen, und ein diskriminierendes neuronales Netzwerk, um zwischen echten und gefälschten Datenproben zu unterscheiden. Ein Diffusionsmodell ist ein wahrscheinlichkeitsbasiertes Modell, das Stichproben erzeugt, indem es iterativ Gaußsches Rauschen zu den Daten hinzufügt und eine gelernte Entrauschungsfunktion anwendet, um die Daten schrittweise in realistische Stichproben umzuwandeln.
Was ist der Unterschied zwischen Transformer und Diffusionsmodell?
Transformatoren nutzen Mechanismen der Selbstaufmerksamkeit, um die kontextuelle Beziehung zwischen Elementen in sequentiellen Daten zu erlernen, und eignen sich hervorragend für die Bildklassifizierung und NLP. Diffusionsmodelle zeichnen sich durch die Erzeugung hochwertiger, fotorealistischer Bilder aus.
Was sind die Herausforderungen von Diffusionsmodellen?
Diffusionsmodelle durchlaufen einen zeitaufwändigen Denoising-Trainingsprozess mit vielen Iterationen. Außerdem erfordern große Diffusionsmodelle mit Milliarden von Parametern umfangreiche Speicherressourcen. Schließlich kann die Feinabstimmung eines Diffusionsmodells mit begrenzten Daten zu einer Überanpassung führen, was zu qualitativ minderwertigen und weniger vielfältigen generierten Bildern führt.
Wie generiert ein Diffusionsmodell Bilder?
Diffusionsmodelle erzeugen Bilder durch einen iterativen Prozess, bei dem die Pixelwerte eines Bildes diffundiert und entrauscht werden, um zunehmend kohärentere und detailliertere Bilder zu erzeugen.
- Was ist ein Diffusionsmodell?
- Komponenten von Diffusionsmodellen
- Wie funktionieren Diffusionsmodelle?
- Anwendungen von Diffusionsmodellen in AI/ML
- Beschränkungen von Diffusionsmodellen
- FAQs
Inhalte
Kostenlos starten, einfach skalieren
Testen Sie die vollständig verwaltete Vektordatenbank, die für Ihre GenAI-Anwendungen entwickelt wurde.
Zilliz Cloud kostenlos ausprobieren