J'ai lu ici ce qui suit:
- Les sorties sigmoïdes ne sont pas centrées sur zéro . Cela n'est pas souhaitable car les neurones des couches ultérieures de traitement dans un réseau de neurones (plus à ce sujet bientôt) recevraient des données qui ne sont pas centrées sur zéro. Cela a des implications sur la dynamique pendant la descente du gradient, car si les données entrant dans un neurone sont toujours positives (par exemple élément par élément dans )), alors le gradient sur les poids pendant la rétropropagation deviendra soit tous soient positifs ou tous négatifs (selon le gradient de l'expression entière ). Cela pourrait introduire une dynamique de zigzag indésirable dans les mises à jour de gradient pour les poids. Cependant, notez qu'une fois ces gradients ajoutés à un lot de données, la mise à jour finale des poids peut avoir des signes variables, ce qui atténue quelque peu ce problème. Par conséquent, ceci est un inconvénient mais il a des conséquences moins graves par rapport au problème d'activation saturé ci-dessus.
Pourquoi avoir tous les (élément par élément) conduirait-il à des gradients tout positifs ou tous négatifs sur ?
neural-networks
deep-learning
backpropagation
Amelio Vazquez-Reina
la source
la source
Réponses:
parce que , le gradient toujours le même signe que (tous positifs ou tous négatifs).xi>0 dLdwi dLdf
Mise à jourw1 w2
Supposons qu'il existe deux paramètres et , si les gradients de deux dimensions sont toujours du même signe, cela signifie que nous ne pouvons que nous déplacer grossièrement en direction du nord-est ou du sud-ouest dans l'espace des paramètres.
Si notre objectif se trouve être dans le nord-est, nous ne pouvons que nous déplacer en zigzag pour y arriver, tout comme le stationnement parallèle dans un espace étroit. (pardonne mon dessin)
Par conséquent, les fonctions d'activation entièrement positives ou négatives (relu, sigmoïde) peuvent être difficiles à optimiser en fonction du gradient. Pour résoudre ce problème, nous pouvons normaliser les données à l'avance pour qu'elles soient centrées sur le zéro comme dans la normalisation par lot / couche.
Une autre solution à laquelle je peux penser consiste à ajouter un terme de biais pour chaque entrée afin que la couche devienne Les gradients sont alors le signe ne dépendra pas uniquement de .f=∑wi(xi+bi). dLdwi=dLdf(xi−bi) xi
la source