Réseau transformer appliqué à la vision

Sébastien Carpentier
Sébastien Carpentier
30 Juin, 2023
3 minutes

Les réseaux **transformers** nous viennent tout droit du domaine du NLP (natural language processing). Les résultats très encourageants de ce type de modèles sur des tâches comme la traduction par exemple ou encore présents dans des architectures comme BERT, et GPT ont très vite intéressé le domaine de la vision par ordinateur. ​
L'objectif de ce billet est de découvrir l’architecture transformer dans les problématiques de vision par ordinateur.

1. La self-attention

La **self-attention** dans un modèle de NLP consiste à analyser un mot en étudiant non seulement le mot lui-même mais aussi le contexte dans lequel il est utilisé. Pour ce faire, lors de l’analyse du dit mot, on regarde aussi ceux l'environnant et qui auront un impact plus ou moins important sur celui étudié.​
Le schéma ci-dessous démontre ce principe :​

attentionviz
Cette illustration contient un certain nombre d'informations qui à ce stade sont difficiles à identifier. Voyons un peu plus comment cela fonctionne.

2. La self-attention dans les transformers

Le mécanisme de self-attention dans les transformer est traité par les couches appelées “**Multi-Head Attention**”. Ces dernières prennent en entrée 3 vecteurs : une “query”, une “key” et une “value” qui sont préalablement entraînées. Ses vecteurs sont utilisés afin de déterminer le vecteur d’attention du mot et donc son interdépendance aux autres mots. ​
Les transformers prennent le parti de gérer l’attention sur la phrase complète en une seule fois ; il y a donc plusieurs têtes d’attention d'où l'appellation **multi-head attention**.

featured

Comme vu précédemment les transformers sont basés sur un système de self-attention permettant de prendre en considération les relations existantes au sein d’une même séquence (les mots au sein d’une même phrase). Par opposition aux RNN qui pratiquent l’attention de manière récurrente et ne fournissent par conséquent qu’une attention court-terme au contexte et sont difficilement parallélisables.

rnn transf nlp

3. Transformer et vision

Suite à l'enthousiasme à la vue des résultats obtenus par les transformers, le domaine de la vision a adapté ce type d’architecture à leur problématique.​
Cette adaptation a été rendue possible par la création de nouveaux réseaux et de méthodes d'entraînement principalement requise dus à la différence entre la donnée textuelle et la donnée image.
​Comme nous l'avons vu, les réseaux transformers ont besoin de plusieurs vecteurs d'entrée. Ceci se fait facilement avec du texte (1 vecteur = 1 mot) mais qu'en est-il sur une image ?
​Plusieurs approches ont pu être explorées comme porter l'attention sur les features maps ou encore en découpant l'image en plusieurs blocs comme dans le cas de ViT.

vit
En reprenant la structure mentionnée au-dessus, on peut constater que le modèle ViT ne fait en aucun cas appel à des convolutions, méthode largement utilisée dans le domaine de la vision pour pouvoir extraire des features.

4. Des modèles et des usages

Aujourd'hui les tâches les plus classiques en vision ont toutes leur équivalent basé sur les transformer et plusieurs architectures s'offrent à nous comme on peut le voir sur le schéma ci-dessous :

multiple model

Ce schéma n'est bien sûr pas exhaustif.​
Les modèles comme [DETR (Carion et al.: End-to-End Object Detection with Transformers 2020)] se posent sur les challenges de détection/segmentation.
​On trouve aussi des modèles génératifs basés sur les transformers sans convolution : [TransGAN (Yifan Jiang et al.: TransGAN: Two Pure Transformers Can Make One Strong GAN, and That Can Scale Up 2021)]

5. Conclusion

L'implémentation des transformers en vision ouvre de nouvelles perspectives en terme de performance grâce notamment à l'attention. Aujourd'hui les transformers sont à l'état de l'art de ce que l'on sait faire avec des réseaux de convolutions, ou alors au coude à coudes avec, et présentent un engouement très fort à la vue des chiffres ci-dessous:

research

Les architectures de ce type ont par contre un besoin de données d'entrainement très important et implique des techniques de training particulières en fonction du modèle et de la tâche à réaliser.

Références