Sergey - stock.adobe.com

Deep learning : réseaux neuronaux RNN et CNN quelles différences ?

Les réseaux de neurones convolutifs et récurrents sont à la base de nombreuses applications d’intelligence artificielle. Découvrez les différences entre ces deux types de réseau de neurones artificiels.

Cet article est extrait d'un de nos magazines. Téléchargez gratuitement ce numéro de : Applications & Données: SNCF Réseau optimise ses algorithmes - Edition spéciale Data Science

Cela fait plus de cinquante ans que nous cherchons à reproduire artificiellement l’intelligence humaine. Chaque percée en matière d’IA nous rappelle à quel point nous comprenons mal la merveilleuse machine qui se trouve entre nos deux oreilles.

Dans sa quête, le milieu de la recherche a néanmoins fait des progrès remarquables ces dernières années. Trois facteurs expliquent ces succès : l’amélioration des algorithmes – plus particulièrement des réseaux de neurones –, l’explosion des données pouvant être utilisées pour leur entraînement et l’augmentation de la puissance de calcul.

Afin de déterminer des attentes réalistes en matière d’IA – sans pour autant manquer des opportunités –, il est important de bien comprendre les algorithmes, leurs capacités et leurs limites.

Dans cet article, nous explorons deux algorithmes qui ont permis de réaliser un bond considérable dans le domaine du Deep Learning : les réseaux neuronaux convolutifs (CNN) et les réseaux neuronaux récurrents (RNN). Nous aborderons leur nature, leurs différences, leur fonctionnement, leurs limites et leur complémentarité.

Mais d’abord, quelques notions de base.

Qu’est-ce qu’un réseau de neurones ?

Le réseau de neurones a largement été reconnu au moment de son invention comme une avancée majeure dans ce domaine. S’inspirant du fonctionnement des neurones de notre cerveau, l’architecture des réseaux neuronaux a introduit une méthode, un algorithme, qui permet à l’ordinateur d’affiner sa prise de décision – en d’autres termes, d’apprendre.

Un réseau de neurones artificiels, ou RNA, est constitué de nombreux perceptrons. Dans sa forme la plus simple, un perceptron consiste en une fonction qui prend deux entrées, les multiplie par deux poids synaptiques aléatoires, les additionne avec une valeur de biais, fait passer les résultats par une fonction d’activation et imprime les résultats. Les poids et les valeurs de biais sont réglables et définissent le résultat du perceptron, compte tenu de deux valeurs d’entrée spécifiques.

N. B. Les biais correspondent ici aux décisions de transmettre une information ou non entre les couches composant un réseau neuronal.

Cette architecture était géniale : la combinaison des perceptrons a généré des couches de variables ajustables qui pouvaient prendre en charge presque toutes les tâches. Le problème, cependant, était de savoir quels chiffres choisir pour les poids et les valeurs de biais pour effectuer un calcul correct.

Ce problème a été résolu grâce à un mécanisme appelé « rétropropagation ». Le RNA reçoit une entrée, et le résultat est comparé à la sortie attendue. La différence entre la sortie souhaitée et la sortie réelle est réinjectée dans le réseau neuronal par un calcul, qui détermine comment chaque perceptron doit être ajusté pour atteindre le résultat souhaité.

Cette procédure – où l’IA est entraînée – est répétée jusqu’à ce qu’un niveau de précision satisfaisant soit atteint.

Un réseau de neurones comme celui-ci fonctionne parfaitement pour des prédictions statistiques simples, comme deviner l’équipe de football préférée d’un homme, compte tenu de son âge, de son sexe et de sa situation géographique. Mais comment l’IA peut-elle être utilisée pour des tâches plus complexes comme la reconnaissance d’images ? Pour répondre à cette question, il faut savoir comment alimenter le réseau en données.

CNN et RNN : qu'est ce que c'est et comment les différencier

Les Réseaux de neurones convolutifs

