RNN vs CNN à un niveau élevé


53

J'ai pensé aux réseaux de neurones récurrents (RNN) et leurs variétés et aux réseaux de neurones convolutionnels (CNN) et leurs variétés.

Ces deux points seraient-ils justes de dire:

  • Utilisez les CNN pour décomposer un composant (tel qu'une image) en sous-composants (tel qu'un objet dans une image, tel que le contour de l'objet dans l'image, etc.)
  • Utiliser des RNN pour créer des combinaisons de sous-composants (légende d'image, génération de texte, traduction de langue, etc.)

Je vous serais reconnaissant de bien vouloir signaler toute inexactitude dans ces déclarations. Mon objectif ici est d’obtenir une base plus claire sur les utilisations des CNN et des RNN.

Réponses:


42

Un CNN apprendra à reconnaître les modèles dans l’espace. Ainsi, comme vous le dites, un CNN apprendra à reconnaître les composants d'une image (lignes, courbes, etc.), puis à combiner ces composants pour reconnaître des structures plus grandes (visages, objets, etc.).

Vous pouvez dire, de manière très générale, qu’un RNN apprendra de la même manière à reconnaître des modèles au fil du temps. Ainsi, un RNN formé à la traduction de texte peut apprendre que "chien" doit être traduit différemment s'il est précédé du mot "chaud".

Le mécanisme par lequel les deux types de NN représentent ces modèles est toutefois différent. Dans le cas d'un CNN, vous recherchez les mêmes motifs sur tous les sous-champs de l'image. Dans le cas d'un RNN, vous alimentez (dans le cas le plus simple) les couches cachées de l'étape précédente en tant qu'entrée supplémentaire dans l'étape suivante. Alors que le RNN construit de la mémoire dans ce processus, il ne recherche pas les mêmes modèles sur différentes tranches de temps de la même manière qu'un CNN recherche les mêmes modèles dans différentes régions de l'espace.

Je devrais également noter que lorsque je parle de "temps" et "d'espace", il ne faut pas le prendre à la lettre. Vous pouvez, par exemple, exécuter un RNN sur une seule image pour le sous-titrage d’images. La signification de "temps" serait simplement l’ordre dans lequel différentes parties de l’image sont traitées. Ainsi, les objets initialement traités informeront le sous-titrage des objets ultérieurs traités.


3
Vous pouvez obtenir une bonne intuition pour les différences de modèle RNN auprès de karpathy.github.io/assets/rnn/diags.jpeg - un graphique très copié. Les CNN, ainsi que les MLP et autres modèles non récursifs, implémentent uniquement le cas du modèle un à un.
Neil Slater

@NeilSlater Je connais même l'article original de cette image, mais je n'ai jamais rien pu en extraire. S'il vous plaît, pourriez-vous élaborer ce que vous avez appris de l'image?
Hi-Angel

2
@ Hi-Angel: l'image visualise les relations possibles entre des séquences et des entités uniques pouvant être mappées par un modèle. Si vous comprenez déjà bien les permutations, vous pourriez ne rien en tirer. La raison pour laquelle l'image apparaît dans l'article est qu'elle démontre la flexibilité relative des RNN: un RNN peut être appliqué à tous les types de problèmes présentés (par exemple, il peut être utilisé dans des problèmes de traduction de langue correspondant au 4ème élément), tandis qu'un réseau feed-forward s'applique uniquement aux problèmes correspondant à la première image.
Neil Slater


23

Les différences entre CNN et RNN sont les suivantes:

CNN:

  1. CNN prend une entrée de taille fixe et génère des sorties de taille fixe.

  2. CNN est un type de réseau neuronal artificiel à feed-forward. Ce sont des variantes de perceptrons multicouches conçues pour utiliser un minimum de prétraitement.

  3. Le modèle de connectivité utilisé par CNN entre ses neurones est inspiré par l’organisation du cortex visuel animal, dont les neurones individuels sont disposés de manière à répondre aux régions qui se chevauchent recouvrant le champ visuel.

  4. Les CNN sont idéaux pour le traitement des images et des vidéos.

RNN:

  1. RNN peut gérer des longueurs d’entrée / sortie arbitraires.

  2. Les réseaux RNN, contrairement aux réseaux de neurones à transmission directe, peuvent utiliser leur mémoire interne pour traiter des séquences d'entrées arbitraires.

  3. Les réseaux de neurones récurrents utilisent des informations chronologiques (c’est-à-dire que ce que j’ai dit en dernier aura un impact sur ce que je parlerai ensuite.)

  4. Les RNN sont parfaits pour l'analyse de texte et de parole.



Les CNN sans couche dense peuvent prendre des entrées de taille arbitraire.
Mikael Rousson

1

Je pense que les deux déclarations ne sont pas correctes car le CNN ne divise pas le composant en sous-composants mais utilise plutôt des pondérations partagées sur tous les sous-composants qui se chevauchent (champs répétitifs) pour trouver le même modèle. Ce n'est pas un algorithme diviser pour régner.

En général, les CNN ont tendance à extraire des caractéristiques locales et invariantes par leur position (indépendamment de leur position), et les RNN ont tendance à trouver des modèles différents dans le temps, même s'ils sont éloignés.

Par exemple, dans le cas de l'application des deux langages au langage naturel, les CNN sont capables d'extraire des entités locales et des entités invariantes par la position, mais ne capturent pas les dépendances sémantiques à longue portée. Il suffit de considérer les phrasés clés locaux.

Ainsi, lorsque le résultat est déterminé par la phrase entière ou par une dépendance sémantique à longue portée, CNN n’est pas efficace, comme le montre cet article, dans lequel les auteurs ont comparé les deux architectures sur des principes de la PNL.

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.