August 2, 2022

Kann KI wirklich originelle Logos erzeugen?

Mitwirkende
Jan Van Looy
Projektleiter
Bert Christiaens
Machine Learning Engineer
Karel Haerens
Machine Learning Engineer
Mathias Leys
Machine Learning Engineer
Newsletter abonnieren
Diesen Beitrag teilen

Entwicklung eines DALL-E-basierten Logo-Generators

Foto von Luca Bravo auf Unsplash

Man schätzt, dass die Menschen täglich mehr als fünftausend Werbebotschaften zu sehen bekommen. Unternehmen, Produkte und Organisationen versuchen alle, sich visuell ansprechend und unverwechselbar zu präsentieren. Große Unternehmen geben manchmal riesige Sum men aus, um ihre Marke zu entwickeln, aber der Rest von uns muss oft improvisieren und wendet sich an Online-Logoersteller wie Looka oder Tailor Brands als Ausgangspunkt. Mit diesen Diensten können Sie mit wenigen Klicks ein Logo erstellen, indem Sie Text, visuelle Elemente und Stilmerkmale auswählen. Die Erstellung eines Logos ist in der Regel kostenlos, aber wenn Sie eine hochwertige, vektorisierte Version herunterladen möchten, müssen Sie einen kleinen Betrag zahlen.

Sechs Beispiel-Logos mit demselben Stil und denselben Elementen mit leichten Abweichungen
Vorgeschlagene Logos für ein 'Designunternehmen'

Logo-Generatoren bedienen einen bestimmten Markt, und die daraus resultierenden Logos sehen schick aus. Der Generierungsprozess ist jedoch weitgehend "vorlagenbasiert", wobei eine feste Anzahl visueller Elemente wie Symbole, Schriftarten und Farben auf vorgegebene Weise kombiniert werden.

In gewisser Weise sind Logo-Generatoren, die auf Vorlagen basieren, mit cleveren, interaktiven Kochbüchern vergleichbar. Aber was wäre, wenn Sie stattdessen einen echten Koch zu sich nach Hause kommen lassen könnten, um ein einzigartiges Gericht zu kochen? Generative KI-Modelle wie DALL-E 1 und 2 von OpenAI und Imagen und Parti von Google haben gezeigt, dass sie in der Lage sind, komplexe Konzepte zu kombinieren und zu integrieren und sie in qualitativ hochwertige visuelle Darstellungen zu übersetzen, die von menschlicher Kreativität nicht zu unterscheiden sind, ihr aber sehr nahe kommen. Was wäre, wenn wir ein spezielles generatives KI-Modell entwickeln könnten, das wirklich kreative und aussagekräftige Logos erzeugt, die nicht nur clevere Kombinationen vorgefertigter Elemente sind, sondern genauso gut wie echte Logos? Hinzu kommt, dass Logos ein gemeinsames symbolisches Verständnis der Bedeutung und des Sinns haben, den sie zu vermitteln versuchen (Semiotik). Könnten wir ein KI-Modell dazu bringen, diese Bedeutung zu verstehen und nicht nur "attraktive" Logos zu erstellen, sondern Logos, die unseren menschlichen Erwartungen und Konventionen entsprechen? Dieser Blogpost dokumentiert die Entwicklung eines Proof-of-Concept-Demonstrators eines DALL-E-ähnlichen Modells zur Erzeugung von Logos. Wir besprechen die Datenerfassung, die Vorverarbeitung, die Erzeugung von Beschriftungen, das Modelltraining und die Ergebnisse. Wenn Sie direkt zur interaktiven Demo springen möchten, können Sie zu Replicate gehen.

Teddybären arbeiten in den 1980er Jahren auf dem Mond an neuer KI-Forschung" (DALL-E 2)
Teddybären arbeiten in den 1980er Jahren auf dem Mond an neuer KI-Forschung"(DALL-E 2)
Eine Drachenfrucht mit einem Karategürtel im Schnee" (Imagen)
Eine Drachenfrucht mit einem Karategürtel im Schnee"(Imagen)
Ein Foto von einem Frosch, der die Zeitung liest, auf der "Toaday" steht. Auch auf der Zeitung ist ein Frosch abgebildet" (Parti)
Ein Foto von einem Frosch, der die Zeitung liest, auf der "Toaday" steht. Auch auf der Zeitung ist ein Frosch abgebildet"(Parti)

Das Modell

Bevor wir uns mit der Datenaufbereitung befassen, die den größten Teil dieses Blogposts einnehmen wird, ist es sinnvoll, kurz bei dem Modell stehen zu bleiben, das wir verwenden wollten, da es viele unserer nachfolgenden Entscheidungen bestimmte.

Als wir mit diesem Projekt begannen, war DALL-E 1 der Stand der Technik bei der textbasierten Bilderzeugung, so dass es die logische Wahl war. Genauer gesagt haben wir uns entschieden, mit minDALL-E zu beginnen, einer quelloffenen PyTorch-Implementierung einer kleineren DALL-E-Variante, die das ursprüngliche, vortrainierte VQGAN mit einem GPT-ähnlichen Transformator mit 1,3b Parametern kombiniert, der auf 14 Millionen Bild-Text-Paaren trainiert wurde.

