Très bonne question, car il n'existe pas encore de réponse exacte à cette question. Il s'agit d'un domaine de recherche actif.
Au final, l'architecture de votre réseau est liée à la dimensionnalité de vos données. Étant donné que les réseaux de neurones sont des approximateurs universels, tant que votre réseau est suffisamment grand, il a la capacité d'adapter vos données.
La seule façon de savoir vraiment quelle architecture fonctionne le mieux est de les essayer toutes, puis de choisir la meilleure. Mais bien sûr, avec les réseaux de neurones, c'est assez difficile car chaque modèle prend un certain temps à s'entraîner. Ce que certaines personnes font, c'est d'abord former un modèle qui est «trop grand» exprès, puis l'élaguer en supprimant les poids qui ne contribuent pas beaucoup au réseau.
Et si mon réseau est "trop grand"
Si votre réseau est trop volumineux, il peut soit être surchargé, soit avoir du mal à converger. Intuitivement, ce qui se passe, c'est que votre réseau essaie d'expliquer vos données d'une manière plus compliquée qu'il ne devrait. C'est comme essayer de répondre à une question à laquelle on pourrait répondre en une phrase avec un essai de 10 pages. Il peut être difficile de structurer une réponse aussi longue, et il peut y avoir beaucoup de faits inutiles. ( Voir cette question )
Et si mon réseau est "trop petit"
En revanche, si votre réseau est trop petit, il équipera vos données et donc. Ce serait comme répondre avec une phrase alors que vous auriez dû rédiger un essai de 10 pages. Aussi bonne que soit votre réponse, certains des faits pertinents vous manqueront.
Estimation de la taille du réseau
Si vous connaissez la dimensionnalité de vos données, vous pouvez savoir si votre réseau est suffisamment grand. Pour estimer la dimensionnalité de vos données, vous pouvez essayer de calculer son classement. C'est une idée fondamentale dans la façon dont les gens essaient d'estimer la taille des réseaux.
Cependant, ce n'est pas aussi simple. En effet, si votre réseau doit être en 64 dimensions, construisez-vous une seule couche cachée de taille 64 ou deux couches de taille 8? Ici, je vais vous donner une idée de ce qui se passerait dans les deux cas.
Aller plus loin
Aller plus loin signifie ajouter plus de couches cachées. Ce qu'il fait, c'est qu'il permet au réseau de calculer des fonctionnalités plus complexes. Dans les réseaux de neurones convolutifs, par exemple, il a été souvent démontré que les premières couches représentent des caractéristiques "de bas niveau" telles que les bords, et les dernières couches représentent des caractéristiques "de haut niveau" telles que les visages, les parties du corps, etc.
Vous devez généralement approfondir si vos données sont très non structurées (comme une image) et doivent être traitées un peu avant de pouvoir en extraire des informations utiles.
Aller plus loin
Aller plus loin signifie créer des fonctionnalités plus complexes, et «élargir» signifie simplement créer plus de ces fonctionnalités. Il se peut que votre problème puisse être expliqué par des fonctionnalités très simples, mais il doit y en avoir beaucoup. Habituellement, les couches deviennent plus étroites vers la fin du réseau pour la simple raison que les fonctionnalités complexes transportent plus d'informations que les simples, et donc vous n'en avez pas besoin d'autant.