Die rapide Ent­wick­lung von künst­li­cher In­tel­li­genz (KI, oder englisch AI für Ar­ti­fi­ci­al In­tel­li­gence) lässt Maschinen immer cleverer werden. Seit sie die Mög­lich­keit haben, sich auf Grundlage von Daten, mit denen sie gefüttert werden, selbst­stän­dig wei­ter­zu­ent­wi­ckeln, schaffen Maschinen neue Wege, uns mit dem Ausführen immer kom­ple­xe­rer Aufgaben zu un­ter­stüt­zen.

Eine Lösung, die sehr viel­ver­spre­chend ist und bereits jetzt in ver­schie­de­nen Bereichen be­ein­dru­cken­de Er­geb­nis­se liefert, sind die so genannten Ge­ne­ra­ti­ve Ad­ver­sa­ri­al Networks (GANs). GANs werden vor allem in der Ge­ne­rie­rung von Bildern verwendet, er­mög­li­chen aber auch das au­to­ma­ti­sche Erstellen von Texten. Aber was sind GANs überhaupt? Wie funk­tio­nie­ren sie? Und wie können wir sie sinnvoll einsetzen?

Was ist ein GAN?

Bevor wir uns damit be­schäf­ti­gen, was GANs alles für uns tun können, wollen wir einen Blick darauf werfen, was Ge­ne­ra­ti­ve Ad­ver­sa­ri­al Networks überhaupt sind.

Es handelt sich dabei um ein Machine-Learning-System, das im Jahr 2014 von einem Team um Ian Good­fel­low ent­wi­ckelt wurde. Die Aufgabe eines GANs ist es, basierend auf einer Reihe von realen Bei­spiel­da­ten eigene Krea­tio­nen zu erstellen. Diese sollen so täuschend echt sein, dass man den com­pu­ter­ge­nerier­ten Bildern nicht ansieht, dass hier kein Mensch aktiv war. Um das zu leisten, werden zwei neurale Netzwerke ein­ge­setzt, die mit­ein­an­der kon­kur­rie­ren.

Die Aufgabe des Generator-Netzwerks ist es, eine Fälschung zu erzeugen. Das Netzwerk wird mit Daten – z. B. Fotos von Frauen – an­ge­füt­tert. Auf Basis dieser In­for­ma­tio­nen erstellt es dann ein eigenes Foto. Dafür lernt das Netzwerk erst, was die ge­mein­sa­men Ei­gen­schaf­ten der Originale sind. Das neue Bild ist also keine Doppelung eines der Quell­da­ten, sondern ein komplett neu ge­ne­rier­tes Werk, dass sich aber in der Art ähnelt – also in unserem Beispiel das Foto einer (nicht­exis­tie­ren­den) Frau re­prä­sen­tiert.

Die Ba­sis­da­ten und die ge­ne­rier­te In­for­ma­ti­on werden zusammen an das Part­ner­netz­werk gegeben. Aufgabe des Dis­cri­mi­na­tor-Netzwerks ist es, alle Daten, die es erhält, daraufhin zu über­prü­fen, ob sie echt oder gefälscht sind. Ein Bild wird nicht nur dann als gefälscht ein­ge­stuft, wenn es zu stark von den Ba­sis­da­ten abweicht, sondern auch, wenn es zu perfekt ist: Sollte der Generator einfach aus allen Daten einen Mit­tel­wert ziehen und daraus ein neues Werk erstellen, sieht man diesem die ma­schi­nel­le Er­stel­lung an. Der Dis­cri­mi­na­tor filtert also auch solche Daten heraus, die nicht natürlich wirken.

Beide Netzwerke versuchen, sich ge­gen­sei­tig aus­zu­spie­len. Wenn das Dis­cri­mi­na­tor-Netzwerk den ge­fälsch­ten Datensatz erkennt, gibt es die Daten wieder zurück. Das Generator-Netzwerk ist in diesem Fall noch nicht gut genug und muss daher weiter lernen. Gleich­zei­tig hat aber auch der Dis­cri­mi­na­tor da­zu­ge­lernt. Da sich die beiden neuralen Netzwerke ge­gen­sei­tig trai­nie­ren, haben wir es hier mit deinem Deep-Learning-System zu tun. Der Generator versucht, Da­ten­sät­ze zu ge­ne­rie­ren, die so echt wirken, dass sie der Dis­cri­mi­na­tor als echt einstuft. Der Dis­cri­mi­na­tor auf der anderen Seite versucht, die echten Beispiele so genau zu ana­ly­sie­ren und zu verstehen, dass falsche Daten keine Chance haben, als echt iden­ti­fi­ziert zu werden.