minDALL-E Modellarchitektur (visuell basierend auf der Quelle)
minDALL-E Modellarchitektur (visuell basierend auf der Quelle)

Ohne zu sehr ins Detail zu gehen, besteht minDALL-E aus zwei Teilen:

  1. Ein "Bild-Tokenizer" (VQGAN), der eine Encoder-Decoder-Architektur verwendet, um zu lernen, die Bilder im Datensatz in ein 16x16-Gitter von Bild-Token zu übersetzen, die aus einem festen Codebuch mit 16k Codes ausgewählt werden.
  2. einen "Bild-Token-Prädiktor", einen GPT-ähnlichen Transformator, der die Text-Token der Bildunterschriften als Input nimmt und auf dieser Grundlage lernt, die Bild-Token, wie sie vom Bild-Tokenizer kodiert werden, vorherzusagen

Zur Trainingszeit müssen Sie zunächst den Bild-Tokenizer (VQGAN) trainieren, um die Bilder im Datensatz anhand von Bild-Token zu rekonstruieren. Sobald dies geschehen ist, können Sie den Bild-Token-Prädiktor (GPT) trainieren, um sequentiell vorherzusagen, welche Bild-Token angesichts der bereitgestellten Text-Token vorhanden sein sollten (Vorhersage des Bildes auf der Grundlage der Bildunterschrift)

Zur Inferenzzeit, wenn ein Logo erzeugt werden soll, wird die Eingabeaufforderung in Text-Token umgewandelt, die vom Transformator (GPT) zur Vorhersage von Bild-Token verwendet werden, die dann vom Decoder des Bild-Tokenizers in ein neues, zuvor nicht gesehenes Bild übersetzt werden.

Datenerhebung

Ausgangspunkt unserer Datensammlung ist der Wikipedia-basierte Image Text Dataset(WIT), der aus über 11 Millionen Bildern mit umfangreichen Textbeschreibungen und Metadaten besteht, die es uns ermöglichen, relativ einfach nach Logos zu filtern. Weitere nützliche offene Datensätze, die wir gefunden haben, sind der Large Logo Dataset(LLD, 120k Logos) und der WebLogo-2M Dataset (2 Mio. Logos mit schwachen Bezeichnungen). Diese werden durch Logos ergänzt, die wir mit Selenium automatisch online von öffentlichen Websites gesammelt haben. Seit kurzem ist auch der Laion-5b-Datensatz (5b Bild-Text-Paare) verfügbar, den wir für diese Untersuchung noch nicht verwenden, der sich aber in Zukunft als nützliche Ergänzung erweisen könnte.

Vorverarbeitung von Bildern

Der erste Schritt besteht darin, alle Bilder in das jpeg-Dateiformat zu konvertieren und die Größe anzupassen. Eine Herausforderung dabei ist, dass einige Dateitypen transparente Hintergründe zulassen, unser Modell aber jpeg-Dateien (ohne Transparenz) erfordert. Um dieses Problem zu lösen, müssen wir die richtige Hintergrundfarbe anhand der Ränder des Logos erraten und sie vor der Konvertierung des Bildes ausfüllen. Das ist oft alles andere als einfach, und es hat sich herausgestellt, dass eine weitere manuelle Bereinigung erforderlich ist.

Viel nicht sehr nützlicher Leerraum und winzige Schriftarten
Viel nicht sehr nützlicher Leerraum und winzige Schriftarten
Entfernen des "schwarzen Raums" zur Maximierung der Logofläche
Entfernen des "schwarzen Raums" zur Maximierung der Logofläche

Zweitens erfordert unser Modell jpg-Bilder mit einer Größe von 256x256 Pixeln, was für ein Logo nicht sehr groß ist, insbesondere wenn es viel Text enthält. Darüber hinaus enthalten viele der von uns gesammelten Dateien eine beträchtliche Menge an Leerraum um die Logos herum, was natürlich eine Verschwendung von Informationen darstellt und beschnitten werden muss. Zu diesem Zweck verwenden wir die Python-Bildbearbeitungsbibliothek, um den Unterschied zwischen dem Logobild und einem Bild mit nur der Hintergrundfarbe zu berechnen und auf diesen Bereich zuzuschneiden. Zu kleine Bilder werden entfernt und die anderen in die richtige Form und Größe umgewandelt.

Filterung und Auswahl

Wir stellen schnell fest, dass die von uns gesammelten Daten nicht als solche verwendet werden können, sondern dass eine ernsthafte Filterung und Bereinigung erforderlich ist. Zunächst einmal braucht man für die textbasierte Bilderzeugung Paare aus Bildern und Text. Einige Informationen lassen sich aus den Bildern selbst ableiten, aber wenn man das Logo mit einem Unternehmen oder Produkt, einer Branche oder mit anderen Markeninformationen verknüpfen will, braucht man Metadaten und vorzugsweise auch kontextbezogene Informationen. Dies schließt einige der offenen Datensätze sofort aus.

