Definition: Vision Transformer (ViT)

Primär ein Stub, aber hier ist eine grobe Beschreibung:

In Vision Transformern teilen wir ein Input-Image zunächst in viele Patches auf. Jeder Patch wird durch eine lineare Abbildung (i.e. 1-Layer-Perzeptron) in einen Vektor transformiert.

Diese Vektoren entsprechen (konzeptionell) den Wort-Embeddings des Transformers und werden als Patch-Embeddings bezeichnet.

Ähnlich wie beim Transformer wird auf diese Patch Embeddings noch ein Position-Embedding aufaddiert, um dem Modell die Reihenfolge des Patches innerhalb des Bildes zu übermitteln.

Anschließend werden die Patch+Position-Embeddings ganz normal wie im Transformer verarbeitet.

Das Trainingsziel ist Klassifikation. Da es in einem Bild kein “Ziel-Embedding” gibt (in natürlicher Sprache könnte das bspw. das letzte Wort sein - in einem Bild ergibt “der letzte Patch” aber keinen Sinn).

Als “Ziel-Embedding” wird zusätzlich zu den Patches ein sog. class-Embedding zu der Reihe der Patch-Embeddings hinzugefügt. Dieses class-Embedding wird zu Anfang zufällig initialisiert und ist genau so Teil des Inputs wie die Patch+Position-Embeddings.

Nach Transformation durch die Multi-Head-Attention-Blöcke wird das letztlich resultierende class-Embedding an ein MLP weitergereicht, um ein Klassifikation vorherzusagen.