- Les Vision Transformers (ViTs) sont une classe de modèles de deep learning qui a atteint les meilleures performances en classification d’images
- Ils appliquent l’architecture Transformer, conçue pour le traitement du langage naturel (NLP), aux données d’image
- Ce guide aide à comprendre comment ces modèles fonctionnent et à quoi ressemble le flux des données lorsqu’elles traversent le modèle, à l’aide de visualisations et d’explications simples
Points clés
- L’image est divisée en patchs de taille identique
p x p
- Le vecteur encodé de chaque patch a une taille fixe
d
- Il reste alors un tableau de taille
n x d (n est le nombre de patchs de l’image, d la taille de l’embedding des patchs)
- Pour entraîner efficacement le modèle, le tableau des embeddings de patchs est étendu avec un vecteur supplémentaire appelé token de classification (token
cls)
- Comme il n’y a pas d’information de position, on ajoute des vecteurs d’embedding positionnels initialisés aléatoirement
- Après l’ajout des vecteurs d’embedding positionnels, un tableau de taille
(n+1) x d est donné en entrée du Transformer
- À l’intérieur du Transformer
- 10.1 Les vecteurs d’embedding des patchs en entrée du Transformer sont projetés linéairement en plusieurs grands vecteurs : Q - vecteur requête, K - vecteur clé, V - vecteur valeur
- 10.2 Pour calculer le score d’attention A, on multiplie tous les vecteurs requête Q par tous les vecteurs clé K
- 10.3 Une fois la matrice de scores d’attention A obtenue, on applique la fonction
softmax à chaque ligne afin que la somme de chaque ligne soit égale à 1
- 10.4 Pour calculer l’information de contexte agrégée du premier vecteur d’embedding de patch, on se concentre sur la première ligne de la matrice d’attention et on utilise ses éléments comme poids pour les vecteurs valeur V
- 10.5 On répète ensuite ce processus pour toutes les lignes de la matrice de scores d’attention, ce qui produit
N+1 vecteurs d’information de contexte agrégée (un par patch + un pour le token de classification). Cette étape complète la première tête d’attention
- 10.6 Comme il s’agit d’une attention multi-tête, on répète tout le processus des étapes 10.1 - 10.5 en utilisant d’autres projections QKV
- 10.7 Dernière étape de la couche d’attention. Les têtes sont regroupées puis projetées vers un vecteur de taille
d, identique à celle des embeddings de patchs
- 10.8 À ce stade, la couche d’attention est terminée et il reste le même nombre d’embeddings, exactement de la même taille que l’entrée
- 10.9 Les Transformers utilisent beaucoup les connexions résiduelles (Residual Connection), ce qui signifie simplement ajouter l’entrée de la couche précédente à la sortie de la couche actuelle
- 10.10 Le résultat de la connexion résiduelle (addition) est un vecteur de même taille
- 10.11 Cette sortie passe par un réseau de neurones feed-forward avec une fonction d’activation non linéaire
- 10.12 Après cette étape du Transformer, il existe une autre connexion résiduelle, mais elle est omise ici. La couche Transformer est alors complète. En conséquence, le Transformer produit une sortie de même taille que son entrée
- L’ensemble des étapes de calcul du Transformer, de 10.1 à 10.12, est ensuite répété plusieurs fois (par exemple 6 fois)
- L’étape finale consiste à identifier la sortie du token de classification. Ce vecteur sera utilisé à la toute dernière étape du Vision Transformer
- Dans l’étape finale, ce token de sortie de classification et un autre réseau de neurones entièrement connecté sont utilisés pour prédire les probabilités de classification de l’image en entrée
- Le Vision Transformer est entraîné à l’aide de la fonction de perte standard d’entropie croisée, qui compare les probabilités de classe prédites aux vrais labels de classe
- Le modèle est entraîné par rétropropagation et descente de gradient, avec mise à jour des paramètres afin de minimiser la fonction de perte
1 commentaires
Après avoir lu l’article que vous avez présenté, j’ai pensé qu’il serait utile de l’expliquer avec des images ; j’ai donc obtenu l’autorisation de l’auteur et traduit le texte original :