Zweitens handelt es sich bei Bildern von Logos oft um reale Bilder von Objekten mit Logos wie Autos oder Gebäuden. Darüber hinaus sind einige Bilder von Logos nicht einmal Logos, wie man sie sich vorstellt, z. B. historische Embleme und Papierstempel. Da wir saubere Logos erzeugen wollen, die mehr oder weniger für die Verwendung auf einer Website geeignet sind, wollen wir diese herausfiltern.

Eine sehr nützliche Heuristik zur Erkennung von Nicht-Logobildern ist die Betrachtung der Dateigröße. Logos sind digitale Bilder, die aus einer begrenzten Anzahl von Farben bestehen, die in Blöcken von mehreren Pixeln auftreten. Das bedeutet, dass sie sehr leicht zu komprimieren sind. Komprimierte Bilder mit einer sehr kleinen Dateigröße sind höchstwahrscheinlich "leer" oder enthalten große weiße Streifen, während Bilder mit einer großen Dateigröße höchstwahrscheinlich Informationen mit hoher Frequenz enthalten, was typisch für Bilder aus der realen Welt ist. Wir wählen daher einen unteren und einen oberen Schwellenwert und behalten nur die Bilder, die dazwischen liegen.

Schließlich sind viele Elemente Duplikate oder Beinahe-Duplikate (z. B. gelegentliche Varianten), von denen Sie nicht zu viele in Ihrem Datensatz haben möchten, um Verzerrungen zu vermeiden. Für die Erkennung von Duplikaten verwenden wir ein vortrainiertes CNN, das auf ImageNet trainiert wurde und in seinen letzten Schichten Allzweckrepräsentationen enthält. Wir kodieren alle Bilder unseres (bereits gefilterten) Datensatzes mit dem Modell und speichern ihre Einbettungen. Anschließend berechnen wir die Abstände zwischen diesen Einbettungen, um die semantische Ähnlichkeit zwischen den einzelnen Bildpaaren zu ermitteln. Wenn die Einbettungen zweier Bilder nahe beieinander liegen, haben sie einen sehr ähnlichen Inhalt.

Durch Versuch und Irrtum lernen wir, dass wir mehrere Filter- und Bereinigungstechniken iterativ kombinieren müssen, und oft müssen wir nach einer weiteren Vorverarbeitung darauf zurückgreifen, um eine weitere Bereinigung durchzuführen. Die Verarbeitung von Daten in der realen Welt kann eine hässliche Angelegenheit sein. Wir wenden verschiedene Techniken an, um minderwertige Daten in mehreren Schritten zu reduzieren. Auf diese Weise erhalten wir einen Datensatz von etwas mehr als 140.000 unterschiedlichen Logobildern mit Kontextinformationen.

Extrahieren von Metadaten aus Bildern

Ein gutes Logo ist meist ein geschicktes Zusammenspiel von Text, Schrift, Farben und Bildern. Um dies zu ermöglichen, müssen wir den Bildunterschriften der Logos die entsprechenden Informationen hinzufügen, damit das Modell die richtigen Assoziationen lernen kann. Ein erster Schritt besteht also darin, den genauen Text aus dem Logo zu extrahieren. Wir testen mehrere Optionen und entscheiden uns dann für den Google Cloud Vision API OCR-Dienst, der im Modus text_detection sehr gut in der Lage ist, Text aus einer Vielzahl von Bildern zu extrahieren, darunter auch Verkehrszeichen und Logos.

Wir möchten dem Benutzer auch die Möglichkeit geben, die wichtigsten Farben im Logo auszuwählen, aber diese Information ist nur selten in den Metadaten oder im umgebenden Text verfügbar. Daher beschließen wir, die Hintergrund- und die wichtigsten Vordergrundfarben aus den Bildern selbst zu extrahieren, indem wir Colorgram, Color Thief und die Python Image Library verwenden. Wir definieren eine Liste von gewünschten Farbnamen und gleichen die extrahierten Farben mit diesen ab.

Außerdem wird häufig zwischen verschiedenen Logotypen unterschieden, von denen wir einige gezielt generieren wollten. Zu diesem Zweck haben wir einen Klassifikator trainiert, der 6 verschiedene Logotypen vorhersagt: Buchstabenmarke, Wortmarke, Symbol, abstraktes Maskottchen und Emblem (wie hier beschrieben). Dann haben wir 600 Logos mit Labelbox manuell beschriftet und einen Out-of-the-Box-Klassifikator MobileNetV2 feinabgestimmt.

Sieben bekannte Logos unterschiedlicher Art wie Pepsi (abstrakte Marke), KFC (Maskottchen-Logo) und Google (Wortmarke)
Arten von Logos(Quelle)

Extrahieren von Metadaten aus Text

Wir extrahieren Schlüsselwörter aus einer Beschreibung des Unternehmens oder der Organisation, die hinter dem Logo steht, mit Hilfe eines vortrainierten Satzumwandlers, der einer KeyBERT-Architektur zugrunde liegt. Der Grundgedanke ist, dass diese Schlüsselwörter Aufschluss darüber geben, wofür das Unternehmen steht und wie es wahrgenommen werden möchte. Beide Aspekte spiegeln sich höchstwahrscheinlich in der Gestaltung des Logos wider (d. h. ein Technologieunternehmen, das als modern und innovativ wahrgenommen werden möchte, wird sich wahrscheinlich für ein minimalistisches Logo entscheiden, während eine Bank, die als stabil und vertrauenswürdig wahrgenommen werden möchte, ein traditionell aussehendes Emblem wählen wird).

