comprendre la normalisation des lots

8

Dans l'article Batch Normalisation: Accelerating Deep Network Training b y Reducing Internal Covariate Shift ( ici ) Avant d'expliquer le processus de normalisation par lots, l'article essaie d'expliquer les problèmes liés à (je ne comprends pas quel est le problème exact abordé ici) .

extrait de l'article 2, paragraphe 2:

Nous pourrions envisager de blanchir les activations à chaque étape de la formation ou à un certain intervalle, soit en modifiant directement le réseau, soit en changeant les paramètres de l'algorithme d'optimisation en fonction des valeurs d'activation du réseau (Wiesler et al., 2014; Raiko et al., 2012 ; Povey et al., 2014; Desjardins et Kavukcuoglu). Cependant, si ces modifications sont entrecoupées des étapes d'optimisation, alors l'étape de descente de gradient peut tenter de mettre à jour les paramètres d'une manière qui nécessite la mise à jour de la normalisation, ce qui réduit l'effet de l'étape de gradient. Par exemple, considérons une couche avec l'entrée u qui ajoute le biais appris et normalise le résultat en soustrayant la moyenne de l'activation calculée sur les données d'apprentissage:bX^=X-E[X]où est l'ensemble des valeurs de sur l'ensemble d'apprentissage, et .X=u+b,X=X1...NXE[X]=1N(je=1nXje)

Si une étape de descente de gradient ignore la dépendance de E [x] sur b, alors elle mettra à jour , où ∆b ​​∝ - \ partial l / \ partial \ hat x . Alors u + (b + ∆b) - E [u + (b + ∆b)] = u + b - E [u + b] \ tag 1 .bb+bb-l/X^

(1)u+(b+b)-E[u+(b+b)]=u+b-E[u+b]

Ainsi, la combinaison de la mise à jour de b et du changement ultérieur de normalisation n'a entraîné aucun changement dans la sortie de la couche ni, par conséquent, la perte. Au fur et à mesure de la formation, b augmentera indéfiniment tandis que la perte restera fixe. Ce problème peut s'aggraver si la normalisation non seulement centre mais met également à l'échelle les activations.

voici ma compréhension de la littérature:

  1. Nous avons un lot de taille N (un lot de formation)

  2. Soit deux couches cachées arbitraires connectées l'une à l'autre (L1 et L2) connectées par les paramètres etWb

  3. la sortie sortant de L1 est x1

  4. u=x1W (c'est là que commence la littérature ci-dessus. la dimension de u est MxN) (M est le nombre d'unités dans L2)

  5. x=u+b (dimension b = dimension x = dimension u = MxN)

  6. Maintenant, avant d'introduire x dans L2, nous le centrons en soustrayant la moyenne de de chaque entrée dans ( )xxx^=xE[x]

  7. Nous calculons la perte et rétropropagons le gradient et mettons à jour uniquement le cette couche afin de lui donner un test d'intégrité. Nouveau =bbb+Δb

  8. Nous l'exécutons à nouveau sur le même lot avec mis à jourb

  9. répéter 3 et 4

  10. xnew=u+b+Δb (dimension b, = dimension x = dimension u = MxN)Δb

  11. Maintenant, avant d'introduire x dans L2, nous le centrons en soustrayant la moyenne de de chaque entrée dans ( ). qui est le même que ce qui était calculé avant la mise à jour de b et donc la mise à jour de b devait avoir un effet sur la formationxxX^=X+Δb-E[X+Δb]=X-E[X]

Ma question concerne cette partie de l'extrait:

"Si une étape de descente de gradient ignore la dépendance de E [x] sur b, alors elle mettra à jour , où . Alors "bb+bb-l/X^

(1)u+(b+b)-E[u+(b+b)]=u+b-E[u+b]

Pourquoi est-ce

" " dépend de ce qui précède? Quel est même l'intérêt de ce morceau? Veuillez également noter l'utilisation du mot "Alors" (en gras) impliquant que la déclaration tire nécessairement la causalité de ce qui précède

(1)u+(b+b)-E[u+(b+b)]=u+b-E[u+b]
MiloMinderbinder
la source

Réponses:

3

Supposons que vous essayez de minimiser la perte suivante pour une tâche donnée, oùest la distance euclédienne et la sortie prédite est pour plus de simplicité. Les gradients peuvent alors être calculés comme suit:

(y,y^)=12y-y^2,
y^=X^

Δb=-X^X^b,Δω=-X^X^ω

Maintenant, le gradient de par rapport au biais estX^b

X^b=b(X-E[X])=b((u+b)-E[(u+b)])=1-bE[(u+b)]

Ignorer le fait que dépend de rend le gradient ci-dessus égal à 1, et continue donc à mettre à jour le biais comme suit:E(X)b

X^b=1-bE[X]=1-0=1
puis

Δb=-X^(1),bb+Δb

Sinon, si vous voulez considérer cette dépendance, le gradient devient 0, et donc pas de mise à jour comme suit:

X^b=1-bE[u+b]=1-(bE[u]+bE[b])=1-(0+1)=0
puis
Δb=-X^(0),bb+0

Dans les deux cas, quelle que soit la mise à jour du biais, la fonction de perte restera fixe,

u+(b+Δb)-E[u+(b+b)]=u+b-E[u+b],

cependant, dans le premier cas, le biais augmentera indéfiniment.

Shadi
la source