Verarbeitung natürlicher Sprache: Eine Einführung in generative Modelle

In diesem Blog werden mehrere weit verbreitete generative Modelle unter den Aspekten Prinzipien, Vor- und Nachteile vorgestellt, nämlich Variational Autoencoder (VAE), Generative Adversarial Network (GAN), autoregressives Modell (Autoregressives Modell), Flussmodell (Flow Model) und Diffusionsmodell ( Diffusionsmodell).

Variationaler Autoencoder (VAE)

Variational Autoencoder (VAE) ist ein generatives Modell, das 2013 von Kingma und Welling vorgeschlagen wurde. VAE führt die Idee der probabilistischen Inferenz basierend auf Autoencodern ein und zielt darauf ab, die potenzielle Darstellung von Daten zu erlernen und eine bessere Kontrollleistung bei der Generierung neuer Stichproben zu erzielen.

Im Folgenden sind die wichtigsten Konzepte und Prinzipien zu Variations-Autoencodern aufgeführt:

  • Autoencoder-Grundlagen: VAE basiert auf der Autoencoder-Struktur, einschließlich eines Encoders (Encoder) und eines Decoders (Decoder). Der Encoder ordnet die Eingabedaten einer Wahrscheinlichkeitsverteilung im latenten Raum zu, während der Decoder rekonstruierte Daten aus Proben im latenten Raum generiert.

  • Probabilistische Inferenz: VAE führt die Idee der probabilistischen Inferenz ein und geht davon aus, dass die Wahrscheinlichkeitsverteilung der latenten Variablen eine Normalverteilung ist und die latente Variable als Stichprobe aus der Wahrscheinlichkeitsverteilung betrachtet wird. Dies bedeutet, dass der Encoder nicht nur den Mittelwert und die Varianz der latenten Variablen lernt, sondern auch Stichproben aus der Verteilung durch diese Parameter abtastet, um die latente Darstellung zu generieren. Dadurch kann das Modell einen kontinuierlichen latenten Raum aus den Daten erlernen und innerhalb dieses Raums neue Proben generieren.

  • Variationsinferenz: Während des Trainingsprozesses wird Variationsinferenz verwendet, um die hintere Verteilung der latenten Variablen anzunähern, was durch Maximieren der Variationsuntergrenze (Variationsuntergrenze) erreicht wird. Dies beinhaltet den wichtigen Reparametrisierungstrick, der es ermöglicht, Stichproben der latenten Variablen zu generieren, indem Stichproben aus einer Standardnormalverteilung entnommen und anschließend mit dem erlernten Mittelwert und der Varianz skaliert und übersetzt werden, und ermöglicht, dass der Gradient der latenten Variablen Backpropagation ist.

Vorteil

  1. Kontinuität des latenten Raums: Der latente Raum von VAE ist kontinuierlich, was die Interpolation und Kontrolle im latenten Raum intuitiver macht. Benachbarte Punkte entsprechen ähnlichen Stichproben im Datenraum.
  2. Probabilistische Generierung: Der Prozess der VAE-Generierung von Stichproben ist probabilistisch und die Generierung derselben potenziellen Darstellung kann jedes Mal zu unterschiedlichen Stichproben führen. Dadurch wird das Modell zufälliger und vielfältiger.
  3. Interpretierbarkeit: VAE bietet eine probabilistische Interpretation der zugrunde liegenden Darstellung und macht das Modell robuster gegenüber Ausreißern und Rauschen.

Mangel

  1. Mehrdeutige Stichproben: VAE kann während des Generierungsprozesses mehrdeutige Stichproben erzeugen, die durch die Unsicherheit in der zugrunde liegenden Darstellung verursacht werden.
  2. Modellkomplexität: Das Training von VAE erfordert den Umgang mit komplexen probabilistischen Inferenzproblemen, was den Trainingsprozess relativ komplex und zeitaufwändig machen kann.

Insgesamt ist der Variations-Autoencoder ein leistungsstarkes generatives Modell, das es dem Modell ermöglicht, die komplexe Struktur der Daten flexibler zu lernen, indem latente Variablen der Wahrscheinlichkeitsverteilung eingeführt werden. VAE eignet sich gut für Aufgaben wie Bilderzeugung, Bildrekonstruktion, Datenkomprimierung und generative Bildbearbeitung. Ihre latenten Räume haben interessante Eigenschaften, so dass benachbarte Punkte im latenten Raum ähnlichen Stichproben im Datenraum entsprechen. Zu den Einschränkungen von VAE gehören jedoch Glätteannahmen für den latenten Raum, und die Qualität der generierten Bilder ist in einigen Fällen möglicherweise nicht so hoch wie bei anderen generativen Modellen.