Einige Beispiele von Organisationen zusammen mit den wichtigsten Schlüsselwörtern, die wir für sie extrahiert haben

  • Goldman Sachs: Banken, Märkte, Vertrauen, Aktionäre, Finanzen
  • Apfel: Vielfalt, Innovation, Chancen, Engagement, Inklusion
  • Vereinte Nationen: Humanitäre Hilfe, Regierung, Bürger, Rechte, Frieden
  • Harvard: Institution, Fachbereich, Lehre, Exzellenz, Älteste

Verwendung von ClipCap für die Erstellung vollständiger Beschriftungen

Im Idealfall hätte man eine oder mehrere von Menschen erstellte Beschreibungen für jedes Logo, aber die Beschriftung von 140k Bildern wäre unerschwinglich teuer. Da wir uns in der Bootstrapping-Phase befinden, werden wir die automatische Beschriftung mit ClipCap ausprobieren, einem System, das CLIP und GPT2 geschickt kombiniert, um Beschreibungen für bisher ungesehene Bilder in freier Wildbahn zu finden.

ClipCap-Architektur: Abbildung von CLIP-Einbettungen auf GPT2-Präfix-Einbettungen (Quelle)
ClipCap-Architektur: Abbildung von CLIP-Einbettungen auf GPT2-Präfix-Einbettungen(Quelle)

ClipCap ist auf den kleineren Conceptual Captions-Datensatz abgestimmt, der etwas mehr als 3 Mio. Bild-Text-Paare enthält, von denen die meisten Bilder von Szenen, Objekten oder Landschaften und nicht von Logos sind. Trotzdem liefert es akzeptable Ergebnisse, wenn es auf Logos angewandt wird, wobei in einigen Fällen lediglich festgestellt wird, dass es sich um ein "Logo" handelt. In anderen Fällen erkennt ClipCap Stilmerkmale, visuelle Elemente oder liefert sogar so etwas wie eine Interpretation.

Beispiele für ClipCap-Autobeschriftungen
Beispiele für ClipCap-Autobeschriftungen

Bei der Erstellung einer Beschriftung wird der Text Token für Token mit Hilfe des GPT2-Decoder-Netzwerks von ClipCap nacheinander erzeugt. Bei jedem Schritt gibt dieses Modell eine Wahrscheinlichkeitsverteilung von Wörtern aus, die für die Beschriftung geeignet sind. Da wir diese Verteilung erhalten, haben wir mehrere Möglichkeiten, unsere Beschriftung zu konstruieren. Die einfachste (und langweiligste) Methode ist, immer das Wort mit der höchsten Wahrscheinlichkeit (und der geringsten Entropie) zu nehmen. Dies ist natürlich etwas kurzsichtig, denn das beste Wort an einem bestimmten Punkt ist nicht unbedingt das beste Wort insgesamt.

Eine Alternative zu dieser Methode ist eine Stichprobe aus der Wahrscheinlichkeitsverteilung der Ausgabe. Dadurch erhalten wir variablere Beschriftungen, da das Wort mit der höchsten Wahrscheinlichkeit nicht immer sehr informativ ist und wir durch die Einbeziehung einiger weniger offensichtlicher Wörter interessantere Sätze erhalten können. Außerdem können wir durch Hinzufügen eines Temperaturparameters den Grad des "Abenteurertums" des Stichprobenmechanismus beeinflussen. Eine niedrigere Temperatur macht das Modell zuversichtlicher, so dass es häufiger die sicherere, wahrscheinliche Option wählt; eine höhere Temperatur gleicht die Verteilung stärker aus, was zu einer variableren Auswahl führt (siehe Abbildung unten).

Auswirkung des Temperaturparameters auf die Wahrscheinlichkeitsverteilung
Auswirkung des Temperaturparameters auf die Wahrscheinlichkeitsverteilung

Eine andere Erweiterung dieser Stichprobentechnik, die als Balkensuche bezeichnet wird, besteht darin, mehrere Sequenzen (oder Balken) anstelle von nur einer zu konstruieren und am Ende zu prüfen, welche Sequenz die beste Gesamtbewertung hat. Durch Änderung der Balkengröße wird ein Kompromiss zwischen dem erforderlichen Rechenaufwand und der Qualität der Bildunterschrift gefunden.

Strahlensuche: Konstruktion von mehreren Strahlen (Quelle)
Strahlensuche: Konstruktion von mehreren Strahlen(Quelle)

Für den Teil der Pipeline, der sich mit der Beschriftung befasst, führen größere Bilder im Allgemeinen zu besseren Ergebnissen, ebenso wie die Verwendung der Balkensuche mit der Größe 5 und die Anpassung der Temperatur auf 0,3. Dies ergibt eine schöne Kombination aus wahrheitsgetreuen, aber kreativen und semantisch reichen Beschreibungen.

