Je rencontre des problèmes avec l'utilisation du réseau neuronal. J'utilise une fonction d'activation non linéaire pour la couche cachée et une fonction linéaire pour la couche de sortie. Ajouter plus de neurones dans la couche cachée aurait dû augmenter la capacité du NN et l'adapter aux données d'entraînement plus/avoir moins d'erreur sur les données d'entraînement.Problèmes avec le réseau neuronal
Cependant, je vois un phénomène différent. L'ajout de plus de neurones diminue la précision du réseau neuronal même sur l'ensemble d'entraînement.
Voici le graphique de l'erreur absolue moyenne avec un nombre croissant de neurones. La précision sur les données d'entraînement est en baisse. Quelle pourrait être la cause de cela? Est-ce que le nntool que j'utilise de matlab divise les données aléatoirement en formation, test et validation pour vérifier la généralisation au lieu d'utiliser la validation croisée.
De même, j'ai pu voir beaucoup de valeurs de sortie -ve ajoutant des neurones alors que mes cibles sont censées être positives. Serait-ce un autre problème?
Je ne suis pas en mesure d'expliquer le comportement de NN ici. Aucune suggestion? Voici le lien vers mes données comprenant des covariables et des cibles
https://www.dropbox.com/s/0wcj2y6x6jd2vzm/data.mat
Tout d'abord, est l'erreur dans la gamme de 10^7 habituel? N'est-ce pas trop haut? Cela peut indiquer que votre réseau de neurones ne s'entraîne pas du tout. Avez-vous vu l'évolution de l'entraînement de votre réseau de neurones pour voir si c'est vraiment une formation? – Werner
@Werner. L'échelle d'erreur est bonne, elle est censée être dans cette plage car mes sorties sont des valeurs très élevées. Il est donc normal de voir l'erreur dans cette plage – user34790
Utilisez-vous la normalisation 'mapminmax' par défaut? Matlab applique la normalisation par défaut, et (je peux me tromper) l'échelle d'erreur est également normalisée. Si vous avez des sorties très élevées et ne vous normalisez pas, vos fonctions d'activation non linéaires satureront (si vous en utilisez) ce qui expliquerait ce comportement inattendu (l'ajout de neurones plus saturés saturerait encore plus la sortie). N'oubliez pas de vérifier votre évolution d'erreur pendant la phase de formation pour voir si vos réseaux s'entraînent vraiment. – Werner