Wie funk­tio­nie­ren GANs?

Wie jede künst­li­che In­tel­li­genz müssen auch GANs trainiert werden, um ihre Arbeit so gut wie möglich tun zu können. Diese Form von Machine Learning erfolgt in sechs Schritten:

  1. Pro­blem­de­fi­ni­ti­on: Im ersten Schritt muss ein Problem definiert werden, das das System lösen soll. Dazu müssen die Ent­wick­ler echte Daten sammeln, die das System nutzen kann.
  2. Ar­chi­tek­tur: Ver­schie­de­ne Pro­blem­stel­lun­gen erfordern auch ver­schie­de­ne Ge­ne­ra­ti­ve Ad­ver­sa­ri­al Networks. Daher muss das GAN eine passende Ar­chi­tek­tur für den je­wei­li­gen Einsatz bekommen.
  3. Erstes Dis­cri­mi­na­tor-Training: In diesem Schritt beginnt das ei­gent­li­che Training. Der Generator wird gestoppt; das Dis­cri­mi­na­tor-Netzwerk ana­ly­siert lediglich die echten Daten und lernt diese zu verstehen.
  4. Erstes Generator-Training: Jetzt wird der Dis­cri­mi­na­tor gestoppt und der Generator beginnt, ge­fälsch­te Daten zu ge­ne­rie­ren.
  5. Zweites Dis­cri­mi­na­tor-Training: Hier wird das Dis­cri­mi­na­tor-Netzwerk nun mit den neuen, ge­fälsch­ten Daten des Ge­ne­ra­tors gefüttert und muss ent­schei­den, welche Daten es für echt und welche für falsch hält.
  6. Zweites Generator-Training: Das Generator-Netzwerk wird mit dem Ergebnis des zweiten Dis­cri­mi­na­tor-Trainings weiter ver­bes­sert. Das Generator-Netzwerk lernt hier die Schwach­stel­len des Dis­cri­mi­na­tors kennen und versucht, diese aus­zu­nut­zen und noch rea­lis­ti­sche­re ge­fälsch­te Da­ten­sät­ze zu ge­ne­rie­ren.

Beide Netzwerke ent­wi­ckeln sich durch den Wett­be­werb immer weiter und werden so besser und ef­fi­zi­en­ter. Das Generator-Netzwerk lernt, immer rea­lis­ti­sche­re Da­ten­sät­ze zu ent­wi­ckeln. Das Dis­cri­mi­na­tor-Netzwerk lernt, auch täuschend echte Da­ten­sät­ze als falsch zu iden­ti­fi­zie­ren.

Welche Her­aus­for­de­run­gen muss das System be­wäl­ti­gen?

Wie bei fast allen Tech­no­lo­gien stehen Ent­wick­ler auch bei GANs vor einigen Her­aus­for­de­run­gen, die es zu lösen gilt, um einen rei­bungs­lo­sen Ablauf des Trainings zu ge­währ­leis­ten.

Ein aus­ge­gli­che­ner Wett­be­werb

Wie aus­ge­führt, liegt den GANs der Wett­be­werb zweier neuraler Netzwerke zugrunde. Der kann aber nur gelingen, wenn beide Netzwerke gleich stark und effektiv sind. Wenn eines der beiden Netzwerke dem anderen überlegen ist, bricht das System in sich zusammen. Ist bei­spiels­wei­se der Generator überlegen, werden alle ge­fälsch­ten Daten vom Dis­cri­mi­na­tor als echt ein­ge­stuft. Ist der Dis­cri­mi­na­tor überlegen, stuft er alle Daten des Ge­ne­ra­tors als falsch ein. In diesem Fall kann keins der beiden Netzwerke sich wei­ter­ent­wi­ckeln.

Objekte richtig verstehen

