Ultralytics YOLO27 : Rejoins la liste d'attente.
Licence YOLO
Retour au glossaire Ultralytics

Capsule Networks (CapsNet)

Les réseaux à capsules (CapsNets) encodent chaque partie sous forme de vecteur dont la longueur représente sa probabilité et la direction, sa pose ; les capsules sont reliées par un routage dynamique.

Les réseaux à capsules (CapsNets) sont des réseaux de neurones constitués de capsules, petits groupes de neurones dont la sortie est un vecteur plutôt qu’un simple nombre. La longueur du vecteur d’une capsule représente la probabilité de présence d’une entité, comme un chiffre, un œil ou une roue ; sa direction encode les paramètres d’instanciation de cette entité : position, taille, orientation, épaisseur du trait et autres propriétés de pose et de déformation. Geoffrey Hinton, Alex Krizhevsky et Sida Wang ont présenté les capsules dans un article de 2011 sur les autoencodeurs transformants ; Sara Sabour, Nicholas Frosst et Hinton en ont fait un classifieur fonctionnel dans Routage dynamique entre capsules, présenté à NIPS 2017, qui relie les capsules de couches successives au moyen d’un algorithme itératif appelé routage par accord.

Pourquoi les capsules remplacent le max pooling#

Un réseau de neurones convolutif (CNN) détecte des caractéristiques au moyen d’activations scalaires et réduit souvent ses cartes de caractéristiques avec le max pooling, qui conserve la réponse la plus forte dans chaque fenêtre et oublie sa position dans celle-ci. La détection tolère ainsi les petits décalages, mais un réseau qui vérifie uniquement la présence de différentes parties peut accepter un visage dont la bouche se trouve au-dessus des yeux — le problème dit de Picasso. Hinton défendait l’équivariance plutôt que l’invariance : lorsqu’un objet se déplace ou tourne, le vecteur d’une capsule devrait tourner avec lui, tandis que sa longueur, qui représente la probabilité d’existence de l’objet, reste identique. Les capsules qui apprennent ainsi le point de vue nécessitent moins d’augmentation de données qu’un CNN pour reconnaître des objets sous de nouveaux angles.

Ultralytics YOLO26 conserve les positions des objets sans capsules : cinq convolutions de stride 2 réduisent son entrée à une résolution de 1/32, et son unique bloc de max pooling, SPPF, applique trois fois de suite un pooling de stride 1 avec une fenêtre de 5 x 5, élargissant le champ réceptif sans réduire la grille à partir de laquelle sa tête de détection effectue ses prédictions.

Fonctionnement du routage dynamique#

Chaque capsule d’une couche inférieure multiplie sa sortie par une matrice de poids apprise afin de prédire la sortie de chaque capsule de la couche supérieure. Le routage détermine ensuite quelle part de la sortie de chaque capsule enfant atteint chaque capsule parent. Un softmax appliqué aux logits de routage, initialisés à zéro, produit des coefficients de couplage qui répartissent la sortie de chaque enfant entre les parents. Chaque parent additionne les prédictions pondérées par ces coefficients et applique la fonction squash, qui conserve la direction du vecteur et ramène sa longueur dans l’intervalle de 0 à 1. Le produit scalaire entre chaque prédiction et la nouvelle sortie du parent est ajouté au logit ; les enfants transmettent donc davantage de leur sortie aux parents dont ils ont prédit l’état :

import torch

torch.manual_seed(0)

# 6 capsules enfants prédisent chacune une pose 8D pour 2 capsules parents
predictions = 0.2 * torch.randn(6, 2, 8)
pose = 0.5 * torch.randn(8)
predictions[:4, 0] = pose + 0.05 * torch.randn(4, 8)  # les enfants 0 à 3 s’accordent sur le parent 0

logits = torch.zeros(6, 2)
for _ in range(3):  # routage par accord, 3 itérations comme dans l’article
    coupling = logits.softmax(dim=1)  # chaque enfant répartit son vote entre les parents
    s = (coupling.unsqueeze(-1) * predictions).sum(dim=0)
    squared = s.square().sum(dim=-1, keepdim=True)
    parents = squared / (1 + squared) * s / squared.sqrt()  # squash : longueur dans [0, 1)
    logits = logits + (predictions * parents).sum(dim=-1)  # l’accord augmente le logit

print(coupling[:, 0].round(decimals=2))
print(parents.norm(dim=-1).round(decimals=2))

Le résultat affiché est tensor([0.9700, 0.9700, 0.9700, 0.9700, 0.5700, 0.4700]) et tensor([0.9800, 0.1500]). Après trois itérations, les quatre enfants qui s’accordent transmettent 97 % de leur sortie au parent 0, les deux autres restent proches d’une répartition équilibrée, et la longueur du vecteur du parent 0 atteint 0.98, tandis que celle du parent 1, qui n’a reçu que des votes dispersés, reste à 0.15. Le routage ressemble au mécanisme d’attention d’un Transformer exécuté dans le sens inverse : le softmax s’applique aux parents auxquels un enfant peut contribuer, de sorte que les parents se disputent la sortie de chaque enfant.

CapsNet de 2017 et ses résultats#

Le réseau d’origine est peu profond : une convolution dotée de 256 noyaux de taille 9 x 9 alimente PrimaryCaps, une couche de capsules convolutives qui transforme un chiffre de 28 x 28 en 32 x 6 x 6 = 1 152 capsules de huit dimensions ; le routage les relie à DigitCaps, qui contient une capsule de 16 dimensions par classe. L’entraînement combine une fonction de perte à marge sur les longueurs des capsules, qui pousse la longueur au-dessus de 0.9 pour les chiffres présents et en dessous de 0.1 pour les autres, avec un décodeur qui reconstruit l’image à partir de la capsule du chiffre correct, ainsi qu’un terme de régularisation de type autoencodeur, pondéré par 0.0005. La perturbation de l’une des 16 dimensions et le décodage du résultat modifient une seule propriété, comme l’échelle, l’épaisseur du trait, l’inclinaison ou la largeur ; les sorties des capsules sont ainsi plus faciles à examiner que les activations d’un CNN, un objectif partagé avec l’IA explicable.

Avec 8,2 millions de paramètres contre 35,4 millions pour un CNN de référence, CapsNet a atteint un taux d’erreur de test de 0,25 % sur MNIST, contre 0,39 % pour le modèle de référence, et de 5,2 % contre 8,1 % sur MultiMNIST, constitué de paires de chiffres dont les boîtes englobantes se chevauchent à 80 % en moyenne. Entraîné uniquement sur des chiffres MNIST décalés de deux pixels au maximum, il a obtenu un score de 79 % sur affNIST, qui contient les mêmes chiffres soumis à des transformations affines aléatoires, tandis qu’un CNN ayant un nombre de paramètres comparable a obtenu 66 %. Sur CIFAR-10, un ensemble de sept CapsNets a atteint un taux d’erreur de 10,6 %, comparable à celui des CNN lors de leurs premières applications à ce jeu de données ; les auteurs ont attribué l’écart aux capsules qui tentaient de tenir compte d’arrière-plans encombrés.

Limites et modèles de capsules ultérieurs#

Le routage effectue plusieurs itérations sur chaque paire de capsules enfant et parent ; les besoins en calcul et en mémoire augmentent donc rapidement avec la taille des images et le nombre de classes. Les réseaux à capsules n’ont jamais égalé les CNN ni les Transformers de vision sur les grands benchmarks de classification d’images, comme ImageNet. Des chercheurs les ont appliqués à l’analyse d’images médicales, par exemple pour classifier des types de tumeurs cérébrales à partir d’IRM, où les jeux de données d’entraînement sont de petite taille.

