Logo Spiria

Apprentissage profond : la révolution des réseaux à capsules

19 juillet 2018.
Geoffrey Hinton, une figure majeure de l’histoire de l’apprentissage profond, a présenté un type de réseau neuronal au fonctionnement complètement nouveau. Ce qui n’a pas manqué de susciter la curiosité et l’enthousiasme de la communauté des chercheurs en intelligence artificielle. Les réseaux à capsules vont certainement transformer les capacités et possibilités de l’apprentissage machine dans de nombreux domaines. Mais qu’apportent-ils ?

Geoffrey Hinton est un chercheur britanno-canadien de premier ordre, spécialiste des réseaux de neurones artificiels. Professeur au département d’informatique de l’Université de Toronto, il a été l’un des premiers chercheurs à démontrer la mise en application l’algorithme de rétropropagation du gradient pour l’entraînement des réseaux de neurones multicouches, technique qui a été depuis largement utilisée dans le monde de l’intelligence artificielle. Nous lui devons aussi de nombreux modèles et algorithmes dont l’usage est devenu courant aujourd’hui.

À l’automne dernier, Hinton et son équipe (Sara Sabour et Nicholas Frosst) ont publié un article scientifique en libre accès : “Routage dynamique entre capsules”, qui présente l’architecture d’un type de réseau neuronal, les réseaux à capsules, ou CapsNets (le concept de CapsNet avait déjà été présenté dans un papier de 2011). Mais surtout, l’architecture est accompagnée d’un algorithme permettant l’entraînement de ces nouveaux réseaux. Comme les innovations fondamentales se font rares, l’intérêt des spécialistes a été piqué et ceux-ci voient dans les CapsNets une avancée majeure par rapport aux réseaux de neurones convolutifs (ConvNets), largement employés pour la reconnaissance d’images fixes et animées, les systèmes de recommandation et le traitement automatique du langage naturel.

Les ConvNets sont géniaux pour plein de tâches qu’ils réussissent à remplir de façon rapide et efficace, mais ils ont leurs limites et leurs inconvénients propres. Prenons le classique exemple de la reconnaissance d’un visage : détecter sa forme ovale, une paire d’yeux, un nez et une bouche indique une très forte forte probabilité d’avoir à faire face à un visage. Mais la distribution spatiale de ces éléments et leur relation entre eux ne sont pas vraiment prises en compte par les ConvNets.

Les limites de la reconnaissance faciale avec un réseau neuronal convolutif.

Les limites de la reconnaissance faciale avec un réseau neuronal convolutif.

Les composants principaux d’un ConvNet sont des couches convolutionnelles qui détectent les caractéristiques notables dans les données en entrée. Les premières couches, les couches profondes qui sont les plus proches des données brutes à l’entrée, apprennent à détecter des caractéristiques simples, tandis que les couches supérieures combineront des caractéristiques simples pour produire des caractéristiques plus complexes. Enfin, les ultimes couches combineront des caractéristiques de haut niveau et produiront des prédictions de classification. Entre les couches convolutionnelles, on introduit des couches de max-agrégation (max–pooling) qui réduisent la taille de la représentation par sous-échantillonnage tout en accentuant les signaux forts, ce qui permet des gains essentiels en puissance de calcul.

À travers tout ce processus, et notamment les couches de max-agrégation, les notions de position, d’orientation, d’échelle et de relation entre les caractéristiques détectées par les premières couches sont perdues. De fait, la représentation interne des données d’un réseau neuronal convolutionnel ne tient pas compte des hiérarchies spatiales importantes entre les objets simples et complexes, par exemple, on ne sait plus si le nez (objet simple) est au milieu du visage (objet complexe).

Pour faire aussi simple que possible, un CapsNet est composé de capsules et une capsule est un groupe de neurones artificiels qui apprend à détecter un objet particulier dans une région donnée de l’image et qui produit un vecteur dont la longueur représente la probabilité estimée de présence de l’objet et dont l’orientation encode les paramètres de pose de l’objet (“paramètres d’instanciation” — position, taille relative, rotation, etc.). Si l’objet est légèrement modifié (par exemple, décalé, tourné, redimensionné, etc.), la capsule produira un vecteur de même longueur, mais orienté légèrement différemment. Ainsi, les capsules sont équivariantes. Contrairement aux ConvNets où une petite modification en entrée ne produira pas de changement en sortie (invariance).

Comme pour le ConvNet, le CapsNet est organisé en couches. La couche profonde est composée de capsules primaires qui reçoivent une petite partie de l’image en entrée et tentent de détecter la présence et la pose d’un motif, comme un cercle pas exemple. Les capsules des couches supérieures, appelées capsules de routage, détectent des objets plus grands et plus complexes.

Les capsules communiquent grâce à un mécanisme itératif de “routage par entente” : une capsule de niveau inférieur préfère envoyer sa production à des capsules parentes dont les vecteurs d’activité ont un grand produit scalaire avec la prédiction provenant de la capsule de niveau inférieur. “La capsule de niveau inférieur enverra son entrée à la capsule de niveau supérieur qui ‘est d’accord’ avec son entrée. C’est l’essence même de l’algorithme de routage dynamique.”

Nous ne faisons bien sûr ici qu’effleurer la complexité et la richesse des CapsNets, mais il faut retenir qu’ils représentent une grande avancée en remédiant aux défauts traditionnels des ConvNets. La technologie est encore embryonnaire, mais depuis la publication du “Routage dynamique entre capsules”, de nombreux chercheurs travaillent au perfectionnement des algorithmes et des implémentations et les avancées sont publiées à rythme rapide.

Les principaux avantages des CapsNets :

  • Contrairement aux ConvNets qui nécessitent un grand nombre de données de référence pour la phase d’apprentissage, les CapsNets peuvent généraliser en utilisant bien moins de données.
  • Les CapsNets ne perdent pas d’informations entre les couches comme le font les ConvNets.
  • Les CapsNets donnent la hiérarchie des caractéristiques trouvées, par exemple : ce nez appartient à ce visage. La même opération avec un ConvNet implique des composants additionnels.

Le revers de la médaille, en l’état actuel (mais ça évolue vite…) :

  • Les CapsNets sont très exigeants en ressources de calcul.
  • Ils fonctionnent moins bien que les ConvNets avec de grandes images.
  • Ils ne peuvent pas détecter deux objets de même type lorsqu’ils sont trop proches l’un de l’autre (c’est ce qu’on appelle le « problème de l’encombrement »).

Le sujet a capté votre attention et vous souhaitez l’approfondir ? Voici une liste de références utiles :