Generatives gegnerisches Netzwerk (GAN)

Generative Adversarial Network (GAN) ist ein leistungsstarkes generatives Modell, das 2014 von Ian Goodfellow et al. vorgeschlagen wurde. Die Grundidee von GAN besteht darin, ein generatives Modell zu trainieren, indem zwei neuronale Netze miteinander konkurrieren, eines als Generator (Generator) und das andere als Diskriminator (Diskriminator). Der Vorschlag von GAN hat einen revolutionären Durchbruch auf dem Gebiet der generativen Modelle gebracht. Es nutzt gegnerisches Training, um dem Generator die Generierung realistischer Daten zu ermöglichen, während der Diskriminator seine Fähigkeit, reale Daten und generierte Daten zu identifizieren, kontinuierlich verbessert.

Im Folgenden sind die Hauptprinzipien und Komponenten von GAN aufgeführt:

  • Generator: Der Generator ist für die Generierung von Samples verantwortlich, die realen Daten ähneln. Es empfängt einen zufälligen Rauschvektor als Eingabe und generiert Schritt für Schritt Abtastwerte durch die Schichten des neuronalen Netzwerks. Das Ziel des Generators besteht darin, Daten zu generieren, die realistisch genug sind, um den Diskriminator zu täuschen.
  • Diskriminator: Der Diskriminator ist für die Unterscheidung zwischen vom Generator generierten Proben und echten Daten verantwortlich. Es empfängt reale Samples und vom Generator generierte Samples und versucht dann, diese zu unterscheiden. Das Ziel des Diskriminators besteht darin, die Eingabeproben genau zu klassifizieren, sodass die vom Generator erzeugten Proben nur schwer als Fälschung beurteilt werden können.
  • Gegnerischer Trainingsprozess: Während des Trainingsprozesses konkurrieren der Generator und der Diskriminator miteinander. Der Generator versucht, realistischere Proben zu erzeugen, um den Diskriminator zu täuschen, während der Diskriminator bestrebt ist, die Fähigkeit zur Unterscheidung zwischen realen und generierten Proben zu verbessern. Dies führt dazu, dass der Generator kontinuierlich verbessert wird, realistischere Proben erzeugt und der Diskriminator genauer wird.
  • Verlustfunktion: Das GAN-Training verwendet zwei Verlustfunktionen. Für den Generator hofft die Verlustfunktion, dass die generierten Proben im Diskriminator fälschlicherweise als echte Proben beurteilt werden. Daher besteht das Ziel des Generators darin, die Wahrscheinlichkeit zu minimieren, dass die generierten Proben als Fälschung beurteilt werden. Für den Diskriminator umfasst die Verlustfunktion den Teil, der reale Proben und generierte Proben korrekt klassifiziert, und das Ziel des Diskriminators besteht darin, die Genauigkeit der Klassifizierung zu maximieren.

Vorteil

  1. Hohe Wiedergabetreue: GANs sind in der Lage, realistische Daten von hoher Qualität zu generieren, da der Generator und der Diskriminator zusammenarbeiten, um die Qualität der generierten Daten zu verbessern.
  2. Keine explizite Angabe der Datenverteilung erforderlich: Im Vergleich zu herkömmlichen generativen Modellen müssen GANs die Datenverteilung nicht explizit angeben, sondern lernen die Verteilung aus den Daten durch kontradiktorisches Training.
  3. Weit verbreitet: GANs haben in den Bereichen Bilderzeugung, Bildkonvertierung, Superauflösung, Stilübertragung und anderen Bereichen bemerkenswerte Ergebnisse erzielt und sind zu einer wichtigen Technologie im Bereich generativer Modelle geworden.

