14 Punkte von xguru 2024-04-17 | 1 Kommentare | Auf WhatsApp teilen
  • Vision Transformers (ViTs) sind eine Klasse von Deep-Learning-Modellen, die bei Bildklassifizierungsaufgaben Spitzenleistungen erzielen
  • Sie wenden die für die Verarbeitung natürlicher Sprache (NLP) entwickelte Transformer-Architektur auf Bilddaten an
  • Dieser Leitfaden hilft mit Visualisierungen und einfachen Erklärungen dabei zu verstehen, wie diese Modelle funktionieren und wie der Datenfluss aussieht, wenn die Daten das Modell durchlaufen

Hauptinhalte

  • Ein Bild wird in gleich große Patches der Größe p x p aufgeteilt
  • Der codierte Vektor jedes Patches hat die feste Größe d
  • Übrig bleibt ein Array der Größe n x d (n ist die Anzahl der Bild-Patches, d die Größe des Patch-Embeddings)
  • Um das Modell effektiv zu trainieren, wird das Array der Patch-Embeddings um einen zusätzlichen Vektor erweitert, den sogenannten Klassifizierungs-Token (cls-Token)
  • Da keine Positionsinformationen vorhanden sind, werden zufällig initialisierte Positions-Embedding-Vektoren hinzugefügt
  • Nach dem Hinzufügen der Positions-Embedding-Vektoren wird ein Array der Größe (n+1) x d als Eingabe in den Transformer gegeben
  • Im Inneren des Transformers
    • 10.1 Die Eingabe-Patch-Embedding-Vektoren des Transformers werden linear in mehrere große Vektoren eingebettet: Q – Query-Vektoren, K – Key-Vektoren, V – Value-Vektoren
    • 10.2 Zur Berechnung der Attention-Scores A werden alle Query-Vektoren Q mit allen Key-Vektoren K multipliziert
    • 10.3 Nachdem die Attention-Score-Matrix A entstanden ist, wird auf jede Zeile die Funktion softmax angewendet, sodass die Summe jeder Zeile 1 ergibt
    • 10.4 Um die aggregierten Kontextinformationen für den ersten Patch-Embedding-Vektor zu berechnen, wird auf die erste Zeile der Attention-Matrix fokussiert und ihre Einträge als Gewichte für den Value-Vektor V verwendet
    • 10.5 Dieser Prozess wird nun für alle Zeilen der Attention-Score-Matrix wiederholt, wodurch N+1 Vektoren aggregierter Kontextinformationen entstehen (einer pro Patch plus einer für den Klassifizierungs-Token). Damit ist der erste Attention-Head abgeschlossen
    • 10.6 Da es sich um Multi-Head-Attention handelt, wird der gesamte Prozess aus den Schritten 10.1 bis 10.5 mit einem anderen QKV-Mapping erneut durchgeführt
    • 10.7 Letzter Schritt der Attention-Schicht. Die Heads werden zusammengeführt und auf Vektoren der Größe d abgebildet, also derselben Größe wie die Patch-Embeddings
    • 10.8 Nach den vorherigen Schritten ist die Attention-Schicht abgeschlossen, und es bleibt die gleiche Anzahl an Embeddings in exakt derselben Größe wie am Eingang
    • 10.9 Transformer verwenden häufig Residual Connections, was einfach bedeutet, die Eingabe der vorherigen Schicht zur Ausgabe der aktuellen Schicht zu addieren
    • 10.10 Als Ergebnis der Residual Connection (Addition) entsteht ein Vektor derselben Größe
    • 10.11 Diese Ausgabe durchläuft ein Feedforward-Neuronales-Netzwerk mit nichtlinearer Aktivierungsfunktion
    • 10.12 Nach dem Transformer-Schritt gibt es noch eine weitere Residual Connection, die hier jedoch ausgelassen wird. Damit ist die Transformer-Schicht abgeschlossen. Das Ergebnis ist, dass der Transformer eine Ausgabe in derselben Größe wie die Eingabe erzeugt
  • Anschließend wird der gesamte Berechnungsablauf des Transformers, also die Schritte 10.1 bis 10.12, mehrfach wiederholt (z. B. 6-mal)
  • Der letzte Schritt besteht darin, die Ausgabe des Klassifizierungs-Tokens zu identifizieren. Dieser Vektor wird im letzten Schritt des Vision Transformers verwendet
  • Im letzten Schritt werden dieser Klassifizierungs-Ausgabe-Token und ein weiteres vollständig verbundenes neuronales Netzwerk verwendet, um die Klassifizierungswahrscheinlichkeiten des Eingabebildes vorherzusagen
  • Vision Transformer werden mit der Standard-Cross-Entropy-Loss-Funktion trainiert, die die vorhergesagten Klassenwahrscheinlichkeiten mit den tatsächlichen Klassenlabels vergleicht
    • Das Modell wird mit Backpropagation und Gradient Descent trainiert und aktualisiert seine Modellparameter so, dass die Loss-Funktion minimiert wird

1 Kommentare

 
ninebow 2024-04-22

Da der von Ihnen vorgestellte Artikel aus meiner Sicht von Erläuterungen zusammen mit Bildern profitiert, habe ich mit Erlaubnis des Autors den Originaltext übersetzt: