J'ai construit un réseau neuronal artificiel en python en utilisant la fonction d'optimisation scipy.optimize.minimize (gradient conjugué).
J'ai implémenté la vérification du gradient, j'ai tout vérifié, etc., et je suis presque certain que cela fonctionne correctement.
Je l'ai exécuté plusieurs fois et il atteint `` L'optimisation s'est terminée avec succès '', mais lorsque j'augmente le nombre de couches masquées, le coût de l'hypothèse augmente (tout le reste est le même) une fois qu'elle s'est terminée avec succès.
Intuitivement, il semble que le coût devrait diminuer lorsque le nombre de couches cachées augmente, car il est capable de générer une hypothèse plus complexe qui peut mieux s'adapter aux données, mais cela ne semble pas être le cas.
Je serais intéressé de comprendre ce qui se passe ici, ou si j'ai mal mis en place le réseau neuronal?
la source
L'augmentation du nombre de couches cachées pour un réseau neuronal standard n'améliorera en fait pas les résultats dans la majorité des cas. Changer la taille de la couche cachée le sera.
Ce fait (que le nombre de couches cachées fait très peu) a en fait été noté historiquement et est la motivation derrière le domaine de l'apprentissage profond. L'apprentissage en profondeur est un moyen efficace et intelligent de former des réseaux de neurones multicouches en isolant, par exemple, des sous-ensembles de fonctionnalités lors de la formation de différentes couches.
Bonne vidéo d'introduction sur ce sujet sur YouTube
la source