Image Captioning mit Attention-Mechanismus


Madina Kasymova


AI captioning a man throwing a frisbee

Man sieht ein Bild und kann leicht sagen, was darin passiert, denn es ist die grundlegende Fähigkeit des Menschen, Details eines Bildes mit einem Blick zu erfassen und zu beschreiben. Können Maschinen verschiedene Objekte und ihre Beziehungen in einem Bild erkennen und sie in einer natürlichen Sprache beschreiben, so wie es Menschen tun? Dies ist das Problem, das Image Captioning (die Bildbeschriftung) zu lösen versucht. Bei der Bildbeschriftung geht es um die Beschreibung von Bildern in natürlicher Sprache (z. B. Englisch), wobei zwei Kernthemen der künstlichen Intelligenz kombiniert werden: Computer Vision und Natural Language Processing (zu Deutsch: Verarbeitung natürlicher Sprache). Bildbeschriftung ist eine Anwendung von Deep Learning, die sich in den letzten Jahren erheblich weiterentwickelt hat. Dieser Artikel gibt einen Überblick über die Architektur von Bildbeschriftungsalgorithmen und untersucht den Aufmerksamkeitsmechanismus - den häufigsten Ansatz zur Lösung dieses Problems.

Die jüngsten Arbeiten zu Bildbeschriftung haben gezeigt, dass die Verwendung eines transformatorbasierten Ansatzes, der ausschließlich auf Aufmerksamkeit basiert und die Beziehungen zwischen den Elementen einer Sequenz lernt, ohne rekurrente oder konvolutionäre Schichten zu verwenden, Vorteile bietet. Wir werden hier keine transformatorbasierten Architekturen betrachten, sondern uns nur auf den aufmerksamkeitsbasierten Ansatz konzentrieren.


Hintergrund


Die Aufgabe von Bildbeschriftung ist wesentlich komplexer als die relativ gut untersuchte Objekterkennung oder Bildklassifizierung, die in der Computer-Vision-Gemeinschaft im Vordergrund stehen. Die Bildbeschriftungssysteme müssen nicht nur leistungsfähig genug sein, um die Herausforderungen von Computer Vision bei der Bestimmung relevanter Objekte in einem Bild zu lösen, sondern sie müssen auch in der Lage sein, deren Aktionen, zugehörige Attribute und Beziehungen zueinander zu erfassen und diese komplexen visuellen Informationen in eine Beschreibung zu komprimieren. Fortschritte bei den Architekturen für neuronale Netze sowohl für die Bild- als auch für die Sprachverarbeitung haben das Problem der Bildbeschriftung trotz der Herausforderungen und der Komplexität greifbar gemacht.


Wie funktioniert es?


Ein Modell zur Erzeugung von Bildbeschriftungen funktioniert im Allgemeinen wie folgt: Es nimmt ein Bild als Eingabe, identifiziert die relevanten Teile und generiert Textbeschreibungen mit grammatikalisch sinnvollen Sätzen. Wie die Ausgabe aussehen wird, sehen Sie in der folgenden Abbildung. Wie wir sehen können, sind die Beschriftungen ziemlich genau und grammatikalisch korrekt. Diese Beschriftungen werden mit Hilfe eines Bildbeschriftungsmodells mit Aufmerksamkeit erzeugt, auf das wir weiter unten eingehen werden.


Encoder-decoder Architektur


Die meisten Bildbeschriftungssysteme verwenden eine Encoder-Decoder Architektur (zu Deutsch: Kodierer-Dekodierer-Architektur), die es uns ermöglicht, das Modell in einer durchgängigen Weise zu trainieren. Der Encoder ist ein Modell zur Extraktion von Bildmerkmalen und wird normalerweise durch ein CNN (Convolutional Neural Network) dargestellt. Der Decoder ist ein Sprachmodell, das durch ein LSTM (Long Short-Term Memory) (oder ein anderes auf rekurrenten neuronalen Netzen basierendes Modell) dargestellt wird.

