Dans cette mini-question, nous allons aborder les réseaux de neurones convolutifs, les réseaux de neurones récurrents et, surtout, comment/pourquoi combiner les deux dans des réseaux/modèles hybrides !

Les bases en quelques mots

CNN : un réseau d’analyse d’images

En savoir plus : retrouvez notre tutoriel complet sur Pensée Artificielle

Un réseau de neurones convolutifs (abrégé en CNN) est un algorithme de deep learning (apprentissage profond en français) doué dans l’analyse d’images. En effet, il s’appuie sur des filtres, dans le style de nos logiciels de retouche photo, par exemple le floutage ou la mise en avant des contours, pour extraire les informations de l’image qu’il juge « pertinentes » (typiquement la présence d’une roue de voiture, une forte proportion de lignes horizontales dans telle partie de l’image, etc…).

Ici, on parle de convolutions 2D (i.e. à 2 dimensions) car, pour chaque pixel de l’image, on va regarder ce qu’il y a autour (en carré). A noter qu’une convolution est l’application d’un filtre à l’image.

convolutional neural network
Exemple de CNN : l’image à gauche est analysée par le réseau dans sa phase « feature learning » qui renvoie alors son « résumé/analyse » au réseau suivant (phase « classification » qui est composée de réseaux de neurones artificiels) (crédit : MathWorks)

Cependant, les réseaux de neurones convolutifs sont également très utilisés pour analyser des séries temporelles avec des convolutions 1D car le principe est similaire à celui d’une image : la donnée à l’instant t est liée à la donnée à l’instant t-1 et à t+1 (comme un pixel est lié à ceux qui l’entourent), avec un seul « axe » possible ici (i.e. on n’a qu’une dimension spatiale = temporelle). C’est pourquoi on les retrouve en traitement du langage naturel (NLP en anglais) où la notion de temps est appliquée à l’enchaînement des mots dans une phrase.

LSTM : un réseau avec de la mémoire

En savoir plus : retrouvez notre tutoriel complet sur Pensée Artificielle

Un « long short-term memory » (LSTM) est un algorithme de deep learning issu des réseaux de neurones récurrents (RNN). Ce type de réseau dispose d’un mécanisme de mémoire qui lui permet de retenir des informations d’une prédiction à l’autre : il est parfaitement adapté au traitement du langage naturel puisqu’à mesure que l’on lit une phrase, il faut en retenir les éléments clés (le sujet par exemple).

La structure interne d’un LSTM et d’un GRU (crédit : Michaël Nguyen)

Remarque : l’architecture des LSTM est proche de celle d’un GRU (Gated Recurrent Unit), donc il est fréquent de voir utilisé l’un ou l’autre. A noter aussi qu’une version dite « bi-LSTM » existe. En résumé, son principe est de pouvoir prédire des deux côtés d’un mot (par exemple) : pour la phrase « Je * promener le * » le bi-LSTM sera capable de prédire la première et la dernière étoile en n’ayant reçu que le mot « promener » (bi-LSTM est la contraction de LSTM bidirectionnel).

Qu’est-ce qu’un réseau hybride CNN-LSTM ?

Maintenant qu’on a survolé la théorie, on peut se demander ce qu’est ce fameux réseau hybride cnn-lstm.

Pour faire court, il s’agit d’un réseau de neurones convolutifs dont la sortie finale est envoyée directement dans un LSTM qui va alors réaliser sa prédiction !

L’idée derrière est de se dire que le CNN est un algorithme très efficace pour analyser des images, donc on va l’utiliser pour traiter la séquence vidéo représentée ci-dessous et la rendre plus simple et explicite pour le LSTM. Lors de la phase d’entraînement, le CNN et le LSTM s’adapteront aux données pour que le premier comprenne quoi extraire et que le second saisisse ce qu’il doit analyser/mémoriser d’une séquence à l’autre, par exemple pour déterminer l’action réalisée par l’individu.

