Generative Adversarial Networks (GANs) für maschinelle Übersetzung

|GAN Schema|Von GANs erzuegte Portraits|Die Generator Komponente eines Cycle GANs|Zwei GANs werden zur Vermeidung von Mode Collapse zusammengeschaltet|Ein GAN zur Übersetzung von Worten|Ein Übersetzungs GAN mit Autoencoder|Von GANs erzeugte Portraits||||||
© ML2R

Wie funktioniert ein GAN?

Der Begriff „GAN“ ist schwierig auf Deutsch zu übersetzen. Gut klingt vielleicht eine nicht ganz wörtliche Übertragung als „Kontrovers-produktives neuronales System“. Diese Bezeichnung trägt jedoch – wie das englische Original – nicht gerade zum Verständnis dessen bei, was damit eigentlich gemeint ist. Die Idee dahinter ist spannend und wurde 2014 zuerst von Ian Goodfellow und Kollegen publiziert: Das System besteht aus zwei Komponenten (beides sind Neuronale Netze), die „Generator“ und „Diskriminator“ genannt werden (siehe untenstehende Abbildung). Diese beiden teilen sich die eigentliche Aufgabe des Systems, nämlich aus vielen Eingabedaten (Lerndaten), wie zum Beispiel Fotos, ohne weitere menschliche Vorgaben neue Daten zu erzeugen, die den Eingaben sehr ähnlich sind. Es handelt sich um eine Variante des unüberwachten Lernens, denn das System ist nicht auf eine äußere Kontrolle der Ähnlichkeit der erzeugten Ausgabedaten zu den Lerndaten angewiesen: Die Generator Komponente hat die Aufgabe, neue Daten zu erzeugen. Die Diskriminator Komponente hat die Aufgabe, die vom Generator erzeugten Daten von den Lerndaten zu unterscheiden und als künstlich erzeugt zu erkennen.

GAN20Schema - Lamarr Institute for Machine Learning (ML) and Artificial Intelligence (AI)
© ML2R
GAN Schema

Man könnte dieses Prinzip also als eine Art Spiel am Beispiel von Fotos charakterisieren: Das Generator Netz versucht, mit möglichst realistischen künstlichen Fotos das Diskriminator Netz zu überlisten. Im Verlauf des Lernens erzeugt das Generator Netz immer „echtere“ Bilder, während das Diskriminator Netz immer genauer zwischen Realität und künstlichen Daten zu unterscheiden lernt. Nachdem ein neues Bild erzeugt wurde, wird dem Diskriminator Netz dieses zusammen mit einem echten Foto vorgelegt. Es muss dann entscheiden, welches der beiden Bilder ein echtes Foto und welches ein künstlich erzeugtes ist. Wichtig dabei ist, dass es sich bei den beiden Bildern nicht um dasselbe Motiv handeln muss, sondern nur um grob denselben Themenbereich. Abgesehen vom allgemeinen Thema, wie zum Beispiel Portraitaufnahmen, muss das Diskriminator Netz seine Entscheidung allein aus den Mikro-Eigenschaften der Bilder, wie Kontrast, Farbverlauf, Tiefenschärfe, Auflösung, etc., ableiten. Am Anfang des Trainings ist diese Unterscheidung noch einfach, denn das Generator Netz steht als Eingabe keines der echten Fotos zur Verfügung, sondern nur einen zufällig erzeugten Eingabevektor. Man könnte sich diese Eingabe so ähnlich vorstellen, wie das Bild auf einem alten Fernseher, wenn kein Sender eingestellt ist. Eine zeitgenössische Analogie wäre ein großer QR-Code mit zufällig verteilten schwarzen und weißen Feldern. Die Generator Komponente ist daher ein generatives neuronales Netz. Es soll lernen, die allgemeine Variationsbreite der Bilder in den Lerndaten zu reproduzieren. Genaueres dazu kann man in einem weiteren Blog Beitrag lesen. Das Netz muss nun lernen, die wiederholten zufälligen Eingabewerte so zu transformieren, dass als Ausgabe ein möglichst realistisches Bild entsteht. Nach jedem Versuch bekommt es als Rückmeldung nur die binäre Entscheidung der Diskriminator Komponente „reales Foto“ oder „künstliches Bild“ zurückgemeldet.

portraits cut - Lamarr Institute for Machine Learning (ML) and Artificial Intelligence (AI)
© Alexander Amini and Ava Soleimany MIT 6.S191: Introduction to Deep Learning IntroToDeepLearning.com
Von GANs erzeugte Portraits

GANs wurden zunächst zur Produktion von real erscheinenden Bildern anhand von Fotos eingesetzt. Besonders Aufsehen erregend waren Bilder, die menschliche Portraits darstellten (siehe obenstehende Abbildung). Diese Portraits waren auch von Menschen, die beruflich einschlägige Expertise besaßen, nicht von realen Fotos zu unterscheiden.

