Votre question est assez large, mais voici quelques conseils:
Pour les réseaux à action directe, consultez cette question :
La réponse de @ doug a fonctionné pour moi. Il existe une règle de base supplémentaire qui aide à résoudre les problèmes d'apprentissage supervisé. La limite supérieure du nombre de neurones cachés qui n'entraînera pas de sur-ajustement est:
Nh= Ns( α ∗ ( Nje+ No) )
NiNoNsα
alphaNs∗(Ni+No)α
Pour une procédure automatisée, vous commenceriez avec un alpha de 2 (deux fois plus de degrés de liberté dans vos données d'entraînement que votre modèle) et progresseriez jusqu'à 10 si l'erreur pour les données d'entraînement est considérablement plus petite que pour la validation croisée ensemble de données.
Et spécifiquement sur les LSTM, vous voudrez peut-être vérifier cela .
Mais le point principal: il n'y a pas de règle pour la quantité de nœuds cachés que vous devez utiliser, c'est quelque chose que vous devez déterminer pour chaque cas par essais et erreurs .
En général, il n'existe aucune directive sur la façon de déterminer le nombre de couches ou le nombre de cellules de mémoire dans un LSTM.
Le nombre de couches et de cellules nécessaires dans un LSTM peut dépendre de plusieurs aspects du problème:
La complexité de l'ensemble de données. La quantité de fonctionnalités, le nombre de points de données, etc.
Le processus de génération de données. Voici un exemple de la façon dont le processus de génération de données peut jouer un rôle important.
Ex - Prédiction des prix du pétrole par rapport à la prédiction du PIB d'une économie bien comprise. Ce dernier est beaucoup plus facile que le premier. Ainsi, la prévision des prix du pétrole pourrait tout aussi bien nécessiter un plus grand nombre de cellules de mémoire LSTM pour prédire avec la même précision par rapport au PIB.
Je suit ces étapes lors de la modélisation à l'aide de LSTM:
Essayez une seule couche cachée avec 2 ou 3 cellules mémoire. Découvrez ses performances par rapport à une référence. S'il s'agit d'un problème de série chronologique, je fais généralement une prévision à partir des techniques classiques de série chronologique comme référence.
Essayez d'augmenter le nombre de cellules de mémoire. Si les performances n'augmentent pas beaucoup, passez à l'étape suivante.
Commencez à rendre le réseau profond, c'est-à-dire ajoutez une autre couche avec un petit nombre de cellules de mémoire.
De côté :
Il n'y a pas de limite à la quantité de travail qui peut être consacrée pour atteindre ces minima globaux de la fonction de perte et régler les meilleurs hyper-paramètres. Donc, se concentrer sur l'objectif final de la modélisation devrait être la stratégie plutôt que d'essayer d'augmenter la précision autant que possible.
La plupart des problèmes peuvent être traités en utilisant 2-3 couches du réseau.
la source
Vous devriez peut-être y jeter un œil: https://wiki.inf.ed.ac.uk/twiki/pub/CSTR/ListenTerm1201415/sak2.pdf
Ici, ils montrent que 2 couches sont agréables, 5 couches sont meilleures et 7 couches sont très difficiles à former.
la source