1 couche cachée avec 1000 neurones contre 10 couches cachées avec 100 neurones


13

Ces types de questions peuvent dépendre du problème, mais j'ai essayé de trouver des recherches qui répondent à la question de savoir si le nombre de couches cachées et leur taille (nombre de neurones dans chaque couche) importent vraiment ou non.

Donc ma question est, est-ce vraiment important si nous avons par exemple 1 grande couche cachée de 1000 neurones contre 10 couches cachées avec 100 neurones chacune?

Réponses:


12

Fondamentalement, le fait d'avoir plusieurs couches (aka un réseau profond) rend votre réseau plus désireux de reconnaître certains aspects des données d'entrée. Par exemple, si vous avez en entrée les détails d'une maison (taille, taille de la pelouse, emplacement, etc.) et que vous souhaitez prédire le prix. La première couche peut prédire:

  • Grande surface, prix plus élevé
  • Petit nombre de chambres, prix inférieur

La deuxième couche pourrait conclure:

  • Grande surface + petite quantité de chambres = grandes chambres = + - effet

Oui, une couche peut également «détecter» les statistiques, mais elle nécessitera plus de neurones car elle ne peut pas compter sur d'autres neurones pour effectuer des «parties» du calcul total requis pour détecter cette statistique.

Découvrez cette réponse


Merci beaucoup pour votre réponse. Juste pour clarifier, quand vous écrivez "ça fait votre réseau [...]", faites-vous référence au cas où j'ai plusieurs couches cachées avec moins de neurones chacune plutôt que d'avoir plus de neurones dans moins de couches?
Stephen Johnson

@StephenJohnson oups, j'ai édité la question. Je fais référence au réseau profond (plusieurs couches).
Thomas W

Belle réponse, merci encore. Je devrais peut-être continuer dans un autre fil, mais pensez-vous que le même genre de raisonnement s'applique aux réseaux de neurones récurrents tels que GRU ou LSTM?
Stephen Johnson

@StephenJohnson voulez-vous dire un réseau récurrent en couches vs réseaux récurrents multicouches ou voulez-vous dire en raison de leurs connexions récurrentes?
Thomas W

Je veux dire généralement, en raison de leurs connexions récurrentes leur permettant de cartographier des contextes sur de plus longues distances, ces réseaux bénéficient-ils d'être profonds de la même manière qu'un réseau de feedforward régulier le ferait? Peut-être qu'ils ne peuvent pas être comparés comme ça, car les réseaux récurrents sont généralement utilisés lorsque des données séquentielles, telles que l'audio, sont utilisées.
Stephen Johnson

4

Il y a tellement d'aspects.

1. Formation: La formation des filets profonds est un travail difficile en raison du problème de gradient de fuite (explosion arrière). La construction d'un réseau neuronal 10x100 n'est donc pas recommandée.

2. Performance du réseau formé:

  • Perte d'informations: L'utilisation classique des réseaux de neurones est le problème de classification . Ce qui signifie que nous voulons obtenir des informations bien définies à partir des données. (Ex. Y a-t-il un visage dans l'image ou non?) Donc, généralement, le problème de classification a beaucoup d'entrée et peu de sortie, de plus la taille des couches cachées est descendante de l'entrée à la sortie. Cependant, nous perdons des informations en utilisant moins de neurones couche par couche. (C'est-à-dire que nous ne pouvons pas reproduire l'image d'origine sur la base du fait qu'il y a un visage dessus ou non.) Vous devez donc savoir que vous perdez des informations en utilisant 100 neurones si la taille de l'entrée est (disons) 1000.
  • Complexité de l'information: Cependant, les réseaux plus profonds (comme Tomas W l'a mentionné) peuvent extraire des informations plus complexes des données d'entrée. Malgré cela, il n'est pas recommandé d'utiliser 10 couches entièrement connectées. Il est recommandé d'utiliser un convolution / relu / maxpool ou un autre type de couches. Les couches Firest peuvent comprimer une partie essentielle des entrées. (Ex. Y a-t-il une ligne dans une partie spécifique de l'image) Les seconds calques peuvent dire: Il y a une forme spécifique à cet endroit dans l'image. Etc.

Les filets plus profonds sont donc plus "intelligents" mais la structure de filet 10x100 est un bon choix.


1

Si le problème que vous résolvez est séparable linéairement, une couche de 1000 neurones peut faire mieux que 10 couches avec chacun de 100 neurones. Si le problème est non linéaire et non convexe, alors vous avez besoin de réseaux neuronaux profonds.


2
Si le problème est séparable linéairement, vous n'avez
absolument

0

Je pense que vous avez une confusion dans les bases des réseaux de neurones. Chaque couche a une fonction d'activation et des poids de connexion d'entrée / sortie distincts.

La sortie de la première couche cachée sera multipliée par un poids, traitée par une fonction d'activation dans la couche suivante et ainsi de suite. Les réseaux neuronaux à une seule couche sont très limités pour les tâches simples, un NN plus profond peut fonctionner bien mieux qu'une couche unique.

Cependant, n'utilisez pas plus de couche si votre application n'est pas assez complexe. En conclusion, une couche de 100 neurones ne signifie pas un meilleur réseau neuronal que 10 couches x 10 neurones, mais 10 couches sont quelque chose d'imaginaire, sauf si vous faites un apprentissage en profondeur. commencez avec 10 neurones dans la couche cachée et essayez d'ajouter des couches ou ajoutez plus de neurones à la même couche pour voir la différence. l'apprentissage avec plus de couches sera plus facile mais plus de temps de formation est nécessaire.

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.