Pregunta Normalización de lotes en red neuronal convolucional


Soy novato en redes neuronales convolucionales y solo tengo idea sobre los mapas de características y cómo se realiza la convolución en las imágenes para extraer las características. Me gustaría saber algunos detalles sobre cómo aplicar la normalización de lotes en CNN.

Leí este artículo https://arxiv.org/pdf/1502.03167v3.pdf y podría entender el algoritmo BN aplicado a un dato, pero al final mencionaron que se requiere una ligera modificación cuando se aplica a CNN:

Para las capas convolucionales, también queremos que la normalización obedezca a la propiedad convolucional, de modo que los diferentes elementos del mismo mapa de características, en diferentes ubicaciones, se normalicen de la misma manera. Para lograr esto, normalizamos conjuntamente todas las activaciones en un mini lote, en todas las ubicaciones. En Alg. 1, dejamos que B sea el conjunto de todos los valores en un mapa de características a través de los elementos de un mini lote y ubicaciones espaciales, por lo que para un mini lote de tamaño m y mapas de características de tamaño p × q, usamos el efecto - mini lote de tamaño m '= | B | = m · pq. Aprendemos un par de parámetros γ (k) y β (k) por mapa de características, en lugar de por activación. Alg. 2 se modifica de manera similar, de modo que durante la inferencia, la transformación BN aplica la misma transformación lineal a cada activación en un mapa de características dado.

Estoy totalmente confundido cuando dicen "para que los diferentes elementos del mismo mapa de características, en diferentes ubicaciones, se normalicen de la misma manera"

Sé lo que significan los mapas de características y los diferentes elementos son los pesos en cada mapa de características. Pero no pude entender qué significa ubicación o ubicación espacial.

No podía entender la siguiente oración en absoluto "En Alg. 1, dejamos que B sea el conjunto de todos los valores en un mapa de características a través de los elementos de un mini lote y ubicaciones espaciales"

Me alegraría si alguien elabora frío y me explique en términos mucho más simples


32
2017-07-24 15:54


origen


Respuestas:


Comencemos con los términos. Recuerde que la salida de la capa convolucional es un tensor de 4 rangos [B, H, W, C], dónde B es el tamaño del lote, (H, W) es el mapa de características tamaño, C es la cantidad de canales Un índice (x, y) dónde 0 <= x < H y 0 <= y < W es un localización espacial.

Batchnorm habitual

Ahora, así es como se aplica el batchnorm de forma habitual (en pseudo-código):

# 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)

Básicamente, calcula H*W*C significa y H*W*C desviaciones estándar a través B elementos. Puede observar que los diferentes elementos en diferentes ubicaciones espaciales tienen su propia media y varianza y solo reúnen B valores.

Batchnorm en la capa conv

De esta manera es totalmente posible. Pero la capa convolucional tiene una propiedad especial: los pesos del filtro se comparten a través de la imagen de entrada (se puede leer en detalle en esta publicación) Es por eso que es razonable normalizar la salida de la misma manera, de modo que cada valor de salida tome la media y la varianza de B*H*W valores, en diferentes lugares.

Así es como se ve el código en este caso (de nuevo pseudo-código):

# 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)

En total, solo hay C medios y desviaciones estándar y cada uno de ellos se calcula sobre B*H*W valores. Eso es lo que quieren decir cuando dicen "mini-lote efectivo": la diferencia entre los dos es solo en la selección del eje (o de manera equivalente "selección de mini-lotes").


34
2017-10-11 15:30



Solo estoy 70% seguro de lo que digo, por lo que si no tiene sentido, edítelo o mencionelo antes de la votación negativa.

Acerca de location o spatial location: se refieren a la posición de los píxeles en una imagen o mapa de características. Un mapa de características es comparable a una versión escasa modificada de la imagen donde se representan los conceptos.

Acerca de so that different elements of the same feature map, at different locations, are normalized in the same way: algunos algoritmos de normalización son locales, por lo que dependen de su entorno cercano (ubicación) y no de las cosas muy separadas en la imagen. Probablemente signifiquen que cada píxel, independientemente de su ubicación, se trata como el elemento de un conjunto, independientemente de su entorno especial directo.

Acerca 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: Obtienen una lista plana de todos los valores de cada ejemplo de entrenamiento en el minibatch, y esta lista combina cosas independientemente de su ubicación en el mapa de características.


1
2017-07-25 01:07