Regelbasierte Beschriftungserstellung

Eine letzte Herausforderung bei der Datenverarbeitung besteht darin, alle gesammelten Informationen zu kohärenten, aber gleichzeitig ausreichend variablen Bildunterschriften mit fast 64 Text-Token zu kombinieren, mit denen wir unser Modell trainieren können. Nachdem wir den DALL-E-Artikel noch einmal gelesen und den Blogpost noch einmal gelesen haben, entscheiden wir, dass es am besten ist, die verfügbaren 64 Text-Token bis zur Grenze zu füllen, um dem Modell so viele Informationen wie möglich zu geben, mit denen es arbeiten kann, wenn es Bild-Token vorhersagt.

Für jedes Logo stehen uns die folgenden Informationen zur Verfügung:

  • OCR-Text aus dem Logo
  • Farben: Vordergrund und Hintergrund
  • Logo-Stil
  • Name des Unternehmens
  • Industrie
  • Schlüsselwörter (abgeleitet aus dem umgebenden Text oder den Metadaten)
  • ClipCap-generierte Beschriftungen

Als Nächstes erstellen wir ein Skript, um Permutationen von Sätzen zu generieren und die verfügbaren Informationselemente so weit wie möglich umzuordnen, um Verzerrungen in Position und Reihenfolge zu vermeiden und gleichzeitig einen gewissen Anschein von natürlicher Sprache zu wahren. Wir unterscheiden auch zwischen mehreren Phasen, um Verzerrungen einzuschränken, da einige Begriffe häufiger vorkommen als andere, wie zum Beispiel Farben. Jede Phase enthält zehn generierte Beschriftungen, aus denen das Modell zur Trainingszeit eine auswählt.

Feinabstimmung des "Bild-Tokenizers" (VQGAN)

Als Ausgangspunkt verwenden wir die vortrainierten Standardgewichte von minDALLE. Der erste Schritt ist die Feinabstimmung von VQGAN. Dieses VQGAN-Modell wurde bereits mit einer Vielzahl von Daten trainiert, darunter auch, aber nicht nur, Computergrafiken wie Logos. Obwohl dieses Encoder-Decoder-Netzwerk Bilder bereits recht gut rekonstruieren kann, kann es speziell bei Logobildern noch viel besser abschneiden. Daten aus der realen Welt enthalten in der Regel hochfrequente Informationen, da es in natürlichen Bildern eine große unregelmäßige Vielfalt an Farben und Texturen gibt. Logos hingegen bestehen im Allgemeinen aus gleichfarbigen Flächen mit relativ einfachen Formen.

Wir wollen, dass VQGAN uns scharfe Kanten und schöne, gleichmäßig gefärbte Flächen liefert, um unsere Logos zu rekonstruieren, was eine gewisse Feinabstimmung des Modells erfordert. Während der Feinabstimmung können wir deutlich die Verbesserungen in diesen Aspekten erkennen, und wir sehen, dass der Verlust mit jeder Epoche abnimmt. Wir trainieren das Modell vierzig Epochen lang, bis wir mit der Qualität der Ergebnisse zufrieden sind. Zu diesem Zeitpunkt ist das Modell noch nicht überangepasst, so dass weitere Qualitätssteigerungen durch zusätzliches Training möglich sind.

VQGAN-Bildrekonstruktion nach Feinabstimmung für (nur) eine Epoche: Originalbild (oben) & Rekonstruktion (unten)
VQGAN-Bildrekonstruktion nach Feinabstimmung für (nur) eine Epoche: Originalbild (oben) & Rekonstruktion (unten)
VQGAN-Bildrekonstruktion nach Feinabstimmung für 40 Epochen: Originalbild (oben) & Rekonstruktion (unten)
VQGAN-Bildrekonstruktion nach Feinabstimmung für 40 Epochen: Originalbild (oben) & Rekonstruktion (unten)

Feinabstimmung des "Bild-Token-Prädiktors" (GPT)

Der allgemeine Ablauf beim Training des DALL-E-Modells besteht darin, einen Stapel von Bildunterschriften aus der Trainingsmenge zu kodieren und zu lernen, die diskreten Bild-Token von VQGAN vorherzusagen (siehe auch den Abschnitt über das Modell oben). Jedes dieser Token stellt eine eigene Klasse dar, und dieser Schritt wird in der Regel mit dem Cross-Entropy-Verlust trainiert.

Zusätzlich zu dieser autoregressiven Bild-Token-Vorhersage gibt es, um sinnvolle Texteinbettungen zu erlernen, die die Beziehungen zwischen den Wörtern erfassen, einen Sprachmodellierungsverlust, ähnlich dem, der zum Trainieren der autoregressiven Decoder-only-GPT-Modelle verwendet wird. Dieser wird mit einer bestimmten Gewichtung zum Gesamtverlust addiert, um die Auswirkungen der Sprach- und Bildmarkenvorhersageverluste auszugleichen.