Les capsules matricielles avec routage EM, présentées par Hinton, Sabour et Frosst à ICLR 2018, ont remplacé les vecteurs de pose par des matrices de pose 4 x 4 et utilisé l’espérance-maximisation pour le routage ; sur le benchmark smallNORB, constitué de jouets photographiés sous de nombreux angles, elles ont réduit de 45 % les erreurs de test par rapport aux précédents résultats de pointe et ont mieux résisté aux attaques adverses en boîte blanche qu’un CNN de référence. Des autoencodeurs à capsules empilées ont suivi en 2019 et ont appris des capsules sans étiquettes ; dans sa proposition GLOM de 2021, Hinton représente les mêmes hiérarchies partie-tout comme des îlots de vecteurs d’intégration concordants, sans aucun routage dynamique.

Découvre les solutions

La vision par ordinateur dans le sport

La vision par ordinateur dans le sport

Découvre comment Ultralytics YOLO propulse la vision par ordinateur dans le sport grâce au suivi des joueurs et du ballon, aux analyses de performance, aux conseils d’entraînement et à la rééducation des athlètes.
En savoir plus
Vision par ordinateur pour les images aériennes

Vision par ordinateur pour les images aériennes

Transforme les images de drones et les images aériennes en informations exploitables en temps réel pour l’agriculture, l’aquaculture, la conservation et l’analyse géospatiale avec Ultralytics YOLO.
En savoir plus
Vision par ordinateur dans l’aérospatiale

Vision par ordinateur dans l’aérospatiale

Applique la vision par ordinateur dans l’aérospatiale avec Ultralytics YOLO pour l’inspection des aéronefs, la détection des corps étrangers sur les pistes, les opérations au sol des aéroports et la détection des défauts des matériaux composites.
En savoir plus
La vision par ordinateur dans la sécurité

La vision par ordinateur dans la sécurité

Protège chaque site avec les modèles Ultralytics YOLO. L’IA visuelle permet la surveillance des périmètres, la détection des menaces, la reconnaissance des plaques d’immatriculation et la sécurité au travail.
En savoir plus
La vision par ordinateur en robotique

La vision par ordinateur en robotique

Donne plus de capacités à tes machines grâce aux modèles Ultralytics YOLO. Dans la robotique, l’IA visuelle permet la navigation autonome, la perception, le suivi des objets et le contrôle en temps réel.
En savoir plus
La vision par ordinateur dans la logistique

La vision par ordinateur dans la logistique

Optimise la logistique avec les modèles Ultralytics YOLO. La vision par IA permet d’inspecter les colis, de les trier, de suivre les véhicules et de surveiller la sécurité des entrepôts en temps réel.
En savoir plus
La vision par ordinateur dans le commerce de détail

La vision par ordinateur dans le commerce de détail

Réinvente le commerce de détail avec les modèles Ultralytics YOLO. La vision par IA permet de suivre les stocks, de surveiller les rayons, de gérer les files d’attente et de mieux comprendre les clients.
En savoir plus
La vision par ordinateur dans le secteur de la santé

La vision par ordinateur dans le secteur de la santé

Crée des solutions de santé avec les modèles Ultralytics YOLO. La vision par IA dans le secteur de la santé accélère l’imagerie médicale, améliore les diagnostics et facilite la surveillance des patients.
En savoir plus
La vision par ordinateur dans l’industrie manufacturière

La vision par ordinateur dans l’industrie manufacturière

Optimise la fabrication avec les modèles Ultralytics YOLO. La vision par IA améliore le contrôle qualité, la détection des défauts, le respect des règles concernant les EPI et l’automatisation des chaînes de montage.
En savoir plus
La vision par ordinateur dans l’automobile

La vision par ordinateur dans l’automobile

Mets la vision par ordinateur au service de l’automobile avec les modèles Ultralytics YOLO. La vision par IA renforce la sécurité routière, l’aide à la conduite et l’automatisation des véhicules pour des routes plus intelligentes.
En savoir plus
Vision par ordinateur dans l’agriculture

Vision par ordinateur dans l’agriculture

Fais entrer l’IA de vision dans l’agriculture intelligente avec les modèles Ultralytics YOLO. Optimise le suivi des cultures et du bétail ainsi que l’agriculture de précision pour obtenir des rendements plus élevés et plus intelligents.
En savoir plus

Construisons ensemble l’avenir de l’IA !

Commence ton parcours vers l’avenir de l’apprentissage automatique