Vision Transformer (ViT)

Was ist ein Vision Transformer (ViT)?

Ein Vision Transformer ist ein Modell im Bereich der Bildverarbeitung, welches vor allem in der Bilderkennung des maschinellen Lernens eingesetzt wird. Es ist im Wissenschaftsbereich der Computer Vision angesiedelt, einem Bereich, welcher Fotos und Bilder derart analysiert und verarbeitet, dass die enthaltenen Informationen auch für Computer verstanden und „gesehen“ werden können. Dadurch wird die Basis für die Weiterverarbeitung der Fotos und Bilder geschaffen.

Im Jahr 2020 erlangte das Bilderkennungsverfahren des Vision Transformer durch das Paper „An Image is Worth 16×16 Words: Transformers for Image Recognition at Scale“ hinlängliche Bekanntheit. Bereits zuvor wurden die sogenannten Transformer vor allem in der Sprach- und Texterkennung des Natural Language Processing (NLP) im Bereich der neuronalen Netze eingesetzt. Seit der Erscheinung des Papers wird diese Idee in leicht modifizierter Form auch für die Bildverarbeitung und Bilderkennung genutzt.

Vision Transformer sind auch in einigen Programmbibliotheken wie beispielsweise PyTorch oder Keras implementiert. Bei beiden handelt es sich um Open-Source-Bibliotheken, welche im maschinellen Lernen bzw. Deep-Learning eingesetzt werden und für eine Implementierung für die Programmiersprache Python bzw. C++ angedacht sind.

Wie ist ein Vision Transformer aufgebaut?

Ein Vision Transformer macht sich dasselbe Rechenmodell bzw. Algorithmus zunutze, welcher bei Texterkennungs- und Textverarbeitungssoftware wie beispielsweise bei BERT von Google Anwendung findet.

Das Herzstück des Transformers stellt die sogenannte „Attention“ dar. Die Attention bezeichnet eine Beziehung eines Teils einer Eingangsgröße (Wort, Pixel oder Ähnliches) mit den übrigen Teilen aus der Eingangsgröße. Solche Eingangsgrößen, welche im Anschluss zur Weiterverarbeitung geeignet sind, nennt man Token. In der Texterkennung kann dies ein Wort oder eine Wortsilbe sein, in der Bilderkennung beispielsweise ein einzelnes Pixel. Da ein Bild jedoch aus einer Vielzahl von Pixeln besteht, wäre die Anwendung des Algorithmus auf jedes einzelne Pixel aus Sicht des benötigten Speichers bzw. der benötigten Zeit kaum zielführend. Deshalb unterteilt man das Bild in einzelne kleine Abschnitte/Patches (z. B. 14×14 oder 16×16 Pixel).

Im nächsten Schritt vektorisiert man die Abschnitte („Flattening“) und wandelt sie durch lineare Transformation in „linear embeddings“ um. Die Patches erhalten schließlich noch lernbare Positionierungs-Embeddings, wodurch das Rechenmodell Erkenntnisse über die Struktur des Bildes erlernen kann.

Im Anschluss erfolgt die Verarbeitung in einem Transformer Encoder. Hierbei werden die Daten anhand der vorhandenen Trainingsdaten bzw. ViT-Modellen mithilfe der Attention-Layer und sogenannter Multi-Layer-Perceptron (MLP) (vor)klassifiziert. Die Modelle ViT-Base, ViT-Large und ViT-Huge besitzen zwischen 12 und 32 Schichten und arbeiten mit 86 Millionen bis 632 Millionen Parametern. Abschließend unternimmt ein MLP-Head die endgültige Klassifizierung. Im Gegensatz zu Transformer, welche beispielsweise bei BERT eingesetzt werden, entfällt beim Vision Transformer der Decoder.

Was ist der Unterschied zu einem Convolutional Neural Network?

Convolutional Neural Networks (CNN; deutsch: „faltendes neuronales Netzwerk“) finden seit geraumer Zeit Anwendung im Bereich der Computer Vision. Die „Faltung“ beschreibt dabei einen mathematischen Operator, welcher bei der Durchführung des Algorithmus angewandt wird.

Die Unterschiede zwischen einem Convolutional Neural Network und einem Vision Transformer liegen vor allem im architektonischen Aufbau, auch wenn es bestimmte Gemeinsamkeiten der Bereiche gibt. Während CNNs in der Regel aus mehreren Schichten bestehen, welche sequenziell abgearbeitet werden, arbeitet ein Vision Transformer weitestgehend parallel. Dabei spielen bei CNNs vor allem die Convolutional Layer und Pooling Layer eine wichtige Rolle, welche mehrmals hintereinander durchlaufen werden können und mit einem oder mehreren Fully-connected Layer abgeschlossen werden. Laut Google unterbietet ihr ViT ein hochmodernes CNN mit viermal weniger Rechenressourcen.

Data Navigator Newsletter