Beim eigentlichen Training dieses Modells für die textbedingte Bilderzeugung stellen wir schnell fest, dass unser Datensatz nicht sehr groß ist und dass unser Modell groß genug ist, um sich einen Großteil davon zu merken. Dies führt schnell zu einer Überanpassung, bei der das Modell die Daten auswendig lernt, anstatt verallgemeinerbare Prinzipien abzuleiten. Dadurch erreicht es eine hervorragende Leistung bei gesehenen Daten, aber eine miserable bei ungesehenen Daten, was natürlich nicht das ist, was wir wollen!

Es gibt im Wesentlichen drei Möglichkeiten, das Overfitting zu bekämpfen: Vergrößerung des Trainingsdatensatzes, Verkleinerung des Modells oder Anwendung der Regularisierung. Da die ersten beiden Möglichkeiten nicht in Frage kommen, wenden wir verschiedene Regularisierungstechniken an, um die Fähigkeit des Modells, Dinge auswendig zu lernen, einzuschränken und es zu zwingen, nützlichere Darstellungen zu lernen, die sich auf den Testsatz verallgemeinern lassen. Zu den verwendeten Techniken gehören Focal Loss, Gradient Clipping, Weight Decay und Caption Variation, die alle im Folgenden näher erläutert werden. Mit diesem angepassten Setup führen wir eine Feinabstimmung des Modells für 15 Epochen durch, bis es anfängt, überzupassen.

Fokaler Verlust

Zunächst einmal ersetzen wir den Kreuzentropieverlust durch einen Verlust, der für klassenungleiche Datensätze besser geeignet ist. Aber wie kann unser Datensatz unausgeglichen sein, werden Sie sich fragen? Da wir nicht direkt das gesamte Bild vorhersagen, sondern eher Segmente (in Form von Bild-Token), kommen einige Token in Logos viel häufiger vor als andere, z. B. das Token, das einen schwarzen oder weißen Hintergrund darstellt. Diese sind sehr viel häufiger als ein exotischer Bildausschnitt mit Text und mehreren Farben darin (wobei letzterer eigentlich wichtiger ist). Um die Auswirkungen dieser dominanten Token (die sichereren Token) zu reduzieren, implementieren wir den Focal Loss. Dabei handelt es sich um einen angepassten Kreuzentropieverlust, der den Token, die nicht gut vorhergesagt werden (und daher eine geringere Wahrscheinlichkeit haben), mehr Gewicht verleiht (in Form von Verlusten) und das Gewicht der Klassen, die bereits mit einer angemessenen Wahrscheinlichkeit vorhergesagt werden, verringert. Dadurch verlagert sich der Schwerpunkt des Modells von der Optimierung der einfacheren Teile auf die Bewältigung der schwierigeren Aufgaben.

Fokussierter Verlust verringert die "Attraktivität" der Vorhersage von Klassen mit hoher Wahrscheinlichkeit, um den Verlust zu verringern (Quelle)
Fokussierter Verlust verringert die "Attraktivität" der Vorhersage von Klassen mit hoher Wahrscheinlichkeit, um den Verlust zu verringern(Quelle)

Farbverlauf beschneiden

Eine zweite Regularisierungstechnik ist die Gradientenbeschneidung, die die Größe der Gradienten während des Trainings begrenzt und die Wahrscheinlichkeit verringert, dass das Modell durchdreht. Für den Fall, dass eine bestimmte Probe (oder ein Stapel) einen seltsamen und/oder absurd hohen Gradienten ergibt, der die Modellgewichte in eine unerwünschte Richtung drängt, wird die Auswirkung begrenzt. Obwohl die Gradienten im Allgemeinen in eine günstige Richtung weisen, wollen wir nicht bei jeder Aktualisierung zu große Änderungen vornehmen.

Gewichtsabnahme

Eine weitere Technik, die auf die Gradienten angewendet wird, ist der Gewichtsverfall. Dabei handelt es sich um eine bekannte Technik, bei der die Größe der Modellgewichte in die Verlustfunktion einbezogen wird. Die Idee dahinter ist, dass es sehr einfach ist, alle Trainingsdaten zu lernen, wenn die Modellgewichte einen beliebigen Wert annehmen können. Durch die Einschränkung dieser Gewichtsgrößen, indem die Amplituden der Gewichte zum Verlust mit dem L2-Verlust addiert werden, bleiben die Modellgewichte innerhalb vernünftiger Grenzen und erhalten eine bessere Chance, Merkmale zu lernen, die weithin verwendbar sind und tatsächlich nützliche Informationen enthalten, die während der Inferenz verwendet werden können.

Variation der Beschriftung

Eine letzte wichtige Technik, die wir anwenden, besteht darin, die Vielfalt der Bildunterschriften zu erhöhen, die mit jedem Bild verbunden sind. Wie im Abschnitt über die Generierung von Bildunterschriften beschrieben, können wir eine Liste von Bildunterschriften für jedes Bild generieren und in jeder Trainingsepoche eine zufällig zuweisen. Auf diese Weise hat das Modell nicht die Möglichkeit, nur die direkte Zuordnung von Text zu Bild zu lernen, sondern muss vielmehr die semantischen Informationen innerhalb der Bildunterschriften lernen.