Welche Verbesserungen sind für das ursprüngliche System vorgeschlagen worden?

Eine wichtige Modifikation der GAN Architektur besteht darin, den einfachen Generator Input, also den zufällig erzeugten Vektor, durch einen Datenvektor aus den Lerndaten zu ersetzen, der dann vor der Verarbeitung in der Generator Komponente zusätzlich mit zufälligen Werten verrauscht wird. Dieses Prinzip ähnelt dem Variational Autoencoder, der im Blog Beitrag beschrieben wird. So ergibt sich eine interessante Alternative: Ein derartiges GAN kann darauf trainiert werden, reale Eingaben so zu verändern, dass bestimmte Eigenschaften erhalten bleiben, andere aber systematisch verändert werden.

CycleGAN1 - Lamarr Institute for Machine Learning (ML) and Artificial Intelligence (AI)
© Jun-Yan Zhu et al.
Die Generator Komponente eines Cycle GANs (Foto- und Gemälde-Reproduktionen aus “Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks“)

Die vorstehende Abbildung stellt schematisch die Generator Komponente eines GANs zur Erzeugung von Bildern, die einer bestimmten Kunstrichtung entsprechen, aus realen Fotos dar. Weitere Publikationen beschreiben gelungene Versuche, weitere Modalitäten von Fotos zu ändern, wie zum Beispiel von neiner Sommerlandschaft hn zu einer Winterlandschaft, oder Strichzeichnung zu Foto-realistischem Gegenstand.

Ein Nachteil der einfachen GAN Architektur ist die langsame und nicht immer erfolgreiche Konvergenz, also das Lernverhalten des Systems, das extrem hohe Rechenaufwände im Computer benötigt. Der Erfolg des Trainings hängt zudem von vielen extern einzustellenden Parametern, wie der Netzarchitektur der beiden Komponenten, der Anzahl der Neuronen und der Lernrate für die Gewichtanpassung ab. Es kann darüber hinaus vorkommen, dass sich Generator und Diskriminator Komponenten in einen singulären Zustand einschwingen, in dem auch offensichtlich nicht real erscheinende Generator Ausgaben von der Diskriminator Komponente nicht als künstlich erkannt werden. Dies wird in der Fachliteratur als Mode Collapse bezeichnet.

Eine neue Idee, die diese Schwierigkeit durch „Regularisierung“ (siehe auch unseren Blogbeitrag zu Tiefen Neuronalen Netzen) zu überwinden sucht, ist es, einen Vergleich zwischen dem Ausgangsdatum der Generator Komponente und einer „Rücktransformation“ durch ein zweites GAN vorzusehen. Dies ist in der folgenden Abbildung dargestellt. Die Lernaufgabe des zweiten GANs ist die inverse Aufgabe des ersten. In unserem obigen Beispiel soll das zweite GAN also lernen, aus gemalten Bildern realistische Fotos zu erzeugen. Wohlgemerkt bedeutet diese Zielsetzung nicht, das rücktransformierte Foto mit der Originaleingabe des ersten GANs direkt zu vergleichen wie beim überwachten Lernen. Die Diskriminator Komponente des zweiten GANs hat die Aufgabe, das rücktransformierte Foto von „beliebigen“ Originalfotos zu unterscheiden.

CycleGAN2 - Lamarr Institute for Machine Learning (ML) and Artificial Intelligence (AI)
© Jun-Yan Zhu et al.
Zwei GANs werden zur Vermeidung von Mode Collapse zusammengeschaltet (Foto- und Gemälde-Reproduktionen aus “Unpaired Image-to-Image Translation using Cycle-Consistent Adversarial Networks“)

Wie kann ein GAN lernen, Worte zu übersetzen?

Es wurde bereits erwähnt, dass GANs zu den unüberwachten maschinellen Lernverfahren gehören. Man benötigt also prinzipiell keine Detailvorgaben für einzelne Daten, aus denen Fehlerwerte berechnet werden können. Für maschinelle Übersetzungen wäre diese Eigenschaft sehr wünschenswert. Man würde dann nicht große Textmengen parallel in zwei Sprachen benötigen oder übersetzen müssen. Ansätze, die sich die GAN Eigenschaft des unüberwachten Lernens zu Nutze machen, zielen zunächst nicht auf die Übersetzung von ganzen Sätzen, sondern von einzelnen Worten oder Begriffen, denn diese Aufgabe ist weniger komplex. Eine Lösung wäre aber trotzdem sehr interessant, würde sie doch ermöglichen, Wörterbuch-ähnliche Übersetzungslisten automatisch, ohne menschliche Zuarbeit, zu erzeugen.