Mangel

  1. Trainingsinstabilität: Das Training von GANs kann instabil sein, was manchmal zum Zusammenbruch von Mustern oder zum Fehlen von Mustern in generierten Proben führt.
  2. Schwierigkeiten bei der Modellbewertung: Die Bewertung der Qualität der von GANs generierten Stichproben ist eine Herausforderung, da es keine direkten, universellen Bewertungskriterien gibt.
  3. Moduskollaps: Es ist möglich, dass der Generator in den Moduskollaps gerät und nur bestimmte Modi der Trainingsdaten generiert, ohne die gesamte Datenverteilung abzudecken.

Insgesamt hat GAN in den Bereichen Bilderzeugung, Bildkonvertierung, Superauflösung, Stilübertragung usw. erhebliche Erfolge erzielt, das Training von GAN kann jedoch mit einigen Herausforderungen konfrontiert sein, wie z. B. Moduskollaps, Trainingsinstabilität usw. Forscher haben die Stabilität und Leistung von GANs verbessert, beispielsweise Conditional GAN, eine Variante von GAN, die die Einführung bedingter Informationen während des Generierungsprozesses ermöglicht, um den Generator bei der Generierung von Stichproben bestimmter Kategorien oder Attribute zu unterstützen. Bedingtes GAN wird für die Bild-zu-Bild-Konvertierung verwendet, z. B. für die Konvertierung von Schwarzweißfotos in Farbe, die Bildwiederherstellung und andere Aufgaben.

Autoregressives Modell

Das autoregressive Modell ist eine Art generatives Modell, das zum Modellieren von Sequenzdaten verwendet wird. Dieses Modell geht normalerweise davon aus, dass jedes Element in der Sequenz vom vorherigen Element abhängig ist, und wird durch Erlernen der Beziehung zwischen Elementen in der Sequenz generiert. Neue Sequenz.

Im Folgenden sind die wichtigsten Konzepte und Prinzipien zu autoregressiven Modellen aufgeführt:

  • Generierungsprozess: Gegeben sei eine Folge x = x 1 , x 2 , . . . , xnx = {x_1, x_2, ... , x_n}X=X1,X2,... ,Xn, das autoregressive Modell versucht, die bedingte Wahrscheinlichkeit P ( xi ∣ xi − 1 , xi − 2 , . . . , x 1 ) P(x_i|x_{i-1}, x_{i-2}, ... zu verwenden , x_1 )P ( xichxi 1,Xi 2,... ,X1) , um den Generierungsprozess jedes Elements zu modellieren. Daher kann die Erzeugungswahrscheinlichkeit der gesamten Sequenz ausgedrückt werden alsP ( x ) = Π i − 1 n P ( xi ∣ xi − 1 , xi − 2 , . . . , x 1 ) P(x)=\Pi_{ i-1 }^{n}P(x_i|x_{i-1}, x_{i-2}, ... , x_1)P ( x )=Piich 1nP ( xichxi 1,Xi 2,... ,X1)
  • Bedingte Wahrscheinlichkeitsverteilung: Autoregressive Modelle verwenden häufig Strukturen wie neuronale Netze, um bedingte Wahrscheinlichkeitsverteilungen darzustellen. Angesichts des vorherigen Elements lernt das Modell eine bedingte Wahrscheinlichkeitsverteilung, die die möglichen Werte des aktuellen Elements beschreibt.
  • Element-für-Element-Generierung: Der Generierungsprozess wird Element für Element durchgeführt, d. h. das Modell generiert zuerst das erste Element, verwendet dann das zuvor generierte Element, um das nächste Element zu generieren, und so weiter. Dadurch wird das Modell sequentiell generiert.

Vorteil

  1. Einfach und intuitiv: Das Prinzip des autoregressiven Modells ist relativ einfach und leicht zu verstehen und umzusetzen.
  2. Breiter Anwendungsbereich: Geeignet zur Beschreibung langfristiger Abhängigkeiten in Zeitreihendaten.
  3. Genaue Vorhersage: Bei einigen Zeitreihendatensätzen können autoregressive Modelle genauere Vorhersageergebnisse liefern.

Mangel

  1. Rauschempfindlich: Autoregressive Modelle reagieren empfindlich auf Rauschen, was zu einer Überanpassung des Modells an Ausreißer oder Rauschen führen kann.
  2. Parameterauswahl: Die Leistung des Modells kann durch die Wahl der Reihenfolge pp beeinflusst werden und muss optimiert werden.
  3. Einschränkungen bei instationären Zeitreihen: Autoregressive Modelle funktionieren im Allgemeinen gut für stationäre Zeitreihen, eignen sich jedoch möglicherweise nicht für instationäre Zeitreihen.