Scheitern: Zeicheneinbettungen

Nicht alles, was wir ausprobieren, funktioniert jedoch wie geplant. Wir definieren separate Zeicheneinbettungen, um die Generierung von Text innerhalb des Logos zu steuern, indem wir ihn der Texteingabe hinzufügen. Der Hauptgrund dafür ist, dass das Modell klar erkennen kann, welcher Text sich tatsächlich im Bild befindet und nicht Teil des semantischen Inhalts ist.

Obwohl dies ein vernünftiger Ansatz zu sein scheint, ist es in der Praxis sehr schwierig für das Modell, diese Art von komplexen Informationen zu lernen (Zeichen, Schriftarten, Gehäuse, Farben, Größe, Richtung usw.). Auch wenn es 1,3 B Parameter hat, ist es immer noch relativ klein und hat es schwer, diese neue Art von Informationen in seine Vorhersagen einzubeziehen. Wenn man sich die Originalarbeit von DALL-E und andere große multimodale Modelle ansieht, wird deutlich, dass die Fähigkeiten der Modelle mit der Größe des Modells skalieren und dass ein solch komplexes Verhalten auftritt, wenn es größer und schlechter wird (die so genannten Skalierungsgesetze).

Ein zweiter Grund ist, dass wir einen relativ kleinen Datensatz mit "nur" 140k Bildern haben und dass die Textinformationen in einem Logo oft einen Markennamen enthalten und daher einzigartig sind. Dadurch kann das Modell recht leicht beginnen, Texte eins zu eins mit Bildern zu assoziieren und eine Überanpassung vorzunehmen. Dies führt zu einer Verschlechterung der Modellleistung und zu einem "Mode Collapse" (d. h., dass das Modell immer wieder dieselben Stichproben erzeugt).

Resultate

Insgesamt sind wir mit den Ergebnissen sehr zufrieden, da wir wissen, dass dies die erste funktionierende Version eines Proof of Concept Demonstrators ist. Nachfolgend finden Sie einige Beispiel-Prompts mit jeweils vierzig (nicht herausgepickten) generierten Logos, geordnet nach nicht feinabgestimmter CLIP.

Ergebnisse aus unserem Modell mit der Aufforderung 'Ein Logo einer Sportbekleidungsmarke ohne Text'.
Ein Emblem einer Sportbekleidungsmarke ohne Text" (unser Modell)
Ergebnisse aus unserem Modell mit der Aufforderung 'Ein gold-grünes Logo eines indischen Restaurants mit dem Taj Mahal'.
Ein goldenes und grünes Logo eines indischen Restaurants mit dem Taj Mahal (unser Modell)
Ergebnisse aus unserem Modell mit der Aufforderung 'Ein Logo für ein Pariser Café mit dem Eiffelturm'.
Ein Logo für ein Pariser Café mit dem Eiffelturm" (unser Modell)
Ergebnisse unseres Modells mit der Aufforderung 'Ein Logo einer japanischen Nudelbar mit einer Schüssel dampfender heißer Nudeln'.
Das Logo einer japanischen Nudelbar mit einer Schüssel dampfender heißer Nudeln (unser Modell)

Einige unserer Beobachtungen sind die folgenden:

  • Das Modell generiert einzigartige, bisher ungesehene Logos. Es gibt einige Logos, die uns vage bekannt vorkommen, aber wenn wir versuchen, sie mit der umgekehrten Bildersuche zu finden, scheitern wir völlig.
  • Das Modell generiert Logos entsprechend den semiotischen Codes, die in den Beschriftungen enthalten sind, wie z. B. Stil, Typ, Branche usw.
  • Die Feinabstimmung hat ihn von einem generischen Bildgenerator in einen Logo-Generator verwandelt. Wenn man ihn bittet, Nicht-Logos zu generieren, wird er dies in einem sehr logoähnlichen Stil tun. Außerdem ist die Qualität der Logos, die mit dem fein abgestimmten Modell erzeugt werden, viel feiner und qualitativer als die mit den ursprünglichen Gewichten. Ein Teil des Wissens über die reale Welt aus dem ursprünglichen Training scheint jedoch vom Modell beibehalten worden zu sein. Wenn man es zum Beispiel nach spezifischen visuellen Elementen wie einer Tasse Kaffee oder dem Taj Mahal fragt, ist es in der Lage, diese zu integrieren.
  • Das Modell ist in der Lage, visuelle Elemente wie Schriftarten, Bilder und Farben kreativ zu kombinieren. Die Farben sind ausgewogen und passen im Allgemeinen zum Thema. Der Text ist in die visuellen Elemente eingebettet und interagiert manchmal geschickt mit ihnen, z. B. wenn der Eiffelturm als Zeichen verwendet wird.
  • Längere, informativere, anschaulichere und konkretere Aufforderungen führen zu besseren Ergebnissen. Wenn nur wenige Informationen gegeben werden, wirkt die Ausgabe eher ungerichtet.
  • Das Modell ist schnell. Es benötigt etwa eine Sekunde pro Logo, wenn ein Stapel von zwanzig Logos auf einer NVIDIA P100-GPU erstellt wird.
  • Der Text sieht aus wie Kauderwelsch. Selbst wenn Sie gezielt nach bestimmten Zeichen fragen, kann das Modell diese nicht erzeugen (siehe Abschnitt "Schlussfolgerung").

