Question

En général, que retirez-vous de l'extension d'un réseau neuronal artificiel en ajoutant plus de nœuds à une couche cachée ou à plusieurs couches cachées?

Permet-il une plus grande précision dans le mappage ou davantage de subtilité dans les relations qu’il peut identifier, ou autre chose?

Était-ce utile?

La solution

Un résultat très connu en machine learning indique qu'un seul calque caché est suffisant pour approximer toute fonction lisse et délimitée (l'article s'appelait " Les réseaux prévisionnels multinouches sont des approximateurs universels et ont maintenant presque 20 ans). Cependant, il y a plusieurs choses à noter.

  • Il se peut que la couche cachée ait besoin d'être large arbitrairement.
  • Cela ne dit rien sur la facilité avec laquelle une approximation peut être trouvée; En général, les grands réseaux sont difficiles à s’entraîner correctement et sont fréquemment victimes de sur-équipement (sauf les «réseaux de neurones à convolution», qui ne sont réellement conçus que pour les problèmes de vision).
  • Cela ne dit rien non plus sur l'efficacité de la représentation. Certaines fonctions requièrent des nombres exponentiels d’unités cachées si elles sont réalisées avec une couche, mais bien plus facilement avec plusieurs couches (pour plus de précisions, lisez ceci: Mise à l'échelle des algorithmes d'apprentissage vers l'IA )

Le problème avec les réseaux de neurones profonds est qu’ils sont encore plus difficiles à former. Vous vous retrouvez avec de très très petits gradients rétablis par rapport aux couches masquées précédentes et l'apprentissage ne va nulle part, en particulier si les poids sont initialisés comme étant petits (si vous les initialisez pour qu'ils soient de plus grande ampleur, vous vous retrouvez souvent coincé dans de mauvais minima locaux) . Il existe certaines techniques de "pré-formation". comme ceux décrits dans cette conversation technique Google de Geoff Hinton qui tente de contourner ce problème.

Autres conseils

C'est une question très intéressante, mais il n'est pas si facile d'y répondre. Cela dépend du problème que vous essayez de résoudre et du réseau de neurones que vous essayez d'utiliser. Il existe plusieurs types de réseaux de neurones.

En général, il n’est pas clair que plus de nœuds équivaut à plus de précision. Les recherches montrent que vous n'avez généralement besoin que d'une couche cachée. Le nombre de nœuds doit être le nombre minimal de nœuds requis pour résoudre un problème. Si vous n'en avez pas assez, vous ne pourrez pas trouver de solution.

D'autre part, si vous avez atteint le nombre de nœuds qu'il convient de résoudre, vous pouvez en ajouter de plus en plus et vous ne verrez plus aucun progrès dans l'estimation des résultats.

C'est pourquoi il existe de nombreux types de réseaux de neurones. Ils essaient de résoudre différents types de problèmes. Vous avez donc NN pour résoudre des problèmes statiques, des problèmes liés au temps, etc. Le nombre de nœuds n’est pas aussi important que leur conception.

Lorsque vous avez un calque masqué, vous créez une fonction combinée de l’entrée. Alors, le problème est-il mieux traité par davantage de fonctionnalités de l'entrée existante ou par des fonctionnalités d'ordre supérieur issues de la combinaison de fonctionnalités existantes? C'est le compromis pour un réseau à feed-forward standard.

Vous avez l’assurance théorique que toute fonction peut être représentée par un réseau de neurones avec deux couches cachées et une activation non linéaire.

Pensez également à utiliser des ressources supplémentaires pour renforcer, au lieu d’ajouter davantage de nœuds, si vous n’êtes pas certain de la topologie appropriée.

Règles approximatives très approximatives

généralement plus d'éléments par couche pour les plus grands vecteurs d'entrée.

plusieurs couches peuvent vous permettre de modéliser davantage de systèmes non linéaires.

Si le type de réseau que vous utilisez présente des retards de propagation, davantage de couches peuvent permettre la modélisation des séries chronologiques. Veillez à éviter les retards dans le temps, sinon cela ne fonctionnera pas très bien. Si cela ne fait que vous englober, ignorez-le.

Plus de couches vous permet d'insérer des entités récurrentes. Cela peut être très utile pour les tâches de discrimination. Votre mise en œuvre est interdite.

HTH

Le nombre d'unités par couche masquée explique le potentiel de l'ANN pour décrire une fonction arbitrairement complexe. Certaines fonctions (complexes) peuvent nécessiter de nombreux nœuds cachés, voire plusieurs couches cachées.

Quand une fonction peut être approximée approximativement par un certain nombre d'unités cachées, tout nœud supplémentaire fournira plus de précision ... mais cela n'est vrai que si les échantillons d'apprentissage utilisés suffisent à justifier cet ajout - sinon, ce qui se passera est "overconvergence". La surconvergence signifie que votre ANN a perdu ses capacités de généralisation parce qu'il a trop insisté sur les échantillons particuliers.

En général, il est préférable d’utiliser les unités les moins cachées possibles, si le réseau résultant peut donner de bons résultats. Les schémas d’entraînement supplémentaires nécessaires pour justifier la multiplication des nœuds cachés sont difficiles à trouver dans la plupart des cas, et la précision n’est pas le point fort des NN.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top