Insgesamt schneiden autoregressive Modelle bei Aufgaben wie Sprachmodellierung, Zeitreihenvorhersage, Bildgenerierung und mehr gut ab. Beispielsweise können autoregressive Modelle in Sprachmodellen verwendet werden, um Text in natürlicher Sprache zu generieren. Die GPT-Reihe (Generative Pre-trained Transformer) von OpenAI ist ebenfalls eine Art Sprachmodell, das auf Autoregression basiert und bemerkenswerte Ergebnisse bei der Verarbeitung natürlicher Sprache erzielt hat. Zu den gängigen autoregressiven Modellen gehören PixelRNN und PixelCNN, die für Bildgenerierungsaufgaben verwendet werden. Bei autoregressiven Modellen kann es jedoch bei der Generierung langer Sequenzen zu langsamen Geschwindigkeitsproblemen kommen, da jedes Element sequentiell und nicht parallel generiert werden muss. Obwohl autoregressive Modelle einige Einschränkungen aufweisen, können sie im richtigen Kontext dennoch ein nützliches Werkzeug zur Zeitreihenmodellierung sein. In der Praxis kann die Modellierungsgenauigkeit durch die Kombination mit anderen Methoden oder die Verwendung komplexerer Modelle verbessert werden.

Strömungsmodell

Das Flussmodell ist eine Art generatives Modell, das zur Modellierung der Datenverteilung verwendet wird. Im Gegensatz zu herkömmlichen generativen Modellen konzentrieren sich Flussmodelle auf den Transformationsprozess von Daten und generieren durch Erlernen dieser Transformationen eine Zieldatenverteilung aus einer einfachen Wahrscheinlichkeitsverteilung. Diese Modelle sind oft reversibel, was bedeutet, dass die resultierenden Daten durch Rückwärtsarbeiten wiederhergestellt werden können.

Im Folgenden sind einige Grundprinzipien und Strukturen von Strömungsmodellen aufgeführt:

  • Reversible Transformationen: Ein Strömungsmodell besteht aus einer Reihe reversibler Transformationen. Diese Transformationen sind Bijektionen und können sowohl in Vorwärts- als auch in Rückwärtsrichtung erfolgen. Daher kann für eine gegebene Eingabe die Ausgabe durch diese Transformationen erhalten werden, und die Ausgabe kann durch die umgekehrte Transformation in die Eingabe zurückgeführt werden.
  • Vorwärts- und Rückwärtsberechnung: Während des Trainings und der Inferenz müssen Streaming-Modelle Vorwärtsberechnungen (Ausgabe aus Eingabe generieren) und Rückwärtsberechnung (Eingabe aus Ausgabe reduzieren) durchführen. Beide Prozesse sollten effizient sein, da das Modell beim Erlernen der Datenverteilung die Reversibilität aufrechterhalten muss.
  • Wahrscheinlichkeitsdichtefunktion: Das Strömungsmodell lernt die Wahrscheinlichkeitsdichtefunktion der Zieldatenverteilung durch Transformation. Dies bedeutet, dass durch die Transformation des Modells Stichproben mit einer ähnlichen Verteilung wie die Trainingsdaten generiert werden können.

Vorteil

  1. Reversibilität: Die Reversibilität des Strömungsmodells erleichtert die Generierung und Wiederherstellung von Proben und sorgt gleichzeitig für eine bessere Interpretierbarkeit der generierten Proben.
  2. Wahrscheinlichkeitsdichtemodellierung: Strömungsmodelle modellieren direkt die Wahrscheinlichkeitsdichte der Datenverteilung, was dabei hilft, die Eigenschaften der Daten genauer zu erfassen.
  3. Effizienz der Datengenerierung: Streaming-Modelle ermöglichen häufig eine effiziente Stichprobengenerierung, da Stichproben aus einer einfachen vorherigen Verteilung entnommen und durch die inverse Transformation des Modells generiert werden können.

Mangel

  1. Rechenkomplexität: Mit zunehmender Modelltiefe können die Kosten für die Berechnung der Wahrscheinlichkeitsdichte jeder Stichprobe und die Generierung von Stichproben erheblich steigen.
  2. Trainingsschwierigkeit: Im Vergleich zu einigen anderen generativen Modellen erfordert das Training von Streaming-Modellen möglicherweise mehr Fähigkeiten und Rechenressourcen.
  3. Stichprobenqualität: In einigen Fällen können die von einem Streaming-Modell generierten Stichproben durch die Verteilung der Trainingsdaten begrenzt sein, was zu einer geringeren Diversität der generierten Stichproben führt.