Beim Vergleich mit Logos, die mit dem ursprünglichen minDALL-E (unten) generiert wurden, fällt auf, dass unser Ansatz vielfältigere, konsistentere und visuell ansprechendere Ergebnisse liefert. Beim Vergleich mit dem neueren Laion-Ai/Erlich-Diffusionsmodell fällt auf, dass unser Ansatz schneller und "kreativer" ist, da die generierten Logos vielfältiger sind. Die erlich generierten Logos können jedoch viel besser mit Text umgehen und sind näher an einem Endprodukt.

Ergebnisse unseres Modells mit der Aufforderung 'Ein Logo eines Cafés mit einer Kaffeetasse'.
Das Logo eines Cafés mit einer Kaffeetasse" (unser Modell)
Zum Vergleich: Ergebnisse aus dem Original minDALL-E mit der Aufforderung "Ein Logo eines Cafés mit einer Kaffeetasse".
Ein Logo eines Cafés mit einer Kaffeetasse" (original minDALL-E ohne Feinabstimmung)
Zum Vergleich: Ergebnisse von laion-ai / erlich mit der Aufforderung 'Ein Logo eines Coffee Shops mit einer Kaffeetasse'.
Logo eines Cafés mit einer Kaffeetasse"(laion-ai / erlich)

Schlussfolgerungen

Wir sind davon überzeugt, dass die KI-gestützte Logoerstellung bald Realität sein wird (und dass KI auch eine Reihe anderer komplexer kreativer Prozesse steuern wird). Unsere hier beschriebene Übung hat gezeigt, dass fortschrittliche generative KI-Modelle wie DALL-E einzigartige, qualitativ hochwertige Ergebnisse erzeugen können, die dem menschlichen Verständnis und der Semiotik entsprechen und im Grunde genommen mit der menschlichen Kreativität mithalten können.

Wir machen diese Aussage sogar auf der Grundlage unseres relativ "kleinen" Modells und sind der festen Überzeugung, dass eine weitere Erweiterung und Feinabstimmung unseres Datensatzes dazu beitragen wird, unsere Ergebnisse für den Einsatz in der realen Welt fit zu machen. Über den Datensatz hinaus können weitere Verbesserungen vorgenommen werden, z. B. durch die Verwendung eines latenten Diffusionsmodells, durch gezieltes Vortraining z. B. für Schriftarten und Icons, durch die Verwendung eines fein abgestimmten ML-basierten Beschriftungsgenerators und durch eine Feinabstimmung von CLIP, um die Ergebnisse zu ordnen.

Schließlich hat dieses Experiment wieder einmal gezeigt, wie schnell sich KI entwickeln und lernen kann. Dies deutet darauf hin, dass der Input der Nutzer in Verbindung mit dem vorhandenen Fachwissen ein wesentlicher Faktor für den Erfolg sein wird. Dies stellt eine Herausforderung für bestehende Kreativprozesse dar, denen es oft an klaren Erfolgsfaktoren und KPIs mangelt (z. B. How Brands Grow - Distinctive Brand Assets für einen Versuch, dies messbar zu machen). Das Fehlen einer klaren Designsprache (was ist für Sie "minimal"?) und eines Bewertungsmodells (ein "gutes" gegenüber einem "schlechten" Logo) erschwert den Lernprozess für KI. Unabhängig davon wird es darauf ankommen, relevante (und getestete) Klassifikatoren zur bestehenden Datenbank hinzuzufügen und aus Benutzereingaben und implizitem Feedback zu lernen. Interessanterweise glauben wir, dass dies, wenn es gut gehandhabt wird, tatsächlich eine neue Ära des wissenschaftlicheren Marketings einleiten könnte.

Demo

Sie können die interaktive Demo auf Replicate testen.

Danksagung

Wir danken Bert Christiaens, Karel Haerens, Mathias Leys und Elina Oikonomou für ihre Arbeit an der Demo und diesem Blogpost sowie Daan Raemdonck für die Bereitstellung seines Fachwissens. Wir möchten auch dem Vlaams Supercomputer Centrum(VSC) und Tim Jaenen von der Forschungsstiftung Flandern(FWO) für die Nutzung ihrer Infrastruktur danken.

Verwandte Beiträge

Alle anzeigen
Keine Ergebnisse gefunden.
Es gibt keine Ergebnisse mit diesen Kriterien. Versuchen Sie, Ihre Suche zu ändern.
Stiftung Modelle
Unternehmen
Unser Team
Verantwortungsvolle und ethische KI
Strukturierte Daten
Chat GPT
Nachhaltigkeit
Stimme und Ton
Front-End-Entwicklung
Schutz und Sicherheit von Daten
Verantwortungsvolle/ethische KI
Infrastruktur
Hardware und Sensoren
MLOps
Generative KI
Verarbeitung natürlicher Sprache
Computer Vision