Ge­ne­ra­ti­ve Ad­ver­sa­ri­al Networks haben oft Probleme, Objekte richtig zu erkennen und zu verstehen. Das ist vor allem bei Bildern der Fall. Hier ein Beispiel: Ein echtes Bild zeigt zwei Katzen mit jeweils zwei Augen. Versteht der Generator die voll­stän­di­ge Struktur und Po­si­tio­nie­rung des Bildes nicht, dann könnte er statt­des­sen eine Katze mit vier Augen ge­ne­rie­ren. Auch mit Per­spek­ti­ven können GANs über­for­dert sein und nicht verstehen, dass es sich ggf. bei zwei Bildern um das gleiche Motiv aus un­ter­schied­li­chen Rich­tun­gen handelt.

Wo werden GANs ein­ge­setzt?

Besondere Auf­merk­sam­keit – auch abseits von Com­pu­ter­wis­sen­schaf­ten – erlangten Ge­ne­ra­ti­ve Ad­ver­sa­ri­al Networks, nachdem das Künst­ler­kol­lek­tiv Obvious die Technik ein­ge­setzt hat, um ein Kunstwerk erstellen zu lassen. Dieses Gemälde wurde bei einer Auktion für 432.500 US-Dollar ver­stei­gert. Doch auch abseits von künst­le­ri­schen Motiven kann ein GAN er­staun­li­che Leis­tun­gen erbringen.

Vor­aus­sa­ge von Videos

GANs können auf Grundlage von Vi­deo­ein­zel­bil­dern vor­aus­sa­gen, wie ein Video wei­ter­geht und so nach Ablauf einer Aufnahme das Video ei­gen­stän­dig ver­län­gern. Dabei werden alle Elemente des Videos, z. B. Be­we­gun­gen und Hand­lun­gen, aber auch Hin­ter­grund­ver­än­de­run­gen wie Regen oder Nebel, mit­ein­be­zo­gen.

Bild­ge­ne­rie­rung anhand von Texten

Basierend auf einer Be­schrei­bung können GANs Bilder ge­ne­rie­ren. So können sie bei­spiels­wei­se anhand eines Drehbuchs ei­gen­stän­dig ein Sto­ry­board ent­wi­ckeln.

Ge­ne­rie­rung komplexer Objekte

Auch simple Skizzen lassen sich durch Ge­ne­ra­ti­ve Ad­ver­sa­ri­al Networks in kürzester Zeit au­to­ma­tisch in komplexe drei­di­men­sio­na­le Objekte ver­wan­deln. So kann aus einem einfach ge­zeich­ne­ten Baum durch den Einsatz von GANs ein hoch­kom­ple­xes Objekt mit winzigen Details wie im Wind wehenden Blättern und wankender Baumkrone entstehen.

Ver­bes­se­rung von Bild­de­tails

GANs können einem Bild mit schlech­ter Auflösung oder mit fehlenden Bild­punk­ten neue Details hin­zu­fü­gen. Ge­ne­ra­ti­ve Ad­ver­sa­ri­al Networks nutzen dabei In­for­ma­tio­nen von ähnlichen Bildern, um fehlende Bild­in­for­ma­tio­nen zu ergänzen.

Ent­wick­lung neuer Produkte

Einige Un­ter­neh­men ex­pe­ri­men­tie­ren mit GANs bereits in der Pro­dukt­ent­wick­lung und erstellen mithilfe der Systeme komplett neue Designs und Pro­dukt­rei­hen.

Pro­dukt­text­ge­ne­rie­rung

GANs können auch das Schreiben von Texten über­neh­men und werden bereits für das Ge­ne­rie­ren von Pro­dukt­tex­ten genutzt, die eine immer größere Rolle in der Kauf­ent­schei­dung von Kunden spielen. Mithilfe von GANs können solche Be­schrei­bun­gen nicht nur schnell erstellt werden, die Netzwerke können auch ana­ly­sie­ren, welche Pro­dukt­tex­te in der Ver­gan­gen­heit am er­folg­reichs­ten waren, und auf dieser Grundlage neue, ähnlich kon­zi­pier­te Texte verfassen.

In all diesen Bereichen werden Ge­ne­ra­ti­ve Ad­ver­sa­ri­al Networks bereits er­folg­reich ein­ge­setzt. Firmen und Ent­wick­ler arbeiten ständig an neuen An­wen­dungs­mög­lich­kei­ten und es ist abzusehen, dass GANs mit­tel­fris­tig großen Einfluss auf viele Bereiche unseres Lebens und unserer Arbeit nehmen.

Zum Hauptmenü