J'ai beaucoup lu sur les réseaux de neurones convoloutionnels et je me demandais comment ils évitaient le problème du gradient de fuite. Je sais que les réseaux de croyances profondes empilent des auto-encodeurs à un seul niveau ou d'autres réseaux peu profonds pré-formés et peuvent donc éviter ce problème, mais je ne sais pas comment il est évité dans les CNN.
Selon Wikipedia :
"malgré le" problème de gradient disparaissant "mentionné ci-dessus," la puissance de traitement supérieure des GPU rend la simple rétropropagation possible pour les réseaux neuronaux à action directe profonde avec de nombreuses couches. "
Je ne comprends pas pourquoi le traitement GPU supprimerait ce problème?
GPU's are fast correlated with vanishing gradients
, je peux comprendre la logique rapide avec une large bande passante mémoire pour traiter plusieurs multiplications matricielles! mais pourriez-vous expliquer ce que cela a à voir avec les dérivés? Le problème du gradient de fuite semble faire plus avec l'initialisation du poids , n'est-ce pas!Réponses:
Le problème de la disparition du gradient nous oblige à utiliser de petits taux d'apprentissage avec une descente de gradient qui nécessite alors de nombreuses petites étapes pour converger. C'est un problème si vous avez un ordinateur lent qui prend beaucoup de temps pour chaque étape. Si vous avez un GPU rapide qui peut effectuer beaucoup plus d'étapes en une journée, c'est moins un problème.
Il existe plusieurs façons de résoudre le problème du gradient de fuite. Je suppose que le plus grand effet pour les CNN est venu du passage des unités non linéaires sigmoïdes aux unités linéaires rectifiées. Si vous considérez un réseau neuronal simple dont l'erreur dépend du poids w i j uniquement par y j , oùE wij yj
son gradient est
http://jmlr.org/proceedings/papers/v9/glorot10a/glorot10a.pdf
la source