Les images que nous percevons sur un écran d’ordinateur sont en fait composées d’un ensemble de valeurs de couleurs, réparties sur une certaine largeur et une certaine hauteur. Là où nous voyons des formes et des objets, la machine voit une suite de nombres. Les réseaux neuronaux convolutifs donnent un sens à ces données grâce à un mécanisme composé de filtres et de couches de pooling.

« Un filtre est une matrice de nombres randomisés. Dans un CNN, les filtres sont multipliés par rapport aux représentations matricielles de bouts d’une image, ce qui permet de la balayer efficacement pixel par pixel et d’obtenir la valeur moyenne de tous les pixels adjacents, pour ainsi détecter les caractéristiques les plus importantes », explique Ajay Divakaran, CTO du laboratoire « Vision et apprentissage » du centre des technologies de la vision de SRI International, un institut de recherche scientifique à but non lucratif.

« Les applications où les CNN sont particulièrement utiles incluent la détection des visages, l'analyse médicale, la découverte de médicaments et l'analyse d'images. »
Pravanna ArikalaCTO, Kore.ai

« Ces informations, passant par une couche de pooling, sont condensées dans leur strict essentiel après une opération de feature map », ajoute-t-il. Cette dernière étape réduit considérablement la taille des données et rend le réseau neuronal beaucoup plus rapide. L’information obtenue est ensuite introduite dans le réseau de neurones.

Un CNN est constitué de plusieurs couches de perceptrons, et les filtres qui constituent un réseau « comprennent » de mieux en mieux l’image à chaque passage. Alors que la première couche apporte une compréhension des contours et du cadre, la deuxième reconnaît les formes, et la troisième, les objets. La puissance de ce modèle réside dans sa capacité à reconnaître les objets indépendamment de l’endroit où ils apparaissent dans l’image, ou de leur rotation.

Les CNN sont très efficaces pour reconnaître les éléments représentés, mais que faire si nous voulons comprendre le contexte des actions capturées au sein des images ?

Prenons par exemple l’image d’une balle en l’air. Comment pouvons-nous savoir si la balle est lancée, si elle monte, ou si elle tombe ? Pour répondre à cette question, il faudrait plus d’informations qu’une simple image – il faudrait une vidéo. La séquence des images déterminera si la balle monte ou descend. Mais comment faire en sorte que les réseaux neuronaux se souviennent des informations sur lesquelles ils ont travaillé précédemment et les intègrent dans leurs calculs ?

Les réseaux de neurones récurrents

Le problème de la mémorisation ne se limite pas à la vidéo. En fait, de nombreux algorithmes de compréhension du langage naturel (qui ne traitent généralement que du texte) nécessitent une forme de mémorisation, pour retenir le sujet d’une discussion ou les mots précédents dans une phrase.

Les réseaux neuronaux récurrents ont été conçus pour s’attaquer précisément à ce problème. Pour cela, cet algorithme se renvoie le résultat à lui-même.

Imaginons que nous voulions traduire la phrase suivante : « Quel jour sommes-nous ? » L’algorithme alimente chaque mot séparément dans le réseau de neurones, et au moment où il arrive au mot « nous », le résultat en sortie est déjà influencé par le mot « Quel ».

Les RNN ont cependant un problème. Dans l’exemple ci-dessus, les mots qui sont introduits en dernier dans le réseau ont une plus grande influence sur le résultat (dans notre cas, les mots « sommes-nous ? »). Ces deux mots ne nous permettent pas de bien comprendre la phrase complète – l’algorithme souffre de « perte de mémoire ». Ce problème n’est pas passé inaperçu, et des algorithmes plus récents tels que Long Short-Term Memory (LSTM) permettent de résoudre ce problème.

CNN et RNN : forces et faiblesses

Après avoir vu comment chaque réseau est conçu, nous pouvons maintenant mettre en évidence les forces et les faiblesses de chacun.

