Viel Spaß beim Lesen der heutigen Ausgabe!
2018 hat eine Gruppe von amerikanischen Forschern eine Studie zum Einsatz von KI zur Erkennung von Risikofaktoren für Herzkreislauferkrankungen durchgeführt. Dabei sollte ein neuronales Netz anhand von Bildern des Augenhintergrunds die verschiedenen Risikofaktoren erkennen (zum Beispiel den Blutdruck oder ob die Person raucht).
Einer der Faktoren, der vom eingesetzten Modell auch sehr gut erkannt wurde, war das Geschlecht.
Das besondere ist dabei, dass es bisher keine medizinischen Erkenntnisse über geschlechtsspezifische Unterschiede im Augenhintergrund gab. Es sieht also so aus, als hätte das neuronale Netz hier etwas entdeckt, dass den Medizinern bisher entgangen ist.
Jetzt hat eine Gruppe von Medizinern in London diese Ergebnisse reproduziert. Neben der Bestätigung der Erkenntnisse der ersten Studie sehen sie es als wichtiges Ergebnis ihrer Arbeit, dass sie gezeigt haben, dass Forschung mit KI auch für Forscher aus anderen Fachgebieten möglich ist.
Für ihre Untersuchungen haben sie die AutoML Plattform von Google benutzt, die es ermöglicht ML Modelle zu erstellen, ohne selbst Programmieren zu können.
Obwohl als Schwäche genannt wird, dass man mit der AutoML Plattform weniger Einblick in das Training der Modelle bekommt, sehen sie solche sogenannten "No Code" Plattformen als wichtigen Beitrag zur Demokratisierung der Deep Learning Technologie.
Artikel von 2018: https://www.nature.com/articles/s41551-018-0195-0 (englisch)
Neuer Artikel: https://www.nature.com/articles/s41598-021-89743-x (englisch)
Der norwegische Stromanbieter Tibber hat als erstes Unternehmen in Deutschland Deepfake Technologie in einem Werbespot verwendet und Angela Merkel für sich sprechen lassen. Einem Artikel bei t3n zufolge hat die produzierende Werbeagentur dazu die OpenSource Software "DeepFaceLab" eingesetzt.
DeepFaceLab wurde mithilfe des TensorFlow-Frameworks für neuronale Netze programmiert.
Der interne Ablauf beim Erzeugen eines Bilds funktioniert dabei so:
1. Extraktion - Gesichtserkennung, Ausrichtung und Ausschnitt
a) Auf den eingespeisten Bildern werden die Gesichter mithilfe eines neuronalen Netzes erkannt
b) Damit die aufeinanderfolgenden Bilder in einem Video auch zusammen passen, werden die markanten Punkte in den Gesichtern, wie Augen, Nase und Mund, auf den Bildern erkannt und daran die Ausrichtung des Gesichts festgestellt. Dann wird berechnet, wie sich diese Punkte von einem Bild zum nächsten bewegt haben.
c) Im dritten Schritt werden die Gesichter aus den Bildern ausgeschnitten, um sie austauschen zu können.
2. Training
In der Trainingsphase wird ein Modell trainiert, das lernt wie der Gesichtsausdruck des "Quellgesichts" auf dem "Zielgesicht" aussehen würde. Dabei werden verschiedene Teile des Gesichts unterschiedlich stark gewichtet. Das meiste Gewicht wird auf die Augen gelegt, weil es hier viele Details gibt.
3. Konvertierung
a) Das generierte Gesicht wird an der passenden Stelle in das Originalbild eingefügt
b) Die Farben des eingefügten Gesichts werden an das Bild angepasst
c) Die Auflösung des eingefügten Gesichts wird mithilfe eines weiteren neuronalen Netzes erhöht
Trotz dieser aufwändigen Technik ist das Ergebnis im Werbespot eher mittelgut geworden. Laut Tibber ist das Absicht, um den Zuschauern klar zu zeigen, dass es sich nicht um die echte Merkel handelt.
Warum dann überhaupt Deepfake benutzen und nicht eine Schauspielerin verkleiden und schminken? Auch das wurde von der Deutschland-Chefin beantwortet: Das Unternehmen wolle in der Werbung "technologisch neue Wege gehen". Es geht also offenbar nicht darum, ob es Sinn macht die Technik zu verwenden, sondern eher um das "fortschrittliche" Image, das damit verbunden ist und das auf die Firma abfärben soll.
Werbespot auf Youtube: https://www.youtube.com/watch?v=dLAjWtlTpnY
Artikel bei t3n: https://t3n.de/news/angela-merkel-werbung-startup-deepfake-1378618/
DeepFaceLab: https://github.com/iperov/DeepFaceLab
Beschreibung wie DeepFaceLab funktioniert: https://arxiv.org/abs/2005.05535 (englisch)
Yannic Kilcher, Forscher am Data Analytics Lab der ETH Zürich, hat auf seinem Youtube Kanal ein Musikvideo veröffentlicht. Die Bilder, die in diesem Video gezeigt werden, stellen die Interpretation des Liedtextes durch zwei neuronale Netze dar: eins generiert die Bilder (BigGAN) und das andere schätzt ein, wie gut ein Bild zum Text passt (CLIP).
Der Text wurde von den Kategorien des bekannten ImageNet-Datensatzes inspiriert und hat keine tiefere Bedeutung, außer als Vorlage für interessante Bilder zu dienen.
Wie genau die Bilder erzeugt wurden erklärt Yannic netterweise auch in seinem Video:
Für jede Zeile des Lieds gibt es ein Bild. Das BigGAN Netz erzeugt am Anfang ein zufälliges Bild. Vom CLIP Modell wird dann eingeschätzt, wie gut das Bild zur Textzeile passt. Diese Einschätzung geht dann wieder zurück an BigGAN, das damit als nächstes ein Bild erzeugen kann, das besser zum Text passt. In einigen Iterationen werden die Bilder so immer passender zum Text.
Für den Übergang zwischen zwei Bildern nutzt er die Art wie Bilder in einem ML Modell verarbeitet werden.
Beim Training lernt ein Modell bestimmte Eigenschaften eines Bildes. Je nachdem worauf genau es trainiert wurde, können das ganz unterschiedliche Eigenschaften sein. Jeder Eigenschaft wird vom Modell eine Zahl zugeordnet, die zeigt als wie stark ausgeprägt sie erkannt wurde.
Ein Beispiel: In einem Modell, das erkennen soll welche Farbe ein Bild hat, könnten die Grundfarben rot, grün und blau jeweils eine Eigenschaft sein. Wenn man diesem Modell ein komplett grünes Bild gibt, dann erkennt es die Eigenschaft 'grün' als sehr stark und die anderen Farben als schwach. In der Darstellung als Zahlen wäre grün also eine 1 und die anderen Farben eine 0.
Bei einem komplett blauen Bild wäre dementsprechend blau die 1 und die beiden anderen jeweils 0.
Jetzt wird es etwas abstrakt: man kann diese Eigenschaften als Dimensionen eines mehrdimensionalen Raums betrachten, dem sogenannten latenten Raum. Dann liegt jedes Bild auf einem bestimmten Punkt in diesem Raum. Der genaue Punkt, auf dem ein Bild liegt, wird durch die Zahlen definiert, die den einzelnen Eigenschaften zugeordnet sind.
Im Beispiel von oben besteht der latente Raum aus drei Dimensionen: rot, grün und blau. Der Punkt, auf dem das grüne Beispielbild liegt, ist daher (0,1,0). Das blaue Bild liegt auf (0,0,1).
Um einen sanften Übergang zwischen zwei Bildern zu bekommen, hat Yannic diese Punkte im latenten Raum betrachtet. Um die Übergangsbilder zu bekommen, ist er im Prinzip einfach im latenten Raum von einem Bild zum nächsten gelaufen. Die Punkte, an denen er dabei vorbeigekommen ist, stellen ja ihrerseits auch wieder Bilder dar und sind in den Augen des Modells der logische Übergang zwischen den Bildern zum Text.
Um nochmal das Beispiel aufzugreifen: Um im Video einen sanften Übergang zwischen einem grünen und einem blauen Bild zu bekommen, braucht man Zwischenbilder. Diese bekommt man, indem man im latenten Raum vom Punkt des grünen Bildes (0,1,0) zum Punkt des blauen Bildes (0,0,1) läuft.
Zwischen diesen beiden Punkten liegt zum Beispiel (0,0.5,0.5), was einem türkisen Bild entspricht. Durch mehrere dieser Zwischenschritte bekommt man so einen sanften Übergang von grün zu blau.
Die so erzeugten Übergangsbilder hat er sich anzeigen lassen und in das Video eingebaut. Das Ergebnis ist faszinierend.
Youtube Video: https://www.youtube.com/watch?v=rR5_emVeyBk
Code auf Github: https://github.com/yk/clip_music_video
Erklärung zum Latent Space: https://towardsdatascience.com/understanding-latent-space-in-machine-learning-de5a7c687d8d (englisch)
Forscher von Intel haben eine Methode entwickelt um computergenerierte Bilder, zum Beispiel in Computerspielen, realistischer wirken zu lassen.
Das Kernstück bildet ein Convolutional Neural Network (CNN). Dieses verarbeitet die Bilder zusammen mit zusätzlichen Informationen von der Grafikkarte. Dabei handelt es sich zum Beispiel um Informationen zu Beleuchtung und Material in der dargestellten Szene. Mit den Eingabebildern und den Zusatzinformationen generiert das CNN dann die verbesserten Bilder.
Beim Training bekam das CNN zwei Ziele zur Optimierung: geringe strukturelle Unterschiede zwischen dem ursprünglichen Bild und dem generierten, also dass die dargestellte Szene gleich bleibt, sowie ein möglichst hoher Realismus.
Um festzustellen, wie realistisch das Bild ist, wurde ein "realism score" berechnet. Dafür wurden zwei verschiedene neuronale Netze verwendet. Eins zur Segmentierung des Bildes, das heißt, es erkennt welche Pixel zu welchen dargestellten Gegenständen gehören. Und das andere zur Feature Extraction, das heißt, es erkennt welche Eigenschaften das Bild hat. Die Ergebnisse der beiden Netze werden dann miteinander zum "realism score" verrechnet.
Die Autoren des Papers erwarten, dass ihre Technik sich gut in die Rendering Pipeline von Computerspielen einfügen lässt und in Zukunft zum Einsatz kommen wird. In der aktuellen Form dauert die Optimierung allerdings noch eine halbe Sekunde pro Bild, was für Computerspiele natürlich deutlich zu lang ist.
Artikel bei t3n: https://t3n.de/news/intel-ki-gta-fotorealistisch-1379258/
Paper: http://vladlen.info/papers/EPE.pdf (englisch)
Youtube Video: https://www.youtube.com/watch?v=P1IcaBn3ej0
Bei der Generierung von Bildern sind Generative Adversarial Networks (GANs) der aktuelle Stand der Technik. Forscher von OpenAI haben jetzt Diffusion Models als Alternative zu GANs untersucht. Das nehme ich hier zum Anlass um zu beschreiben was Diffusion Models eigentlich sind und wie sie funktionieren.
Diffusion Models sind ein vom physikalischen Phänomen der Diffusion inspirierter Ansatz. Diffusion ist die Vermischung von Gasen oder Flüssigkeiten von alleine, ohne äußere Einwirkung.
Zum Training von Diffusion Models wird im Prinzip das gleiche mit den Pixeln von Bildern gemacht: Sie werden gemischt, bis sie gleichmäßig verteilt sind. Dadurch wird das Bild immer verrauschter, bis am Ende nur noch Rauschen übrig ist. Das Modell wird darauf trainiert diesen Prozess umzukehren und das Rauschen zu reduzieren.
Das lässt sich dann nutzen, um, beginnend mit zufällig erzeugtem Rauschen, neue Bilder zu generieren. Dabei wird das Modell wiederholt auf das Rauschen angewandt und verwandelt es jedes Mal ein Stück mehr in Richtung eines Bildes.
Man könnte fast sagen, ein Diffusion Model geht ähnlich vor wie es Michelangelo gesagt haben soll: Um ein Bild eines Löwen zu generieren entfernt es einfach alles, was nicht nach Löwe aussieht.
Als Vorteile von Diffusion Models gegenüber GANs nennen die Forscher von OpenAI die bessere Skalierbarkeit und die einfachere Übertragbarkeit in neue Bereiche. Dass sie dennoch noch nicht mit GANs mithalten können, liegt laut ihrer Hypothese vor allem daran, dass die GAN-Architekturen schon weiter erforscht und verfeinert wurden. Mit ihrer Forschung wollen sie deshalb dazu beitragen, diesen Vorsprung zu verkleinern.
Paper: https://arxiv.org/abs/2105.05233 (englisch)
Ursprüngliches Paper zu Diffusion Models: https://arxiv.org/abs/1503.03585 (englisch)