Pourquoi les RNN ont-ils généralement moins de couches cachées que les CNN?

8

Les CNN peuvent avoir des centaines de couches cachées et, comme ils sont souvent utilisés avec des données d'image, le fait d'avoir de nombreuses couches capture plus de complexité.

Cependant, pour autant que je l'ai vu, les RNN ont généralement peu de couches, par exemple 2-4. Par exemple, pour la classification des électrocardiogrammes (ECG), j'ai vu des articles utiliser des LSTM à 4 couches et des CNN à 10-15 couches avec des résultats similaires.

Est-ce parce que les RNN / LSTM sont plus difficiles à former s'ils sont plus profonds (en raison de problèmes de disparition de gradient) ou parce que les RNN / LSTM ont tendance à sur-ajuster rapidement les données séquentielles?

KRL
la source

Réponses:

3

Les CNN et RNN disposent de méthodes d'extraction:

Les CNN ont tendance à extraire des caractéristiques spatiales. Supposons que nous ayons un total de 10 couches de convolution empilées les unes sur les autres. Le noyau de la 1ère couche extraira les fonctionnalités de l'entrée. Cette carte d'entités est ensuite utilisée comme entrée pour la couche de convolution suivante qui produit à nouveau une carte d'entités à partir de sa carte d'entités en entrée.

De même, les entités sont extraites niveau par niveau de l'image d'entrée. Si l'entrée est une petite image de 32 * 32 pixels, nous aurons certainement besoin de moins de couches de convolution. Une image plus grande de 256 * 256 aura une complexité des fonctionnalités comparativement plus élevée.

Les RNN sont des extracteurs de caractéristiques temporelles car ils conservent une mémoire des activations de couche passées. Ils extraient des fonctionnalités comme un NN, mais les RNN se souviennent des fonctionnalités extraites à travers les pas de temps. Les RNN pourraient également se souvenir des caractéristiques extraites via des couches de convolution. Puisqu'ils détiennent une sorte de mémoire, ils persistent dans les caractéristiques temporelles / temporelles.


En cas de classification par électrocardiogramme:

Sur la base des articles que vous lisez, il semble que,

Les données ECG pourraient être facilement classées en utilisant des caractéristiques temporelles à l'aide de RNN. Les caractéristiques temporelles aident le modèle à classer correctement les ECG. Par conséquent, l'utilisation des RNN est moins complexe.

Les CNN sont plus complexes car,

Les méthodes d'extraction des fonctionnalités utilisées par les CNN conduisent à de telles fonctionnalités qui ne sont pas assez puissantes pour reconnaître de manière unique les ECG. Par conséquent, le plus grand nombre de couches de convolution est nécessaire pour extraire ces caractéristiques mineures pour une meilleure classification.

Enfin,

Une fonction forte fournit moins de complexité au modèle tandis qu'une fonction plus faible doit être extraite avec des couches complexes.


Est-ce parce que les RNN / LSTM sont plus difficiles à former s'ils sont plus profonds (en raison de problèmes de disparition de gradient) ou parce que les RNN / LSTM ont tendance à sur-ajuster rapidement les données séquentielles?

Cela pourrait être considéré comme une perspective de réflexion. Les LSTM / RNN sont sujets à un sur-ajustement dans lequel l'une des raisons pourrait être la disparition du problème de gradient, comme mentionné par @Ismael EL ATIFI dans les commentaires.

Je remercie @Ismael EL ATIFI pour les corrections.

Shubham Panchal
la source
4
"Les LSTM / RNN sont sujettes au sur-ajustement en raison du problème de gradient qui disparaît." Je ne suis pas d'accord. Le dépassement ne peut pas être causé par un problème de gradient de fuite simplement parce que le gradient de fuite empêche les paramètres des premières couches d'être correctement mis à jour et donc de s'ajuster. "Les couches de convolution ne sont généralement pas trop ajustées, ce sont des extracteurs de fonctionnalités." Les couches de convolution PEUVENT s'ajuster comme n'importe quelle autre couche entraînable et tout CNN se surajustera définitivement s'il a trop de paramètres par rapport à la quantité et à la variété des données sur lesquelles il est formé.
Ismael EL ATIFI
1

À propos du nombre de couches

La raison peut être comprise en examinant l'architecture d'un CNN et d'un LSTM et comment celui-ci peut fonctionner sur des données de séries chronologiques. Mais je dois dire que le nombre de couches est quelque chose qui dépend fortement du problème que vous essayez de résoudre. Vous pourrez peut-être résoudre une classification ECG en utilisant quelques couches LSTM, mais pour la reconnaissance d'activité à partir de vidéos, vous aurez besoin de plus de couches.

Mis à part cela, voici comment un CNN et un LSTM pourraient traiter un signal de série chronologique. Un signal très simple où après trois cycles positifs, vous obtenez un cycle négatif.

CNN vs LSTMs

Pour qu'un CNN puisse voir ce modèle simple, il faut 4 couches dans cet exemple. Lorsqu'un CNN traite une entrée de série temporelle, une sortie de convolution ne connaît pas les sorties précédentes (c'est-à-dire qu'elles ne sont pas connectées). Cependant, un LSTM peut le faire en utilisant simplement une seule couche car il peut se souvenir des modèles temporels jusqu'à 100s de pas de temps. Parce qu'une sortie est basée sur l'entrée actuelle ainsi que sur les entrées précédentes que le modèle a vues.

Je ne dis pas que c'est la seule raison, mais c'est probablement l'un des principaux facteurs pour lesquels les CNN nécessitent plus de couches et les LSTM pas pour les données de séries chronologiques.

À propos de la disparition des dégradés et du sur-ajustement

Le gradient de fuite est susceptible de devenir un problème à l'intérieur d'une seule couche plutôt qu'à travers les couches. C'est lors du traitement de nombreuses étapes séquentielles que les connaissances sur les premières étapes risquent de disparaître. Et je ne pense pas que les modèles séquentiels sont susceptibles de surcharger les données de séries temporelles si vous les régularisez correctement. Ce choix est donc probablement plus influencé par l'architecture / les capacités des modèles que par le gradient de fuite ou le surajustement.

thushv89
la source
0

Je vois 2 raisons possibles pour lesquelles un RNN pourrait nécessiter moins de couches qu'un CNN pour atteindre les mêmes performances:
- Les couches RNN sont généralement des couches entièrement connectées qui ont plus de paramètres qu'une couche convolutionnelle.
- un RNN possède certains composants qui permettent de combiner des entrées par multiplication contrairement à un CNN qui ne peut combiner des entrées que par addition pondérée. Ainsi, la capacité multiplicative du RNN lui donne plus de «puissance» pour calculer les caractéristiques. Le CNN aurait besoin de plusieurs couches pour «imiter» cette capacité multiplicative.

Ismael EL ATIFI
la source