Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Manufacturing Equipment >> Robot industriel

De combien de couches et de nœuds cachés un réseau de neurones a-t-il besoin ?

Cet article fournit des directives pour configurer la partie cachée d'un Perceptron multicouche.

Jusqu'à présent, dans cette série sur les réseaux de neurones, nous avons discuté des NN Perceptron, des NN multicouches et de la façon de développer de tels NN à l'aide de Python. Avant de discuter du nombre de couches et de nœuds cachés que vous pouvez choisir d'utiliser, envisagez de rattraper votre retard sur la série ci-dessous.

  1. Comment effectuer une classification à l'aide d'un réseau de neurones :qu'est-ce que le perceptron ?
  2. Comment utiliser un exemple simple de réseau neuronal Perceptron pour classer des données
  3. Comment former un réseau de neurones Perceptron de base
  4. Comprendre la formation simple sur les réseaux neuronaux
  5. Une introduction à la théorie de la formation pour les réseaux de neurones
  6. Comprendre le taux d'apprentissage dans les réseaux de neurones
  7. Apprentissage automatique avancé avec le Perceptron multicouche
  8. La fonction d'activation sigmoïde :activation dans les réseaux de neurones Perceptron multicouches
  9. Comment former un réseau de neurones Perceptron multicouches
  10. Comprendre les formules d'entraînement et la rétropropagation pour les perceptrons multicouches
  11. Architecture de réseau neuronal pour une implémentation Python
  12. Comment créer un réseau de neurones Perceptron multicouche en Python
  13. Traitement du signal à l'aide de réseaux de neurones :validation dans la conception de réseaux de neurones
  14. Entraînement d'ensembles de données pour les réseaux de neurones :comment entraîner et valider un réseau de neurones Python
  15. De combien de couches et de nœuds cachés un réseau de neurones a-t-il besoin ?

Récapitulatif des couches cachées

Tout d'abord, passons en revue quelques points importants concernant les nœuds cachés dans les réseaux de neurones.

Le schéma suivant résume la structure d'un Perceptron multicouche de base.

Combien de couches cachées ?

Comme vous vous en doutez, il n'y a pas de réponse simple à cette question. Cependant, la chose la plus importante à comprendre est qu'un Perceptron avec une couche cachée est un système de calcul extrêmement puissant. Si vous n'obtenez pas de résultats adéquats avec une couche cachée, essayez d'abord d'autres améliorations. Vous devrez peut-être optimiser votre taux d'apprentissage, augmenter le nombre d'époques d'entraînement ou améliorer votre ensemble de données d'entraînement. L'ajout d'une deuxième couche cachée augmente la complexité du code et le temps de traitement.

Une autre chose à garder à l'esprit est qu'un réseau de neurones surpuissant n'est pas seulement un gaspillage d'efforts de codage et de ressources de processeur, il peut en fait causer des dommages positifs en rendant le réseau plus susceptible au surentraînement.

Nous avons parlé de surentraînement dans la partie 4, qui comprenait le diagramme suivant comme moyen de visualiser le fonctionnement d'un réseau de neurones dont la solution n'est pas suffisamment généralisée.

Un Perceptron surpuissant peut traiter les données d'entraînement d'une manière vaguement analogue à la façon dont les gens « trop réfléchissent » parfois à une situation.

Lorsque nous nous concentrons trop sur les détails et appliquons un effort intellectuel excessif à un problème qui est en réalité assez simple, nous passons à côté de la « grande image » et nous nous retrouvons avec une solution qui s'avérera sous-optimale. De même, un Perceptron avec une puissance de calcul excessive et des données d'apprentissage insuffisantes peut s'installer sur une solution trop spécifique au lieu de trouver une solution généralisée (comme le montre la figure suivante) qui classera plus efficacement les nouveaux échantillons d'entrée.

Alors, quand avons-nous réellement besoin de plusieurs couches cachées ? Je ne peux pas vous donner de lignes directrices à partir de mon expérience personnelle. Le mieux que je puisse faire est de transmettre l'expertise du Dr Jeff Heaton (voir page 158 du texte lié), qui déclare qu'une couche cachée permet à un réseau de neurones d'approcher n'importe quelle fonction impliquant « une cartographie continue d'un espace fini à un autre ."

Avec deux couches cachées, le réseau est capable de « représenter une limite de décision arbitraire avec une précision arbitraire ».

Combien de nœuds cachés ?

Trouver la dimensionnalité optimale pour une couche cachée nécessitera des essais et des erreurs. Comme discuté ci-dessus, avoir trop de nœuds n'est pas souhaitable, mais vous devez avoir suffisamment de nœuds pour rendre le réseau capable de capturer les complexités de la relation entrée-sortie.

Les essais et les erreurs, c'est bien beau, mais vous aurez besoin d'une sorte de point de départ raisonnable. Dans le même livre lié ci-dessus (à la page 159), le Dr Heaton mentionne trois règles empiriques pour choisir la dimensionnalité d'une couche cachée. Je vais m'appuyer sur ceux-ci en proposant des recommandations basées sur ma vague intuition de traitement du signal.

  1. Si le réseau n'a qu'un seul nœud de sortie et que vous pensez que la relation entrée-sortie requise est assez simple, commencez par une dimensionnalité de couche cachée qui est égale aux deux tiers de la dimensionnalité d'entrée.
  2. Si vous avez plusieurs nœuds de sortie ou si vous pensez que la relation entrée-sortie requise est complexe, faites en sorte que la dimensionnalité de la couche cachée soit égale à la dimensionnalité d'entrée plus la dimensionnalité de sortie (mais gardez-la inférieure au double de la dimensionnalité d'entrée).
  3. Si vous pensez que la relation entrée-sortie requise est extrêmement complexe, définissez la dimensionnalité cachée sur une dimension inférieure au double de la dimensionnalité d'entrée.

Conclusion

J'espère que cet article vous a aidé à comprendre le processus de configuration et d'affinement de la configuration de la couche cachée d'un Perceptron multicouche.

Dans le prochain article, nous explorerons les effets de la dimensionnalité de la couche cachée en utilisant mon implémentation Python et quelques exemples de problèmes.


Robot industriel

  1. Qu'est-ce qu'une presse à bascule et comment ça marche ?
  2. Comment fonctionne une presse à crémaillère et pignon ?
  3. Qu'est-ce que le moulage par transfert et comment fonctionne-t-il ?
  4. Qu'est-ce qu'une transmission et comment fonctionne-t-elle ?
  5. Incorporation de nœuds de polarisation dans votre réseau neuronal
  6. Comment augmenter la précision d'un réseau de neurones à couche cachée
  7. Entraînement d'ensembles de données pour les réseaux de neurones :comment entraîner et valider un réseau de neurones Python
  8. Qu'est-ce qu'un embrayage industriel et comment ça marche ?
  9. De combien de CV une pompe hydraulique a-t-elle besoin ?