Zwei gängige Strömungsmodellstrukturen sind Real NVP (Real Non-Volume Preserving) und NICE (Non-linear Independent Components Estimation):
(1) Real NVP: Real NVP ist ein Strömungsmodell, das auf einem verbesserten reversiblen Block basiert, der das Lernen komplexer Wahrscheinlichkeiten ermöglicht Verteilungen über einen modularen Ansatz. In dieser Struktur sind Transformationen darauf ausgelegt, einige Dimensionen der Daten lokal zu ändern, während andere Dimensionen unverändert bleiben.
(2) NICE: NICE ist eine Struktur, die erstmals das Konzept des Strömungsmodells einführte und eine elementweise affine Transformation verwendet, um reversible Transformationen zu konstruieren. NICE erfasst die Merkmale der Datenverteilung, indem es die unabhängigen Dimensionen der Daten lernt.

Strömungsmodelle leisten bei Aufgaben wie der Bilderzeugung, der Dichteschätzung und der Datenerweiterung gute Dienste und haben große Beachtung gefunden.

Diffusionsmodell

Das Diffusionsmodell hat in den letzten Jahren an Popularität gewonnen, und mehrere in den 2020er Jahren veröffentlichte wegweisende Arbeiten demonstrierten der Welt die Fähigkeiten des Diffusionsmodells, beispielsweise die Überwindung von GAN bei der Bildsynthese. Sie sind von Natur aus generative Modelle, was bedeutet, dass sie zur Generierung von Daten verwendet werden, die den Trainingsdaten ähneln.

Grundsätzlich funktionieren Diffusionsmodelle, indem sie Trainingsdaten verfälschen, indem sie kontinuierlich Gaußsches Rauschen hinzufügen und dann lernen, die Daten wiederherzustellen, indem sie den Prozess dieses Rauschens umkehren. Nach dem Training können wir das Diffusionsmodell verwenden, um Daten zu generieren, indem wir einfach zufällig abgetastetes Rauschen in den erlernten Entrauschungsprozess übergeben. Genauer gesagt ist ein Diffusionsmodell ein latentes Variablenmodell, das eine feste Markov-Kette verwendet, die einem latenten Raum zugeordnet ist. Diese Kette fügt den Daten nach und nach Rauschen hinzu, um einen ungefähren Posteriorwert q ( x 1 : T ∣ x 0 ) q(x_{1:T}|x_0) zu erhalten.q ( ​​x1 : Tx0) , in demx 0 , x 1 , . . . , x T x_0, x_1, ..., x_TX0,X1,... ,XTsind latente Variablen mit den gleichen Dimensionen. Im Bild unten sehen wir eine Markov-Kette für Bilddaten. Fügen Sie hier eine Bildbeschreibung ein
Schließlich wird das Bild asymptotisch in reines Gaußsches Rauschen umgewandelt. Das Ziel des Trainings eines Diffusionsmodells besteht darin, den umgekehrten Prozess zu lernen – das heißt, p θ ( xt − 1 ) ∣ xt p_{\theta}(x_{t-1})|x_t zu trainierenPich( Xt 1) xt. Indem wir diese Kette rückwärts durchlaufen, können wir neue Daten generieren.
Fügen Sie hier eine Bildbeschreibung ein
Vorteil

Inspiriert durch die Nichtgleichgewichts-Thermodynamik erzeugen Diffusionsmodelle qualitativ hochwertige Bilder. Darüber hinaus haben Diffusionsmodelle viele weitere Vorteile, unter anderem ist kein gegnerisches Training erforderlich; sie können zur Lösung inverser Probleme verwendet werden und erfordern kein erneutes Netzwerktraining. Im Hinblick auf die Trainingseffizienz bieten Diffusionsmodelle außerdem den Vorteil der Skalierbarkeit und Parallelität.

Mangel

Der Generierungsprozess von Diffusionsmodellen ist relativ langsam und erfordert daher viele Iterationen.

おすすめ

転載: blog.csdn.net/weixin_43603658/article/details/134713001