Die erste Frage ist, in welche Form Worte oder Texte für die Verarbeitung in einem GAN überführt werden müssen. Hier bieten sich Einbettungsvektoren an. Das Prinzip wird in diesem Grundlagen-Beitrag erklärt. Zunächst müssen also für beide Sprachen, zwischen denen übersetzt werden soll, Einbettungsvektoren berechnet werden. Hierfür existieren mehrere praktikable Verfahren, die in unserem Blog Text zu Einbettungsvektoren erläutert werden.

Translation1 - Lamarr Institute for Machine Learning (ML) and Artificial Intelligence (AI)
© ML2R
Ein GAN zur Übersetzung von Worten

In dieser Abbildung wird das Prinzip anhand von Übersetzungen von Englisch nach Französisch veranschaulicht (siehe auch „Towards cross-lingual distributed representations without parallel text trained with adversarial autoencoders„): Für einen Lernschritt werden je ein englischer und ein französischer Einbettungsvektor zufällig ausgewählt. Es muss sich dabei nicht um Vektoren von denselben Worten handeln, denn das Lernen passiert unüberwacht. Aus dem englischen Einbettungsvektor produziert dann die Generator Komponente einen „französischen“ Einbettungsvektor und die Diskriminator Komponente muss entscheiden, welcher der beiden französischen Vektoren ein Original und welches eine erzeugte Version ist.

Translation2 - Lamarr Institute for Machine Learning (ML) and Artificial Intelligence (AI)
© ML2R
Ein Übersetzungs GAN mit Autoencoder

Die von einem GAN nach der Lernphase produzierten Einbettungsvektoren sind noch keine „übersetzten“ Worte. Hierfür muss noch die Zuordnung des Einbettungsvektors zu einem Wort der Zielsprache durchgeführt werden. Diese Zuordnung geschieht dadurch, dass mit Hilfe des Cosinus-Wertes die Ähnlichkeit zu bekannten Worten der Zielsprache ermittelt und das ähnlichste Wort ausgewählt wird.

Experimente mit Varianten dieser Architektur haben gezeigt, dass bessere Ergebnisse erzielt werden, wenn das Generator Netz ein (variational) Autoencoder ist (siehe obenstehende Abbildung). In diesem Fall bewertet die Diskriminator Komponente die interne Repräsentation der Einbettungsvektoren aus dem Autoencoder. Um zu einer Übersetzung zu gelangen, müssen diese Vektoren zunächst mit dem Decoder transformiert werden, um dann mittels Cosinus-Abstand ein Wort der Zielsprache zu ermitteln.

In der Publikation „Unsupervised Word Translation with Adversarial Autoencoder“ wird diese Architektur mit der zyklischen Architektur kombiniert. Es ergibt sich eine komplexe Archtirektur aus zwei GANs, die gute Erfolge bei der Übersetzung zwischen mehreren Sprachen erzielt hat. Allerdings bleibt auch hier die Schwierigkeit der langsamen Konvergenz und der Notwendigkeit bestehen, die Hyperparameter innerhalb enger Grenzen passend zu wählen.

GANs eröffnen also eine interessante Möglichkeit, ohne die Vorgabe von Regeln oder anderem Expertenwissen, allein aus großen Datenmengen neue, für eine Domäne typische Beispiele zu erzeugen. Durch die zyklische Verschränkung von zwei GANs wurde eine erhöhte Stabilität des Systemverhaltens erreicht. Die Kombination von Beispieldaten mit der Zufallsverteilung als Eingabe erlaubt dabei eine gezielte Steuerung der produzierten Ergebnisse.

Die Verwendung von GANs für zweifelhafte oder gar kriminelle Ziele im Bereich des „Deep Fake“ genannten Umfelds darf für eine Bewertung nicht übergangen werden. Es würde an dieser Stelle jedoch zu weit führen, auf Einzelheiten einzugehen. Es wird intensiv daran gearbeitet, Analysemethoden zum Erkennen von derartigen Fälschungen zu entwickeln (siehe zum Beispiel „Deep learning for deepfakes creation and detection: A survey„)

Jörg Kindermann,

28. Juli 2021

Themen

Dr. Jörg Kindermann

Jörg Kindermann ist wissenschaftlicher Mitarbeiter am Lamarr-Standort des Fraunhofer Instituts IAIS in Sankt Augustin. Sein Forschungsinteresse ist auf die Anwendung neuer Verfahren des Deep Learning und allgemeiner der Künstlichen Intelligenz auf Fragestellungen der Linguistik ausgerichtet. Spaß bereitet es ihm dabei besonders, Lösungen in die Praxis zu bringen.

Weitere Blogartikel