Apprentissage profond : la révolution des réseaux à capsules (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 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 :
- Sara Sabour, Nicholas Frosst, Geoffrey E. Hinton. Dynamic routing between capsules (PDF). Novembre 2017.
- Geoffrey Hinton, Sara Sabour, Nicholas Frosst. Matrix capsules with EM routing (PDF). Avril 2018.
- Geoffrey E. Hinton, Alex Krizhevsky, Sida D. Wang. Transforming auto-encoders (PDF). Juin 2011.
- Aurélien Géron. Introducing capsule networks. O'Reilly Media, Ideas, février 2018.
- Max Pechyonkin. Understanding Hinton’s capsule networks series. AI3, novembre 2017.
- Nick Bourdakos. Understanding capsule networks — AI’s alluring new architecture. FreeCodeCamp, février 2018.
- Thibault Neveu. Understand and apply CapsNet on traffic sign classification. Becoming Human, novembre 2017.
Deep learning: the capsule network revolution
Geoffrey Hinton, a major figure in the history of deep learning, introduced a completely new type of neural network. This did not fail to arouse the curiosity and enthusiasm of the artificial intelligence research community. Capsule networks will certainly transform the capabilities and possibilities of machine learning in many areas. But what do they bring?
Geoffrey Hinton is a world leading British-Canadian researcher specializing in artificial neural networks. Professor in the Department of Computer Science at the University of Toronto, he was one of the first researchers to demonstrate the application of the backpropagation algorithm for training multilayer neural networks, a technique that has since been widely used in the world of artificial intelligence. We also owe him many models and algorithms whose use has become common today.
Last fall, Hinton and his team (Sara Sabour and Nicholas Frosst) published an open access scientific article: “Dynamic Routing Between Capsules”, which presents the architecture of a type of neural network, capsule networks, or CapsNets (the concept of CapsNet had already been presented in a 2011 paper). But above all, the architecture is accompanied by an algorithm allowing the training of these new networks. As fundamental innovations are rare, the interest of specialists has been piqued and they see in CapsNets a major advance over convolutional neural networks (ConvNets), widely used for still and moving image recognition, recommendation systems and automatic natural language processing.
ConvNets are awesome for many tasks that they manage to perform quickly and efficiently, but they have their own limitations and drawbacks. Take the classic example of face recognition: detecting its oval shape, a pair of eyes, a nose and a mouth indicates a very high probability of having to deal with a face. But the spatial distribution of these elements and their relationship between them are not really taken into account by the ConvNets.
The main components of a ConvNet are convolutional layers that detect notable characteristics in the input data. The first layers, the deep layers that are closest to the raw input data, learn to detect simple characteristics, while the upper layers combine simple characteristics to produce more complex characteristics. Finally, the final layers will combine high-level characteristics and produce classification predictions. Between the convolutional layers, max-pooling layers are introduced which reduce the size of the representation by subsampling while accentuating strong signals, which allows essential gains in computational power.
Through this whole process, and especially the max-aggregation layers, the notions of position, orientation, scale and relation between the characteristics detected by the first layers are lost. In fact, the internal representation of the data of a convolutional neural network does not take into account the important spatial hierarchies between simple and complex objects, for example, we no longer know if the nose (simple object) is in the middle of the face (complex object).
To be as simple as possible, a CapsNet is composed of capsules and a capsule is a group of artificial neurons that learn to detect a particular object in a given region of the image and which produces a vector whose length represents the estimated probability of the object’s presence and whose orientation encodes the object’s pose (“instantiation parameters” — position, size, rotation, etc.). If the object is slightly modified (for example, translated, rotated, resized, etc.), the capsule will produce a vector of the same length, but oriented slightly differently. Thus, the capsules are equivariant. Unlike ConvNets where a small change in input will not produce a change in output (invariance).
As with ConvNet, CapsNet is organized in layers. The deep layer is composed of primary capsules that receive a small portion of the input image and attempt to detect the presence and placement of a motif, such as a circle, for example. The top layer capsules, called routing capsules, detect larger and more complex objects.
Capsules communicate through an iterative “routing-by-agreement” mechanism: a lower level capsule prefers to send its output to higher level capsules whose activity vectors have a big scalar product with the prediction coming from the lower-level capsule. “Lower level capsule will send its input to the higher level capsule that ‘agrees’ with its input. This is the essence of the dynamic routing algorithm.”
We are, of course, only scratching the surface here of the complexity and richness of CapsNets, but we must remember that they represent a great step forward in remedying the traditional shortcomings of ConvNets. The technology is still in its infancy, but since the publication of “Dynamic Capsule Routing”, many researchers have been working to refine algorithms and implementations, and advances have been published at a rapid pace.
The main advantages of CapsNets:
- Unlike ConvNets which require a large amount of reference data for the training phase, CapsNets can generalize using much less data.
- CapsNets do not lose information between layers as ConvNets do.
- CapsNets give the hierarchy of characteristics found, for example: this nose belongs to this face. The same operation with a ConvNet involves additional components.
The drawbacks, in the present state (but it evolves quickly…):
- CapsNets are very demanding in computing resources.
- They do not work as well as ConvNets with large images.
- They cannot detect two objects of the same type when they are too close together (this is called the “crowding problem”).
The subject has caught your attention and you would like to explore it further? Here is a list of useful references:
- Sara Sabour, Nicholas Frosst, Geoffrey E. Hinton. Dynamic routing between capsules (PDF). November 2017.
- Geoffrey Hinton, Sara Sabour, Nicholas Frosst. Matrix capsules with EM routing (PDF). April 2018.
- Geoffrey E. Hinton, Alex Krizhevsky, Sida D. Wang. Transforming auto-encoders (PDF). June 2011.
- Aurélien Géron. Introducing capsule networks. O’Reilly Media, Ideas, February 2018.
- Max Pechyonkin. Understanding Hinton’s capsule networks series. AI3, November 2017.
- Nick Bourdakos. Understanding capsule networks — AI’s alluring new architecture. FreeCodeCamp, February 2018.
- Thibault Neveu. Understand and apply CapsNet on traffic sign classification. Becoming Human, November 2017.