Um Bildmerkmale zu extrahieren, müssen wir nicht von Grund auf ein CNN-Modell trainieren. Methoden zur Erzeugung von Bildunterschriften verwenden Transfer Learning (zu Deutsch: Transfer-Lernen), um visuelle Informationen auf der Grundlage von vortrainierten Convolutional Neural Network-Modellen zu extrahieren. Vorgefertigte Modelle sind zuvor in der ILSVRC ImageNet Challenge trainierte Netzwerke. Bildklassifizierungsmodelle, die auf dem ImageNet-Datensatz trainiert wurden, lassen sich in der Regel gut verallgemeinern und können effektiv als generische Bildmerkmalsextraktion für verschiedene Aufgaben in der Computer Vision eingesetzt werden. Aus diesem Grund ist es ein gängiger Ansatz, vortrainierte CNNs zu verwenden, um visuelle Merkmale für Bildbeschriftungen zu erhalten. Hier sind einige beliebte Modelle, die auf dem ImageNet vortrainiert wurden:

  • VGGNet

  • ResNet

  • Inception V3

Da diese Modelle für die Klassifizierung von Objekten in Bildern trainiert werden, wird die Klassifizierungsschicht übersprungen und die Feature-Map-Darstellung extrahiert, wenn sie für Bildbeschriftungen verwendet wird. Wir gehen hier nicht im Detail auf CNNs ein. Schauen Sie sich diesen Artikel an, wenn Sie wissen wollen, wie sie funktionieren.

Bildmerkmale in Form eines Vektors fester Länge werden dem Sprachdecoder als Eingabe zusammen mit dem speziellen "<sos>"- (Sequenzanfang) Token, das den Beginn der Sequenz anzeigt, zugeführt. Der Decoder verwendet den verborgenen Zustand des vorherigen Zeitschritts und das vorhergesagte Wort in jedem Zeitschritt, um das Ausgangswort für den aktuellen Zeitschritt zu generieren. Dieser Prozess wird so lange fortgesetzt, bis das "<eos>"-Zeichen (Ende der Sequenz) vorhergesagt wird.


Encoder-Decoder mit Aufmerksamkeitsmechanismus


Die Bildbeschriftung wurde durch die Einführung von Aufmerksamkeit erheblich verbessert - ein Mechanismus, der dem Algorithmus hilft, sich auf hervorstechende Teile des Bildes zu konzentrieren und redundante Inhalte auszuschließen. Einfach ausgedrückt, ist die Aufmerksamkeit eine gewichtete Summe der Encoder-Ausgänge. Wenn die Aufmerksamkeit in den Encoder-Decoder-Rahmen integriert wird, verarbeitet der CNN zunächst das Bild und gibt eine Merkmalskarte aus. Dann nimmt das Aufmerksamkeitsmodul diese Merkmalskarten zusammen mit einem verborgenen Zustand und weist jedem Bildpixel ein Gewicht zu. Die Gewichte werden dann mit dem Eingabewort für diesen Zeitschritt verkettet und an das LSTM-Netzwerk weitergeleitet. Auf diese Weise kann der Decoder bei der Generierung jedes Wortes der Ausgabesequenz auf den relevantesten Teil des Bildes achten. Lesen Sie diesen Artikel, um mehr über den Aufmerksamkeitsmechanismus und seine Implementierung zu erfahren.

Die Visualisierung der Aufmerksamkeitsgewichte zeigt, welchen Teilen des Bildes das Modell bei der Generierung eines bestimmten Wortes Aufmerksamkeit schenkt. In den folgenden Beispielen zeigen die weißen Hervorhebungen die beachteten Regionen an, wenn die unterstrichenen Wörter erzeugt werden. Im Bild oben links zum Beispiel wird der Decoder in dem Zeitschritt, in dem er das Wort "Frisbee" ausgeben muss, seine Aufmerksamkeit auf die Frisbee im Bild richten. Wenn das Wort "Frau" generiert wird, liegt die Betonung auf der Frau im Bild.


Fazit


In diesem Artikel haben wir untersucht, wie die Pipeline zur Erzeugung von Bildbeschriftungen im Großen und Ganzen funktioniert. Insbesondere haben wir uns den Aufmerksamkeitsmechanismus angesehen, der eine der vielen für diese Aufgabe verwendeten Methoden ist. Wir haben gesehen, wie die Aufmerksamkeit genutzt wird, um sich dynamisch auf die verschiedenen Teile des Eingabebildes zu konzentrieren, während die Bildbeschriftungen erstellt werden. Obwohl sich die Modelle für Bildbeschriftungen in den letzten Jahren erheblich verbessert haben, bleibt es eine Herausforderung, die es zu lösen gilt.