90 votes

Lot de Normalisation dans le Réseau de Neurones à Convolution

Je suis novice dans des réseaux de neurones à convolution et juste avoir une idée sur la fonctionnalité des cartes et comment convolution est fait sur les images pour extraire des caractéristiques. Je serais heureux de connaître certains détails sur l'application de la normalisation de lots à CNN.

J'ai lu ce livre https://arxiv.org/pdf/1502.03167v3.pdf et pourrait comprendre la BN application d'un algorithme sur des données, mais à la fin, ils ont mentionné qu'une légère modification n'est requise lorsqu'il est appliqué à CNN:

Pour convolutifs couches, en outre, nous voulons la normalisation d'obéir à la convolution de la propriété, de sorte que les différents éléments de la même fonction de la carte, à différents endroits, sont normalisées de la même manière. Pour atteindre cet objectif, nous avons conjointement normaliser tous les activations dans un mini - lot, dans tous les sites. En Alg. 1, nous soit B l'ensemble de toutes les valeurs d'une fonction de carte à travers à la fois les éléments d'un mini-lot et localisations spatiales – donc, pour un mini-lot de taille m et de la fonctionnalité des cartes de taille p × q, nous utilisons l'efficacité de mini-lot de taille m' = |B| = m · pq. Nous apprenons une paire de paramètres γ(k) et β(k) par la carte, plutôt que par l'activation. Alg. 2 est modifié de la même, de sorte que lors de l'inférence de la BN de transformation s'applique de la même transformation linéaire à chaque activation d'une fonctionnalité donnée de la carte.

Je suis total confus quand ils disent "de sorte que les différents éléments de la même fonction de la carte, à différents endroits, sont normalisées de la même manière"

Je sais quelle est la caractéristique des cartes de la moyenne et de différents éléments sont les poids de toutes les fonctionnalités de la carte. Mais je ne pouvais pas comprendre ce que l'emplacement ou la localisation spatiale des moyens.

Je ne pouvais pas comprendre la phrase ci-dessous, à tous les "En Alg. 1, nous soit B l'ensemble de toutes les valeurs d'une fonction de carte à travers à la fois les éléments d'un mini-lot et localisations spatiales"

Je serais heureux si quelqu'un froid élaborer et de m'expliquer dans des termes beaucoup plus simple

112voto

Maxim Points 28843

Nous allons commencer avec les termes. Rappelez-vous que la sortie de la convolution est une couche 4-tenseur de rang [B, H, W, C]B est la taille du lot, (H, W) est la fonctionnalité de la carte de la taille, C est le nombre de canaux. Un index (x, y)0 <= x < H et 0 <= y < W est une localisation spatiale.

D'habitude batchnorm

Maintenant, voici comment le batchnorm est appliquée de manière habituelle (en pseudo-code):

# t is the incoming tensor of shape [B, H, W, C]
# mean and stddev are computed along 0 axis and have shape [H, W, C]
mean = mean(t, axis=0)
stddev = stddev(t, axis=0)
for i in 0..B-1:
  out[i,:,:,:] = norm(t[i,:,:,:], mean, stddev)

Fondamentalement, il calcule H*W*C moyens et H*W*C d'écarts-types à travers B - éléments. Vous pouvez remarquer que les différents éléments à différents emplacements spatiaux ont leur propre moyenne et de la variance et de recueillir B valeurs.

Batchnorm à conv couche

De cette façon est tout à fait possible. Mais la convolution de la couche a une propriété particulière: filtre de pondération sont partagées à l'échelle de l'image d'entrée (vous pouvez le lire en détail dans ce post). C'est pourquoi il est raisonnable de normaliser la sortie de la même manière, de sorte que chaque valeur de sortie prend la moyenne et la variance de l' B*H*W valeurs, à des endroits différents.

Voici comment le code ressemble dans ce cas (nouveau pseudo-code):

# t is still the incoming tensor of shape [B, H, W, C]
# but mean and stddev are computed along (0, 1, 2) axes and have just [C] shape
mean = mean(t, axis=(0, 1, 2))
stddev = stddev(t, axis=(0, 1, 2))
for i in 0..B-1, x in 0..H-1, y in 0..W-1:
  out[i,x,y,:] = norm(t[i,x,y,:], mean, stddev)

Au total, il y a seulement C moyen et l'écart type, et chacun d'eux est calculée sur B*H*W valeurs. C'est ce qu'ils veulent dire quand ils disent "efficaces mini-batch": la différence entre les deux est que dans l'axe de la sélection (ou de manière équivalente "mini-lot de sélection").

2voto

Che Points 333

Je ne suis qu'à 70% sûr de ce que je dis, donc si il ne fait pas de sens, merci de modifier ou de le mentionner avant downvoting.

À propos de location ou spatial location: ils veulent parler de la position des pixels dans une image ou la fonctionnalité de la carte. Une fonctionnalité de carte est comparable à un clairsemée version modifiée de l'image où les concepts sont représentés.

À propos de so that different elements of the same feature map, at different locations, are normalized in the same way: certains algorithmes de normalisation sont locales, de sorte qu'ils sont dépendants de leurs environs immédiats (emplacement) et non pas les choses, loin de l'image. Ils ont probablement dire que chaque pixel, indépendamment de leur emplacement, est considérée comme l'élément d'un ensemble, indépendamment de direct spécial environnante.

À propos de In Alg. 1, we let B be the set of all values in a feature map across both the elements of a mini-batch and spatial locations: on obtient une liste à plat de toutes les valeurs de chaque exemple d'apprentissage dans le minibatch, et cette liste combine des choses quelle que soit leur emplacement sur la carte.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X