« Les RNN sont utiles pour la traduction, l'extraction d'entités, l'intelligence conversationnelle, l'analyse des sentiments et l'analyse de la parole. »
Prasanna ArikalaCTO, Kore.ai

« Les CNN sont à privilégier pour l’interprétation de données visuelles, des données éparpillées ou des données qui ne viennent pas en séquence », explique Prasanna Arikala, CTO de Kore.ai, l’éditeur d’une plateforme de développement d’agents conversationnels. « Les réseaux neuronaux récurrents, en revanche, sont conçus pour reconnaître des données séquentielles ou temporelles. Ils font de meilleures prévisions en tenant compte de l’ordre ou de la séquence en relation avec les nœuds de données précédents ou suivants ».

« Les applications où les CNN sont particulièrement utiles incluent la détection des visages, l’analyse médicale, la découverte de médicaments et l’analyse d’images », liste Prasanna Arikala. « Les RNN sont utiles pour la traduction, l’extraction d’entités, l’intelligence conversationnelle, l’analyse des sentiments et l’analyse de la parole ».

« Parce que les RNN s’appuient sur les données passées pour prédire l’état futur, ils ont un intérêt pour le marché boursier, car prédire l’évolution d’une action demande généralement de connaître son état antérieur », ajoute-t-il.

Cependant, comme nous l’avons appris plus tôt, lors du scanning d’une image, le filtre d’un CNN prend en compte les pixels adjacents au fur et à mesure de son exécution. Ne pourrait-il pas utiliser le même mécanisme pour les mots adjacents ?

« Aujourd'hui, les frontières entre l'utilisation de CNN et de RNN sont quelque peu floues, car vous pouvez combiner ces architectures pour former un CRNN. »
Fred NavruzovDirecteur data science, Competera

« Ce n’est pas qu’une telle approche ne fonctionnerait pas », répond Ajay Divakaran. « [Mais] c’est un détour inutile ». Selon le chercheur, essayer d’utiliser les capacités de modélisation spatiale d’un CNN pour saisir ce qui est fondamentalement un phénomène temporel n’est pas optimal par définition et nécessite beaucoup plus d’efforts et de mémoire pour accomplir la même tâche.

Quand les modèles CNN et RNN se complètent

Mais il y a des cas où les deux modèles se complètent. Prasanna Arikala a partagé un cas intéressant.

« Pour certaines langues asiatiques comme le chinois, le japonais et le coréen où les caractères ne sont autres que des images “spéciales”, nous utilisons des réseaux neuronaux profonds construits avec une combinaison de CNN et RNN pour la détection d’intention et l’analyse des sentiments », indique-t-il.

Dans ces langues dites logographiques, certains caractères peuvent se traduire par un ou plusieurs mots dans une autre langue, tandis que d’autres n’ont de sens que lorsqu’ils sont accolés à d’autres caractères, ce qui modifie la signification du caractère original.

« Une combinaison de réseaux neuronaux fonctionne dans ce cas parce que nous utilisons la tokenisation des caractères dans les langues logographiques, par rapport à la tokenisation Treebank/WordNet dans d’autres langues », déclare Prasanna Arikala. « Une combinaison de CNN et de LSTM fonctionne bien mieux que l’emploi d’un RNN pur jus ».

Fred Navruzov, directeur data science chez Competera, une société spécialisée dans l’IA qui aide les distributeurs à fixer les prix optimaux, reconnaît que ces modèles peuvent cohabiter.

« Aujourd’hui, les frontières entre l’utilisation de CNN et de RNN sont quelque peu floues, car vous pouvez combiner ces architectures pour former un CRNN, qui apporte une efficacité accrue dans la résolution de tâches spécifiques comme l’étiquetage vidéo ou la reconnaissance de gestes », constate-t-il.

Dans l’analyse d’une séquence vidéo, par exemple, le RNN peut être utilisé pour capturer des informations temporelles et le CNN pour extraire des caractéristiques spatiales de chaque image.

Pour approfondir sur Intelligence Artificielle et Data Science