Exemple de réseau hybride de type CNN-LSTM pour l’analyse d’un extrait vidéo : on détermine ici l’action réalisée par la personne grâce à un CNN qui va extraire les informations de l’image (il y a une personne, dans telle position) et à un LSTM qui aura mémorisée les informations pertinentes précédentes (son pied était levé) et pourra déduire ce qu’il se passe réellement (la personne court) (crédit : Lambert Rosique)

Pourquoi utiliser un réseau hybride ?

Dans l’exemple du coureur ci-dessus, on peut se dire qu’un LSTM seul suffirait à classifier l’action de la personne. Dans une certaine mesure c’est vrai, mais il faut garder à l’esprit que le LSTM n’est vraiment pas optimisé pour analyser les images. Il ne pourra pas en extraire beaucoup d’informations (contrairement aux filtres du CNN), ce qui limitera grandement ce qu’il « comprend » de l’action, car pour lui il y aura simplement des amas de pixels qui auront bougés !

De manière similaire, l’emploi d’un CNN seul ne suffit pas non plus car, généralement, pour dire si une personne court, il faut la voir agir pendant quelques secondes. Le CNN n’a accès aux données qu’à un instant t : il ne voit qu’une image et ne mémorise rien.

Pour toutes ces raisons, il est très intéressant de combiner le CNN qui va résumer l’image en quelques valeurs représentatives (le premier nombre sera par exemple la présence ou non d’une forme de personne à l’image) au LSTM qui mémorisera ce qu’il y avait dans les images précédentes et s’en servira pour conclure sur ce qu’il se passe à l’écran.

Notons qu’un réseau hybride LSTM-CNN est également utilisé, par exemple dans la reconnaissance des émotions d’un texte. Typiquement, un court extrait est envoyé dans un LSTM qui va en extraire les idées principales (le LSTM est doué pour analyser du texte et se l’approprier). Ensuite, ces informations sont envoyées dans un CNN à une seule dimension (donc qui est apte à travailler sur des séries temporelles) qui prédira alors si la personne ayant écrit le texte y a manifesté de la colère, de la joie ou de la tristesse !

Au final, comment résumer la notion de modèle hybride en intelligence artificielle ?

Un réseau hybride est simplement l’enchaînement de deux réseaux. On utilise la notion « hybride » (ou on les relie par un tiret) pour souligner que leur travail est complémentaire/intriqué. Par exemple pour le CNN-LSTM, on peut considérer que le CNN est la phase de préparation des données pour le LSTM. Cette phase est « adaptative »/ »intelligente », contrairement à un pré-traitement plus classique (avec des outils mathématiques/statistiques), puisque le CNN travaillera chaque image différemment en fonction de son contenu.

Dans l’absolu, il est en théorie possible de mettre plusieurs modèles en parallèles en plus de les mettre en série (i.e. à la suite les uns des autres), mais dans la pratique ce n’est (jamais ?) utilisé car le gain en précision est minime tandis que l’apprentissage devient très complexe.

A noter également, puisqu’on parle d’apprentissage, que les deux réseaux de notre CNN-LSTM peuvent apprendre en même temps ou alors on peut pré-entraîner notre CNN, cela dépend du cas d’usage et des ressources à disposition.

Aparté : le principe des articles « Mini » de Pensée Artificielle

Une nouvelle catégorie d’articles voit le jour sur Pensée Artificielle, nommée « MiniQ » alias Mini-Question (ou MQ ou Mini).

Son principe est simple : vous nous posez une question autour de l’IA par email à contact@penseeartificielle.fr, via le formulaire de contact du site, ou directement sur notre Discord (il s’agit d’un logiciel de conversation commautaire avec plus de 1000 membres ravis d’échanger et de s’entraider en IA) : https://discord.gg/XBYsvHn

On vous répond alors, puis on écrit un article sur Pensée Artificielle avec la mention « mini » qui viendra résumer la question et sa réponse pour aider l’ensemble de la communauté !

Crédit de l’image de couverture : Lambert Rosique